The History of Microservices in Software Development & How They Enhance Scalability

The increased use of Microservices is among the top predictions for technology trends in 2017. According to InfoWorld, emerging trends from 2016 like containers and microservices aren’t just fads that will die out in the new year. Instead, it’s the future of technology, and it’s already powering some of the nation’s most advanced tech companies.

Not a New Trend

Although microservices gained significant popularity in recent years, they aren’t a new concept. In fact, microservices originated in the 1970’s. According to InfoQ, the original object oriented and actor models are predecessors and contain core aspects of microservices as we know them today.

According to Programmable Web, one of the first major companies to ditch the monolith and embrace microservices was Netflix. In 2008, while running on a monolithic application, the entire site was brought down because of a missing semicolon in the code. This sparked several other companies like Google, eBay, Uber and Groupon to abandon their monolithic applications and transition to microservices.

Why Microservices?

When it comes to software architectures, developers traditionally created monolithic applications. A single single application container (monolith) contains all of the services and activities of a single application. While this architecture is simple to understand and deploy, there are disadvantages. For example, when developers make changes within an application, there are often many other developers simultaneously attempting to make changes to the same application. Under those circumstances, releases have to be coordinated even for parts of the system that are functionally unrelated. Furthermore, use of hardware can become inefficient as servers are sized to handle peak load. While some functions of the code are CPU intensive and others are I/O or memory intensive, the server will have to handle all scenarios. As a result, monolithic applications began to result in slower, less reliable applications that took longer to develop

In order to stay competitive and agile, software developers are turning to microservices. Microservices are small, distinct components that make up one independently deployable software system. Each of the components provide a unique subset of the functionality of the application as a whole. That way, the microservice can be managed, designed and developed by individual teams so that a various parts of a large application can be built at the same time.  The increased use of cloud-based services such as Amazon Web Services and Microsoft Azure is also making microservices more attractive. Servers in the cloud can easily be tuned to the specific requirements of each microservice and, in may cases, additional capacity can be “spun-up” on demand as individual microservices experience peak usage.

In today’s world, enterprises need applications that continuously evolve. This translates to maintaining the ability to add new features and functions without disrupting the customer experience. Failure to do so could be the defining line between relevance and obsoleteness.

The team at Twentyseven Global is currently seeking ways to implement microservices on numerous projects. Matt Henley, vice president of client service in Kansas City, said, “When standing up entirely new platforms, microservice architecture makes it possible for our teams to work in a highly iterative and agile manner. We are able to break problems down into smaller components, which allows our teams to solve individual problems quickly and efficiently, rather than fighting wars on multiple fronts.”

Legacy systems can also benefit from microservices. Henley added, “In order to add functionality, we can spin up microservices that work in parallel with existing monolithic applications. This reduces the need to cross-train new teams on old platforms and minimizes the need for regression testing of legacy flows.”

In 2017, InfoWorld predicts an increase in ways to orchestrate and manage microservices. A few solutions like Apache Mesos, Docker Swarm and Google Kubernetes have already scratched the surface of this area, but we expect to see them mature in 2017.

Share this post