ALM best practices for advanced DevOps organizations
A comprehensive collection of articles, videos and more, hand-picked by our editors
After years of foot-dragging, most IT organizations have concluded that resistance to cloud infrastructure is futile. Industry giants Amazon Web Services and Microsoft Azure are approaching sales of a billion dollars a month, and major businesses, such as Capital One, GE and Netflix, have moved business IT operations to infrastructure as a service.
Now the question for most IT organizations isn't if they should use cloud services, but when, where and which ones. Knowing when to use cloud computing is a matter of corporate strategy and IT cloud maturity. But determining where and which services -- namely the list of applications to migrate and which infrastructure as a service [IaaS] providers to adopt -- depends on a myriad of factors, including legacy infrastructure, private and hybrid cloud plans, application architecture, service requirements, existing vendor relationships, regulatory requirements and the need for global reach and distribution.
To be successful, an organization needs to look closely at the capabilities, advantages and drawbacks of a potential IaaS provider. Then, evaluate options in light of existing and planned application portfolios.
Growing IaaS market
Though the worldwide market for cloud infrastructure is still fragmented, a handful of vendors garner just over half the total revenue: Amazon Web Services (AWS), Google Cloud, IBM SoftLayer, Microsoft Azure and Salesforce. Figures compiled by Synergy Research show that AWS alone owns about one-third of the IaaS market, while both Azure and Google are growing annually at triple-digit rates.
AWS, Azure and Google Cloud are the most common options for a public IaaS provider. IBM, meanwhile, provides an interesting mix of an open source IaaS, IBM platform as a service (PaaS) and hosted bare-metal servers. With IBM's use of OpenStack for IaaS and hybrid cloud, one could lump it into the broader OpenStack public cloud ecosystem, alongside DreamHost, Internap and Rackspace. However, IBM has a richer portfolio than those other options.
VMware -- given its dominant position as the virtualization platform of choice in business data centers --is an IaaS provider worth mentioning because of its vCloud Air product and network of service partners. VMware's vCloud illustrates an important distinction between public cloud services: the level of support for hybrid deployments. Although all vendors provide ways of securely connecting private infrastructure and public resources, AWS and Google are notable for only being available as shared services. In contrast, OpenStack and vCloud can be deployed and managed by internal IT.
Although Salesforce has some sophisticated application development services, it's primarily used as a packaged application, or software as a service, rather than an application platform, or platform as a service. Salesforce, a result, is qualitatively different from the other four cloud leaders.
Infrastructure and platform services were once considered well-defined and distinct service paradigms. Over time, traditional IaaS vendors have added richer, higher-level features, such as machine learning, business intelligence (BI), streaming data ingestion, mobile app back ends and serverless, event-driven microservices to their portfolios. The result is considerable overlap between products, such as AWS or Azure, and traditional, pure-play PaaS products, such as Cloud Foundry, Force.com, Heroku or Red Hat OpenShift.
Although AWS and Azure don't draw sharp distinctions between their infrastructure and platform services, Google and IBM do, with clearly identified and branded PaaS stacks. Blending IaaS and PaaS means the selection of a cloud provider is no longer IT's alone, since it's not a choice solely about infrastructure. With the growing variety and sophistication of application services, along with alternative deployment vehicles, such as containers and event-driven compute services, developers play an increasingly important, and perhaps central, role in evaluating and selecting a cloud IaaS provider.
Public cloud adoption causing some big vendors to stumble
Public cloud adoption is causing some legacy vendors, like VMware, to struggle against new competitors, like AWS, according to David Linthicum.
Cloud native vs. traditional apps drive IaaS provider choice
A fundamental factor when evaluating an IaaS provider is your application type. This illustrates the role developers must play in the selection process, because the cloud is far more than a new deployment location.
Whether you call it cloud-native or third platform, cloud services have ushered in new ways of designing, partitioning, scaling, testing and deploying applications. Cloud-first, greenfield apps are extremely modular. They are built around cloud services and application program interface (API) calls, designed for shared infrastructure and can be quickly deployed, moved and scaled. In contrast, legacy, client-server applications are built assuming ownership of an entire OS. They are shoehorned into shared infrastructure via hypervisors and VMs; in other words, they can run on, but aren't built for, the cloud.
This architectural distinction has profound implications on the type of cloud service, and IaaS provider, that's best for a particular organization. Some products mimic the VM environment of internal data centers; others are mostly a collection of RESTful services and APIs that can be mashed up into any type of application. A prime example of these contrasting approaches is the bifurcation of EMC/VMware's private cloud product line. Its Enterprise Hybrid Cloud based on vSphere is designed for traditional applications, while the Native Hybrid Cloud targets next-generation, modular, microservices-based designs.
The dichotomy carries over to the public cloud. For example, by offering basic compute, storage volumes, file systems and private networks, AWS can be made to look like a bunch of VMs and network-attached storage running in a private data center. That would be perfect for legacy databases and server-based applications. However, AWS can also be a platform for applications that are infrastructure-agnostic and based on higher-level services, such as NoSQL databases, BI processing, Hadoop-like clusters, message queues, push notification services, media transcoders and search engines.
When choosing an IaaS provider, consider the type of applications you'll deploy and where they fall on the spectrum between traditional and cloud-native. Applications that fall predominantly on the traditional side of the range will work best on systems like vCloud or SoftLayer bare-metal servers that resemble traditional VM infrastructure. Those shifted to the cloud-native side are better suited for an IaaS and PaaS combination, such as those from AWS, Azure or Google.
Editor's note: This feature is part one of a two-part series on choosing cloud providers based on application requirements. Read the second part here.
Consider a cloud-native app development approach for AWS
Navigate the new private cloud landscape
An overview of public IaaS benefits