How to Govern Microservices with Enterprise Architecture
Microservices have made a strong rise in businesses’ digital infrastructure landscapes. There has been a noticeable shift in business application development coinciding with today’s strategic focus on digitalization and the ability to quickly adapt to changing customer needs. Using microservices enables digital development to move at the same pace and reach business objectives.
However, the explosion of microservices apps also comes with a set of challenges from an Enterprise Architect’s perspective. To provide handles on managing microservices effectively, we organized a deep dive session as part of our Rethinking Enterprise Architecture webinar series. ValueBlue Senior Solution Consultants Patrick Storms and Szabolcs Gulacsi explained why and how to use microservices in your infrastructure – and more importantly: how to govern the process.
What are microservices?
Microservices are an architectural and organizational approach to software development where software is composed of small independent services. These services are owned by small, self-contained teams, and communicate via APIs.
It is easier to explain what a microservice is when comparing it to the opposite approach: a monolith service. With a monolithic approach, you design and manage an application as one self-contained entity. There are still some different elements to it, of course, but all elements are fixed to work together. Take one element out, and the application won’t work. This also means that if one element requires an update, all other elements must be rewritten as well – a very time-consuming process.
Using microservices, on the other hand, is like breaking down the separate elements of a whole as individual building blocks, instead of treating a service or application as one big entity. The result is that teams can mix and match separate building blocks to create different kinds of applications. This will still need a level of customization, but the process takes far less time than building complete application structures each time.
What are the benefits of using microservices?
Firstly, as already stated above: it saves time. With DevOps teams working agile, it makes sense to use sprints for building application components in parallel, which will eventually fit together like pieces of the same puzzle.
The microservice approach has another benefit: with different teams being responsible for smaller components, you decrease the chance of a ‘single point of failure’. With the monolith approach, continuously adding and editing lines of code will quickly increase the application’s complexity, making it much harder to understand for people who have not been involved from the start. Microservices remain relatively small in comparison, and thus more manageable. The reusable functionality will also result in increased scalability, allowing your digital landscape to grow faster and more efficiently, which is beneficial to the organization as a whole.
How to govern microservices from an Enterprise Architecture perspective
However, there is no golden ticket to using microservices – there are challenges that come with this approach as well. In the webinar, Patrick and Szabolcs explain that an explosion of application components requires a different EA mindset. For instance, it can be hard to keep an overview and level of control over initiatives that are created by autonomous teams. This, in turn, could result in shadow IT, after which the architects need to play catch-up.
Therefore, the process needs to be guided on a strategic level from the onset. It’s about finding the right level of flexibility and granularity with the DevOps teams to align new development with the organization’s strategic growth and objectives. Ideally, an Enterprise Architect or Solution Architect would keep an overview of the IT landscape to provide data-driven advice and guidance.
So, how do you combine the organization’s business capabilities with an ever-changing digital infrastructure, data, business processes, and the interconnected relationships they all have with each other? Patrick and Szabolcs share their four main tips and elaborate on each item in their webinar conclusion.
- Actively promote the architecture vision and guidelines.
- Educate stakeholders on when to involve an (enterprise) architect.
- Manage the impact on your IT landscape by focusing on the organization-wide objectives for business transformation and IT-strategy?
- Anticipate internal topics beyond those of the DevOps teams by focusing on the business strategy.
Are you interested to see how an all-encompassing microservices governance view looks like in our platform BlueDolphin? Szabolcs illustrates how to gain insights using practical use cases and examples. Have a look at the recording to see how you could apply the theory in your own infrastructure.