How we deployed to IBM Bluemix in less than 12 hours
Upon making contact with some “in-the-know” IBM executives, they quickly explained the value proposition of Bluemix. We were sold. Within 12 hours we had a version of Bugwolf running on IBM Bluemix. We did this with lightning speed and gained valuable lessons along the way.
Having gone through the process, we wanted to share a couple of things that should be considered when thinking of deploying an application to IBM Bluemix. This is especially relevant when deploying between Amazon AWS, Microsoft Azure, and IBM Bluemix.
Preparing your application
This step was one of the most important parts of the process and was the real reason we were able to deploy the application at lighting speed. You don’t build a house without great foundations. So ensuring your application is decoupled and stateless failure is a key start. Because we built Bugwolf for the cloud from the start, it can scale up and down as necessary. This makes it way more flexible than if we had built a traditional monolithic architecture.
Deploying the changes
When you put the right foundations in place then it makes deploying the changes even easier and faster. This is important when you’re talking about moving your Ruby application to a new home. One of the many benefits of Cloud Foundry, which is what IBM Bluemix is built from, is just how easy it is to push new versions of our application. We can do this multiple times a day - it only takes a few minutes and has zero downtime. This means we can move as fast as our customers need us to. Particularly when there is that new “must have” feature they want.
Before deploying an application, it’s important to build some resilience into your architecture design to plan for unexpected things to happen. This makes so much sense for your staging and production environments. We take advantage of things like a stateless architecture, so that we can both scale as needed and also tolerate the unexpected. Plus, our database layer is a master-slave configuration with automatic failover, live replication and automated backup.
Monitor and diagnose
We had already put in place a range of devops tools and notifications including Bugsnag and Pingdom from our migration from Heroku to Amazon AWS. This made it easy to establish our platform in the new IBM Bluemix environment in no time. Because we consume services such as these via an API rather than binding them in too closely into our code, it does not matter where Bugwolf is running. Also, this means that if we want to use a different service, we can do this with minimal changeover.