An operational environment is a complex and interconnected mesh of components working in unison to deliver a set of services. In a prior iteration of the teams, we purposely avoided organizing teams along siloed functional groups, aligning them instead along the environment's lifecycle, taking into account the two variables that drive change into the environment: time and space.
Our long-term objective is to become a world-class Infrastructure organization. In order to reach that goal, we first adopted a focal arrangement where the organizational formula is derived from the focus and purpose of the groups arranged along the time and space variables, and group the appropriate functional resources necessary to manage the environment, which include systems and database specialties.
The first iteration in this model comprised two groups, Site Availability and Site Reliability. The second iteration added a third group, one specializing on the biggest source of change in the environment, releases, whose purpose is to make CI/CD at GitLab a reality: Delivery.
We are entering our fourth organizational iteration: the department (and the company as a whole) has grown and while our availability improved, it has suffered recently as we face scalability challenges. The Reliability teams have matured, the Delivery team has accomplished the first iteration of Continuous Delivery, and we must now expand our focus to address scalability challenges that surface on GitLab.com.
Infrastructure is now composed of five teams: three Reliability teams comprised of SREs and DBREs, the Delivery team, with continued focus on improving and dogfooding our CI/CD capabilities, and the Scalability team, which will hone in our scalability capabilities. Infrastructure will continue to be comprised DBREs, SREs, backend (BE) and frontend (FE) engineers.