May 6, 2014 | Written by: Frank Bauerle
Share this post:
There’s a lot of pressure on IT these days. Business asks for more capabilities on more platforms. Finance is demanding that you cut costs.
With the emphasis on cost cutting, we tend to focus on the short term and not think about the long-term implications of the decision to move to cloud computing. With the emphasis on satisfying the customers in the non-stop world we live in, your maintenance windows and opportunities to deploy applications and fixes are shrinking.
So, when you’re asked to evaluate cloud computing as a way of satisfying your business customers while also satisfying your finance masters, what do you do?
(Related: Overcoming institutional fear of cloud computing)
You might look at how to minimize the amount of work they need to do as they migrate to the cloud. You might look at how you can “lift and shift” your infrastructure from your current environments as you move to the cloud. You might try to convince your cloud provider to allow you to plug your specialized devices into the cloud infrastructure.
You might think: “This is how we do things today. This is what our infrastructure looks like today. We need to continue to do it this way because we don’t have time to change it or because we have specialized requirements that force us to do it this way.”
To minimize the impact on your current processes, you might want to continue with current development and operations processes to avoid having to make the investment of modifying them.
If you are thinking this way, you may win in the short term; in the long term, however, you will most likely lose.
As I thought about this problem, I started compiling my top three reasons why adapting the cloud to fit your solution instead of adapting your solutions to fit cloud computing may be a bad idea.
1. Continuing with your current development and support model will not help you become more efficient. Conversely, adopting cloud development models can help make your development, deployment and operations organizations more efficient.
You should consider adopting a DevOps methodology where the emphasis is on breaking down the barriers between the development and operations organizations. DevOps looks to automate some (if not all) functions where development and operations interact. Application deployment is typically automated—cutting down on the potential of human error. Monitoring and basic responses to events can be automated. As load grows on the infrastructure, provisioning of new servers can be automated to help the application scale.
2) “Lifting and shifting” your application to the cloud does not help you realize the benefits of cloud computing. IT organizations often design and develop applications based on business requirements before evaluating application characteristics to determine the hardware on which to provision and deploy the application. As a result, companies often end up with specialized hardware to satisfy specific performance and configuration requirements.
In evaluating the cloud, prospective cloud users will often consider whether it’s simpler for them to simply translate their current infrastructure to what the cloud provider offers. When an IT organization has specialized hardware, they often ask whether that specialized infrastructure can be “racked and stacked” by the cloud provider.
If you do this, you’re missing the opportunity to optimize your solution for scalability and availability.
By embracing the cloud, you consider nonfunctional requirements such as scalability and availability in the overall architecture and design of your applications. As a result, you end up with an application that is tuned to run on commodity hardware, helping you realize a lower cost solution.
3) API, API, API… One of the benefits of moving to a cloud model is the availability of a robust application programming interface (API).
While most organizations do leverage APIs that are available through the components in their solution stack, they typically do not have an API that is complete and integrated across infrastructure provisioning, monitoring and operational tasks. Managing and maintaining this cobbled together automation is complex and prone to integration errors.
Cloud providers, such as SoftLayer, provide a single API that allows you to automate many of your provisioning, monitoring and operations tasks. Through these APIs, you can automate the provisioning of a new environment. You can also monitor your infrastructure and scale your applications on demand.
Through the SoftLayer API, you can automate or script any command that is available through the SoftLayer console.
In the long run, adapting to cloud may serve you better than adapting cloud to suit your immediate needs. Let me know your thoughts. Comment below or connect with me on Twitter @FRBauerle.