You want to make sure your application is able to scale to meet unpredictable workload demand. Naturally, the cloud is the right place for your application. There you can easily create all the pieces required to build a scalable application – application servers and load balancers to control how traffic is distributed across them and database servers configured to accommodate different reads and writes, cache servers; and so on.
All of this creates a great deal of complexity that is only going to grow as you continue to scale. Moreover, all of these components need to talk to each other to make sure the application as a whole is going to work. In other words, your application requires a clearly defined topology.
Using Chef can be a big help; Chef is a fantastic platform for reducing much of this complexity. Chef roles automate the application blueprinting, managing the configuration of the infrastructure components. It significantly reduces the admin overhead required. The trouble is that even with the help of Chef, interconnecting all the various roles is no small task! Chef’s remit doesn’t include the big picture and the whole application topology. So let’s look at what you would need to do to ensure the communication between roles.
To begin with, you need to ensure Chef is working and that each node that makes your application is properly associated to its role. You need to configure roles and back them with the relevant cookbooks from the Chef Supermarket, or write them yourself. You’ll need to prepare your application infrastructure – see our blog on how to easily deploy a Chef Cookbook to an Application in the Cloud.
Once all roles have been executed and your nodes are up and running, you need to make sure that each node, representing a component of your application, is interconnected with the others. For instance, application servers need to be informed of where the database or the cache layer is, and this requires your understanding of the IP address given by the cloud provider as well as a specific configuration change to each application server. Chef, again, can help. You would simply need to change the role configuration and force the convergence. This will automatically update all affected nodes and establish the required connection.
The next step of automation is having an application that automatically scales, at least to handle temporary peaks. This is where you have a problem. When all the above needs to happen automatically, service discovery and automatic interconnection of roles is problematic. And the more nodes you have in your application topology, the bigger an issue this becomes.
Bypassing manual steps in the interconnection of roles by preparing applications to scale automatically is yet another reason why we’ve built Flexiant Concerto. In fact, with Flexiant Concerto, you can:
- Easily select or import your desired cookbooks
- Automate the creation of infrastructure and the installation of Chef
- Automate the role execution and convergence
- Automate the mapping of IP addresses into a fully managed geo-localized DNS infrastructure. For instance, your database service can be mapped to a unique FQDN (e.g. db.mydomain.io) to be used within the application servers role attributes
- Boot and bootstrap all nodes with a click
- Automate the application scalability with the creation of additional infrastructure, automatic interconnection of roles and inclusion in load balancing pools
Flexiant Concerto gives you an intuitive UI and an API to deliver the orchestration required to transform amazing Chef cookbooks into a fully distributed and scalable application topology.
To get started with Flexiant Concerto to make your Chef automation easier, visit http://www.concerto.io, sign up and use promo code FLEXDEVOPS to get the best deal possible.