“Microservices” has become one of the hottest buzzwords of the past few years, and as with any game-changing new technology, there has certainly been no shortage of differing opinions around the topic. Some have been bullish about the adoption of microservices, calling them “SOA done right,” while naysayers claim that the idea is simply a rebranding of SOA. Despite both the hype and the skepticism, microservices have significant benefits, especially when it comes to enabling the agile development and delivery of complex applications.
Given the all the hype, where does the industry stand now with the adoption of microservices architectures?
Unlike many new technologies that face slower adoption due to skepticism and barriers to entry, microservices are already hitting primetime. Today, nearly 70% of organizations are either using or investigating microservices, and approximately a third are already using them in production (this according to new research by NGINX of its community of users).
(Related: How containers grow in the enterprise)
In today’s always-on society, what sets a great organization apart from the rest (or, more urgently, what separates winners from losers) is the ability to innovate, adapt, and build extraordinary new products and experiences faster than the competition. Business owners need to respond quickly to customer needs and competitive pressures to ensure that the services they offer remain relevant and attractive. This puts a large burden on the application developers to deliver innovation rapidly, reliably and in a reproducible manner. Any failure or downtime, and customers’ attention quickly turns elsewhere. As microservices adoption climbs, it’s time for organizations to adopt these new innovation tools or die trying.
Microservices seek to make adding features a fast and seamless process. A microservices architecture decomposes what would otherwise be a monstrous, monolithic application into a set of individual, independent services. While the total amount of functionality is unchanged, the application has been broken up into manageable chunks or services, making this rapid delivery possible.
A monolithic approach has limitations once an application reaches a certain level of complexity. A successful application will continue to grow as new features are added and updates are released. A huge monolith just doesn’t lend itself to an agile approach for development and delivery.
Many of today’s largest and fastest-growing organizations, like Netflix, Uber and Lyft, have already taken the plunge, whether by transitioning to microservices, or by adopting microservices out of the gate.
As the adoption of microservices approaches critical mass, it is driving several trends that are shaking up the software development industry, including:
Rapid release cycles and delivery: In the past, traditional software development techniques made every software update a major event. As a result, organizations would make big-bang releases only every few weeks, or even months.
Today, 70% of organizations release new code at least once a week, according to our research. Of that, 28% release it once a day. If an organization isn’t making new releases daily (or at least weekly), they run the risk of losing out to a competitor who is out-innovating them and bringing new services to market faster.
A leading indicator of the use of new application processes is the adoption of supporting technologies. Containers and orchestration platform, are widely used to support the development and delivery of lightweight microservices application components.
Container adoption is also reaching its inflection point, with nearly two-thirds of organizations either using or investigating containers. One in five of those surveyed are already using containers in production, with a quarter of those running more than 80% of those workloads on containers.
Reduced downtime, increased performance: More than 75% of organizations recognize that there is a gap in their applications’ performance, according to our research. Microservices offer new ways of scaling to increase capacity, but also introduce new performance-management challenges that organizations must rise to.
Hand in hand with application performance is the issue of unplanned downtime. Organizations may be accustomed to minimizing this by reducing the frequency of application updates, but that’s a losing strategy in the modern, innovation-driven environment. By reducing the scope of updates, microservices reduce the risk of failure and make pre-deployment testing simpler, thus supporting faster and more frequent updates as well as the addition of new application features.
Increased collaboration and continuity: Continuous Integration and Delivery are development best practices. Code is tested and deployed into production-like environments, limiting deployment issues and software faults because changes are being reviewed on an ongoing basis.
Today, 27% of our respondents have a mature process using both CI and CD. Of the remaining respondents, 34% are using CI, and half of those have plans to do CD in the future.
To put these best practices into action, organizations need automated processes and a collaborative working environment among stakeholders in the development cycle. With the increased number of moving parts, it makes the most sense to have individuals or smaller teams own each component. This is where a DevOps approach comes in. With DevOps and microservices, developer teams can work on the loosely coupled application and choose the best technologies to automate deployment for a seamless experience.
As IT professionals, we can all agree that new technologies, like microservices, containers and CI/CD, are fundamentally changing application development and delivery. But for those that remain skeptical of making the transition to this new approach, now is the time to take a second look at microservices.
The success of companies like Netflix, Uber and Lyft happened by implementing a microservices-based approach should serve as a good example of those who have done it right and have seen the benefits of adoption.
This year has already become the year of “innovate or die,” and with the adoption of microservices and containers taking off, it seems more organizations are taking the path of innovation, and consumers and organizations alike will benefit from a faster, more seamless Web experience.