david_linthicum
Contributor

3 cloud architecture mistakes we all make, but shouldn’t

analysis
Apr 23, 20213 mins
Cloud ArchitectureCloud ComputingCloud Security

Are we getting good at cloud architecture, or do we still have a lot to learn?

uh oh oops mistake it malfunction blunder ben franklin bby dny59 getty 175531215
Credit: DNY59 / Loops7 / Getty Images

The only time I had an issue with someone I worked for was when they wanted me to punish a junior IT architect on my staff for making a pretty big mistake. One of the databases was not compatible with a middleware layer already in existence. 

Obviously, this error cost us time and money. But these kinds of mistakes are almost unavoidable when configuring IT systems, cloud computing included. I view them as necessary in the innovation process. If you don’t try new things—and find out some of them don’t work—then you’re not improving anything. I encouraged my boss to find a new line of work, and eventually, he did.

So, if mistakes are a natural byproduct of creating a good and innovative new architecture, then it’s time to look at the mistakes that are made most often. For cloud architectures, those mistakes should be understood by now and avoided. Here are three that come to mind:

Overdistribution. Just because we can decouple application and data components and run them all over the place via network-connected systems does not mean we should. Cloud architectures are especially susceptible to this mistake, considering the ease in provisioning all sorts of platforms on different clouds and having an easy path to connect them. The results are well known: namely, poor latency and reliability.

Many of the rules of good architecture still apply. Specifically, locate processing and data storage for the same applications and data stores as close as possible. This typically means intracloud, but it could also mean intraplatform on the same cloud. 

Security as the last step. Security was once something we bolted on at the end of the process. If you do that with a cloud project, you will create a security system for an application and/or data store that is suboptimal at best and hugely insecure at worst.

In the world of cloud computing, security can’t be an afterthought. Although it adds complexity and cost to the system design and building processes, effective security is systemic to the application, the data stores, the platform, and the hosting cloud. Security must be considered at every step.

Not architecting to accommodate change. Twenty years ago we did not build applications with change in mind. Now we’re paying the price as those applications need to be refactored to move to the public cloud or be augmented in other ways. 

SOA (service-oriented architecture) taught us that designing for change pays huge dividends down the road. This means placing things that change into domains, such as microservices that may often change, but not necessarily forcing systemic changes on the entire application. Other tools include distributed objects, containers, machine learning, and logic servers, to name just a few ways to “change without pain.” 

You’re going to make mistakes. Let’s just try not to repeat them.

david_linthicum
Contributor

David S. Linthicum is an internationally recognized industry expert and thought leader. Dave has authored 13 books on computing, the latest of which is An Insider’s Guide to Cloud Computing. Dave’s industry experience includes tenures as CTO and CEO of several successful software companies, and upper-level management positions in Fortune 100 companies. He keynotes leading technology conferences on cloud computing, SOA, enterprise application integration, and enterprise architecture. Dave writes the Cloud Computing blog for InfoWorld. His views are his own.

More from this author