Reading time: 7 minutes
You're working in an organization that aims to explore the benefits of working according to DevOps principles. You've heard terms like "platform team" and "SRE" and you have an idea what "you build, you run it" means. These terms, however, have made your exploration into DevOps more complicated and now you even have to choose how to organize your team(s). This blog provides an overview of the three most applied DevOps topologies and which conditions make a specific topology a good fit for your company.
As a reference, Matthew Skelton's "DevOps topologies" page gives a nice overview of all kinds of organizational topologies. These topologies have been implemented by companies around the world in their quest for agility and operational excellence through DevOps. Although many topologies have been documented, I believe that they are all variants of these three topologies:
1. All teams are product teams. Each team does everything that is needed to run their software including the use of any infrastructure components, usually cloud-based PaaS.
2. Internal platform team(s) and Product team(s). Product-teams make use of the infrastructure/platform-services provided by internal platform-team(s). Services provided by the platform-team(s) can range from infrastructure and "run" services such as monitoring to Continuous Integration tools and dashboarding tools.
3. Internal Platform team(s), Product team(s) and Site Reliability Engineering team(s) (SRE). This topology is based on Google's best practices for running software. Product teams can gain the SRE teams' support in running their software if they need it and if their software adheres to standards defined by SRE teams. SRE teams can also share on-call responsibility with product teams. The platform-team(s) provide infrastructure/platform-services.
The DevOps topology that will have the best fit within your organization is dependent on your current organizational hierarchy, scale, regulatory requirements and people's skills. It is also important to recognize that any chosen topology has its pitfalls, which need to be dealt with.
This topology is probably the most common; every team adheres to the "you build it, you run it" mantra and uses (and therefore maintains) infrastructure and tools of their own choice. That means that teams need a lot of expertise to be able to run their services/applications.
Example of a topology where all teams are product teams.
Possible gains:
Possible pitfalls:
This topology makes a good fit for your organization if:
Once your company grows past a certain threshold, it makes sense to have one or more platform teams provide generic platform services (such as infrastructure and/or CI/CD tools). Platform teams offer all their services in the form of self-service APIs to the various product teams. Often, platform teams themselves make use of cloud infrastructure services and combine those to offer more value. For example, a platform team can provide a container platform as a service with connectivity and access management already set-up to meet company requirements.
Example of a platform team/product team topology.
Possible gains:
Possible pitfalls:
This topology makes a good fit for your organization if:
The SRE team is "what happens when a software engineer is tasked with what used to be called operations." according to Ben Traynor, who founded the first SRE team within Google. One could argue that an SRE team is like a classic IT-operations team and does not match with DevOps principles such as end-to-end responsibility. The difference of the SRE-model lies in the shared responsibility model between product teams and the SRE-teams. For further reference material on the SRE model; Google's book on the topic is available online for free.
Platform teams provide all their services in the form of self-service APIs to the various product teams.
Example of an SRE/platform team/product team topology.
Possible gains:
Possible pitfalls:
This topology makes a good fit for your organization if:
Whether a DevOps topology will work for you is highly dependent on your current organizational context. The topologies mentioned in this blog are not mutually exclusive so consider mixing and matching them if you decide to start a journey towards DevOps. In that journey, remember that in the beginning, maximizing your learning experience is vital. Only by learning from your experience will you know what topology fits best at a certain point of your journey.
One thing is for sure: copying another company and it's DevOps success stories will not work, but let yourself be inspired.
Further reading on this topic:
Xebia Academy
Wibautstraat 200
1091 GS Amsterdam
The Netherlands
E: academy@xebia.com
T: +31 (0)35 538 1921
Xebia Group © 2019. All rights reserved.
Xebia explores and creates new frontiers in IT. We provide innovative products and services and strive to stay one step ahead of our customers’ needs.