Zusammenfassung des Artikels Während sich das DevOps-Konzept weiterentwickelt, gibt es zunehmend Unklarheiten über die Verantwortlichkeiten verwandter Rollen wie DevOps, Site Reliability Engineer (SRE), Cloud Engineer und Platform Engineer. Obwohl sich diese Rollen überschneiden, weisen sie subtile Unterschiede in Schwerpunkt und Fähigkeiten auf. DevOps legt Wert auf die Zusammenarbeit zwischen Entwicklungs- und Betriebsteams, während SRE Software-Engineering-Praktiken auf den Betrieb anwendet und sich dabei auf die Systemzuverlässigkeit konzentriert. Cloud-Ingenieure konzentrieren sich auf die Verwaltung der Cloud-Infrastruktur, während Plattform-Ingenieure interne Entwicklerplattformen erstellen, um Entwicklern Self-Service-Betriebsfunktionen bereitzustellen. Rollenspezifikationen bleiben aufgrund der Heterogenität der DevOps-Praktiken und organisatorischer Widerstände unklar. Daher ist es wichtig, sich bei der Einstellung über die Rollenerwartungen und den organisatorischen Kontext im Klaren zu sein. Um Entwickler zu unterstützen und das volle Potenzial von DevOps auszuschöpfen, muss sichergestellt werden, dass alle betrieblichen Anforderungen erfüllt werden.
Wie ursprünglich konzipiert, ist DevOps eher eine Philosophie als eine Reihe von Praktiken, und es ist sicherlich keine Berufsbezeichnung oder Rollenspezifikation. Doch heute sind DevOps-Ingenieure, Site-Reliability-Ingenieure, Cloud-Ingenieure und Plattform-Ingenieure alle sehr gefragt – ihre Fähigkeiten überschneiden sich und Personalvermittler streuen lose verwandte Schlüsselwörter wie „CI/CD-Pipelines, Deployment Engineering, Cloud-Konfiguration und Kubernetes
Wann.“ Ich habe Kubiya.ai mitgegründet, meine Investoren haben mich dazu gedrängt, meinen Zielmarkt besser zu definieren, oder nicht? Ich habe viele davon gesehen Das Interesse von Arbeitssuchenden und Personalvermittlern an der Definition dieser Rollen reicht von Reddit-Beiträgen bis hin zu Webinaren. In diesem Artikel präsentiere ich meine Gedanken, erkenne aber auch an, dass es viel Raum für Interpretationen gibt Für viele Menschen ein heikles Thema – auf die Gefahr hin, ein Feuer zu entfachen, machen wir weiter.
Zuerst eine kurze Zusammenfassung dieser verschiedenen Rollen.
Eine allgemeine Übersicht über DevOps-, SRE-, Cloud- und Plattform-Rollen
DevOps-Rollen drehen sich um Teamarbeit und den Einsatz von Tools, um intelligenter und nicht härter zu arbeiten. Sie bringen Entwickler und Betriebe zusammen, um Releases zu beschleunigen, die Systemstabilität zu verbessern und alle auf dem gleichen Stand zu halten.SRE-Rolle Sie sind wie Ingenieure, die dafür sorgen, dass alles hinter den Kulissen reibungslos läuft, indem sie eng mit Entwicklern zusammenarbeiten, um Prozesse zu automatisieren und schnell auf alle Probleme zu reagieren.
Die Rolle eines Cloud-Ingenieurs ist genau das . Sie konzentrieren sich auf die Einrichtung und Verwaltung der Cloud-Infrastruktur und stellen sicher, dass diese effizient, sicher und kostengünstig ist. Sie verwenden Tools wie AWS oder Azure, um Umgebungen zu schaffen, in denen Anwendungen gedeihen können einer entwicklerfreundlichen Plattform, die es Entwicklern ermöglicht, ihre Anwendungen einfach zu verwalten, von der Einrichtung von Arbeitsabläufen bis zur Überwachung der Leistung, alles zum Nutzen aller Beteiligten. Entwicklung von DevOps und neuen ArbeitsnormenDevOps-Praktiken wurden in den 2000er Jahren weiterentwickelt, um der Notwendigkeit gerecht zu werden, die Release-Geschwindigkeit zu erhöhen und die Markteinführungszeit zu verkürzen und gleichzeitig die Systemstabilität aufrechtzuerhalten. Darüber hinaus ermöglichen separate Entwicklungsteams die unabhängige Arbeit an einzelnen Diensten und Anwendungen, was ein schnelleres Prototyping ermöglicht Iteration als je zuvor
Ein Entwicklungsteam, das sich auf Software-Releases konzentriert, und ein separates, einzigartiges Betriebsteam, das sich auf Systemstabilität und -sicherheit konzentriert. Dies behindert das Tempo, das viele Unternehmen anstreben, und Entwickler sind nicht immer in der Lage, Leistungsprobleme zu verhindern, bevor sie auftreten Wie ursprünglich angenommen, handelt es sich bei DevOps eher um eine Philosophie als um eine Reihe vorschreibender Praktiken – und zwar so sehr, dass es nicht einmal einen Konsens über die Menge und Art dieser Praktiken gibt. Manche Leute nennen „vier Säulen von DevOps“, andere nennen „fünf Säulen“ und wieder andere nennen sechs, sieben, acht oder neun Säulen. du kannst wählen. Verschiedene Organisationen implementieren DevOps auf unterschiedliche Weise (viele überhaupt nicht). Hier können wir das Dilemma der Arbeitsnormen, in dem wir uns befinden, vorwegnehmen. Wie der Gründer von DevOpsDays, Patrick Debois, betont: „Es ist gut oder schlecht, keine Definition zu haben. Die Leute ... haben im Moment wirklich Probleme damit, was DevOps bedeutet. Aber andererseits bedeutet es, dass es offen wird, wenn nicht alles aufgeschrieben ist.“ bis hin zur Bewegung in mehrere Richtungen.“Die Antwort auf DevOps besteht darin, Silos aufzubrechen und eine breitere Zusammenarbeit durch Tools, kulturelle Veränderungen und gemeinsame Metriken zu fördern. Den Entwicklern gehört, was sie bauen – sie können sie durchgängig bereitstellen, überwachen und Fehler beheben. Der Betrieb wird die Bedürfnisse der Entwickler besser verstehen, sich frühzeitig im Produktlebenszyklus engagieren und Schulungen, Tools und Leitplanken bereitstellen, um den Entwickler-Self-Service zu fördern.
Eine Sache, die DevOps nicht hat, ist die Rollenspezifikation. Heute stellen viele Unternehmen aktiv „DevOps-Ingenieure“ ein. Schlimmer noch, es ist wenig darüber bekannt, was eine Position ausmacht – die geforderten Fähigkeiten variieren stark von einer Position zur nächsten. Verwandte und sich überschneidende Rollen wie „Site Reliability Engineer“, „Platform Engineer“ und „Cloud Engineer“ trüben die ohnehin schon trüben Gewässer.
Wie sind wir hierher gekommen? Was sind die wirklichen Unterschiede (falls vorhanden) zwischen diesen Rollen?
Das Aufkommen neuer IT-Rollen
Während DevOps an Bedeutung gewinnt, verschwimmen die Rollen und Verantwortlichkeiten im DevOps-Ökosystem zunehmend. Diese Unklarheit hat zur Entstehung verwandter Rollen wie Site Reliability Engineer (SRE), Cloud Engineer und Plattform Engineer geführt. Jeder Charakter hat seinen eigenen einzigartigen Fokus und seine eigenen Fähigkeiten.
Inspiriert durch Googles Ansatz zur Verwaltung großer Systeme kombiniert SRE Softwareentwicklungspraktiken mit Betriebsabläufen, um die Zuverlässigkeit und Leistung der Dienste sicherzustellen. Cloud-Ingenieure konzentrieren sich auf die Bereitstellung und Verwaltung der Cloud-Infrastruktur und nutzen Plattformen wie AWS, Azure oder Google Cloud, um Skalierbarkeit und Effizienz zu optimieren. Plattformingenieure hingegen konzentrieren sich auf den Entwurf und die Wartung einer internen Entwicklerplattform, die Entwicklern Self-Service-Funktionen zur Verwaltung der betrieblichen Aspekte des Anwendungslebenszyklus bietet.
Obwohl es Überschneidungen zwischen diesen Rollen gibt, haben sie jeweils unterschiedliche Fachgebiete und Schwerpunkte. SREs legen Wert auf Zuverlässigkeit und Ausfallsicherheit, Cloud-Ingenieure konzentrieren sich auf die Verwaltung der Cloud-Infrastruktur und Plattform-Ingenieure konzentrieren sich auf die Erstellung entwicklerzentrierter Plattformen. Das Verständnis der Nuancen dieser Rollen ist für Unternehmen von entscheidender Bedeutung, um ihre Teams effektiv zu strukturieren und das volle Potenzial der DevOps-Prinzipien in ihren Softwarebereitstellungspipelines auszuschöpfen.
DevOps-Widerstand und Verwirrung
Meiner Erfahrung nach war es für viele Organisationen eine Herausforderung, die ursprüngliche Vision von DevOps zu erreichen – also ein optimales Gleichgewicht zwischen Spezialisierung, Zusammenarbeit und Teilen zu erreichen.
Puppets State of DevOps Report 2021 ergab, dass sich nur 18 % der Befragten als „hochentwickelte“ DevOps-Praktiker betrachteten. Wie das DevOps Topologies-Team beschreibt, ergeben sich einige dieser Vorteile aus besonderen Umständen. Beispielsweise verfügen Organisationen wie Netflix und Facebook wohl über ein einziges webbasiertes Produkt, was die Unterschiede zwischen den Produktströmen verringert und somit eine weitere Trennung von Entwicklern und Betriebspersonal erzwingt.
Andere legen strenge Bedingungen und Standards für die Zusammenarbeit fest, wie zum Beispiel das SRE-Team von Google (dazu später mehr!), das auch die Macht hat, Software abzulehnen, die die Systemleistung beeinträchtigt.
Viele Menschen auf niedrigeren Ebenen der DevOps-Entwicklung haben aufgrund von organisatorischem Widerstand gegen Veränderungen, Fachkräftemangel, mangelnder Automatisierung oder veralteter Architektur Schwierigkeiten, das Versprechen von DevOps vollständig umzusetzen. Daher wird die Gruppe eine Vielzahl unterschiedlicher Ansätze zur DevOps-Implementierung anwenden, einschließlich einiger der DevOps-„Anti-Typen“, die in DevOps-Topologien beschrieben werden.
Für viele Menschen sind Entwicklung und Betrieb immer noch isoliert. Für andere wird DevOps ein Tool-Team sein, das innerhalb der Entwicklung sitzt und für Bereitstellungspipelines, Konfigurationsmanagement usw. verantwortlich ist, aber vom Betrieb isoliert bleibt. Für andere wird DevOps eine einfache Neuerfindung von SysAdmin sein, bei der DevOps-Ingenieure in Betriebsteams eingestellt und ihre Qualifikationserwartungen erweitert werden, aber es findet kein wirklicher kultureller Wandel statt.
Die schnelle Einführung der Nutzung öffentlicher Clouds hat auch das Vertrauen in die Aussichten eines Self-Service-DevOps-Ansatzes gestärkt. Aber die Fähigkeit, Infrastruktur nach Bedarf bereitzustellen und bereitzustellen, ist weit davon entfernt, Entwicklern die Bereitstellung und Ausführung von Anwendungen und Diensten durchgängig zu ermöglichen. Leider ist dies nicht allen Unternehmen klar, sodass die Automatisierung in vielen Unternehmen auf der Ebene der Infrastrukturautomatisierung und des Konfigurationsmanagements ins Stocken gerät.
DevOps hat so viele verschiedene Ausprägungen, dass es keine Überraschung ist, dass die Rollenspezifikationen von DevOps nicht klar definiert sind. Für eine Organisation könnte es gleichbedeutend sein mit Deployment Engineering im engeren Sinne – vielleicht einfach nur der Erstellung einer CI/CD-Pipeline –, während es sich andererseits im Wesentlichen um eine Neuerfindung von Abläufen handeln könnte, mit der Fähigkeit, Infrastruktur zu schreiben. Zusätzliche Fähigkeiten für die Codierung , Bereitstellungsautomatisierung und interne Tools. Für andere kann es jede Graustufe dazwischen sein, daher haben wir hier eine schwindelerregende Liste von DevOps-Jobrollen.
SRE-, Cloud Engineer- und Platform Engineer-Rollen
Je nach einstellender Organisation kann ein DevOps-Ingenieur also ein vollständig auf die Bereitstellung ausgerichteter Ingenieur oder ein modernerer Systemadministrator sein.
Was ist mit anderen verwandten Rollen: SRE, Cloud-Ingenieur und Plattform-Ingenieur? Hier sind meine Gedanken zu jeder Frage:
Site Reliability Engineer
Das Konzept von SRE wurde von Ben Traynor bei Google eingeführt, der es wie folgt beschrieb: „Wenn Sie den Betrieb als Softwareproblem behandeln und ihn mit Softwareentwicklern besetzen, was tun?“ bekommst du, wenn du das tust? Die Idee besteht darin, dass Menschen Betriebs- und Softwareentwicklungskompetenzen kombinieren, um Produktionssysteme zu entwerfen und zu betreiben.
Site Reliability Engineers (SREs) kombinieren Software-Engineering-Praktiken mit betrieblichen Verantwortlichkeiten, um die Zuverlässigkeit, Skalierbarkeit und Leistung von Systemen und Diensten sicherzustellen. Sie sind auf die Entwicklung und Implementierung automatisierter Lösungen zur Verwaltung und Überwachung der Infrastruktur, zur Bereitstellung von Software und zur proaktiven Reaktion auf Vorfälle spezialisiert. SREs arbeiten eng mit Entwicklungsteams zusammen, um Zuverlässigkeitsstandards festzulegen und durchzusetzen, Service Level Objectives (SLOs) zu definieren und Praktiken wie Fehlerbudgetierung zu implementieren, um Innovation und Systemstabilität in Einklang zu bringen. Ihr Ziel ist es, Produktionsumgebungen durch kontinuierliche Verbesserung und Iteration hochverfügbar und belastbar zu halten.
Servicezuverlässigkeit Die Definition eines Service Level Agreements (SLA) ist von entscheidender Bedeutung, um sicherzustellen, dass Entwicklungsteams vorab den Nachweis erbringen, dass die Software strengen Betriebsstandards entspricht, bevor sie zur Bereitstellung akzeptiert wird. Darüber hinaus streben SREs danach, Infrastruktursysteme skalierbarer und wartbarer zu machen, einschließlich der Entwicklung und des Betriebs standardisierter CI/CD-Pipelines und Cloud-Infrastrukturplattformen, die Entwickler für diesen Zweck nutzen können.
Wie Sie sehen, überschneidet sich dies erheblich mit der Definition einiger Leute eines DevOps-Ingenieurs. Vielleicht ist dies eine Möglichkeit, über den Unterschied nachzudenken. Im Gegensatz dazu bestand der ursprüngliche Zweck von DevOps darin, die Release-Geschwindigkeit zu erhöhen, während das Ziel von SRE darin besteht, vor dem Hintergrund wachsender Systemgröße und Produktkomplexität zuverlässigere Systeme aufzubauen. In gewisser Weise trafen sich die beiden also in der Mitte.
Cloud-Ingenieur
Da die Cloud-Funktionen weiter wachsen, haben einige Organisationen spezielle Rollen für Cloud-Ingenieure geschaffen. Auch wenn es keine festen Regeln gibt, konzentrieren sich Cloud-Ingenieure in der Regel auf die Bereitstellung und Verwaltung der Cloud-Infrastruktur und wissen, wie man Umgebungen für Cloud-native Anwendungen erstellt. Sie werden zu Experten für AWS/Azure/Google Cloud Platform. Abhängig vom Grad der Überschneidung der Verantwortlichkeiten mit DevOps-Ingenieuren können diese auch über Kenntnisse in Terraform, Kubernetes usw. verfügen.
Darüber hinaus nutzen Cloud-Ingenieure ihr Fachwissen in Cloud-Technologien, um skalierbare und elastische Cloud-Architekturen zu entwerfen, zu implementieren und zu warten und so sicherzustellen, dass Anwendungen und Systeme in Cloud-Umgebungen effizient und sicher laufen. Cloud-Ingenieure können auch an Automatisierungs-, Überwachungs- und Kostenoptimierungsstrategien arbeiten, um die Vorteile von Cloud Computing für ihre Unternehmen zu maximieren.
Da die Cloud-Einführung immer weiter voranschreitet, umfasst die Rolle des Cloud-Ingenieurs das, was früher als Infrastruktur-Ingenieur bekannt war, mit einem anfänglichen Schwerpunkt auf Cloud- und On-Premises-Infrastrukturmanagement.
Plattformingenieure
Interne Entwicklerplattformen (IDPs) haben sich als neueste Lösung für die Herausforderung herausgestellt, Entwicklerproduktivität mit Systemkontrolle und -stabilität in Einklang zu bringen. Plattformingenieure entwerfen und warten IDPs, um Entwicklern Self-Service-Funktionen zur unabhängigen Verwaltung betrieblicher Aspekte des gesamten Anwendungslebenszyklus bereitzustellen – von der Bereitstellung der CI/CD-Infrastruktur über die Container-Orchestrierung bis hin zur Überwachung und Beobachtbarkeit.
Viele Entwickler wollen einfach keine Operationen durchführen – zumindest nicht im herkömmlichen Sinne. Als kreativer Künstler möchte sich ein Entwickler keine Gedanken darüber machen, wie die Infrastruktur funktioniert. Daher ist es wichtig, dass die Plattform als ein Produkt betrachtet wird, das Kontrolle durch die Schaffung einer überzeugenden Self-Service-Entwicklererfahrung ermöglicht, anstatt Standards und Prozesse durchzusetzen.
Begriffsklärung: Rollenerwartungen klären
Wo sind also die Kandidaten für all diese verschiedenen Rollen? Vielleicht besteht die einzig realistische Antwort im Moment (zumindest bis DevOps-Implementierungsmethoden verbreiteter werden) darin, sicherzustellen, dass Sie während des Vorstellungsgesprächs alles fragen, was Sie brauchen, und sich über die Rollenerwartungen und den organisatorischen Kontext, in dem Sie eingestellt werden, im Klaren sein.
Personalvermittler können sich aus verschiedenen Gründen dafür entscheiden, ein weites Netz auszuwerfen und Ihre Stellenausschreibungen mit beliebten Schlüsselwörtern zu füllen. Letztendlich müssen aber im Rahmen des Bewerbungsgesprächs und der Gespräche mit Referenzen Einzelheiten über die Erfahrungen und Fähigkeiten des Kandidaten ans Licht kommen.
Ob Sie DevOps, Plattform-Ingenieur, Cloud-Ingenieur oder sogar SRE sind, meiner Meinung nach hilft die Sicherstellung, dass Sie alle betrieblichen Anforderungen Ihrer Entwickler unterstützen, ihnen dabei, sich auf die Entwicklung des nächstbesten Produkts zu konzentrieren.
Das obige ist der detaillierte Inhalt vonDevOps, SRE, Plattformingenieur, Erklärung der Cloud-Rolle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!