Die Idee, einen DevOps-Ingenieur zu haben, ist in letzter Zeit recht populär geworden , und es scheint ansprechend, nur eine Person zu haben, die in der Lage ist, viele der Vorteile von DevOps zu nutzen, wie im Puppet-Blog beschrieben :
Unternehmen, die DevOps-Praktiken anwenden, sind überaus leistungsfähig: Sie stellen Code bis zu 30-mal häufiger bereit als ihre Konkurrenten, und laut unserem Bericht zum DevOps-Status von 2015 schlagen 50 Prozent ihrer Bereitstellungen fehl.
Ich habe jedoch viel Widerspruch gegen die Idee eines DevOps-Ingenieurs bemerkt, der versucht, diese Verbesserungen vorzunehmen:
Trotz der weitgehenden Übereinstimmung mit den DevOps-Kernattributen wird der Begriff „DevOps-Ingenieur“ kontrovers diskutiert. Einige sagen, der Begriff selbst widerspreche den DevOps-Werten. Jez Humble, Mitautor von Continuous Delivery, weist darauf hin, dass die bloße Anrufung eines DevOps-Ingenieurs zusätzlich zu dev und ops ein drittes Silo schaffen kann - "... eindeutig eine schlechte (und ironische) Möglichkeit, diese Probleme zu lösen . "
Warum ist es für ein Unternehmen möglicherweise keine so gute Idee, einen DevOps-Ingenieur einzustellen, um zu versuchen, DevOps zu implementieren, im Gegensatz zu den organisatorischen Veränderungen, die von Blogs wie diesem befürwortet werden ? Werden die Vorteile durch eine isolierte DevOps-Rolle zunichte gemacht?
quelle
Antworten:
TL; DR : Sie sollten niemals versuchen, ein DevOps-Team einzustellen
Grundsätzlich gibt es drei am häufigsten zu besetzende Rollen:
Diese Rollen unterscheiden sich von Ihren 6 wesentlichen Softwareentwicklungsrollen, aus denen sich die Softwareentwicklungsorganisation traditionell zusammensetzt:
Gehen wir die drei Rollen einzeln durch und sehen, wie sie passen
DevOps Architekt oder Evangelist
In einigen Fällen und für kleinere und mittlere Unternehmen beginnen Sie den Prozess möglicherweise mit der Einstellung einer Beratungsorganisation wie DORA.
DevOps-Ingenieur
CI / CD-Ingenieur
quelle
Ich würde DevOps Ingenieur argumentieren wie in Ihrem beschriebene Frage Link ist in erster Linie eine Rolle Sysadmin. Zitiere die Fähigkeiten hier als Hintergrund für diese Antwort:
In dieser Beispieljobbeschreibung ist DevOps Engineer nur ein Modewort für einen Systemadministrator, der sich mit Cloud-basierter Infrastruktur und Automatisierung auskennt, in der Lage ist, Code zu lesen, um bei der Diagnose zu helfen, und sich der Hochverfügbarkeitspraktiken und -lösungen bewusst ist.
Dies hängt eng mit den DevOps-Praktiken und der Silo-Breaking-Kultur zwischen dev und op zusammen, wie in dieser Frage dargestellt. Worin besteht der Unterschied zwischen Sysadmin und DevOps Engineer?
Es wird keine gute Idee sein, weil ein Sysadmin, wie gut er / sie mit der Praxis und Kultur der Entwickler umgehen kann, nicht die richtige Person ist, um eine Unternehmenstransformation voranzutreiben. Sie werden diese Person nicht mit Blick auf einen Kulturwandel einstellen, sondern mit Blick auf eine Werkzeugkonfigurationsansicht, die nicht wirklich hilft, die Prozesse zu unterbrechen. Dies wird möglicherweise auch von seinen Kollegen schlecht aufgenommen, und Sie werden nur Widerstand gegen die Änderung leisten, wenn vorher keine Kulturänderung geplant ist
Die Antwort von @ Jiri Klouda gibt einen guten Überblick über eine akzeptable Rolle als DevOps-Ingenieur sowie über den Schritt in der Veränderung, der Wert bringt und zum Erfolg beiträgt.
quelle
Mir ist klar, dass diese Antwort möglicherweise nicht perfekt zu Ihnen passt, aber ich habe Folgendes getan
Ich war der erste Entwickler, der bei einem sehr geschäftigen E-Commerce-Startup mit unglaublich viel Verkehr arbeitete. Mir ist klar, dass das Unternehmen noch jung war und dass ich für eine Weile die einzige technische Inhouse-Ressource sein würde.
Da ich das wusste, beschloss ich, meine Infrastruktur so zu strukturieren, dass ich ZERO-Systemadministration durchführen musste.
Ich habe mich für ein Hosting in der Cloud entschieden, weil ich dadurch weniger Systemwartung hatte. Ich suchte einen AWS-Ingenieur mit Puppenerfahrung. Gemeinsam haben wir eine autoskalierbare Infrastruktur entwickelt, die als Code in Cloudformation geschrieben wurde. Alle Konfigurationsdateien wurden in Puppet versioniert.
Dies ermöglichte es mir als Entwickler, diese Rolle als Entwickler zu übernehmen. Ich habe Code-Release-Tools in Python und Fabric erstellt. Ich habe dasselbe Skript verwendet, um meine Anwendung auf neue Server zu booten, die automatisch skaliert werden.
Das hat sehr gut funktioniert und auch heute, drei Jahre später, mache ich noch keine Systemwartung. Wir haben einen Systemadministrator (denselben AWS-Ingenieur) für 10 Stunden im Monat, und ich versuche, seine Sprints so zu strukturieren, dass ich ihn nicht ärgere. Auf diese Weise respektiere ich seine Zeit und verwalte seine Sprints so gut ich kann.
Wenn ein System eine verminderte Leistung aufweist, beende ich es einfach und ein anderes dreht sich an seiner Stelle.
Ich hoffe, diese Antwort könnte Ihnen irgendwie nützen
quelle
Sie sollten keinen DevOps-Ingenieur einstellen, da DevOps so viele verschiedene Disziplinen umfasst, dass eine Person möglicherweise nicht in allen Aspekten dieser Disziplinen Experte sein kann. Wenn Sie einen Alleskönner einstellen, stellen Sie einen Meister von keinem ein.
DevOps ist unbedingt ein Team basierte Unterfangen , und Sie können möglicherweise nicht eine Person erwarten , die Erwartungen eines ganzen Teams zu unterstützen. Betrachten Sie den Umfang von DevOps. Eine Person kann unmöglich:
In einigen der oben genannten Bereiche gibt es sogar Unterdisziplinen , z. B. Windows-Systemadministrator oder Linux / Unix-Systemadministrator, oder Sie verwenden in Ihrem System mehr als eine Codierungssprache.
Kein Mensch kann möglicherweise ein Experte in all dies, was bedeutet , dass , wenn Sie Adverting für einen DevOps Ingenieur, als der schwächste Bereich auf Ihrem DevOps Team Networking ist, führen Sie eine sehr gute Arbeit bei der Werbung für Ihre Notwendigkeit für eine Vernetzung nicht tun Spezialisten für Ihr DevOps- Team . Während keine Person einer bestimmten Rolle im DevOps-Team zugeordnet werden sollte, würden Sie Ihrem Team einen schlechten Dienst erweisen, indem Sie so tun, als gäbe es keine Spezialisten oder Fachexperten (KMU) im Bereich von DevOps. Das Pendel von einem Extrem zum anderen zu schwingen - vom Silo bis zum Vortäuschen, wie jede Rolle in Ihrem DevOps-Team das gleiche ist - kann ebenso viele Probleme verursachen.
Obwohl es gut ist, Teammitglieder in mehr als einer Disziplin zu trainieren - insbesondere in den überlappenden Bereichen -, ist es einfach keine Übung, von ihnen zu erwarten, dass sie in der Lage sind, ein so großes Wissensvolumen zu beherrschen.
Das bedeutet, dass jeder, der Ihnen sagt, dass er alle Aspekte von DevOps kennt, Sie wahrscheinlich anlügt. Stellen Sie einen Spezialisten in dem Bereich ein, in dem Sie am schwächsten sind und der in einem DevOps-Team gearbeitet hat - und keinen "DevOps-Ingenieur".
quelle
Genau diese Herausforderung hatte ich bei der Implementierung bei ASOS. Das Ziel für uns ist es, Teams zu haben, die sich selbst versorgen und daher eine bestimmte Rolle spielen können. Wir leben jedoch in der realen Welt und für viele Entwickler ist es nicht das Wichtigste, über gute DevOps-Praktiken nachzudenken. Deshalb brauchen sie Hilfe dahin kommen.
Was wir gemacht haben war:
Die Amtszeit der DevOps-Ingenieure verlieren, DevOps ist etwas, das wir alle tun sollten, nicht unsere Berufsbezeichnung, deshalb haben wir sie etwas anderes genannt.
Sie wurden auf Teams verteilt, aber nur auf 1 von 3. Dies bedeutete, dass sie kein Macher sein konnten, sondern als Kompetenz angesehen werden mussten, um Teams dabei zu helfen, sich selbst zu verbessern und ihre eigenen Probleme zu lösen (unter Anleitung).
unterhielt auch eine zentrale Funktion als Kompetenzzentrum und kümmerte sich um die Überlegungen des Unternehmens, alles, was alle Teams betrifft
Während wir uns weiterentwickeln, überprüfen wir dieses Modell, aber für uns funktioniert es bislang effektiv
quelle
Ich denke nicht, dass Sie in der Lage sein werden, eine endgültige Antwort darauf zu bekommen, weil es so aussieht, als würden viele Dinge eine Rolle spielen.
Ich habe gerade ein Vorstellungsgespräch für eine Stelle abgeschlossen und einen Titel als DevOps-Ingenieur erhalten, aber ich arbeite unter anderem als Sys Admin. Dies ist aufgrund der Größe des Unternehmens und der Art der anwendungsbezogenen Verwaltung nur aus Gründen der Notwendigkeit erforderlich. Einige Positionen, für die ich ein Interview geführt habe, hatten einen ähnlichen Titel und sie suchten mehr jemanden von der Seite der Entwicklung, was Erfahrung angeht. Sie erwarteten mehr Schreiben von Code und keinen Systemadministrator, der Automatisierung betreibt. SRE scheint ein Titel zu sein, der an Popularität gewinnt, also könnte dies der richtige Weg sein. Ich hatte mich selbst als Systemadministrator und Automatisierungstechniker als letzten Job, da ich in der Regel mit dem Schreiben von Texten beschäftigt war und der Koch die meiste Zeit stapelt. Das Unternehmen verfolgte ein ziemlich gutes Devop-Modell, bei dem alle an Bord waren und die Entwickler neben den Einsatzkräften arbeiteten, aber ich denke, ihre Zukunft hat nicht geklappt.
Jetzt, da ich in dieser Position bin, versuche ich, Horn in irgendeiner Automatisierung zu beschlagen und wir haben einige Leuteprobleme, die wir aussortieren müssen. Menschen kommen und gehen und einige der Workflows wurden entworfen, weil es jemand anders so entworfen hat und nicht, weil es dazu passt, wie Menschen arbeiten.
Grundsätzlich denke ich, Sie sollten die Stellenbeschreibung herausfinden und sich nicht so viele Gedanken über den Titel machen, es sei denn, es ist gebunden, irgendwie zu zahlen, oder Sie denken, der eine oder andere würde die richtige Art von Leuten anziehen.
quelle
Wenn Sie sich mit der Bedeutung von DevOps befassen und einem "einen wahren Weg" folgen. Sie sollten keinen DevOps-Ingenieur einstellen. Sie sollten einen Automation Engineer, einen Deployment Engineer, einen Platform Architect oder eine Reihe anderer Rollen beauftragen, die genau das tun, was Sie benötigen.
Wenn es Ihnen nicht wichtig ist, ein echter DevOps-Praktiker zu sein, können Sie es so nennen, wie Sie möchten.
quelle