Building Better Software in the Age of the Cloud, Microservices, and DevOps

Let’s face it: software runs the world. In fact, you’re probably reading this article on a computer right now, or your smartphone – maybe through an app or your Internet browser. Even if you printed it out (please, don’t admit you did), just getting access to this text required software. You should probably say, “Thank you, Internet. Thank you, web developers.” Everything we do today (well, except curling and kite flying, so maybe almost everything) is powered by software, from pumping gas to getting cash out of the ATM to using the microwave. And most of this software is connected to other systems, sometimes located thousands of miles away in an esoteric networking netherworld dubbed “the cloud.” All the software, from IoT to the website delivering this page, is connected in one big collective web of 1s and 0s. And although this software may employ many different languages and frameworks, it shares a lot of commonality in how it’s developed, especially software that runs over the Internet.

You probably already know that web applications share a pretty standard stack—operating system, web server, database, and execution environment. But you may also have noticed that not all software is developed with the same care. In fact, some of it is downright bad. Deplorable. Poorly designed, badly executed, and terribly managed.