By Rajesh Ramchandani, Chief Technology Officer, CumuLogic
For most enterprises, cloud adoption has been a process and a journey; many have spent the last few years understanding the value and assessing the challenges it presents. For many enterprises it is a multi-year initiative since the complexity of legacy systems is enormous. CIOs and IT organizations must not only understand how application development and operations need to evolve within the context of cloud, but also spend a substantial amount of time in technical evaluation to figure out how they can refactor or re-architect existing workloads in order to move them to the cloud. Many organizations have spent millions of dollars in an attempt to migrate workloads which were considered to be "migratable" with ease, while maintaining the same level of security, accessibility, and availability. Most of these workloads have been non-mission critical IT systems with low levels of compliance and availability requirements. While most of the Fortune 2000s have used public clouds for development, testing, or production, many are still in the process of evaluation and have identified serious challenges that prevent them from moving entirely to the cloud. Many organizations tend to look at security, compliance and control as the main reasons which prohibit them from fully adopting public clouds, while others identify scalability and suitability as roadblocks.
Over the last few years, we have seen a trend evolving where most of enterprises have started to look at private and hybrid clouds as alternatives to pure public clouds. Hybrid clouds give enterprises the option to deploy and manage critical and sensitive workloads in-house, inside their firewall, while leveraging public clouds for non-mission critical apps and less data sensitive workloads. Hybrid clouds also allow enterprises to leverage their existing IT infrastructure, software licenses, and integrations, which otherwise would have to be thrown away and repurchased on public clouds, or would be unusable within the context of new architectures and deployment models. Hybrid clouds tend to be an excellent solution for web-scale companies who used public clouds as their prime infrastructure from the beginning. Some examples of these web scale verticals include: gaming, streaming, networking, and even SaaS companies. In such cases, where companies have grown quickly and have ramped up their infrastructure in order to drive customer adoption,a threshold is eventually reached where public cloud consumption continues to be exponentially more expensive and eventually cost prohibitive.
For large enterprises with legacy IT infrastructure and hundreds or thousands of applications, a primary concern is investment protection and the ability to re-purpose existing assets like VMware vSphere, vCloud Director, Oracle, SAP, or other business suite applications. Enterprises want to continue to run their existing business systems without major disruptions and will only consider migrating non-mission critical applications to external public clouds or simply discontinue them altogether and leverage SaaS. It's very unlikely, at least in the short term, that large enterprises will consider migrating business applications, even to private clouds, in part because such systems are typically vertically scalable and do not lend themselves to the horizontal scalability model of clouds. More importantly, such systems require licenses which are typically tied to either a "per CPU" or "per nod"cost model and therein become exorbitantly expensive to run on clouds. When addressing many other applications, enterprises are actively seeking to deploy clouds using technologies like OpenStack to gain the agility and flexibility advantages that private clouds provide and to gain higher utilization of the infrastructure. Additional benefits from deploying private OpenStack or CloudStack clouds can come in the form of lower operational costs of deploying non-critical applications or applications that are non-performance sensitive where the option exists to leverage low-cost hypervisors rather than more expensive VMware infrastructure.
For web companies looking to repatriate workloads to private clouds, their prime considerations tend to be compatibility with existing public cloud providers. Compatibility with public clouds is desired in order to move workloads back and forth as needed (i.e. between staging environments and production environments). Workload compatibility is also important in order to leverage the existing set of tools and scripts developed to manage operations on clouds. Web scale companies are attracted to private/hybrid cloud services as a means to avoid a public cloud lock-in.
Cloud computing has changed the way new applications are designed, developed, architected and deployed. Infrastructure is only provisioned as needed, and applications are deployed with redundancy in order to quickly recover from infrastructure or total cloud failures. Applications are designed and developed to scale horizontally, and performance is achieved by distributed architectures, and most importantly, it's assumed that most of the layers of a stack are available "as services." Applications can request and bind to services such as databases, message queues, and caches rather than being tightly integrated with them. This service availability allows each stack layer to be independently scalable and be built with its own redundancy mechanism. If a database fails, the database service is assumed to be self-recoverable to provide the highest level of data availability and durability. If a cache cluster fails, a new cluster can be provisioned within minutes and sync up with a database service.
Clouds have enhanced architectures to be able to deliver services and applications at massive scale, a task which was not possible with monolithic stacks and tightly integrated systems. The evolving microservices architectures further enhance our ability to design smaller and more scalable services in addition to building a much higher level of redundancy and availability in workloads. Platform-as-a-Service (PaaS) solutions such as Cloud Foundry take application architectures a step further, enabling the implementation of DevOps models to deliver application upgrades continuously without any downtime. Developers can now test and push new updates in production environments and easily rollback without causing a negative impact to the user experience.
The latest container technologies such as Docker and Rocket can isolate applications from the underlying operating system, infrastructure stack, and clouds themselves. Docker provides the ability to package applications with a very small footprint of artifacts and build deployment environments in real-time on the target infrastructure. This packaging eliminates the need to develop and test applications on a given OS or middleware stacks and workloads can be easily moved between clouds. Docker's promise to simplify application deployment and management has the opportunity to change the landscape of virtualization and the cloud itself.
With so many powerful technologies and rapid enhancements in infrastructure, combined with the ever lowering cost of the infrastructure itself, enterprises can expect a future that includes very low cost, low footprint datacenters and applications that virtually never fail.