Soon after I started working with Rails, I wanted to start using my own server environment, instead of a managed hosting. I wanted to be able to use any kind of libraries, their versions and any other tools my projects required on my server, set up the way I need it. Thus I got my first VPS.
From one small VPS server, over a period of a few years, I find myself managing 6+ dedicated servers to serve the needs of the applications I’ve developed and maintain.
At the beginning I managed my first server manually: ssh into the machine, install packages, edit the configs… This soon became tedious and I was aware that there are tools designed to do this better. I picked up Chef and never looked back. Nowadays all my servers are managed by cookbooks, deployed by chef-solo in conjunction with my own knife-like toolset based on Mina.
Here’s a short list of some of the more interesting things that I’ve learned and have experience with in conjunction with DevOps:
- MySQL configuration, backup & replication (I’ve developed my own Docker container for this).
- Using Postfix as a relay for services like Mandrill for reliable transactional email delivery.
- Nginx, Unicorn, Upstart for reliably running apps with hot reloads on deploys.
- Infrastructure monitoring using Zabbix (I’ve got my own container for that too).
- Recovery from a failed disk in software RAID environment.