What Are Microservices?
In practical terms, microservices are the next generation of SOA. SOA, Service-Oriented Architecture, was a very popular approach to system design with enterprises large and small from the late 1990s through 2010. SOA was top-down driven, process- and protocol-heavy, and worked best with a single unified development platform. Microservices were initially the polar opposite of SOA, but have since stolen some ideas like API gateways and service registries to solve specific problems.
Microservices is driven from the bottom up and focused on delivering services with business value, using Agile development methodologies—which is why it became popular with small nimble companies where individual teams could pick their own languages and platforms as long as they all provided a RESTful interface. These factors helped microservices grow roots as the technology base for the most progressive technology companies, and is now slowly being adopted by traditional enterprises to supplement and replace SOA-based and other legacy systems.
The following image illustrates a microservices architecture.
Microservices and Wercker
At Wercker, the entire platform is written using microservices to support the rapid development and deployment of new and updated microservices for both internal and external clients. Using Wercker’s pipelines, clients are able to detect changes in the codebase as developers fix bugs or add features to business services as business units require them. After a new code change is detected, the pipeline will kick off any automated tests that the development and quality assurance teams have included, package up a new container image, and make it available for deployment through Wercker’s native integration points with Kubernetes and the largest cloud providers in the industry.