Managing one server should be easy, and even managing a couple of servers with one provider doesn’t have to be a daunting task. But what if you want to manage tens of servers? Or you want to spread the risk, and want to use more than one cloud provider? This is where cloud management companies come into play. And that’s not all, since they also bring in budget control, cloud monitoring, governance and automation, all to make cloud server management a bit more easy.
Why should you use cloud management?
Cloud management, budget control, automation; It all sounds very nice, but what is it? Let me give you a few examples of cloud management, and the benefits it brings:
Fully connected with API’s, this allows you to fire up a Amazon AWS hosted WordPress site based on a LAMP stack in minutes without logging in into AWS. But this is child’s play compared to what cloud management companies are capable off. Just imagine if you want to run your site on both Amazon AWS and Rackspace Cloud for redundancy and Scalability with Google Compute Engine doing the heavy work and your own OpenStack private cloud as base for this setup? All with hundreds of servers each? Try to manage that! Cloud management gives you the tools to keep an overview in a single console, eliminating the need to check all the underlying providers yourself.
Setting up a configuration like above can become quite costly. With the help of budget control you can keep the costs below a certain limit, up to preventing a new server to be launched of your automation is setup this way. This tightens your flexibility, but won’t surprise you with a huge bill if you suddenly became the next Youtube over night.
Using cost reporting you can monitor your spending across all of your cloud deployments. You can set up projects to keep the costs of it separate from the rest, or drill down to the cost of a specific server in the cloud.
All cloud installations require you to setup authentication keys, which are all generated and managed for you. But, you may want to restrict access within your own company or deployments. Cloud governance gives you the ability to restrict access based on roles and requirements. You can assign teams to a specific cloud, or limit their spending. It also comes with auditing and logging, allowing you to review and trace back of previous activity or open ports. It takes security out of your hands, without losing the financial or operational controls.
You can expect to receive a decent set of monitoring tools to keep an good overview of the health or your cloud. Basic stuff like monitoring CPU, memory and disk usage, processes and network usage are included of course. But it doesn’t stop there, since you can also monitor important applications like Apache, memcached for example. This goes as far as how much active connections Nginx has, or how much active workers Postgres uses. Again, these are all examples since the monitoring is really extensive. And besides having lots of graphs at hand, you can also set up alerts to receive an email when something goes wrong. It gives you all the options you need to discover problems within your cloud for you to fix or optimize.
This is where the real power of cloud management comes to surface. Automation allows you to scale your servers, manage your backups, provision new servers in an instant and use automated recovery. It also gives you the opportunity to update all of your cloud servers one at a time, or all at once. I will explain all these features a bit more in-depth, since this really is the main benefit of cloud management:
In the old days you had a look in your server load reports once in awhile, and when you saw that the load was above certain thresholds most of the time, you added one of more servers till it repeated again. Auto scaling does this for you, only much better. You can use parameters like server load, page load time or transaction rates (which are all monitored) to determine whether or not new servers need to be added, or have current servers removed. You can use predefined scripts based on these parameters to launch a server in one or more clouds. Imagine you get a sudden influx of visitors from Europe, while your whole cloud is set up for visitors from North America. If you programmed your scaling script right, you can instantly swing on a few servers in Europe and minimize loading times.
This is another interesting feature of cloud automation, because just like you can manage different servers in different clouds, you can do this with your backups as well. So you can use multiple cloud providers or different regions to provide maximum redundancy for your backups.
Starting up a server is one thing, but getting it to work like you want it can be quite a challenge. Cloud management provide you with scripts or templates to make server provisioning a breeze. A template is basically a blueprint for your server, where you specify what needs to be installed on a fresh server, to which database or load balancer it should connect and on which cloud it should launch. This is all handled with scripts to make it happen. Most providers offer you predefined scripts for setting up a load balancer, a cache server or a LAMP stack based WordPress site like mentioned above. And after provisioning, you can set up scripts to keep the servers up to date and have patches applied.
Just like with scaling, you can specify what should happen when a server goes down. You can have it replaced by cloning a live server, use a predefined template or relaunch from a backup. Large companies, running hundreds of servers, use automated recovery to keep their costs down. They rather have a broken server instantly replaced, than spending tons of money to prevent them from going down. Imagine a load spike to a specific server due to bad scripting, or a false setup. To prevent it from going down, you can add more memory and more CPU power. But you are also paying for this when there’s no spike. Or you use a small server, and when it does go down when a load spike hits it, just have it replaced. And with the monitoring in place, you can always find out what hit it.
As you can see, cloud management is way more than just having an easy overview of all your clouds. Especially auto scaling takes a lot of work out of your hands, and gives you the flexibility you need to keep costs down and performance high. We have covered features of a cloud management software in this post. In next part of this post we will do some hands on with market leaders in cloud management.