This blog is part one of a three-part series on “Why Public Cloud Over Private Cloud”
I often have conversations with customers wanting to migrate to the Public Cloud or evaluate different Public Cloud providers. However, when I ask them why, or what they expect the Public Cloud to do for them, they often do not have a conclusive answer. Quite often, they just hear it is a good thing, or it is inevitable, and they should be doing it, or wanting to learn about it. Other times they respond that it is the hyper-scale the cloud provides but falls short only relating hyper-scale to elasticity of auto-scaling concepts. This lack of complete understanding often leads to mistakes or bad choices when attempting a Public Cloud project, so I wanted to provide my insights at a 100-thousand-foot level of why the Public Cloud is the future and critical to the success of an ever-growing and competitive landscape.
Many companies and products promote automation tools to achieve Private Cloud, but automation and virtualization alone fall short of the full promise of Cloud Computing. The National Institute for Standards and Technology (NIST) defines Cloud Computing as
“Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model comprises five essential characteristics, three service models, and four deployment models.”
Automation helps improve operational complexities and minimize human error, which is a must-have with more DevOps-focused teams striving to streamline development projects using CI/CD methodologies and automation. However, the “Applications” and “Services” are an equally important part of what Cloud Computing intends to provide. This is where Public Cloud providers stand apart from developing Private Cloud solutions. The hundreds of applications and services that can be provisioned, secured, and consumed from a simple API call are invaluable. Plus, exposing development teams to modern technologies they would otherwise not have, such as diverse types of databases, including SQL, Distributed SQL, In-Memory SQL, NoSQL, JSON, Columnar, Graph, Warehousing, Object, and more.
Developing a Private Cloud strategy is invaluable for any organization. However, confusing Private Cloud with Public Cloud computing is where many companies struggle, and risk failing. To reign in and minimize shadow IT, many data center technology teams within IT try to control Public Cloud adoption and try to make the Public Cloud an extension of their Private Cloud. Since Private Cloud solutions do not provide the numerous services available in a Public Cloud, many organizations choose to control the use and adoption of Public Cloud services, limit what DevOps teams can do, and force teams to continue to behave more traditionally. Public Cloud offers such a diverse set of Applications and Services that organizations must provide new ways of deploying, securing, routing, and managing a team’s solutions to ensure proper controls for risk, governance, and regulations while not impeding their ability to innovate.
The popularity of microservices and containers offers developers a new way to tackle problems. With adequately designed microservices, we not only remove legacy code from a monolith, but we also remove data from the monolith too, taking data out of a shared enterprise database and moving it under a single bounded contexts to live more tightly with its code. In doing so, we improve security, put the control with the DevOps teams, change restrictions for patching, improve elevations through CI/CD automation, simplify maintenance, troubleshooting and allow for service specific scaling. Doing so comes at a cost. Since we’re no longer able to perform complex SQL joins across a complex enterprise database, we rely on service-to-service calls for batch processing. In this new paradigm we must rely on horizontal scalability of micro-services and their accompanying database platforms. This idea seems simple but can be very challenging to achieve with an on-premises private cloud but is designed into native services of public cloud providers.
I hope I’ve whet your appetite. Check back often for the next installment in this series “Why Public Cloud Over Private Cloud” where we’ll dive into more detail on legacy components of private clouds including compute, network and storage.