
Was ist für den Erfolg eines IT-Unternehmens im Jahr 2019 erforderlich? Dozenten bei konfs und mitaps sprechen viele laute und nicht immer klare Worte zu normalen Menschen. Der Kampf um den Einsatz, Microservices, die Ablehnung des Monolithen, die DevOps-Transformation und vieles mehr. Wenn Sie verbale Schönheit verwerfen und direkt und auf Russisch sprechen, kommt es auf eine einfache These an: Machen Sie ein Qualitätsprodukt und tun Sie dies mit Komfort für das Team.
Letzteres ist von entscheidender Bedeutung geworden. Das Geschäft kam schließlich zu dem Schluss, dass ein komfortabler Entwicklungsprozess die Produktivität verbessert. Wenn alles debuggt und wie am Schnürchen funktioniert, bietet es auch in kritischen Situationen Handlungsspielraum. Um dieses Manöver willen hat einmal eine intelligente Person Backups erfunden, aber die Branche entwickelt sich weiter, und wir kamen zu DevOps-Ingenieuren - Menschen, die den Prozess der Interaktion zwischen Entwicklung und externer Infrastruktur in etwas Angemessenes verwandeln, das nicht mit Schamanismus zu tun hat.
Die ganze Geschichte von "modulo" ist wunderschön, aber ... Es kam vor, dass ein Teil der Admins abrupt DevOps genannt wurde und die DevOps-Ingenieure selbst anfingen, zumindest Telepathie- und Hellsehen-Fähigkeiten zu fordern.
Bevor wir über die modernen Probleme der Bereitstellung von Infrastruktur sprechen, wollen wir entscheiden, was wir unter diesem Begriff verstehen. Bisher hat sich die Situation so entwickelt, dass wir die Dualität dieses Konzepts erreicht haben: Infrastruktur kann bedingt extern und bedingt intern sein.
Eine externe Infrastruktur sollte alles bedeuten, was die Wartungsfreundlichkeit eines Dienstes oder Produkts gewährleistet, das das Team entwickelt. Dies sind Anwendungs- oder Standortserver, Hosting und andere Dienste, die die Leistung des Produkts sicherstellen.
Die interne Infrastruktur umfasst Dienste und Geräte, die vom Entwicklungsteam selbst und anderen Mitarbeitern verwendet werden, von denen es normalerweise viele gibt. Hierbei handelt es sich um interne Server von Codespeichersystemen, einen lokal bereitgestellten Task-Manager und alles, was im Unternehmensintranet vorhanden ist.
Was macht der Systemadministrator im Unternehmen? Neben der Verwaltung dieses Unternehmensintranets selbst sind häufig wirtschaftliche Sorgen zu tragen, um die Verfügbarkeit von Bürogeräten sicherzustellen. Der Administrator ist derselbe Typ, der schnell eine neue Systemeinheit aus dem Hinterzimmer oder einen Ersatz-Laptop für die Arbeit schleppt, eine frische Tastatur ausgibt und auf allen vieren im Büro herumkriecht und das Ethernet-Kabel ausstreckt. Der Administrator ist der lokale Eigentümer und Master nicht nur interner und externer Server, sondern auch eines Geschäftsführers. Ja, einige Administratoren können nur in der Systemebene ohne Hardware arbeiten. Sie sollten in einer separaten Unterklasse von "Infrastruktursystemadministratoren" unterschieden werden. Und jemand ist darauf spezialisiert, ausschließlich Bürogeräte zu warten. Glücklicherweise endet die Arbeit nie, wenn das Unternehmen mehr als hundert Mitarbeiter hat. Aber weder der eine noch die anderen Devops sind es nicht.
Und wer sind DevOps? Devops sind Leute, die über die Interaktion der Softwareentwicklung mit der externen Infrastruktur sprechen. Genauer gesagt sind moderne Entwickler viel tiefer in die Entwicklungs- und Bereitstellungsprozesse involviert als die Administratoren, die einfach Updates auf FTP überflutet haben. Eine der Hauptaufgaben des DevOps-Ingenieurs besteht nun darin, einen komfortablen und effizient aufgebauten Prozess der Interaktion zwischen Entwicklungsteams und der Produktinfrastruktur sicherzustellen. Es sind diese Personen, die für die Bereitstellung von Rollback- und Bereitstellungssystemen verantwortlich sind. Diese Personen nehmen an der Entlastung der Entwickler teil und konzentrieren sich so weit wie möglich auf ihre äußerst wichtige Aufgabe. Gleichzeitig werden die Entwickler niemals ein neues Kabel spannen oder einen neuen Laptop aus den Hinterzimmern herausgeben.
Was ist der Haken?
Auf die Frage "Wer ist DevOps?" Die Hälfte der Mitarbeiter der Sphäre antwortet mit etwas wie "Nun, das ist kurz gesagt ein solcher Administrator, der ..." und im Folgenden. Ja, es war einmal, als der Beruf des DevOps-Ingenieurs gerade bei den talentiertesten Administratoren in Bezug auf die Wartung begann, waren die Unterschiede zwischen ihnen nicht für alle offensichtlich. Aber jetzt, als sich die Funktionen der Entwickler und des Administrators im Team radikal zu unterscheiden begannen, ist es inakzeptabel, sie untereinander zu verwirren oder sogar ein Gleichheitszeichen zwischen sie zu setzen.
Aber was bedeutet das für das Geschäft?
Bei der Einstellung dreht sich alles um ihn.
Sie öffnen die Stelle „Systemadministrator“ und dort werden die Anforderungen aufgelistet: „Interaktion mit Entwicklung und Kunden“, „CI / CD-Liefersystem“, „Wartung der Server und Geräte des Unternehmens“, „Verwaltung interner Systeme“ usw.; Sie verstehen, dass der Arbeitgeber Unsinn trägt. Der Haken ist, dass anstelle von "Systemadministrator" im Titel der Stelle "DevOps-Ingenieur" stehen sollte, und wenn dieser Titel geändert wird, dann passt alles zusammen.
Welchen Eindruck entsteht jedoch beim Lesen einer solchen Stelle? Dass das Unternehmen nach einem Multi-Tool-Bediener sucht, der sowohl ein Versionskontroll- als auch ein Überwachungssystem einsetzt und seine Zähne mit den Zähnen schüttelt ...
Um den Grad der Drogenabhängigkeit auf dem Arbeitsmarkt nicht zu erhöhen, reicht es jedoch aus, die offenen Stellen bei ihren Eigennamen zu nennen und klar zu verstehen, dass der DevOps-Ingenieur und der Systemadministrator zwei verschiedene Einheiten sind. Der einzige unbändige Wunsch einiger Arbeitgeber, dem Bewerber eine möglichst breite Liste von Anforderungen vorzulegen, führt dazu, dass die "klassischen" Systemadministratoren nicht mehr verstehen, was um sie herum geschieht. Was, der Beruf mutiert und sie bleiben hinter dem Leben zurück?
Nein, nein und wieder nein. Infrastrukturadministratoren, die die internen Server des Unternehmens steuern oder die Positionen des L2 / L3-Supports einnehmen und anderen Mitarbeitern helfen, sind nirgendwo hingegangen und werden nicht hingehen.
Können diese Spezialisten DevOps-Ingenieure werden? Natürlich können sie. Tatsächlich ist dies die Schwesterumgebung, für die Kenntnisse in der Systemadministration erforderlich sind. Darüber hinaus wird jedoch die Arbeit mit Überwachungs- und Bereitstellungssystemen sowie im Allgemeinen eine enge Interaktion mit dem Entwicklungs- und Testteam hinzugefügt.
Ein weiteres DevOps-Problem
Tatsächlich beschränkt sich nicht alles auf Einstellungen und ständige Verwirrung zwischen Administratoren und Entwicklern. Irgendwann stand das Unternehmen vor dem Problem, Updates bereitzustellen und das Entwicklungsteam mit der endgültigen Infrastruktur zu interagieren.
Vielleicht kam ein Onkel mit brennenden Augen zum Ort einer Konferenz und sagte: „Und wir machen das und nennen es DevOps. Diese Leute werden alle Ihre Probleme lösen “- und begannen zu erzählen, wie gut er nach der Implementierung der DevOps-Praktiken im Unternehmen lebt.
Es reicht jedoch nicht aus, einen DevOps-Techniker zu beauftragen, damit alles ordnungsgemäß funktioniert. Das Unternehmen muss die DevOps-Transformation vollständig durchlaufen, dh die Rolle und die Fähigkeiten unserer Entwickler sollten auch auf der Seite des Produktentwicklungs- und Testteams klar verstanden werden. Wir haben eine „schöne“ Geschichte zu diesem Thema, die die gesamte Dose an einigen Stellen vollständig illustriert.
Die Situation. Entwickler müssen ein Versions-Rollback-System bereitstellen, ohne sich besonders mit dessen Funktionsweise zu befassen. Angenommen, innerhalb des Benutzersystems sind dies separate Felder unter Vorname, Nachname und Kennwort. Eine neue Version des Produkts wird veröffentlicht, aber für Entwickler ist "Rollback" nur ein Zauberstab, der alles repariert, und sie wissen nicht einmal, wie es funktioniert. So haben beispielsweise die Entwickler im nächsten Patch die Felder für Vor- und Nachnamen kombiniert, sie in das Produkt eingeführt und die Version wird aus irgendeinem Grund langsamer. Was ist los? Das Handbuch kommt zum Entwickler und sagt "Ziehen Sie den Messerschalter!". Das heißt, er wird aufgefordert, zur vorherigen Version zurückzukehren. Was machen Devops? Es wird auf die vorherige Version zurückgesetzt, aber da die Entwickler nicht verstehen wollten, wie dieses Rollback durchgeführt wird, sagte niemand dem Devo, dass es auch notwendig sei, die Basis zurückzusetzen. Infolgedessen fällt alles für uns herunter, und anstelle der verlangsamten Site wird den Benutzern der Fehler "500" angezeigt, da die alte Version nicht mit den Feldern der neuen Datenbank funktioniert. Devops ist sich dessen nicht bewusst. Entwickelt sind still. Das Management beginnt, Nerven und Geld zu verlieren und ruft Backups zurück und bietet an, ein Rollback von ihnen durchzuführen, damit „zumindest etwas funktioniert“. Infolgedessen verlieren Benutzer für einen bestimmten Zeitraum alle ihre Daten.
Die Nüsse gehen natürlich an die Entwickler, die „nicht das richtige Rollback-System entwickelt haben“, und die Tatsache, dass die Elche in dieser Geschichte Entwickler sind, stört niemanden.
Die Schlussfolgerung ist einfach: Ohne einen normalen Ansatz für DevOps als solchen gibt es nicht viel davon.
Das Wichtigste, an das Sie sich erinnern sollten: Der DevOps-Ingenieur ist kein Zauberer, und ohne qualitativ hochwertige Kommunikation und wechselseitige Interaktion mit der Entwicklung wird er seine Aufgaben nicht bewältigen können. Entwickler können nicht mit ihren „Problemen“ allein gelassen werden oder den Befehl „Gehen Sie nicht zu Entwicklern, codieren Sie ihr Geschäft“ erhalten und hoffen Sie dann, dass in einem kritischen Moment alles so funktioniert, wie es sollte. Es funktioniert also nicht.
DevOps sind im Wesentlichen Kompetenzen zwischen Management und Technologie. Darüber hinaus ist es alles andere als offensichtlich, dass es in diesem Cocktail von Technologien mehr als nur Management geben sollte. Wenn Sie wirklich schnellere und effizientere Entwicklungsprozesse erstellen möchten, müssen Sie Ihren Entwicklern vertrauen. Er kennt die richtigen Werkzeuge, er hat ähnliche Projekte umgesetzt, er weiß, wie es geht. Helfen Sie ihm, hören Sie auf seinen Rat, versuchen Sie nicht, sich in einer autonomen Einheit zu isolieren. Wenn Administratoren alleine arbeiten können, sind Entwickler in diesem Fall nutzlos. Sie können Ihnen nicht helfen, besser zu werden, wenn Sie diese Hilfe selbst nicht akzeptieren möchten.
Und das Letzte: Hören Sie auf, Infrastrukturadministratoren zu beleidigen. Sie haben ein eigenes, äußerst wichtiges Arbeitsfeld. Ja, der Administrator kann ein DevOps-Ingenieur werden, dies sollte jedoch auf Anfrage der Person selbst geschehen und nicht unter dem Stick. Und es ist nichts Falsches daran, dass ein Systemadministrator ein Systemadministrator bleiben möchte - dies ist sein eigener Beruf und sein Recht. Wenn der Wunsch besteht, sich einer professionellen Transformation zu unterziehen, dürfen wir auf keinen Fall vergessen, dass nicht nur technologische, sondern auch Managementfähigkeiten aufgebaut werden müssen. Es ist sehr wahrscheinlich, dass Sie als Führungskraft all diese Menschen zusammenbringen und lernen müssen, in einer Sprache zu kommunizieren.