Here at Big Bite, we’re pretty excited to announce the launch of our first product — Peggy — and it’s free!
Peggy was originally an internal tool that helped us manage our DevOps; or, put simply, it helped us build servers to deploy our code to. After using Peggy for our several internal projects and clients, we decided to release it to the community with a shiny UI.
Our journey into DevOps started just over a year ago, when we continually found ourselves frustrated with the offering of hosting solutions. We wanted to find something that would allow us to focus on building sites rather than worrying about the infrastructure. Naturally this lead us to SAAS platforms, our favourite being Fortrabbit: create an app and push to git remote — it couldn’t have been easier, and it was scalable.
But it wasn’t long before we noticed SAAS platforms didn’t fit for all our clients. Our standard scenarios:
- I need it hosted in X city or somewhere close.
- It needs to be hosted by us (the client), we can offer you an empty box to config yourself.
- And unfortunately, a very restrictive hosting budget
So we have to split the problem up; our preferred server provider and how we provision and deploy to servers.
The first problem was to find a server provider that was affordable and offered good performance. After a little research we came across DigitalOcean, a provider that have been growing massively over the last year, who have data centre locations across the world, from Singapore to London. I can honestly say they rock: brilliant service, and solid servers.
To solve the provisioning of the server, I wrote a simple shell script that installed Apache, PHP and MySQL — it also added a little app to set up Git remotes for deployment. This meant any developer at Big Bite could create a DigitalOcean droplet under a client’s account, SSH in and run one command to set up a LAMP stack, then another to config the app — easy as pie!
Using a Git remote for deployment fits into our workflow nicely — we already use it for version control — and it allowed us to loop in other commands (like composer install). But this had two main drawbacks:
- Commands like composer install were run after the deploy, so it had some downtime.
- Projects were split across many DigitalOcean accounts (or other services) with team members not having appropriate access. This meant that when they were required to work on an old project, they wasted time gaining access to deploy.
At this point, we were considering moving to platforms like Ansible, and more recently Forge + Envoyer. Unfortunately they didn’t fit our use case.
Let me introduce you to Peggy — our solution to the problem
With Peggy, you can add as many DigitalOcean accounts as you need (like a client’s account) and create a Droplet. If you don’t want to use DigitalOcean, you can use Peggy to provision any Ubuntu 14 x64 server.
Peggy provides a few different provisioning options, so you can chose to use run Apache or Nginx, add in MySQL, and then select which PHP version you’d like to install (5.4, 5.5 or 5.6).
You can then add an app to the server and deploy your code from any Git remote; Github, Gitlab, Beanstalkapp etc. Peggy is not tied to, nor reliant on, any third party Git services.
Peggy also lets you manage .env variables, cron jobs, workers, SSL and more with a simple interface.
When shouldn’t you use Peggy?
Well there’s no perfect formula, but if you are looking to set up a truly scalable site that’s expecting pretty high traffic or you need real redundancy, then you’ll need more than one server and you should leave it to the professionals. I highly recommend AWS Elastic Beanstalk, it hides some of the complexity whilst leaving enough freedom to go mad or at the other end of the scale there is WordPress VIP. And just because SAAS products didn’t fit with us, that doesn’t mean they are not right for you — the team at Fortrabbit are awesome and have helped us on our journey, so remember to explore your options.
Please have fun playing with Peggy, we would love to hear your thoughts — but bear in mind it’s the early days, so expect the odd hiccup!
Please note that servers are not tied to Peggy, so at any point you can deploy through the command line.