
Was braucht es für den Erfolg eines IT-Unternehmens im Jahr 2019? Die Referenten auf Konferenzen und Meetups verwenden viele laute und nicht immer für normale Menschen verständliche Begriffe. Der Wettlauf um die Deployment-Zeit, Microservices, der Verzicht auf das Monolithische, DevOps-Transformation und vieles mehr. Wenn man die sprachliche Schönheit beiseite lässt und es direkt und klar anspricht, lässt sich alles auf eine einfache Aussage reduzieren: Entwickeln Sie hochwertige Produkte und tun Sie dies im Komfort für Ihr Team.
Letzteres ist von entscheidender Bedeutung geworden. Die Wirtschaft hat endlich erkannt, dass ein angenehmer Entwicklungsprozess die Produktivität steigert und wenn alles reibungslos und wie am Schnürchen läuft, Raum für Flexibilität in kritischen Situationen schafft. Einst wurde für dieses Maß an Flexibilität Backups erfunden, doch die Branche entwickelt sich weiter, und wir sind bei den DevOps-Engineers angekommen – den Menschen, die den Prozess der Interaktion zwischen Entwicklung und externer Infrastruktur in etwas Angemessenes und Nicht-Schamanistisches verwandeln.
Die gesamte Geschichte über „im Modul“ ist zwar schön, aber… Es hat sich ergeben, dass einige Administratoren plötzlich in DevOps umbenannt wurden, während von den DevOps-Ingenieuren mindestens Fähigkeiten wie Telepathie und Hellsehen erwartet werden.
Bevor wir über die gegenwärtigen Herausforderungen der Infrastrukturversorgung sprechen, sollten wir festlegen, was wir unter diesem Begriff verstehen. Derzeit ist die Situation so, dass wir in eine Zweideutigkeit dieses Begriffs geraten sind: Infrastruktur kann grundsätzlich extern oder intern sein.
Mit externer Infrastruktur meinen wir all das, was die Funktionsfähigkeit des Dienstes oder Produkts gewährleistet, an dessen Entwicklung das Team arbeitet. Dazu gehören die Anwendungs- oder Webserver, und sogar und andere Dienste, die die Funktionsfähigkeit des Produkts sicherstellen.
Die interne Infrastruktur umfasst die Dienste und die Hardware, die das Entwicklungsteam und andere Mitarbeiter nutzen, von denen es normalerweise auch nicht wenig gibt. Dazu gehören interne Server für die Speicherung von Code, ein lokal bereitgestellter Taskmanager und alles, was im Rahmen des Unternehmens-Intranets existiert.
Was genau macht ein Systemadministrator in einem Unternehmen? Neben der Verwaltung des firmeneigenen Intranets umfasst seine Arbeit oft auch die Verantwortung für die Funktionstüchtigkeit der Büroausstattung. Der Admin ist derjenige, der schnell einen neuen Desktop-PC oder einen einsatzbereiten Ersatzlaptop aus dem Lager holt, eine frische Tastatur aushändigt und sich auf allen Vieren durch die Büros schleppt, um ein Ethernet-Kabel zu verlegen. Der Admin ist der lokale Herrscher und Meister nicht nur der internen und externen Systeme, sondern auch der Büroorganisation. ServerJa, einige Administratoren können ausschließlich in der Systemebene arbeiten, ohne sich um die Hardware zu kümmern. Diese sollten in eine eigene Unterkategorie von "Infrastruktur-Systemadministratoren" eingeordnet werden. Andere spezialisieren sich jedoch ganz auf die Wartung der Büroausstattung. Besonders in Unternehmen mit mehr als einhundert Mitarbeitern endet die Arbeit nie. Aber weder die einen noch die anderen sind DevOps.
Was sind DevOps? DevOps sind Fachleute, die sich mit der Interaktion zwischen Softwareentwicklung und externer Infrastruktur befassen. Genauer gesagt, die modernen DevOps sind viel stärker in die Prozesse der Entwicklung und Bereitstellung integriert als es jemals Systemadministratoren waren, die Updates einfach auf einen FTP-Server hochgeladen haben. Eine der wichtigsten Aufgaben eines DevOps-Ingenieurs heute ist es, einen komfortablen und effizient strukturierten Prozess für die Zusammenarbeit zwischen Entwicklungsteams und der Produktinfrastruktur zu gewährleisten. Diese Fachkräfte sind verantwortlich für die Implementierung von Rollback- und Deployment-Systemen. Sie entlasten Entwickler und konzentrieren sich maximal auf ihre äußerst wichtige Aufgabe. Dabei wird ein DevOps niemals ein neues Kabel verlegen oder einen neuen Laptop aus dem Lager herausgeben (c) KO
Was ist der Haken?
Auf die Frage „Was ist DevOps?“ antwortet die Hälfte der Fachkräfte oft mit etwas wie „Nun, das ist, kurz gesagt, ein Administrator, der…“. Ja, vor langer Zeit, als der Beruf des DevOps-Ingenieurs gerade aus den talentiertesten Administratoren im Servicebereich hervorging, waren die Unterschiede zwischen ihnen nicht für jeden sofort klar. Doch heute, wo sich die Funktionen von DevOps und Administratoren im Team grundlegend unterscheiden, ist es inakzeptabel, sie zu verwechseln oder gar gleichzusetzen.
Aber was bedeutet das für das Geschäft?
Es geht um die Einstellung.
Sie öffnen eine Stellenanzeige „Systemadministrator“, und dort stehen Anforderungen wie „Zusammenarbeit mit Entwicklern und Kunden“, „CI/CD-Bereitstellungssystem“, „Wartung von Unternehmensservern und -hardware“, „Verwaltung interner Systeme“ und so weiter; Sie verstehen, dass der Arbeitgeber irgendetwas Quatsch redet. Der Haken ist, dass anstelle von „Systemadministrator“ im Titel der Stellenanzeige „DevOps-Ingenieur“ stehen sollte, und wenn dieser Titel geändert wird, ergibt alles einen Sinn.
Welchen Eindruck hinterlässt eine solche Stellenanzeige? Das Unternehmen sucht einen Allrounder, der sowohl ein Versionskontrollsystem als auch Monitoring-Tools einrichtet und gleichzeitig alle anfallenden Aufgaben übernimmt…
Um die Anforderungen auf dem Arbeitsmarkt nicht weiter zu erhöhen, müsste man Stellenangebote klar benennen und verstehen, dass es einen deutlichen Unterschied zwischen einem DevOps-Ingenieur und einem Systemadministrator gibt. Das große Verlangen einiger Arbeitgeber, einen möglichst umfangreichen Anforderungskatalog an die Kandidaten zu stellen, führt dazu, dass „klassische“ Systemadministratoren nicht mehr verstehen, was in ihrer Umgebung vor sich geht. Haben sie sich an die Entwicklungen angepasst oder ist die Branche einfach weitergezogen?
Nein, ganz und gar nicht. Infrastruktur-Administratoren, die die internen Server des Unternehmens verwalten oder Positionen im L2/L3-Support einnehmen und anderen Mitarbeitern helfen, sind nach wie vor präsent und verschwinden nicht.
Können diese Fachleute DevOps-Ingenieure werden? Natürlich können sie das. Tatsächlich handelt es sich um ein verwandtes Umfeld, das Fähigkeiten im Systemadministrationsbereich erfordert. Darüber hinaus umfasst es die Arbeit mit Monitoring-Systemen, Bereitstellungssystemen und eine enge Zusammenarbeit mit dem Entwicklungs- und Testing-Team.
Ein weiteres Problem im DevOps-Bereich
In der Tat beschränkt sich das nicht nur auf das Recruiting und die ständige Verwirrung zwischen Administratoren und DevOps-Teams. Irgendwann sieht sich das Unternehmen mit der Herausforderung konfrontiert, Updates zu liefern und die Zusammenarbeit zwischen dem Entwicklungsteam und der finalen Infrastruktur zu gewährleisten.
Vielleicht war das der Zeitpunkt, als auf der Bühne einer Konferenz jemand mit leuchtenden Augen sagte: 'So machen wir das und nennen es DevOps. Diese Leute werden all Ihre Probleme lösen.' Und dann begann er zu erzählen, wie gut es in der Firma nach der Implementierung von DevOps-Praktiken läuft.
Es reicht jedoch nicht aus, einen DevOps-Ingenieur einzustellen, damit alles "wie gewünscht" funktioniert. Das Unternehmen muss eine vollständige DevOps-Transformation durchlaufen, das bedeutet, dass die Rolle und die Möglichkeiten unseres DevOps auch von den Teams für Entwicklung und Produkttests klar verstanden werden müssen. Dazu haben wir eine "interessante" Geschichte, die die gelegentlich chaotischen Geschehnisse in vollem Umfang veranschaulicht.
Situation. DevOps are required to deploy a version rollback system without much understanding of how it will function. Let's assume inside the system, Users consists of separate fields for first name, last name, and password. A new version of the product is released, but to the developers, a "rollback" is simply a magic wand that fixes everything, and they have no idea how it actually works. For example, in the latest patch, the developers combined the first name and last name fields, deployed it to production, but for some reason, the version is lagging. What happens? Management approaches DevOps and says, "Pull the plug!", meaning they request a rollback to the previous version. What does DevOps do? They roll back to the previous version, but since the developers didn’t bother to understand how this rollback is performed, no one informed DevOps that they also needed to roll back the database. As a result, everything crashes, and instead of a lagging site, users see a "500" error because the old version is incompatible with the fields of the new database. DevOps is unaware of this. The developers are silent. Management begins to lose patience and money and recalls the backups, suggesting to roll back using them so that "at least something works." Consequently, users lose all their data for some period.
Die Kritik richtet sich natürlich an den DevOps, der "keinen richtigen Rollback-Mechanismus implementiert hat". Dass die Entwickler in dieser Geschichte die Schuldigen sind, interessiert dabei niemanden.
Die Schlussfolgerung ist einfach: Ohne einen vernünftigen Ansatz für DevOps hat man nicht viel davon.
Das Wichtigste ist, sich daran zu erinnern: Ein DevOps-Ingenieur ist kein Zauberer. Ohne qualitativ hochwertige Kommunikation und bidirektionale Interaktion mit der Entwicklung wird er seine Aufgaben nicht bewältigen können. DevOps sollten nicht allein mit ihren "Problemen" gelassen oder mit dem Auftrag "Lass die Entwickler in Ruhe, ihre Aufgabe ist das Programmieren" beauftragt werden, und dann darauf zu hoffen, dass in kritischen Momenten alles reibungslos läuft. So funktioniert das nicht.
Im Grunde genommen sind DevOps Fähigkeiten, die an der Schnittstelle zwischen Management und Technologie liegen. Dabei ist keineswegs offensichtlich, dass in diesem Mix die Technologie über das Management dominieren sollte. Wenn Sie wirklich schnellere und effizientere Entwicklungsprozesse aufbauen möchten, müssen Sie Ihrem DevOps-Experten 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 autarke Abteilung zu isolieren. Während Administratoren in der Lage sind, eigenständig zu arbeiten, sind DevOps in einem solchen Fall weniger hilfreich; sie können Ihnen nicht helfen, besser zu werden, wenn Sie nicht bereit sind, diese Unterstützung anzunehmen.
Und letztlich: Hören Sie auf, die Infrastruktur-Administratoren zu beleidigen. Sie haben ihre eigene, äußerst wichtige Arbeitsfront. Ja, ein Administrator kann zum DevOps-Ingenieur werden, aber das sollte aus eigenem Antrieb geschehen und nicht unter Druck. Es ist nichts Schlechtes daran, dass ein Systemadministrator Systemadministrator bleiben möchte – das ist sein eigener Beruf und sein Recht. Wenn der Wunsch nach einer beruflichen Transformation besteht, sollte unbedingt berücksichtigt werden, dass nicht nur technologische Fähigkeiten, sondern auch Managementfähigkeiten weiterentwickelt werden müssen. All diese Menschen zusammenzubringen und sie zu lehren, sich in einer gemeinsamen Sprache zu verständigen, wird wahrscheinlich genau Ihre Aufgabe als Führungskraft sein.
Quelle: habr.com
