
In letzter Zeit sind solche Anzeigen im Internet ĂŒberall zu finden. Trotz eines attraktiven Gehalts kann man sich nicht des Eindrucks erwehren, dass in den Meldungen eine Menge Unsinn steht. ZunĂ€chst wird suggeriert, dass sich âDevOpsâ und âIngenieurâ irgendwie zu einem einzigen Wort zusammensetzen lassen, gefolgt von einer willkĂŒrlichen Liste von Anforderungen, von denen ein Teil offensichtlich aus einer Stellenanzeige fĂŒr Systemadministratoren kopiert wurde.
In diesem Beitrag möchten wir ein wenig darĂŒber sprechen, wie wir zu dieser Situation gekommen sind, was DevOps tatsĂ€chlich bedeutet und was wir jetzt damit anfangen sollen.
Solche Stellenangebote können in vielerlei Hinsicht kritisiert werden, aber eines steht fest: Sie sind zahlreich, und so ist der Markt momentan strukturiert. Wir haben eine DevOps-Konferenz veranstaltet und erklĂ€ren offen: â â ist nicht fĂŒr DevOps-Ingenieureâ. Vielen wird es merkwĂŒrdig und absurd erscheinen: Warum gehen Menschen, die eine völlig kommerzielle Veranstaltung organisieren, gegen den Trend des Marktes? Wir erklĂ€ren alles.
Ăber Kultur und Prozesse
ZunĂ€chst einmal ist DevOps keine Ingenieurdisziplin. Alles begann mit der Erkenntnis, dass die historisch gewachsene Rollenteilung nicht der ProduktqualitĂ€t zugutekommt. Wenn Programmierer nur programmieren und nichts ĂŒber Tests hören wollen, wird die Software von Bugs ĂŒberflutet. Wenn Administratoren es egal ist, wie und warum die Software geschrieben wurde, verwandelt sich der Support in einen Albtraum.
Zum Beispiel beschreibt es den Unterschied zwischen der Systems-Admin- und der SRE-Ansatzweise im Service Management. . Interessante Studien wurden im Rahmen des durchgefĂŒhrt â es zeigt sich, dass die besten Entwickler es irgendwie schaffen, neue Ănderungen schneller als einmal pro Stunde in die Produktion zu bringen. Sie testen manuell nicht mehr als 10 % (das zeigt sich an den ). Wie gelingt ihnen das? "Excel or die" â lautet einer der Titel des Berichts. FĂŒr eine detaillierte Diskussion dieser Statistik im Hinblick auf das Testen kann auf den Keynote von Baruch Sadogursky verwiesen werden auf einer unserer anderen Konferenzen, Heisenbug.
"Wenn es in der Gemeinschaft kein Einvernehmen gibt,
wird ihr Werk nicht vorankommen,
und es wird nicht zum Ergebnis fĂŒhren, sondern nur zur MĂŒhe."
Einmal, der Schwan, der Krebs und der HechtâŠ
Wie denken Sie, welcher Teil der Webentwickler versteht wirklich, unter welchen Bedingungen ihre Anwendungen in der Produktion betrieben werden? Wie viele von ihnen werden zu den Administratoren gehen und versuchen herauszufinden, was passiert, wenn die Datenbank ausfÀllt? Und wer von ihnen wird zu den Testern gehen und um eine Schulung bitten, wie man richtig Tests schreibt? Und da gibt es auch noch Sicherheitsexperten, Produktmanager und viele andere.
Die Grundidee von DevOps besteht darin, die Zusammenarbeit zwischen den Rollen und Abteilungen zu fördern. Dies wird in erster Linie nicht durch ausgeklĂŒgelte Software erreicht, sondern durch Kommunikationspraxis. DevOps handelt von Kultur, Praxis, Methodologie und Prozessen. Es gibt keinen Ingenieurberuf, der diese Fragen beantwortet.
Ein Teufelskreis
Woher stammt also die Disziplin âDevOps-Engineeringâ? Wir haben eine Theorie! Die Ideen von DevOps waren so gut, dass sie Opfer ihres eigenen Erfolgs wurden. Rund um dieses Thema haben sich merkwĂŒrdige Recruiter und MenschenhĂ€ndler versammelt, die eine ganz eigene AtmosphĂ€re geschaffen haben.
Stellen Sie sich vor: Gestern haben Sie in Chimki Shawarma gegrillt und heute sind Sie bereits ein groĂer Mann, ein Senior-Recruiter. Hier gibt es einen ganzen Prozess der Kandidatensuche und -auswahl, das ist nicht einfach, man muss es verstehen. Angenommen, der Abteilungsleiter sagt: Finde einen Spezialisten fĂŒr X. Wir fĂŒgen das Wort âIngenieurâ zu X hinzu, und das Thema ist erledigt. Brauchen wir einen Linux-Spezialisten? Na klar, das ist definitiv ein Linux-Ingenieur. Möchten Sie DevOps? Dann suchen wir einen DevOps-Ingenieur. Eine Stellenanzeige besteht nicht nur aus einem Titel, sondern innerhalb muss auch etwas Text stehen. Am einfachsten ist es, eine Reihe von Keywords aus Google einzufĂŒgen, je nach Fantasie. DevOps besteht aus zwei Wörtern â âDevâ und âOpsâ, also mĂŒssen wir die Keywords, die sich auf Entwickler und Administratoren beziehen, zu einem Haufen zusammenfĂŒgen. So entstehen Stellenanzeigen, die 42 Programmiersprachen und 20 Jahre Erfahrung mit Kubernetes und Swarm gleichzeitig erfordern. So funktioniert die Arbeitsweise.
So hat sich im Bewusstsein der Menschen das sinnlose und gnadenlose Bild eines Superhelden-âDevOpsâ verfestigt, der allen das Deployment auf Jenkins einrichtet, und das GlĂŒck wird kommen. Ach, wenn nur alles so einfach wĂ€re. âUnd so kann man auch Sysadmins jagenâ, denkt sich der HR-Manager, âdas Wort ist modern, die Keywords sind dieselben, sie mĂŒssen darauf anspringen.â
Die Nachfrage schafft das Angebot, und auf all diese schlechten Stellenanzeigen haben sich unzĂ€hlige Systemadministratoren gestĂŒrzt, die erkannt haben: Man kann das gleiche tun wie frĂŒher, aber viel mehr verdienen, indem man sich als "DevOps" bezeichnet. Wie du frĂŒher die Server manuell ĂŒber SSH konfiguriert hast, wirst du es auch weiterhin tun, nur dass es jetzt angeblich eine DevOps-Praxis ist. Das ist ein komplexes PhĂ€nomen, das teilweise mit der UnterschĂ€tzung klassischer Administratoren und dem Hype um DevOps verbunden ist, aber insgesamt â das Ergebnis ist, was es ist.
Also haben wir Nachfrage und Angebot. Ein sich selbst ernÀhrender Kreislauf. Mit diesem kÀmpfen wir (unter anderem, indem wir die DevOops-Konferenz veranstalten).
NatĂŒrlich gibt es neben den Systemadministratoren, die sich in "DevOps" umbenannt haben, auch andere Teilnehmer â wie professionelle SRE oder Entwickler von Infrastructure-as-Code.
Was Menschen in DevOps wirklich tun
Du möchtest also im Studium und in der Anwendung von DevOps-Praktiken vorankommen. Aber wie machst du das, wohin solltest du schauen? Es ist offensichtlich, dass du dich nicht blind an populĂ€ren SchlĂŒsselwörtern orientieren solltest.
Wenn es Arbeit gibt, muss sich jemand darum kĂŒmmern. Wir haben bereits festgestellt, dass dies nicht die âDevOps-Ingenieureâ sind. Wer ist es dann? Es scheint sinnvoller, dies nicht in Bezug auf Positionen, sondern in Bezug auf konkrete TĂ€tigkeitsbereiche zu formulieren.
ZunĂ€chst kann man sich mit dem Herzen von DevOps beschĂ€ftigen â den Prozessen und der Kultur. Kultur ist eine langwierige und komplexe Angelegenheit, und obwohl dies traditionell in der Verantwortung von FĂŒhrungskrĂ€ften liegt, sind letztlich alle beteiligt, von Programmierern bis hin zu Administratoren. Vor ein paar Monaten sagte Tim Lister in einem Interview :
Die Unternehmenskultur wird von den grundlegenden Werten der Organisation bestimmt. Oft nehmen die Menschen das nicht bewusst wahr, aber wir im Consulting haben im Laufe vieler Jahre gelernt, das zu erkennen. Man tritt in ein Unternehmen ein, und innerhalb weniger Minuten spĂŒrt man bereits, was hier vor sich geht. Wir nennen das den "Duft". Manchmal ist dieser Duft wirklich angenehm. Manchmal verursacht er Ăbelkeit. (âŠ) Man kann die Kultur nicht verĂ€ndern, bevor die Werte und Ăberzeugungen, die hinter bestimmten Handlungen stehen, erkannt wurden. Verhalten lĂ€sst sich leicht beobachten, jedoch ist es schwierig, Ăberzeugungen aufzuspĂŒren. DevOps ist ein hervorragendes Beispiel dafĂŒr, wie alles immer komplexer wird.
Es gibt natĂŒrlich auch einen technischen Aspekt zu betrachten. Wenn dein neuer Code in einem Monat zum Testen bereitsteht, aber im Release erst in einem Jahr erscheint, und es physisch unmöglich ist, alles zu beschleunigen â dann können gute Praktiken unerreichbar bleiben. Gute Praktiken werden durch gute Werkzeuge unterstĂŒtzt. Wenn man das Konzept von Infrastructure-as-Code im Kopf behĂ€lt, kann man alles Mögliche nutzen, von AWS CloudFormation und Terraform bis hin zu Chef-Ansible-Puppet. All dies muss man wissen und beherrschen, und das ist bereits eine ernsthafte Ingenieurdiziplin. Es ist wichtig, Ursache und Wirkung nicht zu verwechseln: Zuerst arbeitet man nach den Prinzipien von SRE und erst dann setzt man diese Prinzipien in konkrete technische Lösungen um. SRE ist eine sehr komplexe Methodologie, die nicht nur erklĂ€rt, wie man Jenkins konfiguriert, sondern sich auf fĂŒnf grundlegende Prinzipien konzentriert.
- Verbesserung der Interaktion zwischen Rollen und Abteilungen
- Akzeptanz von Fehlern als unvermeidlicher Teil der Arbeit
- Schrittweise Umsetzung von VerÀnderungen
- Nutzung von Tools und Automatisierung
- Messung aller messbaren Aspekte
Es ist nicht einfach eine Sammlung von Aussagen, sondern ein konkretes . Beispielsweise mĂŒssen wir bei der Fehlermanagement-Analyse die Risiken verstehen, die VerfĂŒgbarkeit und Nichterreichbarkeit von Diensten mithilfe von etwas wie SLI () und SLO (), Postmortems schreiben lernen und sicherstellen, dass das Verfassen dieser Berichte nicht beĂ€ngstigend ist.
Im Bereich SRE ist der Einsatz von Werkzeugen nur ein Teil des Erfolgs, jedoch ein sehr wichtiger. Wir mĂŒssen uns kontinuierlich technisch weiterentwickeln, beobachten, was in der Welt geschieht, und ĂŒberlegen, wie wir dies in unserer Arbeit anwenden können.
Heutzutage sind Cloud-Native-Lösungen sehr gefragt. Laut der Cloud Native Computing Foundation ermöglichen Cloud-Native-Technologien Organisationen die Entwicklung und Bereitstellung skalierbarer Anwendungen in modernen, dynamischen Umgebungen wie öffentlichen, privaten und hybriden Cloud-Umgebungen. Beispiele hierfĂŒr sind Container, Service-Meshes, Microservices, unverĂ€nderbare Infrastrukturen und deklarative APIs. All diese Techniken sorgen dafĂŒr, dass lose gekoppelte Systeme elastisch, steuerbar und gut ĂŒberwachbar bleiben. Eine robuste Automatisierung ermöglicht es Ingenieuren, hĂ€ufig groĂe Ănderungen mit vorhersehbaren Ergebnissen vorzunehmen, ohne dass dies zu einer ĂŒbermĂ€Ăigen Belastung wird. All dies wird durch einen Stack bekannter Tools wie Docker und Kubernetes unterstĂŒtzt.
Diese recht komplexe und umfangreiche Definition ist damit verbunden, dass auch das Gebiet selbst recht kompliziert ist. Einerseits wird behauptet, dass neue Ănderungen in dieses System relativ einfach integriert werden sollten. Andererseits ist es notwendig, zu verstehen, wie man eine containerisierte Umgebung schafft, in der lose gekoppelte Dienste auf einer softwaredefinierten Infrastruktur leben und ĂŒber kontinuierliches CI/CD bereitgestellt werden, sowie rund um diese Praktiken DevOps-AnsĂ€tze aufzubauen â hierfĂŒr benötigt man umfangreiche Erfahrung.
Was ist in dieser Hinsicht zu tun?
Jeder geht mit diesen Herausforderungen unterschiedlich um: Man kann beispielsweise regulÀre Stellenanzeigen veröffentlichen, um den Teufelskreis zu durchbrechen. Man kann klÀren, was Begriffe wie DevOps und Cloud Native bedeuten und sie korrekt und sinnvoll verwenden. Man kann sich im DevOps-Bereich weiterentwickeln und durch das eigene Beispiel korrekte AnsÀtze demonstrieren.
Wir organisieren eine Konferenz. , die die Möglichkeit bietet, tiefer in die Themen einzutauchen, ĂŒber die wir gerade gesprochen haben. Dazu gibt es mehrere Vortragsgruppen:
- Prozesse und Kultur;
- Site Reliability Engineering;
- Cloud Native;
Wie wĂ€hlt man aus, wohin man gehen soll? Es gibt hierbei einen feinen Punkt. Einerseits geht es bei DevOps um Interaktion, und wir möchten, dass Sie an VortrĂ€gen aus verschiedenen Bereichen teilnehmen. Andererseits, wenn Sie als Entwicklungsleiter zur Konferenz gekommen sind, um sich auf eine bestimmte Aufgabe zu konzentrieren, steht Ihnen das natĂŒrlich frei â in diesem Fall wĂ€re der Bereich ĂŒber Prozesse und Kultur offensichtlich die richtige Wahl. Denken Sie daran, dass Sie nach der Konferenz Zugriff auf die Aufzeichnungen haben (nachdem Sie das Feedback-Formular ausgefĂŒllt haben), sodass Sie auch weniger wichtige VortrĂ€ge spĂ€ter ansehen können.
Es ist offensichtlich, dass Sie auf der Konferenz nicht gleichzeitig an drei Tracks teilnehmen können. Deshalb gestalten wir das Programm so, dass in jedem Zeitfenster Themen fĂŒr jeden Geschmack vorhanden sind.
Jetzt bleibt nur noch die Frage, was zu tun ist, wenn Sie ein DevOps-Ingenieur sind! Versuchen Sie zunĂ€chst herauszufinden, womit Sie tatsĂ€chlich beschĂ€ftigt sind. Oft wird dieser Begriff verwendet fĂŒr:
- Entwickler, die sich mit Infrastruktur beschĂ€ftigen. FĂŒr Sie sind die Vortragsgruppen ĂŒber SRE und Cloud Native besonders geeignet.
- Systemadministratoren. Hier wird es komplizierter. DevOops ist nicht nur fĂŒr Systemadministratoren gedacht. GlĂŒcklicherweise gibt es eine FĂŒlle von wunderbaren Konferenzen, BĂŒchern, Artikeln und Videos im Internet zum Thema Systemadministration. Auf der anderen Seite, wenn Sie Interesse daran haben, Ihr VerstĂ€ndnis fĂŒr Kultur und Prozesse zu vertiefen, Cloud-Technologien und die Details des Lebens mit Cloud Native zu lernen, freuen wir uns, Sie zu sehen! Denken Sie darĂŒber nach: Sie sind in der Administration tĂ€tig, was werden Sie als NĂ€chstes tun? Um unangenehme Ăberraschungen zu vermeiden, sollten Sie bereits jetzt lernen.
Es gibt noch eine weitere Möglichkeit: Sie beharren darauf und behaupten weiterhin, dass Sie genau ein DevOps-Ingenieur und sonst nichts, egal was das bedeutet. Leider mĂŒssen wir Ihnen mitteilen, dass DevOops eine Konferenz ist, die nicht fĂŒr DevOps-Ingenieure gedacht ist!

Folien aus in MĂŒnchen
DevOops 2020 Moskau wird am 29.-30. April in Moskau stattfinden, Tickets können bereits .
erworben werden. AuĂerdem können Sie bis zum 8. Februar. Bitte beachten Sie, dass Sie bei der AusfĂŒllung des Formulars die Zielgruppe auswĂ€hlen mĂŒssen, der Ihr Referat den gröĂten Nutzen bringen wird (innerhalb der Liste steckt eine Ăberraschung).
Quelle: habr.com
