I’ve been in the world of enterprises architecture for years—as a practitioner, a technology builder, a thought leader, and a pundit.
What I like about architecture, no matter if it’s traditional enterprise, cloud, edge, or other special-purpose systems, is that there are about 100 factorial ways to solve the same IT architecture problems. Creating the most optimized architecture with the least amount of money and risk really falls back on the experience of the architect more than some canned methodology or automated process.
There’s a lot at stake. Architectures that are underoptimized and costly may indeed work, but they may cause the business to lose millions a week while most people are none the wiser. Thirty technologies are used where 12 would have worked better, and not designing for change means that business agility suffers.
But it works, right? Now, let’s file for bankruptcy, so the bad architect can go off and ruin other businesses.
As we get better at architecture of newer IT concepts, such as cloud computing, the number of best practices becomes better understood. I often get the question, “Can architecture (in this case cloud architecture) be automated? Is good architecture repeatable?” This would mean we can define architecture as a binary concept where rules of logic can be applied repeatedly for optimized and consistent results.
About 15 years ago, I attempted to boil down SOA (service-oriented architecture), which is really the building blocks of cloud computing, to an algorithm. I failed.
Although I could automate some of the fundamental decisions, such as picking CPU and memory sizes, the idea went off the rails with the more complex decisions. Databases, middleware, service design, security technology—there were just too many moving parts and too many dependencies to consider. Not to mention we’re leveraging current technology, which is in constant flux, as well as products and services from businesses that may shut down or get acquired.
Of course, we have affordable AI today, thanks to cloud computing. However, the same fundamental problem exists in terms of too much complexity and changing variables that are part of these architectures. Moreover, the training data used for this “AI cloud architecture” would only define best practices of the past, which have little or no bearing on how things should be done today.
The point I’m attempting to make is that cloud architecture is still a result of the skills and knowledge of the architect. We can leverage tools to assist, such as checklists and predefined processes, but it comes down to the talent of the person who makes the core technology decisions, considering the past and the future and perhaps falling back on instinct. I would welcome it to be binary at some point but, sorry, it’s still analog for now.