Warum sollten Systemadministratoren, Entwickler und Tester die DevOps-Praktiken lernen?



Wohin mit diesem Wissen, was im Projekt zu tun und wie viel zu verdienen, was zu sagen und zu fragen beim Interview, sagt Alexander Titov, geschäftsführender Gesellschafter von Express 42 und Autor des Online-Kurses „DevOps Practices and Tools“ .

Hallo! Obwohl der Begriff DevOps seit 2009 existiert, gibt es in der russischen Gemeinschaft immer noch keinen Konsens. Sicherlich haben Sie bemerkt, dass einige DevOps als Spezialität betrachten, andere - eine Philosophie, andere unter dem Begriff eine Reihe von Technologien. Ich habe bereits viele Male Vorträge über die Entwicklung dieses Bereichs gehalten, daher werde ich in diesem Artikel nicht auf Details eingehen. Ich kann nur sagen, dass wir bei Express 42 Folgendes hinzugefügt haben:

DevOps - eine spezifische Technik, eine Kultur der Erstellung eines digitalen Produkts, bei der alle Spezialisten des Teams an der Produktion teilnehmen.

In der klassischen Unternehmensentwicklung läuft alles nacheinander ab: Programmieren, Testen und erst dann Ausnutzen, und die Geschwindigkeit eines solchen Prozesses von der Idee bis zur Produktion beträgt 3 Monate. Bei digitalen Produkten ist dies ein globales Problem, da Sie kein sofortiges Feedback von Kunden erhalten können.

In DevOps werden Tools und Ansätze geschärft, sodass die Entwicklungs-, Test- und Betriebsprozesse gleichzeitig gestartet werden.

Was folgt aus diesem Ansatz?


  • Sie können keinen bestimmten "Ingenieur" einstellen, der alle Probleme mit der Produktion löst. Das gesamte Team sollte die Technik anwenden.


  • DevOps ist NICHT die nächste Form von Systemadministrator, auf die Sie aktualisieren können. Der DevOps Engineer klingt ziemlich ähnlich wie der Agile Developer.



  • Wenn das Team Kubernetes, Ansible, Prometheus, Mesosphere und Docker verwendet, bedeutet dies nicht, dass DevOps-Praktiken dort implementiert sind.





Das Leben nach DevOps wird nicht dasselbe sein


Der DevOps-Ansatz ist in erster Linie eine andere Denkweise, die Wahrnehmung der Entwicklung im Allgemeinen und ihr Platz im Prozess. Wir haben unseren Online-Kurs in zwei Blöcke unterteilt:

1. Selbstbestimmung

Zuerst analysieren wir die Essenz des DevOps-Ansatzes im Detail, und die Schüler entdecken neue Rollen im Team, sehen, welche mehr reagieren, und bestimmen selbst, wie sie sich entwickeln sollen.

2. Werkzeuge und Praktiken Die

Schüler beherrschen bestimmte Technologien im Sinne der DevOps-Methode.

DevOps-Tools können sowohl im DevOps-Ansatz als auch in der klassischen Entwicklung verwendet werden. Das klarste Beispiel wäre die Verwendung des Ansible-Konfigurationsverwaltungstools. Es wurde erstellt und konzipiert, um die DevOps-Praxis „Infrastruktur als Code“ zu implementieren. Dies bedeutet, dass verschiedene Zustände des Systems von den Einstellungen des Betriebssystems bis zur Anwendungssoftware beschrieben werden. Die Beschreibung ist in Ebenen unterteilt und ermöglicht Ihnen die Verwaltung einer komplexen, sich ständig ändernden Konfiguration. Oft verwenden Ingenieure Ansible jedoch, um Bash-Skripte auf mehreren Computern auszuführen. Dies ist nicht schlecht und nicht gut, aber Sie müssen verstehen, dass die Anwesenheit von Ansible nicht die Anwesenheit von DevOps im Unternehmen garantiert.

Bei uns während des KursesSie tauchen in den Entwicklungsprozess einer Anwendung ein, die dem bekannten Reddit ähnelt, zunächst mit seiner monolithischen Version, und gehen Schritt für Schritt zu Microservices über. Schritt für Schritt lernen wir neue Tools: Git, Ansible, Gitlab und beenden Kubernetes und Prometheus.

In der Praxis folgen wir den Taktiken der drei im DevOps-Handbuch beschriebenen Pfade - kontinuierliche Bereitstellungspraktiken, Feedbackpraktiken und die Essenz des gesamten Weiterbildungskurses mit Ihrem System.

Was gibt dieses Wissen jedem der Spezialisten?


Systemadministratoren


Mit diesen Methoden können Sie von der Verwaltung weggehen und eine Pipeline für die kontinuierliche Bereitstellung und eine Plattform für die Bereitstellung von Infrastruktursoftware erstellen. Der Punkt ist, dass er ein Produkt schafft - eine Infrastrukturplattform für Entwickler, die ihnen hilft, ihre Änderungen in der Produktion schnell voranzutreiben.

Bisher waren Systemadministratoren die letzte Bastion, nach der alles in Produktion geht. Und im Grunde waren sie mit dem kontinuierlichen Löschen von Feuer beschäftigt - angesichts dessen ist es ziemlich schwierig, sich mit den Bedürfnissen des Unternehmens auseinanderzusetzen, über das Produkt und die Vorteile für den Benutzer nachzudenken.
Dank der DevOps-Methode ändert sich das Denken. Der Systemadministrator versteht es, die Konfiguration in Code zu übersetzen, der für diese Vorgehensweise vorhanden ist.

Dies ist wichtig, da Unternehmen zunehmend erkennen, dass sie nicht nur alles und jedes automatisieren müssen, d. H. Im Wesentlichen sind die Systemadministratoren der alten Schule daran gewöhnt, und außerdem haben sie nicht viel kommuniziert und das Team nicht über alle vorgenommenen Änderungen informiert. Jetzt suchen die Teams diejenigen, die Hersteller des internen Infrastrukturprodukts werden und dabei helfen, die unterteilten Prozesse in einem zu kombinieren.

An Entwickler


Der Entwickler hört auf, nur mit Algorithmen zu denken. Er erwirbt die Fähigkeit, mit Infrastruktur zu arbeiten, die Fähigkeit des architektonischen Bewusstseins für die Landschaft. Ein solcher Entwickler versteht, wie die Anwendung funktioniert, wie sie eine Pipeline für die kontinuierliche Bereitstellung durchläuft, wie sie überwacht und wie sie gesichert wird, damit sie dem Kunden zugute kommt. Mit all diesem Wissen können Sie relevanten Code schreiben.

Tester


Das Testen ist längst in den automatischen Modus übergegangen. Wir alle sagen, dass viele Tests nicht durchgeführt, sondern geschrieben werden sollten :) Das Testen wird Teil der gesamten Pipeline für die Lieferung Ihres Produkts. Der Tester muss nicht nur lernen, wie man Code schreibt, sondern auch verstehen, wie man ihn in kontinuierliche Liefersysteme integriert, wie man in allen Phasen der Lieferung Feedback vom Code erhält und wie man das Testen ständig verbessert, um Fehler so früh wie möglich zu erkennen.

Es stellt sich also heraus, dass alle drei Stufen gleichzeitig ablaufen . Zum Beispiel könnte es so aussehen:

Der Entwickler schreibt den Code, schreibt sofort Tests dafür und beschreibt den Docker-Container für den Code, der ausgeführt werden soll. Außerdem wird sofort die Überwachung beschrieben, mit der der Betrieb dieses Dienstes in der Produktion überwacht wird, und all dies wird festgeschrieben.

Wenn die kontinuierliche Integration beginnt, laufen die Prozesse gleichzeitig ab. Service startet, konfigurierbar. Gleichzeitig wird der Docker-Container gestartet und überprüft, ob er funktioniert. Gleichzeitig gehen alle Informationen an das Protokollierungssystem. In jeder Entwicklungsphase stellt sich heraus, dass Systemadministratoren, Entwickler und Tester wirklich zusammenarbeiten.

Studierte DevOps und was dann?


Wie Sie wissen, ist einer auf dem Feld kein Krieger. Wenn Ihr Unternehmen diese Methode nicht verwendet, sind die erworbenen Fähigkeiten nicht verfügbar. Und nachdem Sie sich mit DevOps-Ansätzen getroffen haben, möchten Sie höchstwahrscheinlich kein Zahnrad in der Unternehmensentwicklung sein. Es kann eine Ausnahme geben: Sie sind Systemadministrator im Team und können alle Prozesse auf neue Weise neu erstellen. Hier ist hinzuzufügen, dass es eine Reihe von Unternehmen gibt, die diesen Ansatz verwenden, und sie sind von der Sperrung nicht betroffen und suchen Spezialisten. Denn bei DevOps geht es darum, Online-Produkte zu erstellen.
Und nun zum Angenehmen: Der Besitz von DevOps-Praktiken und -Tools macht ungefähr + 30% Ihres Wertes auf dem Arbeitsmarkt aus. Die Gehälter beginnen bei 140.000 Rubel, werden aber natürlich von Ihrer Hauptspezialität und Funktionalität bestimmt.

Sie können sich offene Stellen mit dem Schwerpunkt „Infrastruktur“ ansehen, bei denen es um Testautomatisierung, Entwicklung von Microservice-Anwendungen mithilfe von Cloud-Technologien, offene Stellen von Infrastrukturingenieuren und alle möglichen Verweise auf DevOps geht. Denken Sie daran, dass jedes Unternehmen unter dieser Definition etwas anderes bedeutet - lesen Sie die Beschreibung sorgfältig durch.

Während des Starts unseres Kurses kam mir ein Einblick - viele Menschen geraten nach dem Kurs in die Falle eines DevOps-Ingenieurs. Sie finden eine Stelle mit dem oben genannten Namen, erhalten ein gutes Angebot und kommen dann zur Arbeit und verstehen, dass sie ein dreiseitiges Bash-Skript in Jenkins unterstützen müssen. Und wo sind Kubernetes, ChatOps, kanarische Veröffentlichungen und das ist alles? Und es gibt nichts, weil das Unternehmen DevOps nicht als Methodik benötigt, sondern separate Innovationen verwendet.

Dies ist eine Gelegenheit, vom Unternehmen intensiv herauszufinden, wie der Prozess der Softwarebereitstellung angeordnet ist, wie der technologische Stapel ist und welche Aufgaben Sie erfüllen werden.

Wenn der Arbeitgeber Ihre Fragen abstrakt beantwortet, wie in einem Buch, ohne Details, dann hat das Unternehmen höchstwahrscheinlich noch keinen DevOps-Prozess, aber dies ist kein Grund, das Unternehmen und seine Produkte abzulehnen, zu studieren, gibt es Online-Dienste, die das Unternehmen selbst entwickelt, mobile Anwendungen , Produktideen.

Wenn ja, geben Sie an, ob Sie direkt mit diesen Systemen arbeiten müssen oder ob es möglich ist, horizontal zu den Teams dieser Dienste zu wechseln und gleichzeitig gute Ergebnisse in DevOps-Praktiken zu demonstrieren. Wenn ja, dann lohnt es sich, aktiv und hilfsbereit zu sein, und wenn Sie unseren Kurs beenden, ist letzteres garantiert.

Es ist wichtig zu beachten, dass der wahre Wert von Devops-Praktiken nur dann erreicht wird, wenn Sie Erfahrung in der Entwicklung / Verwaltung / im Testen haben. Nur dann wird Wissen nicht abstrakt sein, sondern den Spezialisten (in jeder Hinsicht) bereichern. Daher ist die Idee, „von Grund auf neu zu lernen“, ungefähr die gleiche wie das Lernen, „Objektive von Grund auf neu zu verwenden“, wenn Sie noch nie eine Kamera in den Händen gehalten oder eine Aufnahme gemacht haben. Um Ihnen bei der Entscheidung zu helfen, ob der Kurs für Sie geeignet ist, haben wir einen Einführungstest durchgeführt, bei dem ein ausreichender Wissensstand getestet wird.

Ich denke einer der Chips des Kurses- die Tatsache, dass jeder Schüler im Verlauf der Ausbildung selbst bestimmt, wie er sich entwickeln möchte. Wir beobachten häufig Übergänge, wenn ein Entwickler Infrastrukturingenieur wird und der Administrator versteht, dass er am Schreiben von Code interessiert ist. Dann lernt er zusätzlich die Sprache und ergänzt sie durch die erworbenen DevOps-Fähigkeiten. Deshalb freuen wir uns besonders auf diejenigen, die das Gefühl haben, dass seine Karriere am Scheideweg steckt. Der Kurs beginnt am 28. Mai, Sie können jedoch 2 Wochen nach Kursbeginn teilnehmen. Sie können das Programm ansehen und den Test hier machen . Wir sehen uns bei OTUS!

All Articles