Cloud Computing – Complexity, Costs And Containers

cloud computing

Cloud is about scale and innovation, but complexity bars speed of adoption for a broad swath of enterprise and mission-critical apps. Cloud computing by itself, is not an end, but a means of accelerating innovation by modernizing IT infrastructure and apps stack. The growth has been literally from scratch to staggering.  According to Gartner, “The global public cloud service market is projected to reach $266 billion in 2020”. Software as a service (SaaS) will remain the largest market segment, which is forecast to grow to $116 billion next year due to the scalability of subscription-based software. The second-largest market segment is infrastructure as a service (IaaS), which will reach $50 billion in 2020. IaaS is forecast to grow 24% year over year, which is the highest growth rate across all market segments. This growth is attributed to the demands of modern applications and workloads, which require infrastructure that traditional data centers cannot meet. By 2025, 80% of enterprises will shut down their traditional data centers and shift to the public cloud.

  • 83% of enterprise workloads will be in the cloud by this year-end 2020
  • 94% of enterprises already use a cloud service
  • 30% of all IT budgets are allocated to cloud computing
  • 66% of enterprises already have a cloud center of excellence
  • Organizations leverage almost 5 different cloud platforms on average
  • Primary being Google GCP, Amazon AWS, and Microsoft Azure, along with IBM, Alibaba, and a number of hosting providers pivoting to a services model

While no one in broad strokes as opposed to cloud adoption, then what is limiting adoption and, why this acceleration hasn’t catapulted this into the cloud sphere! Many reasons exist and are unique to each enterprise, however, some of the underlying themes are lack of clarity in vision, the inconsistency of business case, burgeoning skills gap, and overall cloud operational model undefined. These challenges prevent successful digital transformation efforts and initiatives from fruition. Complexity limits adoption impacts customer experience and is stifling collaboration. While the reasons for this lack of industrialization are multidimensional, the blog post is not exhaustive and is only highlighting the underlying subset of the causes by looking at complexity, costs, and touching on containers as a possible path forward for unifying the enterprise model.

Cloud is about scale – complexity bars adoption

Cloud is complex only if you want to realize the benefits of modern computing architecture and, not if you just want to exit the data center. While the numbers in terms of growth have been staggering and continue to accelerate at a breakneck pace, the enterprise adoption of cloud apps lags behind. The complexity of the cloud and skeletal underlying strategy limits, and slows down the adoption. This is because in the rush to get out from the captive data center model companies simply adopt a Lift and Shift approach often ignoring the bigger picture. While the “CloudFirst ” approach and point of view are gaining ground, it often falls short of actual building blocks and design definitions for the enterprise teams and downstream architects to execute on. Part of the problem is a chicken and egg situation were in, whether we design our next-generation architecture till it is mature/prime time ready or jump both feet in the cloud and embrace and adopt hyperscaler architecture. 

Desire to build in-house, feature-function paradox

Part of the complexity is attributed to the incompleteness of the feature-function set either in-house, and there is a desire to maintain the status quo and wait for general availability GA of a certain features in a hyperscaler service offering. While the feature is delivering business value, we need to ask a few questions on the viability of taking this on in-house. First question: Is there a  workaround, using fully managed svcs? The answer is often yes. It often takes some duct tape, but in most cases, it almost always still works fine, and provides the required functionality.
But suppose it’s not, and you can’t create this business feature with existing managed services. The next question is, what is the opportunity cost of building it inhouse? It’s a lot of work, both upfront and ongoing. What else could you be building with that time? How much other business value could you provide by setting that goal aside and coming back to it when provider offerings have improved? According to AWS Ben Kehoe For most businesses, the marginal performance gain you get by owning the technology is outweighed by the opportunity cost involved in tying up resources to support that technology. A greater competitive advantage is the ability to ship more user-facing features faster”. You think you can do better than cloud providers! Think again and Think deep and long term. Again this is for most companies and business and may not be applicable 100% across the board.
In today’s complex business environment where, the customer is front and center, the rapid pace of change is making it harder to plateau off internal change initiatives and transformation programs. Not only are the acute shortage and talent availability impacting programs, the release of new features, but capabilities also announced are adding fuel to the fire! The big 3 hyperscalers are in a race to claim the stakes and attract customers to their offerings, which they have invested billions of dollars in R&D and testing. Individual enterprises can hardly afford to do that and acquire that pace, let alone SMB’s. While product vendors had always led the way forward with the new releases, this tech wave is different in terms of iteration of changes, infrastructure complexity, rapid ideas to services lifecycle, and dynamic pricing models.

Prevent Cloud Sprawl and Contain Cloud Costs

The frictionless ease with which compute, storage, and networking resources can be provisioned and scaled is one of the public cloud’s greatest advantages. This is true for big 3, AWS, GCP, and Azure and others alike. However, these very same characteristics also make it difficult to monitor and contain cloud costs. Cloud cost management is complex with everchanging cloud assets, new services onboarding, and dynamic pricing models. Hyperscalers have firm-fixed pricing models while offering many options (e.g. GCP sustained user discounts) are in sharp contrast to previous enterprise and sourcing agreements that IT and Finance teams are familiar with. The granular time-based consumption model does not make it easy to adhere to standard budgetary envelopes and opex baselines. Cloud sprawl continues to ghost IT managers and has the potential to accumulate resources and their usage costs while not in productive use. In the RightScale 2019 State of the Cloud report, respondents estimated a 27% wasted cloud spend in 2019, while RightScale (Flexera) has measured actual waste among its customers at 35%. And according to Gartner, organizations that do not implement effective cost-optimization processes will, on average, overspend in the public cloud by 40%. There are a number of things IT leadership CIO can do to prevent and have some checks and balances in place as follows :

  • Establishing a central cloud Center of Excellence with cloud cost management as a core function.
  • Orchestration and automation of cloud resource right-sizing, provisioning, and decommissioning across hybrid and multi-cloud deployments.
  • Have a true business chargeback mechanisms in place.

Multi-Cloud or Multi-brid (Multi+Hybrid)

Cloud complexity is compounded by the arsenal of technologies, and features from the big 3 hyperscaler (GCP, AWS, and Azure). Compute, storage, networking, databases vary in instance sizes, granularity, types of storage, etc based on the performance characteristics of the application and end-users requirements. However, it is easier to compare compute and storage service offerings between the big three providers because differences in each provider’s platform maturity have created distinct product capabilities. Even for products or services that are very similar between providers, differences in fault-tolerance and geographic availability can mean one provider meets your cloud needs more than another. Virtual Machines (Instances/VMs) vary across cloud providers but can be compared for general purpose, memory optimization, compute optimization, and storage optimization. What if you have gone past this and are now mulling on the primary and secondary cloud providers amongst the big 3 hyperscalers ..?  While there is an element of risk that comes with the outsourcing of any kind, being single-threaded is not a viable path forward, and hence a more risk-averse option is to choose 2 providers from amongst the 3 hyperscalers (GCP, AWS, Azure)  and or other providers. This would be not so much from a purely primary and secondary designation for some internal audit checklist, but from a business alignment, performance and offerings richness and redundancy(geo-region-political) perspective. You may have a SQL based development environment and SQL(on Linux:-) would best meet your needs along with future use of Azure DevOps integration in your development pipeline. A financial services company may choose to employ AWS’ strengths in Online Transaction Processing for better user experience, while also utilizing GCP for data analytics. If you are in the P&C insurance business and want to use satellite imagery intelligence for disaster prediction and or property appraisals, you would be better off using GCP tensor flow running on Nvidia GPU’s. The skills and costs complexity will arise, however, the business risk, redundancy, and technology choices available (vs inhouse standup) will more than offset the initial organization inertia and costs. Chances are that you are SaaS/multi-cloud by default,  by virtue of using collaboration tools such as Microsoft office and or Google Gmail suit. However true multi-cloud capability would require to spin up enterprise workloads, monitoring, orchestration, and provisioning within the environments and managing the required configuration changes. 

What about hybrid, what about legacy apps that are currently working and providing business value, while this transitional shift to the cloud is in progress…? What about sustaining vs., the disruptive ..? A good place to start is assessing the state of the applications portfolio. AWS cloud adoption framework CAF-6R’s(Rehost, Replatform, Repurchase, Refactor, Retire, and Retain) provides good guidelines for applications path forward, while Gartner 5R’s (Retire, Retain, Replace, Rehost and Rewrite) also provides context and possible future state pattern. While your Application Portfolio Assessment will provide the details of how much shelf life and hence residual value is left in an individual or family of apps the R=Retain aspect of the business will require a set of the environment to be maintained either “As is” or, R=Retrofitted in the existing datacenter (I have added R to signify retrofitting vs Rehosting/Replatforming). While the hybrid component of the multi-cloud strategy defines the asset mix for cloud migration, the complexity with the management of both environments with multiple cloud providers is real and here to stay for a period of time. The challenges of having multiple IT operational environments for each of the groups create skills and cost challenges for IT and Financial leaders within the enterprise. Hence the need exists for a unifying approach towards the coexistence of legacy and the leading edge while optimizing operational and management functions.

Cloud Operating Model and Containers                 

A key element of Cloud strategy as enabled by the Cloud Operating Model is the integration between current and future state environments. An efficient and effective model which is financially sustainable would include reusability, interchangeability, seamless migration, and ease of IT operations as foundational items. Companies today are pursuing a hybrid cloud or multi-cloud strategy as a way to accelerate digital transformation and make IT services more agile and cost-effective. By combining private and public clouds, one can deliver the right resources for each application and achieve greater efficiency while avoiding getting locked into a particular environment. Containerization of the workloads would be seminal to implementing a successful operating model and would provide the necessary glue to hold the environments together. According to IDC “86% of surveyed organizations expect containers, microservices, and Kubernetes to have significant impacts on their multi-cloud management strategies in the coming years.” It was clear from the beginning that Kubernetes would be a catalyst for a multi-cloud operating environment running cross big 3 cloud providers. What was less clear was whether hybrid cloud would be on the menu, natively. Microsoft Azure was the earliest major cloud to embrace a hybrid cloud. Since 2016, its Azure Stack has allowed users to run a private data center using technology similar to Azure and connect a customer’s Azure cloud to both private and public clouds through a common interface. It did not include a Kubernetes offering, though, until a preview of Azure Arc in November last year. Users can now run containers across Kubernetes clusters, whether they are on Azure, some other cloud, or on private infrastructure, and manage all of it through a common Azure interface. Amazon is now gradually rolling out its AWS Outposts. The offering provides a combined AWS hardware/software stack directly into a customer’s data center to interface with Amazon. Google is the most recent one to embrace a hybrid cloud with its GA for Anthos and launch in April 2019. Google Kubernetes Engine (GKE), either hosted in Google’s (or any other) cloud or on-premises. It is now supported by the 3 major cloud providers. Microservices, containers, and multi-cloud will continue to challenge costs and require consistency and operating model clarity. Cost management challenges will continue to increase in complexity as more and more applications are built using microservices and containers. While these new technologies increase developer agility and application mobility, proper visibility, and management over those applications throughout their lifecycle can be extremely difficult. However with proper instrumentation, continuously evolving security paradigms, insights into the networks, and service meshes, we can optimize the containers and enable a true and powerful multi-cloud, hybrid operating model.

For more information about our cloud migration services, visit our dedicated webpage or email us at [email protected].