By Tobias Kunze, Co-founder & CEO, Glasnostic
Enterprises
today face rapidly changing business needs, and the pressure to modernize
digitally demands fast-paced innovation. As a result, the number of services
and applications that support the business is growing continually, created by
parallel development teams that are working autonomously in rapid decision and
learning cycles.
Innovative
applications are not islands, however. It takes little time for new
applications and services to depend on them. As more and more new services
build on top of existing ones, stacked like LEGO blocks atop one another,
enterprises quickly find themselves running an ecosystem of services that are
inextricably connected. They find themselves running a service landscape.
How Does a Service Landscape Support
Enterprise Agility?
Unlike a stand-alone, self-contained
application that has been architected and designed based on a coherent
blueprint, a service landscape evolves organically. Independent teams deploy
code rapidly and contemporaneously. This enables the enterprise to become
agile, ready to support new services as needed. It is able to innovate and
quickly take advantage of new market opportunities.
The
ability to support rapid change makes a service landscape the architectural
style of choice to support an agile enterprise. However,
the complex and dynamic nature of service landscapes can lead to unpredictable and
disruptive application behaviors. If these behaviors are not
adequately observed and controlled, they can threaten the stability of the
service landscape and bring the enterprise down.
Typical
journey of enterprises transitioning from a static operating model to an agile
one.
How Do
Enterprises Transition From a Static Operating Model to an Agile One?
Enterprises typically transition to an agile operating model on multiple levels
simultaneously:
- At the organization level, top-down hierarchies are replaced with
autonomous, self-managing teams that execute in fast decision and learning
cycles, thus enabling an agile organization.
- At the operational level, the transition from IT Ops to DevOps and SRE
enables a "Mission Control" approach to operations.
- At the architecture level, enterprises transition from monolithic
applications first to microservices and shared business services before
embracing organic federated growth, which ultimately leaves them with a service
landscape.
- At the middleware level, traditional integrations are replaced first by
APIs, then by gateway solutions and eventually service meshes. This gives
enterprises control over how their services interact.
- Finally, at the infrastructure level, enterprises
typically move traditional virtual machine deployments to PaaS, SaaS, container
platforms or even serverless environments. This provides them with the
ecosystem of cloud services that their new agile operating model requires.
In practice, individual journeys may assign
different weights to the various sub-journeys. For instance, a traditional
enterprise looking to modernize aggressively on the organizational level may be
able to leapfrog some stages or de-emphasize individual sub-journeys.
How
Does the Role of Operators Change When Running a Service Landscape?
While a service landscape is ideally suited to adapt
to the rapidly changing business needs of an agile organization, its complex
and continually evolving nature makes it prone to unpredictable and disruptive
behaviors. These behaviors arise from often subtle changes in the interaction
patterns between services. They are large-scale and systemic in nature and tend
to occur unexpectedly, presenting operations teams with two fundamentally new
challenges: detecting them quickly enough and, once they are detected,
responding to them in real-time. As a result, and like leadership in an agile
enterprise in general, the role of operations in a service landscape evolves
into one that sets direction and enables quick remediation.
What
Does It Take to Manage a Service Landscape Successfully?
Given the complexity and dynamic nature of a service
landscape, conventional observability is no longer enough. The key to
successfully managing the unpredictable behaviors in a service landscape is to
put a cloud traffic controller into place that provides both high-level
observability and real-time control to avoid outages and costly downtime.
Fixing the underlying issue becomes secondary to observing behaviors in
real-time and exerting control to maintain the stability of the system as a
whole.
Examples of such measures of control include predictable operational patterns
such as ringfencing ("quarantining") new deployments, inserting bulkheads
between architectural partitions, exerting backpressure against disruptive
service interactions or shedding load to protect compromised services via
circuit breakers. These operational patterns are operational concerns
that are in the purview of the "mission control" level, above those of developers.
As organizations today move inexorably forward in the transition to the model
of an agile enterprise that is supported by an equally agile service landscape,
observability and control are critical in assuring the health and digital
experience of their environments and achieving operational excellence.
##
About the Author
Tobias
Kunze is the co-founder and CEO of Glasnostic, where he is on a mission to
help enterprises control their rapidly evolving application landscapes. Prior
to Glasnostic, he was the co-founder of Makara, an enterprise PaaS that became
Red Hat OpenShift.