"Sure, microservices, distributed architectures and containerization might make sense for the Googles and Facebooks of the world, but what about everyone else who doesn't operate at Web scale?"
That's an observation Lenny Pruss, an enterprise IT investor, often hears when he broaches the subject of microservice architectures. In a new post, he points out that it may benefit everyone to consider a microservice approach.
Pruss defines microservices as the building and deploying of applications "as suites of discreet, modular services, each running its own process with a minimal amount of centralized management." An advantage is that a microservice failure will remain contained to that microservice, not the entire application.
If this all sounds familiar, it is. The idea of discrete, independently functioning services was the original goal of service oriented architecture. But SOA often got mired within the back-end monoliths it was supposed to replace.
While there's actually nothing new about microservices, there are forces around these days that are pushing this approach into the spotlight, Pruss says. In particular, he points to three trends that are converging:
Every company is now a software company. Every organization (no matter what your industry or product line) becomes a software organization. Thus, "competitive advantage will be characterized by companies' ability to innovate, bring product to market faster and navigate risk," Pruss says. A microservices architecture will help organizations realize these goals in a much more expedient way, he explains.
Modular software is available at a moments' notice from the Web. Open source software and APIs provide ready-to-go solutions that can be dropped in to round out a process or help launch a new business line when needed. There's no need to build and maintain huge complex systems onsite that will quickly become outdated anyway.
Containers. Containers -- as exemplified by Docker -- "hold the application logic and all of its dependencies, running as an isolated process, and execute the same in any environment," Pruss says. "This creates parity between dev and production, and enables developers to confidently break up apps into discreet chunks knowing they'll run the same from their terminal to test to production."
Microsoervices is a more modular answer to the monolithic apps that have evolved in many enterprises. Making a change against one of these enterprise behemoths means bringing down an entire assembly of downstream apps for revision. In theory, when a microservice goes down, other, surrounding services will be unscathed.
But there's more than software and systems transformation that can be realized, he also points out.The employment of these highly independently functioning granular services that represents "an organizational shift in how software development pipelines are constructed and managed," requiring tools and platforms that address the oft-neglected people and processes aspects of solution delivery. Expect to see a vibrant new industry spring up around these requirements, Pruss predicts.