
In letzter Zeit haben solche Anzeigen das Internet ĂŒberschwemmt. Trotz eines attraktiven Gehalts kann es nicht anders als irritierend sein, dass darin ein wildes Geschreibsel steht. ZunĂ€chst wird angenommen, dass "DevOps" und "Ingenieur" irgendwie zu einem Wort zusammengeklebt werden können, und danach folgt eine willkĂŒrliche Liste von Anforderungen, von denen ein Teil offensichtlich aus einer Ausschreibung fĂŒr Systemadministratoren kopiert wurde.
In diesem Beitrag möchte ich ein wenig darĂŒber sprechen, wie wir zu dieser Lebensweise gekommen sind, was DevOps wirklich bedeutet und was wir jetzt damit tun können.
Solche Stellenangebote kann man auf jede erdenkliche Weise kritisieren, doch die Tatsache bleibt: Es gibt viele davon, und der Markt ist im Moment so strukturiert. Wir haben eine DevOps-Konferenz veranstaltet und sagen offen: â â nicht fĂŒr DevOps-Ingenieureâ. Viele werden hier seltsam und verrĂŒckt finden: Warum gehen Menschen, die eine völlig kommerzielle Veranstaltung machen, gegen den Markt? Das wird jetzt alles erklĂ€rt.
Ăber Kultur und Prozesse
Lassen Sie uns zunĂ€chst klĂ€ren, dass DevOps keine Ingenieurdisziplin ist. Alles begann damit, dass die historisch gewachsenen Rollenteilungen nicht zur QualitĂ€t der Produkte beitragen. Wenn Programmierer nur programmieren und nichts ĂŒber Tests hören wollen, wird die Software mit Bugs ĂŒbersĂ€t. Wenn den Administrators egal ist, wie und warum die Software geschrieben ist, wird die UnterstĂŒtzung zur Hölle.
Ein Beispiel fĂŒr den Unterschied zwischen dem Ansatz eines Systemadministrators und dem eines SREs im Service Management Interessante Studien wurden im Rahmen von durchgefĂŒhrt â man sieht, dass die besten Entwickler es irgendwie schaffen, neue Ănderungen schneller als einmal pro Stunde in die Produktion zu bringen. Sie testen manuell auch nicht mehr als 10 % (das zeigt die ). Wie schaffen sie das? "Excel or die" â sagt einer der Berichte. FĂŒr eine detaillierte Diskussion dieser Statistik im Hinblick auf Tests können Sie sich an den Keynote-Vortrag von Baruch Sadogursky wenden. auf einer anderen unserer Konferenzen, Heisenbug.
"Wenn im Freundeskreis kein Einvernehmen herrscht,
wird es zu nichts gut kommen,
und es wird nichts daraus hervorgehen, nur MĂŒhe.
Einmal waren Schwan, Krebs und der Hecht..."
Wie denken Sie, welcher Teil der Webprogrammierer wirklich versteht, unter welchen Bedingungen ihre Anwendungen in der Produktion betrieben werden? Wie viele von ihnen gehen zu den Admins und versuchen herauszufinden, was passiert, wenn die Datenbank ausfÀllt? Und wer von ihnen geht zu den Testern und bittet um Hilfe, wie man richtig Tests schreibt? Und dann gibt es da noch die Sicherheitsleute, Produktmanager und noch viele andere.
Die Grundidee von DevOps besteht darin, die Zusammenarbeit zwischen Rollen und Abteilungen zu verbessern. Dies wird in erster Linie nicht durch irgendeine ausgeklĂŒgelte Software erreicht, sondern durch die Praxis der Kommunikation. DevOps dreht sich um Kultur, Praxis, Methodologie und Prozesse. Es gibt keinen Ingenieurberuf, der diese Fragen beantworten kann.
Teufelskreis
Wie kam es also zur Disziplin âDevOps-Engineeringâ? Wir haben eine Theorie! Die Ideen von DevOps erwiesen sich als so gut, dass sie Opfer ihres eigenen Erfolgs wurden. Rund um dieses Thema haben sich seltsame Rekruteure und MenschenhĂ€ndler versammelt, die ihre eigene AtmosphĂ€re haben.
Stellen Sie sich vor: Gestern haben Sie in Chimki Shawarma verkauft und heute sind Sie bereits eine groĂe Persönlichkeit, Senior-Rekruter. Da ist ein ganzer Prozess der Kandidatensuche und -auswahl, es ist nicht einfach, das muss man verstehen. Angenommen, der Abteilungsleiter sagt: Finde einen Spezialisten fĂŒr X. Wir fĂŒgen das Wort âIngenieurâ zu X hinzu, und das ist es. Brauchen Sie Linux? Nun, dann ist es definitiv ein Linux-Ingenieur, wollen Sie DevOps â DevOps-Ingenieur. Eine Stellenanzeige besteht nicht nur aus einer Ăberschrift, sondern es muss auch ein Text geschrieben werden. Am einfachsten ist es, eine Sammlung von Keywords aus Google zu verwenden, je nachdem, wie viel Fantasie jemand hat. DevOps besteht aus zwei Wörtern â âDevâ und âOpsâ, also mĂŒssen wir Keywords kombinieren, die sich auf Entwickler und Administratoren beziehen, alles in einen Topf. So entstehen Stellenangebote, die die Beherrschung von 42 Programmiersprachen und 20 Jahre Erfahrung mit Kubernetes und Swarm gleichzeitig verlangen. Ein bewĂ€hrtes Vorgehen.
So hat sich im Bewusstsein der Menschen das sinnlose und gnadenlose Bild eines Superhelden-âDevOpsâ verankert, der allen den Deployment-Prozess auf Jenkins einrichtet, und dann wird alles gut. Ach, wenn es nur so einfach wĂ€re. âUnd so kann man auch Sysadmins anwerbenâ, denkt der HRler, âdas Wort ist modern, die Keywords sind die gleichen, das mĂŒsste funktionieren.â
Nachfrage schafft Angebot, und auf all diese fragwĂŒrdigen Stellenanzeigen sind unglaublich viele Systemadministratoren geströmt, die erkannt haben: Man kann alles genauso machen wie frĂŒher, aber mehrere Male mehr verdienen, indem man sich "DevOps" nennt. Wie du frĂŒher Server ĂŒber SSH einzeln konfiguriert hast, so wirst du weiterhin konfigurieren, aber jetzt wird das angeblich als DevOps-Praxis bezeichnet. Es ist ein komplexes PhĂ€nomen, das teilweise mit der Unterbewertung klassischer Administratoren und dem Hype um DevOps verbunden ist, aber insgesamt â das, was passiert ist, ist passiert.
Also haben wir Angebot und Nachfrage. Ein Teufelskreis, der sich selbst nÀhrt. Mit diesem Kampf wir uns (unter anderem, indem wir die DevOops-Konferenz ins Leben rufen).
NatĂŒrlich gibt es neben den Systemadministratoren, die sich in "DevOps" umbenannt haben, auch andere Akteure â beispielsweise professionelle SRE oder Infrastructure-as-Code-Entwickler.
Was Menschen tatsÀchlich in DevOps tun
Also, du möchtest deine Kenntnisse und Praktiken in DevOps vertiefen. Aber wie machst du das, in welche Richtung solltest du schauen? Offensichtlich solltest du dich nicht blind an beliebten SchlĂŒsselwörtern orientieren.
Wenn es Arbeit gibt, muss jemand sie erledigen. Wir haben bereits herausgefunden, dass das nicht die "DevOps-Engineers" sind, also wer dann? Es scheint richtig zu sein, dies nicht in Begriffen von Positionen, sondern in spezifischen TĂ€tigkeitsbereichen zu formulieren.
Erstens kann man sich mit dem Kern von DevOps beschĂ€ftigen â Prozessen und Kultur. Kultur ist keine schnelle oder einfache Sache, und obwohl dies traditionell in den Verantwortungsbereich von FĂŒhrungskrĂ€ften fĂ€llt, sind letztendlich alle daran beteiligt, von Programmierern bis hin zu Administratoren. Vor ein paar Monaten sagte Tim Lister in einem Interview. :
«Die Unternehmenskultur wird durch die grundlegenden Werte der Organisation geprĂ€gt. Die meisten Menschen merken das nicht, aber wir, die wir seit vielen Jahren im Consulting tĂ€tig sind, sind daran gewöhnt, dies zu erkennen. Man betritt ein Unternehmen und spĂŒrt buchstĂ€blich innerhalb von Minuten, was dort 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, nicht erkannt worden sind. Das Verhalten ist leicht zu beobachten, Ăberzeugungen zu finden ist schwierig. DevOps ist ein hervorragendes Beispiel dafĂŒr, wie alles immer komplexer wird.»
Es gibt natĂŒrlich auch eine technische Seite der Frage. Wenn dein neuer Code in einem Monat zum Testen kommt und im Release erst ein Jahr spĂ€ter erscheint, und es physisch unmöglich ist, das alles zu beschleunigen â dann könnte man die guten Praktiken nicht erreichen. Gute Praktiken werden durch gute Werkzeuge unterstĂŒtzt. Zum Beispiel kann man, wenn man das Konzept von Infrastructure-as-Code im Hinterkopf hat, alles verwenden, von AWS CloudFormation und Terraform bis zu Chef-Ansible-Puppet. All das muss man wissen und können, und das ist schon eine Ingenieursdisziplin. Es ist wichtig, Ursache und Wirkung nicht zu verwechseln: Zuerst arbeitet man nach den Prinzipien von SRE und setzt diese Prinzipien erst dann in spezifische technische Lösungen um. Dabei ist SRE eine sehr umfassende Methodik, die nicht darĂŒber spricht, wie man Jenkins einrichtet, sondern ĂŒber fĂŒnf Grundprinzipien:
- Verbesserung der Interaktion zwischen Rollen und Abteilungen
- Akzeptanz von Fehlern als unvermeidlicher Teil der Arbeit
- Schrittweises Umsetzen von VerÀnderungen
- Nutzung von Tools und anderer Automatisierung
- Messung aller messbaren Aspekte
Es handelt sich nicht nur um eine Ansammlung von Behauptungen, sondern um konkrete . Zum Beispiel mĂŒssen Sie bei der Akzeptanz von Fehlern die Risiken verstehen, die VerfĂŒgbarkeit und Unerreichbarkeit von Diensten mithilfe von etwas wie SLI () und SLO (), lernen, Postmortems zu schreiben, und sicherstellen, dass es nicht angsteinflöĂend ist, sie zu schreiben.
In der Disziplin SRE ist die Nutzung von Werkzeugen nur ein Teil des Erfolgs, jedoch kein unwesentlicher. Wir mĂŒssen uns stĂ€ndig technisch weiterentwickeln, beobachten, was in der Welt geschieht, und wie wir das in unserer Arbeit anwenden können.
Cloud-Native-Lösungen sind derzeit sehr beliebt. Nach dem modernen VerstĂ€ndnis der Cloud Native Computing Foundation ermöglichen Cloud-Native-Technologien Organisationen, skalierbare Anwendungen in modernen, dynamischen Umgebungen zu entwickeln und auszufĂŒhren, wie z.B. öffentlichen, privaten und hybriden Clouds. Beispiele hierfĂŒr sind Container, Service-Meshes, Microservices, unverĂ€nderliche Infrastruktur und deklarative APIs. All diese Techniken ermöglichen es schwach gekoppelten Systemen, elastisch, verwaltbar und gut beobachtbar zu bleiben. Gute Automatisierung ermöglicht es Ingenieuren, hĂ€ufig groĂe Ănderungen mit vorhersehbaren Ergebnissen vorzunehmen, ohne dies in eine anstrengende Arbeit zu verwandeln. All dies wird von einem Stack bekannter Werkzeuge wie Docker und Kubernetes unterstĂŒtzt.
Diese recht komplexe und vielschichtige Definition hĂ€ngt damit zusammen, dass das Thema selbst ziemlich kompliziert ist. Einerseits wird behauptet, dass neue Ănderungen in dieses System relativ einfach hinzugefĂŒgt werden sollten. Andererseits muss man verstehen, wie man eine containerisierte Umgebung schafft, in der schwach gekuppelte Dienste auf einer softwaredefinierten Infrastruktur leben und kontinuierlich ĂŒber CI/CD bereitgestellt werden, und rund um diese gesamte Struktur DevOps-Praktiken aufbaut â da muss man schon einige Erfahrungen sammeln.
Was kann man damit tun
Jeder geht mit diesen Herausforderungen anders um: Man könnte beispielsweise normale Stellenanzeigen veröffentlichen, um den Teufelskreis zu durchbrechen. Man könnte sich mit Begriffen wie DevOps und Cloud Native vertraut machen und sie korrekt und sinnvoll verwenden. Man könnte sich im Bereich DevOps weiterentwickeln und durch eigenes Beispiel korrekte AnsÀtze demonstrieren.
Wir veranstalten eine Konferenz , die die Möglichkeit bietet, tiefer in die Themen einzutauchen, ĂŒber die wir gerade gesprochen haben. DafĂŒr gibt es mehrere Vortragsgruppen:
- Prozesse und Kultur;
- Site Reliability Engineering;
- Cloud Native;
Wie wĂ€hlt man aus, wohin man gehen möchte? Hier gibt es einen feinen Punkt. Einerseits geht es bei DevOps um Interaktion, und wir wĂŒnschen uns sehr, dass Sie VortrĂ€ge aus verschiedenen Blöcken besuchen. Andererseits, wenn Sie ein Entwicklungsleiter sind, der zur Konferenz gekommen ist, um sich auf eine bestimmte Aufgabe zu konzentrieren, dann hĂ€lt Sie niemand auf â offensichtlich wird das ein Block ĂŒber Prozesse und Kultur sein. Vergessen Sie nicht, dass Sie nach der Konferenz Aufzeichnungen haben werden (nach AusfĂŒllen des Feedback-Formulars), also können Sie immer spĂ€ter weniger wichtige VortrĂ€ge ansehen.
Offensichtlich können Sie wĂ€hrend der Konferenz nicht gleichzeitig drei Tracks besuchen, deshalb gestalten wir das Programm so, dass in jedem Zeitfenster Themen fĂŒr jeden Geschmack vorhanden sind.
Es bleibt nur zu klĂ€ren, was zu tun ist, wenn Sie ein DevOps-Ingenieur sind! ZunĂ€chst versuchen Sie herauszufinden, womit Sie sich tatsĂ€chlich beschĂ€ftigen. Oft wird dieses Wort fĂŒr Folgendes verwendet:
- Entwickler, die sich mit Infrastruktur beschĂ€ftigen. FĂŒr Sie sind insbesondere Gruppen von VortrĂ€gen ĂŒber SRE und Cloud Native geeignet.
- Systemadministrator. Hier wird es komplizierter. DevOops ist nicht ĂŒber Systemadministration. GlĂŒcklicherweise gibt es viele groĂartige Konferenzen, BĂŒcher, Artikel, Videos im Internet usw. ĂŒber Systemadministration. Auf der anderen Seite, wenn Sie Interesse daran haben, mehr ĂŒber Kultur und Prozesse, Cloud-Technologien und das Leben mit Cloud Native zu erfahren, freuen wir uns, Sie zu sehen! Denken Sie darĂŒber nach: Sie sind ein Administrator, und was machen Sie dann weiter? Um nicht unerwartet in eine unangenehme Situation zu geraten, sollten Sie schon jetzt lernen.
Es gibt noch eine weitere Möglichkeit: Sie bestehen darauf und beharren darauf, dass Sie genau DevOps-Ingenieur sind und sonst nichts, egal was das bedeutet. Leider mĂŒssen wir sagen, DevOops ist eine Konferenz nicht fĂŒr DevOps-Ingenieure!

Folie aus in MĂŒnchen
DevOops 2020 Moskau findet am 29.-30. April in Moskau statt, Tickets sind bereits erhÀltlich. .
AuĂerdem können Sie bis zum 8. Februar. Bitte beachten Sie, dass Sie beim AusfĂŒllen des Formulars die Zielgruppe auswĂ€hlen mĂŒssen, die am meisten von Ihrem Vortrag profitieren wird (innerhalb der Liste steckt eine Ăberraschung).
Quelle: habr.com
