david_linthicum
Contributor

Are you overengineering your cloud apps?

analysis
Apr 03, 20202 mins
CareersCloud Computing

Just because you can does not mean you should. Think twice before making solutions more complex than they need to be

overwhelmed man stressed analytics information overload
Credit: Thinkstock

Those of us who owned motorcycles over the years know that a “bone stock” bike won’t be stock for long. It’s common to replace the exhaust system with aftermarket, much louder pipes. Also, the seat is often swapped out for something more comfortable and stylish. Don’t forget a windshield, fuel management systems, and upgraded handlebars.

With that you’ve spent about one-fourth of the cost of the motorcycle on a bunch of stuff that does not add anything to the core functionality of the motorcycle. We do it because we can, not because we should.

The same can be said about cloud applications for many enterprises. Much like the motorcycle, apps are being tricked out with all kinds of features that really don’t do anything for the core purpose of the applications except make things more complex.

Core to this issue: People building applications on public clouds have a multitude of cloud services that can be integrated into that application with little time and very little money. AI services, such as deep learning and machine learning, are often leveraged from applications just because of the ease of doing so. In many cases, the use of AI within a specific application is actually contraindicated.

Other tempting services include containers and container orchestration systems. Although these are a great addition for a good many apps, I’m seeing them more and more force-fit these days. Developers are being lured by their hype.

The trade-off here is that overengineered cloud apps are more costly to build, overly complex, and thus harder to operate over time. Indeed, they may double the cost of cloudops after deployment, as well as double the cloud bill you’ll get monthly. 

Cloud app designers and developers need to focus on the minimum viable features that the cloud applications need to solve the core problems. An inventory control application perhaps does not need a machine learning system bolted on, but a fraud detection system does. You need to draw a distinction between what meets the requirements and what’s cool. You’ll have a much easier time after the app goes into operations.  

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