DevOps, Web

This company’s got 15+ blogs dedicated to various topics, the most popular one, PoderPDA, covers technology related events and news.


Their problem was that they didn’t have any control over their expensive server located in France, they suffered of multiple internal attacks which ended in years of lost information. They didn’t have any backup strategy so they could only recover some of the information from really old database dumps.

I’m gonna split the solution in the sections below:

The Blogs (and forum):

The first thing I did was to put all the blogs under version control with fresh WordPress installations. The only thing I preserve from the servers was the images and some plugins. The reason they needed fresh installs was because there was malicious code inserted everywhere and there was no way to know the extension of it. It also allowed to do rollbacks in case some update process goes wrong and to prevent malicious code injection again or to know who did it in case it happens.

The server:

The main problem with the server was that nobody knew where were the binaries of some services (like mysql), the package manager broke and, in general, the server barely remained standing. My solution was to put all the infrastructure as code with Ansible which allowed us, not only to create new servers faster, but to have multiple test environments before sending any change to production and to rollback faster in case something goes wrong. But still, it was nearly impossible to use this advantages in their current dedicated server.


The next change we needed was to use cloud servers (nearer to the target audience) instead of a dedicated one in order to use the new infrastructure as code. With our new provider, we could have a dedicated instance for each service, which allowed us to scale horizontally and the web servers ended up being disposables since we could create new ones in a matter of minutes. The static files were moved to a cloud storage and daily backups were set up with Ansible Tower. Now, even if we lost all instances, we could create a new infrastructure from scratch with ease and thanks to our new caching strategy, the infrastructure is 75% smaller than the original.

Now most of the monitoring and processes are automated and all the blogs only need a little maintenance once in a while. They also have the best uptime they’ve ever had.


  • PHP
  • HTML
  • CSS
  • YAML
  • JavaScript

  • WordPress
  • vBulletin
  • Vagrant
  • VirtualBox
  • Ansible

  • MySQL
  • MariaDB
  • Varnish
  • Nginx
  • New Relic
  • Amazon S3
  • Amazon EC2
  • Rackspace
  • Cloudflare
  • Ansible Tower

  • DevOps
  • System Administration
  • Web Development