Pundits have declared that 2016 is the year microservices graduate from early adopter to early mainstream adoption. The aggregate predictions are certainly right if the call volume here at Flux7 is any indication. We’ve been seeing this trend in full force as we field call after call from organizations across industries, from enterprises to startups, all looking for advice and expertise in building their own microservices architecture.
What are Microservices?
Before we dive into what is driving this trend, let’s take a brief look at what microservices are in the first place and the benefits organizations derive from them. Microservices are an approach to addressing a large or complex business problem using a set of smaller, simpler services that work together; a microservice runs its own unique process that contributes to an overarching business goal.
It’s difficult to discuss microservices without mentioning companies like Amazon, Netflix and eBay who have pioneered the use of microservices -- thousands of them -- to deliver their sites to customers. For example, data shows that a single Google query can consult up to 80 microservices before results are shown to the user.
Microservices provide a host of benefits, with different organizations benefiting differently from each of these. While we’ll walk through how and why, the key here is to know that regardless of the size of your organization, microservices provide clear business benefits.
- Better Human Resource Utilization - As employees in microservices environments are assigned to small teams who each work on their own microservice, better team management and utilization is achieved. Each team is able to work on their service independent of other teams, eliminating bottlenecks that occur with traditional monolithic efforts. Moreover, because teams don’t always need to be in lock step they can be autonomous and fast, focusing more on delivery and less on team management and team overhead.
- Faster Delivery - Microservices speed delivery as teams can focus on delivery rather than coordination. As autonomous services with a simpler code base than monolithic setups, microservices can quickly be updated. For example, addressing a new feature request, code can quickly be changed, tested and released without concern for interdependencies or fear of breaking brittle code.
- Reduced Risk - In monolithic approaches, developers must understand the context of changes across the monolith. As the monolith grows, it becomes increasingly difficult to master the code base, increasing the fear that a developer might make a critical error that takes down the entire app. In these situations, the code becomes brittle and every developer must be an expert on the entirety of the code base. In contrast, microservice developers need only understand the simple code base of the service they are working on and if an error were to be introduced into the code, it would only affect the service itself, which could easily be rolled back, leading to greater system stability and less risk.
- Faster time to market - As teams can focus on their individual service and not the entirety of a monolith code base, microservices enable a lot more engineering work on a single project concurrently. In this decoupled fashion, services are delivered and the end business goal reached much more quickly.
Big or Small You Benefit
Organizations of all sizes benefit from microservices. Many of today’s startups are using microservices as a way to ‘build right from day one.’ They want to start off with their most agile foot forward and microservices enable them to do that. With small engineering team sizes and the need to respond very quickly to market changes, microservices allow startups to pivot quickly and be the fastest player in the industry. When competing against enterprises with vastly greater resources, startups must be able to pivot code quickly to reflect changing market conditions and they must be able to deliver services to market faster than the competition. Microservices help startups achieve these goals by helping them get and stay ahead of the game at every step.
Successful startups, or startups that began life between five and twelve years ago, have often built successful businesses on monolithic Windows based setups. However, with even newer startups giving them a run for their money with their speed of delivery, successful startups are beginning to switch over to a microservices architecture as they simply cannot deliver fast enough to meet the pressing deadlines needed to compete with today’s startups.
For example, we recently worked with a healthcare technology provider that was founded in 2009. Under pressure from new startups entering its market space, this company realized it needed to evolve its monolith into microservices in order to stay competitive through faster pivots and greater speed of service delivery. The transition to an AWS container based microservices architecture has increased its throughput while continuing to ensure HIPAA compliance.
Mid-market organizations are also feeling some pressure from today’s startups. They want to deliver faster to keep up and monolithic code bases simply tie them down. Additionally, they find that developers with tribal knowledge of the code base are no longer with the company, further slowing the ability to quickly change and adapt to market demands. Mid-market companies are realizing that a new paradigm is needed and microservices are a very promising way to achieve it.
Last, but certainly not least, are large enterprises. We see these organizations responding to changes in market dynamics in a different way altogether in that they approach pressure from startups as a new, greenfield opportunity. In response, they will often create and launch a new service from the ground up using microservices. With legions of engineers on hand, they are able to quickly create services teams and compete effectively with today’s startups.
For example, we recently worked with Verifone, who presented at the AWS Summit in Santa Clara, about their greenfield opportunity. They launched two new projects with microservices architectures that allowed them to increase developer agility, in turn shortening the time to market of new applications associated with these projects. They also decreased costs driven by reduced wait times for IT when standing up Dev/QA/Staging/Prod environments and gained competitive advantage through a much faster time to market.
While we’ve discussed use cases from financial services and healthcare, microservices benefit organizations across industries -- from manufacturing to pharma and retail and more. Any organization that is looking to increase their agility, shorten time to market, increase employee satisfaction through better utilization and lower management overhead can benefit from microservices. Microservices allows each category of business -- from enterprises to startups -- to play to their strengths and be more competitive.If your organization would like to play better to your strengths through a microservices architecture, reach out
to us today to learn how our AWS container based microservices best practices can be applied to create a winning edge for you.