Cloud Native is much more than on-demand infrastructure in the cloud, as discussed in Cloud Computing vs. Cloud Native: The Differences Revealed. It is, in fact, a complete methodology encompassing architecture, design, process, infrastructure, and even organisational culture.
It is also still very much an emerging technology, complicated by the fact that Cloud Native systems are innately complex. As a result, when engineers, developers and their executive leaders are contemplating a cloud migration, it is difficult to identify the optimal course. Frequently, the newness and complexity of the technology mean it is even hard to simply identify and discuss appropriate Cloud Native options -- much less implement them.
This is where patterns language comes in. This is a systems design approach based on Christopher Alexander’s ground-breaking architectural method of designing buildings based on a modular set of context-specific designs. Each design, a component of the overall system, is easy to explain and understand, as well as reliably replicable and deliverable in the real world. In short, a pattern is an ideal design, articulated according to a uniform template, that addresses a particular need. Each pattern fits together with other related and complementary patterns to form an overall design strategy - a way to simply but fully map and describe a complex system. All together they form a pattern language. (For more background about patterns, please see A Timeless Way of Building a Cloud Native System?).
One might almost think of patterns as Lego bricks: small, individual pieces that fit together in any number of ways to build incredibly complex things.
Cloud Native architecture is a natural fit for patterns-based design. Over the past three years, in the course of guiding enterprises through Cloud Native transformations, Container Solutions have been identifying successful methods that work in many contexts (as well as those that do not!). We are now formally articulating these observations into a Cloud Native Patterns Language. It is an ongoing project, with a goal of articulating a complete set of Cloud Native best practises -- including, for example, “Distributed System,” “Dynamic Scheduling,” and “Modular Architecture” -- each one identified, described and cross-linked with other complementary patterns.
How do we choose the proper patterns for an enterprise migration? How to identify the correct, “right” components for each client? Context is the key.
In architecture, there is rarely a “silver bullet” approach that will work in any and every circumstance. Instead, the right choice almost always depends on where you are now and where you want to be: your unique situation and set of needs, your context. This is as true in designing enterprise Cloud Native architecture as it is in designing a country home. Which is why, in order to identify and select which Cloud Native patterns to implement, enterprises must first understand their own current context, i.e., their organizational needs and aspirations.. To help companies assess context, we use the Container Solutions Maturity Matrix to evaluate nine different areas. The results help guide the patterns to be applied in order to create a customized direct path to effective Cloud Native transformation.
So let’s begin looking at some actual patterns! Cloud Native patterns all take the same form: A descriptive title, the context(s) where the pattern is applied, the problem(s) it addresses, and forces at work. A pattern presentation finishes with the specific solution it presents, and then often some examples of this pattern applied in the real world.
The very first pattern we shall discuss is not one of the technical aspects of Cloud Native, like Modular Architecture or Continuous Delivery. It is a human-based component just as crucial to Cloud Native success as any bleeding-edge tech: Executive Commitment. This will be followed by many more -- The Container Solutions team are aiming to release two new patterns blog posts each week -- as we continue to establish this Cloud Native Patterns Language.
Interested to know more about Cloud Native? Download our eBook below: