Software development has gone from mono to micro
Microservices are one of the first realisations of service oriented architectures (SOA), which aim to build flexible and independently deployable software systems. The earliest use of the term was in the early 2000s, but is not formally attributed to any one person or organisation. Prior to the uptake of microservices, the majority of systems were monolithic: built as a single unit, and run by a single process. In such a system, any small change requires the entire monolith to be rebuilt, stunting scalability. Amazon, eBay, Netflix, Twitter and PayPal have all replaced their existing monoliths with microservices.
In contrast to monoliths, microservices are decentralised, multi component, and independent. They can be run by a small team, in which developers have far more freedom to experiment, integrate, and scale. Changes can be made to the microservice without redesigning the entire system, and they can also handle a variety of different programming languages. For these reasons, microservices are thought to improve business agility and openness. Microservices also tie in with the gradual adoption of DevOps, which are another example of SOA.
Microservices have become all the more attractive due to their modularity. A modular structure makes the services easier to understand, easier to develop and easier to integrate. As more applications are deployed to the cloud, flexibility is vital. And, if one microservice fails or falls prey to a cyberattack, it doesn’t compromise other parts of the system.
Microservices deliver a range of benefits, but as with all software evolutions, the transition can be arduous. Due to different programming languages, an increased number of services and intricate communication demands, microservices bring greater complexity. However, the simplicity of monoliths has often been their downfall. In the long run, more agile software services are worth the added effort.
For a weekly update on the technology terms you need to know, join our newsletter.