
Was braucht es für den Erfolg eines IT-Unternehmens im Jahr 2019? Die Referenten auf Konferenzen und Meetups verwenden viele lautstarke und nicht immer für normale Menschen verständliche Begriffe. Der Kampf um die Deployment-Zeit, Mikrodienste, der Verzicht auf das Monolithische, die DevOps-Transformation und vieles mehr. Wenn man die sprachliche Schönheit beiseite lässt und direkt und auf Deutsch spricht, lässt es sich auf eine einfache These reduzieren: Entwickeln Sie ein qualitativ hochwertiges Produkt und tun Sie dies im Komfort für das Team.
Letzteres ist von entscheidender Bedeutung geworden. Die Wirtschaft ist endlich zu der Erkenntnis gekommen, dass ein komfortabler Entwicklungsprozess die Produktivität steigert; und wenn alles eingespielt ist und wie ein Uhrwerk funktioniert, bietet es noch Raum für Manöver in kritischen Situationen. Einst wurde für dieses Manöver von einem schlauen Kopf Backups erfunden, doch die Branche entwickelt sich weiter, und wir haben die DevOps-Ingenieure erreicht - Menschen, die den Prozess der Interaktion zwischen Entwicklung und externer Infrastruktur in etwas Angemessenes und nicht mit Schamanismus verbundenes verwandeln.
Diese ganze Geschichte von "nach Modul" ist wunderbar, aber… Es hat sich so ergeben, dass einige Administratoren plötzlich als DevOps bezeichnet wurden, während von den DevOps-Ingenieuren mindestens Fähigkeiten wie Telepathie und Hellsehen verlangt werden.
Bevor wir über die modernen Herausforderungen der Infrastrukturüberwachung sprechen, lassen Sie uns klären, was wir unter diesem Begriff verstehen. Derzeit hat sich die Situation so entwickelt, dass wir auf die Dualität dieses Begriffs gestoßen sind: Infrastruktur kann условно extern und условно intern sein.
Mit externer Infrastruktur ist alles gemeint, was die Funktionsfähigkeit des Dienstes oder Produkts gewährleistet, an dessen Entwicklung das Team arbeitet. Dazu gehören die Server der Anwendungen oder Websites, Hosting und andere Dienste, die die Funktionsfähigkeit des Produkts sicherstellen.
Die interne Infrastruktur umfasst die Dienste und Geräte, die das Entwicklungsteam und andere Mitarbeiter nutzen, von denen es normalerweise auch eine ganze Reihe gibt. Dazu gehören interne Server für das Speichern von Code, ein lokal eingerichteter Task-Manager und alles, was im Rahmen des Unternehmens-Intranets existiert.
Was macht ein Systemadministrator in einem Unternehmen? Neben der Verwaltung des firmeneigenen Intranets fällt oft auch die Verantwortung für die Funktionsfähigkeit der Bürogeräte in seinen Aufgabenbereich. Der Admin ist derjenige, der schnell einen neuen Computer oder einen einsatzbereiten Laptop aus dem Lager holt, eine frische Tastatur bereitstellt und auf allen Vieren durch die Büros kriecht, um ein Ethernet-Kabel zu verlegen. Der Admin ist der lokale Herrscher und Meister, nicht nur über interne und externe Systeme, sondern auch über die Büroorganisation. ServerJa, einige Administratoren arbeiten ausschließlich im systembezogenen Bereich, ohne Hardware. Diese sollten in eine separate Unterkategorie "Infrastruktur-Systemadministratoren" eingeordnet werden. Andere hingegen spezialisieren sich ausschließlich auf die Betreuung von Bürogeräten, insbesondere wenn das Unternehmen mehr als einhundert Mitarbeiter hat. Die Arbeit endet nie. Doch weder die einen noch die anderen sind DevOps.
Wer sind die DevOps? DevOps sind die Leute, die sich mit der Interaktion der Softwareentwicklung mit der externen Infrastruktur beschäftigen. Genauer gesagt sind moderne DevOps viel tiefgehender in den Entwicklungs- und Deploy-Prozesse involviert als je zuvor Administratoren, die einfach Updates per FTP hochgeladen haben. Eine der Hauptaufgaben eines DevOps-Ingenieurs besteht heute darin, einen komfortablen und effizient gestalteten Prozess der Interaktion zwischen Entwicklungsteams und der Produktinfrastruktur zu gewährleisten. Diese Menschen sind verantwortlich für das Deployment von Rollback-Systemen und Deployments und entlasten die Entwickler, indem sie sich maximal auf ihre äußerst wichtige Aufgabe konzentrieren. Dabei wird ein DevOps niemals ein neues Kabel verlegen oder einen neuen Laptop aus dem Lager ausgeben.
Wo ist der Haken?
Auf die Frage "Und wer ist eigentlich DevOps?" beginnen die Hälfte der Mitarbeiter in der Branche zu antworten, dass es sich um "nun ja, im Grunde um einen Administrator handelt, der..." handelt. Ja, vor langer Zeit, als der Beruf des DevOps-Ingenieurs gerade erst aus den talentiertesten Systemadministratoren hervorging, die für den Service zuständig waren, waren die Unterschiede zwischen ihnen nicht allen klar. Aber jetzt, wo sich die Funktionen von DevOps und Administratoren im Team radikal unterscheiden, ist es inakzeptabel, sie miteinander zu verwechseln oder sogar gleichzusetzen.
Aber was bedeutet das für das Geschäft?
Einstellungen, darum geht es.
Sie öffnen eine Stelle für "Systemadministrator" und dort stehen Anforderungen wie "Zusammenarbeit mit Entwicklern und Kunden", "CI/CD-Lieferungssystem", "Wartung von Servern und Unternehmensgeräten", "Administration interner Systeme" und so weiter; Sie verstehen, dass der Arbeitgeber irgendwie Unsinn redet. Der Haken dabei ist, dass im Titel der Stelle anstelle von "Systemadministrator" "DevOps-Ingenieur" stehen sollte, und wenn man diesen Titel ändert, passt alles an seinen Platz.
Aber welchen Eindruck hinterlässt eine solche Stelle beim Lesen? Dass das Unternehmen nach einem Multitasker sucht, der sowohl das Versionskontrollsystem als auch die Überwachung einrichten kann und die Warteschlange mit den Zähnen knacken kann...
Um den Grad der Verwirrung auf dem Arbeitsmarkt nicht zu erhöhen, wäre es genügend, die Stellenangebote beim Namen zu nennen und genau zu verstehen, dass DevOps-Ingenieur und Systemadministrator zwei verschiedene Entitäten sind. Doch das unstillbare Verlangen einiger Arbeitgeber, von den Kandidaten eine möglichst breite Anforderungsliste zu verlangen, führt dazu, dass "klassische" Systemadministratoren nicht mehr verstehen, was um sie herum passiert. Was, der Beruf mutiert und sie haben den Anschluss verloren?
Nein, nein und nochmals nein. Die Infrastruktur-Administratoren, die die internen Server des Unternehmens verwalten oder in Positionen des L2/L3-Supports arbeiten und anderen Mitarbeitern helfen, sind nicht verschwunden und haben nicht vor, das zu tun.
Können diese Spezialisten DevOps-Ingenieure werden? Natürlich können sie. Tatsächlich handelt es sich um ein verwandtes Umfeld, das Fähigkeiten in der Systemadministration erfordert, aber zusätzlich erfordert es auch die Arbeit mit Monitoring, Bereitstellungssystemen und insgesamt eine enge Zusammenarbeit mit dem Entwicklungsteam und dem Testing-Team.
Ein weiteres Problem von DevOps
Tatsächlich beschränkt sich alles nicht nur auf die Einstellung und die ständige Verwirrung zwischen Administratoren und DevOps-Teams. Irgendwann stand das Geschäft vor dem Problem, Updates zu liefern und die Interaktion des Entwicklungsteams mit der Endinfrastruktur zu gestalten.
Vielleicht geschah dies, als an einer Konferenz ein Onkel mit leuchtenden Augen auf die Bühne trat und sagte: „So machen wir es und nennen das DevOps. Diese Leute lösen all Ihre Probleme“ — und begann zu erzählen, wie gut es sich im Unternehmen nach der Einführung von DevOps-Praktiken lebt.
Es reicht jedoch nicht aus, einen DevOps-Ingenieur einzustellen, damit alles „ordentlich“ funktioniert. Das Unternehmen muss eine vollständige DevOps-Transformation durchlaufen, das heißt, die Rolle und Möglichkeiten unseres DevOps-Profis müssen auch im Entwicklungsteam und im Testing-Team des Produkts klar verstanden werden. Dazu haben wir eine „herrliche“ Geschichte, die die teilweise ernsten Geschehnisse, die wir erlebt haben, umfassend veranschaulicht.
Situation. Vom DevOps wird verlangt, ein Versionsrollback-System einzurichten, ohne sich wirklich darum zu kümmern, wie es funktioniert. Angenommen, in der Users-System sind dies separate Felder für Vorname, Nachname und Passwort. Es wird eine neue Version des Produkts veröffentlicht, aber für die Entwickler ist das "Rollback" einfach ein Zauberstab, der alles repariert, und sie haben keine Vorstellung davon, wie es funktioniert. Angenommen, die Entwickler haben in einem aktuellen Patch die Felder für Vorname und Nachname zusammengelegt und dies in die Produktion gebracht, aber die Version läuft aus bestimmten Gründen langsam. Was passiert? Die Geschäftsleitung geht zu DevOps und sagt: "Ziehen Sie den Schalter!", das heißt, sie bitten ihn, auf die vorherige Version zurückzukehren. Was macht DevOps? Er kehrt zur vorherigen Version zurück, aber da die Entwickler sich nicht mit dem Rückrollvorgang beschäftigen wollten, hat ihm niemand gesagt, dass auch die Datenbank zurückgesetzt werden muss. Am Ende stürzt alles ab, und die Benutzer sehen anstelle einer langsamen Webseite einen Fehler "500", da die alte Version nicht mit den Feldern der neuen Datenbank funktioniert. DevOps ist darüber nicht informiert. Die Entwickler schweigen. Die Geschäftsleitung beginnt, die Nerven und Geld zu verlieren, und erinnert sich an die Backups und schlägt vor, von diesen zurückzukehren, damit "wenigstens irgendetwas funktioniert". Infolgedessen verlieren die Benutzer alle ihre Daten über einen bestimmten Zeitraum.
Natürlich bekommt DevOps die Schuld dafür, dass er "kein richtiges Rollback-System erstellt hat", während die Entwickler in dieser Geschichte niemanden interessiert.
Die Botschaft ist einfach: Ohne einen angemessenen Ansatz für DevOps hat es kaum einen Nutzen.
Das Wichtigste, was man sich merken muss: Ein DevOps-Ingenieur ist kein Zauberer, und ohne qualitativ hochwertige Kommunikation und bidirektionale Interaktion mit der Entwicklung wird er seine Aufgaben nicht bewältigen. DevOps sollte nicht alleine mit seinen "Problemen" gelassen werden oder den Befehl erhalten: "Fass die Entwickler nicht an, ihre Aufgabe ist es, zu programmieren", und dann hoffen, dass in einem kritischen Moment alles so funktioniert, wie es sollte. So funktioniert das nicht.
Im Grunde genommen sind DevOps Kompetenzen an der Schnittstelle zwischen Management und Technologien. Dabei ist es keineswegs offensichtlich, dass in diesem Cocktail mehr Technologien als Management vorhanden sein sollten. Wenn Sie wirklich schnellere und effizientere Entwicklungsprozesse schaffen wollen, müssen Sie Ihrem DevOps vertrauen. Er kennt die richtigen Werkzeuge, hat ähnliche Projekte umgesetzt und weiß, wie es geht. Unterstützen Sie ihn, hören Sie auf seine Ratschläge und versuchen Sie nicht, ihn in eine autonome Abteilung zu isolieren. Während Administratoren eigenständig arbeiten können, sind DevOps in diesem Fall nutzlos; sie können Ihnen nicht helfen, besser zu werden, wenn Sie diese Hilfe nicht annehmen wollen.
Und zuletzt: Hören Sie auf, die Infrastruktur-Administratoren zu verärgern. Sie haben ihre eigene, äußerst wichtige Arbeitsfront. Ja, ein Admin kann DevOps-Ingenieur werden, aber das sollte aus dem Wunsch des Einzelnen geschehen und nicht unter Druck. Es ist nichts Schlechtes daran, wenn ein Systemadministrator Systemadministrator bleiben möchte – das ist sein eigener Beruf und sein Recht. Wenn der Wunsch nach einer beruflichen Transformation besteht, darf auf keinen Fall vergessen werden, dass man nicht nur technische Fähigkeiten, sondern auch Managementfähigkeiten ausbauen muss. Alle diese Menschen zusammenzubringen und ihnen zu helfen, in einer gemeinsamen Sprache zu kommunizieren, wird wahrscheinlich genau Ihre Aufgabe als Führungskraft sein.
Quelle: habr.com
