Main image of article Why Microservices Should Factor into Architecture Planning
At every turn, it seems there’s a new technology trend with the potential to revolutionize your organization. Whether it’s artificial intelligence, big data, Internet of Things (IoT), blockchain, or something else, businesses are evolving and working to implement new technology solutions at breakneck pace. The downside of this rapid pace of change is that technical debt has quickly become a sobering hindrance. Though less familiar on the business side of the house, technical debt is well-known in the IT world. It happens when technology initiatives are rushed, poorly planned, or wrongly executed, for the sake of getting something in place that (hopefully) meets short-term goals, at the expense of long-term stability. The problem is that this patchwork style of innovation creates a fragile foundation that all but cripples the ability to create new innovative technology with any meaningful speed. Each new initiative feels like that course on “American Ninja Warrior” that no one can ever really finish. The team ultimately becomes disenchanted, waiting for the inevitable collapse of the house of cards they affectionately refer to as their enterprise infrastructure.

The Benefits of Microservices

Delivering continuous value requires the ability to regularly create new technology and to do so without creating additional technical debt that will hamper future innovation. Naturally, business stakeholders want to get more benefit from their technology investments. At the same time, IT organizations are generally more interested in how they can reduce risk while continuing to innovate and exceed business stakeholder needs. A well-executed microservices architecture serves as a bedrock for that innovation without sacrificing stability and scale, with mechanisms in place to deal with the technical debt that already exists. Microservices enable a reduction in technology cost while also affording opportunities to undertake parallel initiatives to more rapidly achieve business outcomes. A microservices architecture provides focused and independently deployable application components that fulfill three key objectives: development agility; deployment flexibility; and precise scalability. The highly granular, purpose-built nature of a microservice also facilitates a progressive migration strategy by adding to or replacing legacy components in smaller, more manageable pieces. The benefits of microservices in reducing technical debt stem from the greater level of decoupling they afford:
  • Risk Reduction: Proper separation of services allow for localized changes, and higher confidence in quality and end-to-end regression scenarios.
  • Scalability: Hardware profiles and horizontal scaling approaches can be tailored to specific services, allowing for the targeted use of valuable resources in the places they are most needed.
  • Technology Stack Flexibility: A microservices environment fosters an attitude of using the most appropriate technology for the specific needs of the service.  Different programming languages, persistence tiers, etc. can peacefully coexist.
  • Total Cost of Ownership: The above benefits generally yield a lower TCO due to optimized infrastructure spend, as well as more efficient implementations given the reduced risk.

Beware of Certain Pitfalls

The largest misunderstanding is that a microservices architecture is a one-size-fits-all solution. A microservices architecture should be carefully applied based on specific technology and business strategies. Every application in an enterprise environment is not a good fit for a microservices architecture. Additionally, it is unwise to leap into a microservices architecture without planning around the domains and responsibilities within a system. While microservices can unlock velocity within an IT organization, the lack of a proper roadmap can yield false starts and undue complexity. Justin Bingham oversees the Technology and Creative divisions at Janeiro Digital, where he pioneered the company’s RADD methodology. He is also responsible for vision and strategy around Janeiro’s own technology initiatives, including the XFORM platform.