Microservices help independent teams ship software more often, but it requires new thinking and upgraded architecture patterns. Adopt a microservices architecture to execute better and faster.
What are Microservices?
Microservices refers to an architectural approach that independent teams use to prioritize the continuous delivery of single-purpose services. The microservices model is the opposite of traditional monolithic software which consists of tightly integrated modules that ship infrequently and have to scale as a single unit. Although the monolithic approach works fine for some organizations and some applications, microservices is becoming popular with companies that need greater agility and scalability.
Why Microservices Matters
More responsive to customer needs
Companies that adopt a microservices architecture can rapidly ship capabilities when customers need them--and not be stuck with fixed release schedules.
Greater software team throughput
Improved system scalability and reliability
A successful microservices architecture just keeps going. It relies heavily on repeatable automation, supports fine-grained scaling of services, and uses patterns designed to keep the system running even when individual components fail.
Considering Microservices Architecture?
What to Keep in Mind
Microservices aren’t a fit for every organization or application, and can result in higher costs if not correctly implemented. What to find out before you get started:
A microservices transition is as much an organizational one, as technology one. Teams have to be ready to embrace an automation-centric, continuously-delivered approach to building software. Is your company ready to eliminate functional silos and have self-sufficient teams that build and operate services? Can your change management process tolerate a deployment pipeline with no human involvement?
Not every application warrants the microservices treatment. In the rush to “microservices all things,” developers may commit to significant coding time on existing applications that don’t have the business imperative to change. Slow-changing applications, or ones that don’t serve mission-critical functions, may be better off in their monolithic state. Microservices increase agility at the cost of additional complexity. Ensure you need the former before signing up for the latter!
Microservices are loosely coupled to one another, and are constantly changing. How do you find the current URL of a service, or route traffic to an elastic number of service instances? How do services exchange data? In many cases, the technology you have in place today to handle service discovery, load balancing, and messaging are woefully inadequate for the dynamics introduced by microservices.
As the number of items to manage grows, so does the operational risk. Creating hundreds or thousands of microservices across hundreds or thousands of servers will absolutely result in management headaches if you don’t take a new approach. How are underlying machines patched or upgraded? Can you track dependencies and identify applications at risk? What about keeping dozens of microservices instances up to date with the latest application configuration? The components you use to build a microservices platform, and where you choose to run these components and services, will have a massive impact on your organizational agility for years to come.
|Has a single focus. It does one thing, and does it well! Microservices are targeted at a specific problem domain, and contain everything they need (data included) to own that experience. The “micro” in microservices is about scope, not size.||Has a wide focus. Solutions attempt to solve many business challenges at once in a tightly integrated software package.|
|Is loosely coupled. A microservices architecture demands that services be as self sufficient as possible, and avoid hard-coded references to other services.||Is tightly coupled. Systems are often a tangled web of interdependent components that cannot be deployed without a carefully crafted sequence of steps.|
|Is delivered continuously. Microservices are ideal for teams that have apps with constantly changing needs. To deliver value to market as quickly as possible, microservices are delivered to production regularly, through automation.||Relies on scheduled delivery. Applications are developed and updates are made when scheduled. Often, they are performed on quarterly or annual rhythms.|
|Has independent teams that own the service lifecycle. The microservices transformation is as much about team structure as it is about technology. Microservices are built, shipped, and run by independent teams. Not every service needs this treatment, but it’s a powerful model for business-critical services.||Has many teams that own the service life cycle. Project teams are responsible for building the first iteration of software, and then pulled apart for the next assignment. Software is handed over to an operations team to maintain.|
|Has design patterns and technology emphasizing distributed systems at scale. Teams cannot build and run microservices with the same approach and tools that produced monolithic software. A microservices architecture depends on a set of capabilities for service discovery, messaging, network routing, failure detection, logging, storage, identity, and more.||Has design patterns and technology, putting process first. Siloed tools and processes, focused on key development stages, QA, and release to production, produce monolithic software.|
At Pivotal, we help you design a high-performing microservices architecture, and then provide a world-class environment to run your microservices.
Work with our Pivotal Labs team to initially target applications that require feature iterations and extreme scalability, and then learn how to build teams focused on delivery.
Deploy and manage microservices with Pivotal Cloud Foundry—our cloud-native platform that accelerates your time to value.
|Committed to using technology to drive business forward, Allstate engaged with Pivotal to innovate and scale services at a speed and level of effectiveness that would have once been unimaginable.|
|Thousand of applications and services, built by hundreds of developers, supporting tens of millions of transactions—Pivotal solutions help Comcast go from idea to feature in days not weeks, driving competitive differentiation.|