I assume that by now you’re well aware that there is a renewed excitement in our industry. Digital Transformation is gaining steam, and the cloud is hotter than hot. Have you noticed the Cambrian Explosion that’s going on in cloud technologies? Have a look at the Cloud Native Computing Foundation. At the moment of writing, they’ve registered 609 cards with a total of 1,371,481 stars, a total market cap of $6.25T and funding of $17.7B. Impressive. There must be another boom going on. Of course, not all of these initiatives will survive over the long term. In that respect, it is really similar to the Cambrian Explosion: only the fittest survive. From an architectural perspective, this is not the most relevant question to ask. It is more interesting to know if the underlying trend is solid. Will the paradigm that we now know as cloud-native survive long term? That’s the question I’m exploring in this blog.
What’s actually going on?
Obviously, there’s a lot going on. A big driver is the container technology, with orchestration and serverless computing. They’re built on software-defined networks, able to auto-scale and auto-heal, and operating at a scale previously unknown. When you think about the scale of Youtube, Netflix, and AWS, to name a few, it’s easy to get your mind blown. And since there is so much intelligence available in the platform, the software running on top can be much simpler, with less overhead. Leaner. And it’s become much easier to automate complex deployments.
Services are becoming smaller. That is, smaller in scope. Doing one thing, one thing only, and doing it damned good. Disaggregating large systems into smaller, easier to mange chunks. Also doing it independent from corporate solutions. Ability to change, and to change rapidly, is the main driver here. Who wants to reuse something as you have to accept shared ownership, potentially hindering your future adaptability? That includes the tried and proven enterprise solutions as an RDBMS, an ESB, a data warehouse, and what have you. Everything gets blown to bits for the sake of independence. There is still integration going on, of course, but then simply through a ReSTful interface – with the implicit promise there will be ongoing support for the current version – or, even better, through simple events processed at smart endpoints. Nobody needs a smart pipe, right?
At the organization, everybody is trying hard to become agile. More and more organizations are transforming into collections of small, autonomous teams. It simply takes a high degree of decisiveness, at low levels in the organizations, to rapidly react to changes in the market. Since an organization wants to be more than a collection of autonomous entities, SAFe, LeSS, & Nexus are practiced more and more. Kanban is growing in popularity. And with the Spotify model, Squads, Tribes, Chapters en Guilds are conquering the enterprise.
There’s another frontline at data architecture. The fat database model, with large schemas, enforced by the RDBMS doesn’t cut it anymore. It doesn’t scale that well, but more importantly, it doesn’t support an agile way of working. Martin Fowler has clearly explained why each microservice must control and own its own data source. Complex joins are no longer needed, at least not at the database level. Denormalization practices and data isolation principles are much better suiting the agile enterprise. Data storage is cheap, so it doesn’t really hurt to replicate it, and eventual consistency can be managed just fine in the software.
Adding it all up
When you carefully think about these developments, they might not seem revolutionary. It might look more like a gradual change towards new design patterns. But that would be a mistake. Because, what’s really happening is that these forces are pretty well aligned. Lean, independent, autonomous, isolated building blocks. It is through alignment that the cloud native paradigm has become such a formidable force. This force alone will not change our world overnight. Change simply does not work that way. Especially when things that are deeply rooted in our culture have to change. Could a simple wait- and-see strategy be feasible?
I say no, loud and clearly, and this is why.
Consider plate tectonics for a minute. We know how it works. There’s a massive force at work, and friction builds. At a certain point in time, the force outgrows the friction. The bigger the friction, the bigger the bang. In the end, the tectonic plates are shifting. And then there’s no way back. That’s what happening in our industry.
Many organization experience the friction. The experience Change Resistance, when the majority of staff is tired of trying new things, and failing most of the time. There is Service Fatigue, because of too many broken promises. And because of the reuse dividend that never got payed. In the meantime, the Time-to-Market is still disappointing, to say the least, while the Cost-of-Ownership has yet to be brought under control. Amidst Fierce Competition, with new entrants on the horizon, there’s a real Fear of Missing Out new markets, and being stuck in shrinking ones. The Tight Labor Market increases the problem of attracting and retaining talent. Who dreams of a career with a Dinosaur?
Try to get this. Many painful symptoms, one common cure. Going cloud native. The sooner, the better. It’s not that hard, it doesn’t need a lot of upfront investment. It’s just a change in the way of working. Embracing the new paradigm, like others have done already.
Try to resist it, and risk being obliterated in the coming quake.
Through the MicroScope is a blog series of indefinite length, focusing on designing resilient, distributed, cloud-native architectures. Every edition will shine a different light on the microsphere. Read also the next Through the MicroScope blog.