Introducing architecture governance to tackle microservices sprawl

Moti Rafalin

September 9, 2024

introducing architectural governance

As enterprises push to innovate quickly, the complexity of microservices architectures often stands in the way. Without proper oversight, services multiply, dependencies emerge, and technical debt snowballs. This complexity can severely impact application resiliency, scalability, and developer experience.

Distributed applications and ensuing complexity.

At vFunction, we understand these challenges and are excited to share new capabilities in our architectural observability platform. We’re building on our support for distributed architecture via OpenTelemetry by introducing first-to-market architecture governance capabilities to help engineering teams effectively manage and control their microservices. With these new tools, organizations can finally combat microservices sprawl and ensure their applications remain robust and scalable from release to release.

In tandem with these governance rules, vFunction is introducing comprehensive flow analysis features. These include sequence flow diagrams for distributed microservices and live flow coverage for monolithic applications. These features offer a unique, real-time view of application behavior in production environments, allowing teams to compare actual user flows to design expectations.

What is architecture governance?

Architecture governance helps organizations maintain control over their software architecture by defining clear standards, monitoring compliance, and proactively addressing violations. This approach promotes better application health, improves developer efficiency, and supports faster, more reliable releases.

Guardrails help architects and developers prevent architectural drift, a process that leads to the gradual deviation of an application’s structure from its intended target state. When this drift happens, it often leads to increased complexity, reduced resilience, and higher amounts of technical debt. For those who are working within microservices architectures, architectural drift has even more pronounced effects on the resulting product.

Are microservices good — or bad?

While most enterprises have a mix of architectures today, the majority are evolving toward microservices. But microservices don’t necessarily translate to good architecture.  Without proper microservice governance, they can multiply quickly, leading to many dependencies, complex flows, and duplication of functionality—all signs of poor architecture. Good software architecture matters to overall application health and business success, but it’s hard to enforce without the right tools.

survey respondents architecture
Many enterprises work with a mix of architectures. While microservices continue to grow, they present unique challenges to teams. Ref: Report: Microservices, Monoliths, and the Battle against $1.52T in Technical Debt.

Without modern tools, organizations often lack architectural oversight or rely on highly manual processes—like using Excel spreadsheets, combing through outdated documentation, such as microservices catalogs based on static analysis, or convening architecture guilds. While these methods sound helpful, they lack the immediacy needed to effectively address issues and enforce best practices.

conquering software complexity quote
Technical teams share challenges in vFunction’s recent report: Conquering Software Complexity. Limitations of Conventional Approaches and Emerging New Solutions.

This is where architecture governance steps in, giving engineering leaders and their teams the visibility needed to understand and manage microservices. It helps enforce best practices and ensure software architecture evolves to support scalability and resilience, and applications remain efficient to work on.

Video: How to tell if your architecture is good or bad

Enterprise architecture governance vs. software architecture governance

Within IT governance, there are layers: Enterprise architecture (EA) governance provides a high-level framework, and software architecture governance is specific to individual applications. When it comes to EA governance, this layer defines the standards and guidelines for technology selection, data management, security, and integration across the organization. For example, EA governance might lay out the direction to use cloud-based infrastructure, require applications to use specific, approved programming languages, or require applications to use microservices architecture. The best practices for EA governance include having a governing body with clear roles and responsibilities for oversight, a comprehensive and well-documented EA framework, and a centralized repository of architectural artifacts. Tools like vFunction can help with EA governance by providing a single view of all applications and their dependencies so architects can identify risks and ensure alignment with EA standards.

Software architecture governance, on the other hand, establishes clear guidelines for how individual applications and their underlying services should function and interact. It defines rules and capabilities to guide developers and ensure applications grow in a way that supports scalability, resiliency, and maintainability. Rules might include which services can call each other, how they interact with components like databases, or how to implement specific design patterns effectively. Best practices for this type of governance include defining clear architectural principles, implementing automated governance tools to enforce those principles, and keeping a tight collaboration between architects and developers working on an application.

By informing these interactions, software architecture governance helps teams build robust and adaptable systems to support changing business needs. vFunction can also help with software architecture governance by providing deep insights into application behavior and identifying violations of architectural rules and best practices.

Architectural guardrails to reduce complexity

While enterprise architecture governance is standard for many organizations, software development environments favor speed, agility, and small teams — often with little governance or oversight. This can quickly lead to sprawl, meaning teams that were previously innovating and moving fast may be mired in complexity and technical debt today. Our software architecture and microservices governance capabilities provide engineering leaders with critical guardrails to keep their software resilient and scalable. These include:

  • Monitoring service communication: Ensures services are calling only authorized servers.
  • Boundary enforcement: Maintains strict boundaries between services to prevent unwanted dependencies.
  • Database-microservice relationships: Safeguards correct interactions between databases and services.
introducing architectural governance

The architectural rules engine lets users define rules for individual services or service groups. Rule violations generate “to-do’s” for guided fixes to ensure microservices evolve and perform as planned.

With these rules in place, teams can ensure their architecture evolves in a controlled manner, minimizing risk and avoiding architectural drift—a common problem when services deviate from original design principles. By tracking architectural events affecting microservices, such as circular dependencies and multi-hop flows, and setting alerts—vFunction’s governance rules actively prevent technical debt, enabling faster releases without compromising application health.

“When application architectures become too complex, resiliency, security, performance, and developer efficiency suffer. vFunction is helping enterprises gain a deep understanding of their software architecture and improve system governance, which can enable software engineers to work faster and maintain healthy microservices.”

Jim Mercer, Program Vice President at IDC

Shift left: Visualizing flows for faster issue resolution

In addition to architecture governance capabilities, we’re also releasing comprehensive flow analysis features for microservices and monoliths to help teams identify application issues faster. In distributed microservices environments, sequence diagrams illuminate application flows, allowing teams to detect bottlenecks and overly complex processes before they degrade performance. By visualizing these flows, teams can link incidents to architectural issues and enhance resiliency, complementing APM tools to reduce mean time to resolution (MTTR). This approach allows developers to “shift left” with architectural observability, improving their efficiency and avoiding costly outages.

sequence flow diagram
Sequence flow diagrams for microservices identify unneeded complexity. This screenshot shows an API call to the “organization service” and the organization service calling the “measurement service” 431 times. Out-of-date documentation will not help identify this issue.

Excessive hops or overly complex service interactions can lead to latency, inefficiency, and increased potential for failures and bottlenecks. To address this, vFunction surfaces multi-hop flows, such as a flow of three hops or more.

mulit-hop flow
Multi-hop flow shown in a vFunction sequence flow diagram.

We’ve found organizations spend 30% or more of their time on call paths that never get executed, wasting precious resources. For monolithic applications, live flow coverage goes beyond traditional test tools by constantly monitoring production usage, offering insights into user behavior, and identifying gaps in test coverage. This ensures teams are testing what really matters.

Empowering teams with AI-driven architectural observability

Traditional application performance monitoring (APM) tools excel at identifying performance issues, but they don’t provide the architectural insights needed to prevent these problems in the first place. Enter vFunction’s architectural observability solution. Our platform serves as a live record of an application’s architecture, highlighting potential problems, tracking changes over time, and notifying teams of significant deviations from architectural plans, a.k.a., architectural drift.

By offering a holistic view of application health, vFunction empowers engineering teams to understand their architecture, continuously modernize, and maintain architectural integrity to  release quickly and scale confidently.

The future of software governance

Effective software architecture governance becomes a necessity rather than a luxury as applications and complexity grow, especially in the microservices world. vFunction’s new capabilities provide the insights and controls engineering leaders need to guide their teams, address and avoid technical debt, and ensure their systems remain scalable and resilient.

To learn more about how vFunction transforms software architecture with governance and comprehensive flow analysis, contact us.

Moti Rafalin

CEO, co-founder

Moti Rafalin co-founded vFunction and serves as its CEO. He brings over 20 years of experience in the enterprise software market to his role, with a focus on infrastructure, applications, and security. Prior to co-founding vFunction, Moti co-founded and led WatchDox from inception until its acquisition by BlackBerry, growing the company over 20 consecutive quarters and establishing it as a leader in the secure enterprise mobility and collaboration space. Subsequently, he served as Senior Vice President at BlackBerry LTD. Before WatchDox he was a general manager of the application management business at EMC. He holds an engineering degree from Technion and an MBA from the Harvard Business School.

Get started with vFunction

See how vFunction can accelerate engineering velocity and increase application resiliency and scalability at your organization.