How micro services are breaking down the enterprise monoliths
The age of the monolith has ended. Massive enterprise architectures of the past two decades are collapsing under their own weight, their convoluted halls obsolete.
Amazon was the first company to take large monolith system and deconstruct it into micro services. Netflix soon followed and deconstructed its behemoth software stack, seeking a more agile model that could keep up with two million daily API requests from more than 800 different device types. Forward-thinking companies like Google, eBay, Uber, and Groupon soon followed. Today, enterprises are fleeing their monoliths in droves to usher in the latest era in systems architecture: micro services.
Although not an entirely new concept, micro services represent the latest evolution of software development. Software developers are decoupling massive system architectures into small, independent functions that loosely work together to solve complex problems. Each micro service is atomic, self-contained, and responsible for performing a single operation on a back-end system, such as retrieving a customer record or verifying a person’s credit score.
The result is an army of small services that communicate over a network to seamlessly integrate multiple systems—and an army is much more nimble and resilient than one behemoth program.
Simple solutions for complex problems
Micro services evolved from a desperate need for simplicity in software design. All too often, software projects succumb to glacial development cycles, project bloat, and escalating costs.
That’s because for decades, applications have been designed as top-down monoliths in which all functionalities are lumped together into a single process, then replicated on multiple servers. Most are still built this way. The problem with this model is that any changes to the system require updating and re-deploying the server-side application — an unacceptable disruption in today’s fast-paced digital world, where immediacy and perfect functionality are considered basic requirements.
To stay competitive, enterprises need applications that “continuously evolve, adding new features and functionality while remaining available 24x7,” says Microsoft’s Mark Russinovich. The rigid infrastructures of the past are holding businesses back from responding to the demands of a swiftly changing marketplace — and failure to do so means the difference between relevance and obsolescence.
In the early 2000s, service-oriented architecture (SOA) emerged as a solution. By separating functions into distinct units that communicate over a network, developers gained sought greater flexibility and interoperability between programs. But SOAs proved difficult to work with, requiring heavyweight APIs and multiple layers that were often riddled with incompatibilities.
Though they didn’t solve the problem, SOAs opened the door to new enterprise IT solutions — cloud computing, for one. And it ultimately led researchers at Hewlett Packard Labs, charged with making code less brittle and more robust to change, to pioneer the first micro service architecture (MSA).
Keeping enterprises nimble and responsive
The main difference between an MSA and SOA is scale. Micro services are more granular, keeping protocols lightweight for fast and easy communication. And they’re succeeding where other service-based models have previously failed, says IT Business Edge.
Their biggest benefit is accessibility. Micro services rely primarily on the well-known JSON/REST interface, with straightforward authentication via easy-to-use API keys — usually HTTP or OAuth. Easy to build and deploy, they’re a welcome balm to harried developers struggling to keep up with business software needs.
Micro services help keep enterprises competitive with:
- Minimal service disruptions. Because they operate independently from each other, micro services can fail without breaking the whole system. The problematic unit simply bows out while the rest of the soldiers keep marching. They can also be maintained individually, without updating the entire system just to change one set of functions. This allows developers to easily fix bugs and add features without frustrating users.
- Incredible flexibility. Micro services aren’t tied to any specific language or platform. They’re free agents that can quickly adapt to fit a system’s evolving needs. That leaves developers free to choose whatever framework is best suited to the project, rather than sticking to one-size-fits-all standards such as XML or SOAP.
- More cohesion, less coupling. The more interdependent (or coupled) a system’s parts are, the more difficult it is to use, test, and maintain. Micro services are loosely coupled yet form a cohesive whole, creating a more robust and reliable system.
- Easy data retrieval. A micro service can exchange information with any other service in the network — no human interaction or changes to the underlying program required.
As Netflix and other cutting-edge enterprises have discovered, “everything basically is subservient to the need to be able to make decisions, and build things, faster than anyone else,” says its former cloud architect Adrian Cockcroft. Micro services allow businesses to make that happen, which is why they’re quickly becoming the default model for building enterprise applications.
- » Google shares its tiered approach to enterprise mobile security in new paper
- » Why user behaviour continues to put enterprises at risk
- » The five primary benefits of embedded analytics
- » How the enterprise machine is shaking up healthcare
- » How WannaCry demonstrates the dangers of homogeneous, unpatched networks