Cloud is not a one size fits all game and implementing cloud is not just about spinning up a few VMs. There is more to be done and more options to choose from. This primer is for those who are yet to get on board
There are a number of players in the market who provide cloud services, we will call them “cloud providers” – the cloud they provide is known as “public cloud”. You also have the ability to create your own “private cloud” by using those same software on-premise in your data centers. You can further connect up the public and private clouds and the systems not on either cloud. The topology can be as simple or as complicated as your business needs.
Amazon Web Services:
Microsoft Azure Marketplace:
Google Apps Marketplace:
Microsoft Azure DataMart:
What can I buy?
Depending on the needs of your business application and your business needs, you can buy a combination of services. These can be infrastructural: compute systems, storage, security, routing or IT management. Services may also be complete or partial, DIY (do it yourself) or pre-configured applications.
The cloud is a great platform to fulfill your infrastructural needs. These needs are intrinsic to your organization’s IT, but are secondary to the business objectives. For example, DNS servers, systems that host your corporate website, content and knowledge management systems, email, calendaring and collaboration systems and so on. Having them on the cloud could be beneficial for you if you have offices or workers in many different geographical locations.
Cloud providers let you purchase pre-configured (in some cases, these may be optimized somehow to run on the cloud) images of such infrastructure software and deploy to your cloud account. In the case of Amazon’s AWS, you can even purchase networking and security solutions like routing, Big IP and antivirus scanners in “appliance” form.
Compute, Storage and Data services
To Split or Not To Split?
Each type of resource and service on the cloud comes with its own capacity, capability, redundancy, geographic placement and pricing structure. When deciding to host a service, all of these factors must be taken into account. If you pick the wrong strategy, your cost, availability and team productivity can all take a hit, and the cloud migration can become a story you don’t want to tell.
Just like you have different types of servers for general workloads, data storage and database systems in your data center, the cloud too has different services for such things. A system that’s aimed at general workloads is known as a “compute” service. A service that let you store and access data (much like you would through a NAS/DAS) is a Storage service and that which lets you host databases only is a Data service. If you have significant usage that you can clearly separate through thorough analysis of your system usage, then you should go for such separation of roles. Separating these roles between different services gives you the advantage of scaling each service differently as its usage and demand grows. It also lets you position them closer to where they are required.
If in the case that after separation your needs for compute, storage and data cannot justify putting them on different services, then it is best that you leave them together as a single system in the cloud as well – however, this comes with a different sort of cost: increased bills and loss of productivity.
DIY Virtual Machines
When you purchase a DIY virtual machine on the cloud, you get something like a fresh server that you plugin to a rack in your data center. It comes with the OS and a few (cloud-provider and platform-specific) sensors for its host machine, and nothing else. This comes in handy when you cannot find a purchasable application or service on the cloud for a specific need and your mandate is explicit with the need to move something to the cloud. To migrate such a thing from on-premise, all you need to do is build a similar machine on-premise, configure it the way you need, test it and deploy everything to the VM on the cloud.
What can you control about your systems and applications on the cloud? What level of detail in the control is possible? Does the provider provide a mechanism to roll your own apps or dashboards using some kind of an API? These are factors that enable your existing IT team become successful in managing your new cloud infrastructure.
Some cloud providers have really extensive “control panel” interfaces. Amazon Web Services is really comprehensive. It lets you manage almost every aspect of everything they let you install, configure and run. But it is easy to get lost in such an environment and find it hard to troubleshoot when things go wrong. However, they do provide an extensive API (as comprehensive as their UI) to let you roll your own tooling. You need to find the right balance between what is on offer, what you need and how you can extend it. Microsoft’s Azure Portal is a good balance of things and provides PowerShell based remote management.
When things go wrong
Quite a lot of teams build in instrumentation, troubleshooting and other tooling for their IT as an afterthought and with a lot of grumbling, wrangling and scope-thrashing. But when push comes to shove when things go wrong, these are what you need. The better cloud platforms are those that provide deep instrumentation and tell you what went wrong, where, why and when. And some of these let you track failures over a period of time and perform trend analysis – a critical component of service engineering and problem management.
It is not just that you need to add suitable logging and tracing functionality in your applications. It also means that the tools available with your cloud provider need to be able to listen in, sniff out and surface these to you. You can no longer RDP or SSH into a server and look at the logs. Things on the cloud are a bit more complicated, especially when you have a dynamically scaling application.
Each cloud vendor has their own marketplace. These marketplaces is no different in principle and operation than the Google Play, iTunes or Windows Marketplace stores. See the box for links to the marketplaces of big players in the cloud space.
In a quick rundown through each of these marketplaces, we found a sizeable collection of applications as a service (AaaS) and data as a service (DaaS). Each marketplace categorizes the applications according to functionality and premium (some apps are for free, while others cost a fee). Many of the paid apps we saw also came with a trial period to let you try the features of the app before you decide that is what you need. This is especially useful when you have several providers in an app space with competitive features and pricing. Pricing models vary from per-second to annual billing cycles and some let you customize your billing period so that it is in sync with other products you use.