Als Flipp, mein Arbeitgeber, zunächst als ein zerbrechliches, kleines Team begann, hatten wir nur eine Handvoll Systeme. Jeder Entwickler hatte den Kontext, den er brauchte, um mit diesen Systemen zu arbeiten, und die Fähigkeiten dazu (wir hatten ehrlich gesagt das Glück, die richtigen Fähigkeiten im Team zu haben). Dieselben Personen kümmerten sich um die Softwareentwicklung, Bereitstellung und Fehlerbehebung.
Als wir wuchsen, wuchs mit uns die Anzahl der Dinge, die wir bearbeiteten. Wir konnten nicht mehr ein oder zwei wirklich kluge Leute haben, die alles handhaben. Wir begannen uns in ein „Entwicklungs“-Team und ein „Infrastruktur“-Team (auch bekannt als Infra) aufzuteilen, um das abzuwickeln, was viele Leute als Betrieb bezeichnen.
Mit „Operations“ meine ich Aufgaben, die die eigentliche Produktionsinfrastruktur betreffen. In der Regel umfasst dies Folgendes:
Bereitstellung und Verwaltung von Servern, Speicher, Betriebssystemen usw.
Software bereitstellen
Überwachung, Alarmierung und Umgang mit Produktionsproblemen
Das funktionierte eine Zeit lang irgendwie. Aber wir stellten schnell fest, dass unser Infrastrukturteam, obwohl es viel über Linux und Firefighting wusste, immer weniger über die tatsächlichen Systeme wusste, die wir hatten und was sie taten, wenn diese Systeme erweitert und verändert wurden. Dies wirkte sich auf alle drei Betriebsaspekte aus:
Für die Versorgung wurde infra eher zum Gatekeeper und Engpass. Um sicherzustellen, dass sie die Anwendungsfälle verstanden, mussten die Teams mehrseitige Fragebögen bereitstellen und Synchronisierungsmeetings für neue Server durchführen. Der Prozess kann Wochen dauern.
Bereitstellungen wurden zu Stempeln für Code, den das Team bereits bereitstellen wollte. Das Infra-Team musste „die Person sein, die den Knopf drückt“, hatte aber keinen Einblick in die Bereitstellung.
Produktionsprobleme vervielfachten sich, weil infra die Systeme nicht verstand. Sie haben meistens nur das Team angerufen, wenn etwas schief gelaufen ist. Aufgrund der unterschiedlichen Fähigkeiten mussten die Infra- und Anwendungsteams Probleme oft gemeinsam beheben, was bei der Obduktion zu Fingerzeigen führte.
Etwas musste sich ändern. Und da haben wir unsere große Entscheidung getroffen.