Are microservices the next step for your business?

Daniel Brekelmans
Burst
Published in
4 min readJul 19, 2017

Introduction

The microservices hype reached a peak in 2016 and is slowly starting to cool off. During this exposure peak, a lot of people were introduced to microservices for the first time and are now taking a more detailed look at what this architectural style can do for their business. You might be one of those people with the main question: should I invest in the transition to microservices? To answer that question, you first need to understand what microservices are, why the tech world is so enthusiastic about them and what real-world problems they will solve for your company. If you want to go more in-depth on microservices, great articles can be found going over all the technical details.

What are microservices?

Traditionally, applications are monolithic. Monolithic applications have functionally distinguishable aspects, but they are all interwoven into one big application. To visualise this, imagine a bicycle consisting of a few components: handlebars, pedals, wheels, and brakes. If just one of these components fail, you will crash. Additionally, if you ever want to pimp your bike with some bigger wheels, you will find that even if they can be attached to your bike, they won’t work properly with the specific pedals or brakes that are installed.

The difference between a Monolithic and Microservice architecture visualised.

Microservices isolate these individual components, which means that failure in one component won’t result in the whole application crashing. If Netflix’s search function is temporarily unavailable, you will still be able to binge-watch House of Cards. This is only possible because the search function is a microservice that is not interwoven with the microservice which makes viewing videos possible. Microservices do one thing and one thing only, they are completely independent of other parts of the application.

My application works, why would I change the architecture?

One of the reasons to adapt the microservice architecture is already stated above: to avoid application-wide crashes. The stability of your application will increase due to the isolation of the individual components. This isolation will also increase the feeling of ownership in your development teams. A microservice should be the sole responsibility of one development team. Because a microservice is so independent of other components, the development team can use whichever tool or programming language fits their needs, without impacting other teams. The microservice becomes their baby that they will want to nurture.

Aside from the increased stability and ownership, the microservice architecture is super scalable. A traditional application would require a tremendous effort to get ready for the traffic that is generated by airing a TV commercial. With microservices, you don’t even have to worry about it. Whether you get 100 visits a day or 10.000.000 visits a day, the microservices will be able to handle the traffic. The architecture supports auto-scaling, which means that it will simply duplicate any microservice that can’t handle the traffic. You can have 20 identical microservices running, dividing the workload. This enables enormous growth of your company.

This sounds great. Let’s get started!

Not so fast. While the benefits are great, it will require an enormous amount of effort to get to this point. Moving from a monolithic application to microservices is not just flipping a switch. It’s a transition that will gradually occur over an extended period of time. The transition requires adapting different development philosophies, learning new skills, and consequently, it will cost money.

Transitioning from a Monolithic architecture to Microservices is a process, not an instant change.

Luckily the architecture naturally lends itself well to this gradual transition. You can start replacing components in your monolithic application with microservices one by one until all of the components are eventually replaced and the monolith is no longer required.

Microservices can replace a Monolithic application piece by piece.

Is it worth the investment?

The benefits are great, but so is the investment. Whether adopting the microservice architecture is worth your time and money, greatly depends on the circumstances of the application. If the application is part of your core business, like it is for Netflix or Facebook, the answer is most definitely: yes. In other instances, the answer might be a bit more nuanced.

If you are an agency that manages multiple applications for different clients, by definition you spend a relatively small amount of time working on each project. While it is probably not worth the investment adopting the microservice architecture in each project, you can still benefit from the concept by introducing one or two microservices, for components that need to be very scalable or reliable, like the checkout of a webshop.

Conclusion

The microservice architecture has some great benefits, but the required investment is also significant. Your application can always benefit from microservices, even if you don’t adopt the full architecture. Whether you should adopt the full microservice architecture or create some hybrid between the monolith and microservices depends on whether the application is part of your core business.

--

--