A lot of people talk about how microservices are the best way to build software system these days, but what are they? In this blog I will have a quick look at what microservice based software systems are.
Define a Microservice Please?
There is no official definition of what exactly a microservice is, but there are some ideas or features that spring to mind when you think about microservice architectures. The idea is instead of one massive executable that makes up the entire software system, we have a number of smaller executables that combine and communicate to give the functionality of a much larger software system.
Sounds Great Doesn’t it?
Breaking up software into its major components and running them separately allows each component to be managed separately from the other components. You can even distribute the development and maintenance of each component to different teams and let the microservice communications layer deal with the communications between those sections of software. Microservice architectures also allow upgrade and replacement of pieces of the software without having to change any other pieces of the software. Which is nice.
Microservices work really well in cloud deployed systems. They allow an application to scale easier, by scaling each microservice separately you get much higher control over where the money is spent on applications. This also allows you to give the parts of the software system the hardware power they need without wasting it on low priority systems. When it comes to applications availability microservice architecture allows all those cloudy things like cross regional deployments, allowing the services that are used by your customers to be located close to your customers.
How do I get Started Then?
Getting started with developing microservice based applications is pretty easy. Just decide on the technologies you want to use, pick the protocols you want to use to communicate between the services, define the API’s, and you are underway! Keep an eye out for a future blog where I go into more detail on some good approaches for getting started with microservices.
Hopefully this has got you thinking about how microservices can work for you. Until next time…
Coffee to Code