When I first started programming professionally in the mid-90s, the book (yes, made from trees) that was on everyone’s desk was “Design Patterns” by Erich Gamma et al. (a.k.a The Gang of Four). It was the go-to book when thinking about starting the design of a module of code. I loved it! Of course, I was as guilty as others of overzealous usage and ended at times, cargo cult programming.
Today, I learned or finally noticed that even though this book has been my companion for over 20 years, I never paid much attention to the cover. Take a look: it has an image of an Escher’s modulus strip! The Gang of Four also predicted the future DevOps cycle.
As the introduction notes, “It’s a book of design patterns that describes simple and elegant solutions to specific problems.” When we look at modern “cloud-native” systems, at first glance,they appear simple and easy—in the same way, a microservice is simple but a microservice architecture is complex. The journey along the cloud-native trail and the creation of a cloud-native app with the 12-factor app or beyond 12 factors are all very straightforward.
But complexity comes in the choice in how to architect elegantly the solution, if you look at the Cloud Native Landscape, today it contains 1,382 cards—which means that there are at least 1,382 choices to make as you architect your solution:
So, given the array of choices, are there cloud design patterns that describe simple and elegant solutions to specific problems? Luckily there is a new “gang” emerging who are helping to articulate cloud patterns:
- The Amazon Builders’ Library
- Microsoft Cloud Design Patterns
- Cloud Design Patterns by the Ninja of 3
All of the above are helpful starting points but where they differ from the approach taken by the Gang of Four, is that the book established the value of 23 chosen design patterns and then reinforced them by codified examples in C++ and Smalltalk. To help in the journey to the cloud, the industry needs more reference implementations/examples to help accelerate the adoption and to lower cost and complexity of entry. Two patterns come to mind when starting with heritage applications: anti-corruption and strangler.
And that’s just on the technical front! In my next blog post, I’ll talk about the cultural transformation that must take place as we adopt these new patterns to be successful in our journey to cloud-native.
Read more about Axway’s journey to the cloud and the items we selected from Cloud Native Landscape.