Wir verstehen, worauf es bei der Methodik ankommt und wem sie zugute kommen kann.
Wir werden auch über DevOps-Spezialisten sprechen: ihre Aufgaben, Gehälter und Fähigkeiten.
Foto von Matt Moor / Flickr / CC BY-SAWas ist DevOps?
DevOps ist eine Softwareentwicklungsmethode, deren Aufgabe es ist, die Interaktion von Programmierern und Systemadministratoren in einem Unternehmen herzustellen. Wenn IT-Experten aus verschiedenen Abteilungen die wesentlichen Aufgaben des jeweils anderen nicht verstehen, verzögert sich die Veröffentlichung neuer Anwendungen und Updates für sie.
DevOps bildet einen „nahtlosen“ Entwicklungszyklus und trägt so dazu bei, die Veröffentlichung des Softwareprodukts zu beschleunigen. Die Beschleunigung wird durch die Einführung von Automatisierungssystemen erreicht. Außerdem beteiligen sich Programmierer an der Einrichtung von Servern und der Suche nach Fehlern. Sie können beispielsweise automatisierte Tests schreiben.
Somit wird eine Interaktion zwischen Abteilungen hergestellt. Die Mitarbeiter beginnen besser zu verstehen, welche Phasen ein Softwareprodukt durchläuft, bevor sie in die Hände des Benutzers fallen.
Wenn der Entwickler versteht, womit der Administrator beim Einrichten des Servers konfrontiert ist, versucht er, mögliche „scharfe Ecken“ im Code auszugleichen. Dies reduziert die Anzahl der Fehler bei der Bereitstellung der Anwendung - laut Statistik
verringert sie
sich um das Fünffache.
Wer braucht und braucht keine Methodik
Viele
IT-Experten glauben, dass DevOps jedem Unternehmen zugute kommt, das Software entwickelt. Dies gilt auch dann, wenn das Unternehmen ein einfacher Verbraucher von IT-Diensten ist und keine eigenen Anwendungen entwickelt. In diesem Fall wird die Implementierung der DevOps-Kultur dazu beitragen, sich auf Innovation zu konzentrieren.
Startups
sind eine Ausnahme, aber hier hängt alles von der Größe des Projekts ab. Wenn Sie ein Minimum Viable Product (MVP) auf den Markt bringen möchten, um eine neue Idee zu testen, können Sie auf DevOps verzichten. Beispielsweise hat der Gründer von Groupon zu Beginn der Arbeit am Service selbst alle Angebote manuell auf der Website veröffentlicht und Bestellungen gesammelt. Er benutzte keine Automatisierungstools.
Die Implementierung einer Methodik und von Automatisierungstools ist nur dann sinnvoll, wenn die Anwendung an Popularität gewinnt. Dies wird dazu beitragen, Geschäftsprozesse einzurichten und die Veröffentlichung von Updates zu beschleunigen.
So implementieren Sie DevOps
Ferner einige Empfehlungen für den Übergang zu einer neuen Methodik.
Identifizieren Sie Probleme in Geschäftsprozessen. Markieren Sie vor der Implementierung der Methodik die Ziele und Probleme der Organisation. Die Strategie für den Wechsel zu DevOps hängt von diesen ab. Erstellen Sie dazu eine Liste mit Fragen, zum Beispiel:
- Was dauert am meisten, um Software zu aktualisieren?
- Ist es möglich, diesen Prozess zu automatisieren?
- Beeinflusst die Struktur der Organisation dies?
Details zur Identifizierung von Problemen in der Organisation
finden Sie in den Büchern „
Project Phoenix“ und „
DevOps Guide “ der Autoren der Methodik.
Ändern Sie die Kultur im Unternehmen. Es ist wichtig, alle Mitarbeiter davon zu überzeugen, ihre gewohnte Arbeitsweise zu ändern und ihr Kompetenzspektrum zu erweitern. Auf Facebook sind beispielsweise alle Programmierer für den gesamten Lebenszyklus der Anwendung verantwortlich: vom Schreiben des Codes bis zur Implementierung. Auch auf Facebook gibt es keine separate Testabteilung - die Tests werden von den Entwicklern selbst geschrieben.
Fangen Sie klein an. Wählen Sie den Prozess aus, der beim Freigeben von Updates am meisten Zeit und Mühe kostet, und automatisieren Sie ihn. Dies
kann ein Test- oder Anwendungsbereitstellungsprozess sein. Experten
raten als erstes, verteilte Tools zur Versionskontrolle zu implementieren. Mit ihnen ist es einfacher, die Quelle zu verwalten. Unter diesen Lösungen sind die bekanntesten Git, Mercurial, Subversion (SVN) und CVS.
Es lohnt sich auch, auf die kontinuierlichen Integrationssysteme zu achten, die für die Montage und Prüfung des Endprodukts verantwortlich sind. Beispiele für solche Tools sind Jenkins, TeamCity und Bamboo.
Verbesserungen messen. Entwickeln Sie Metriken für die Wirksamkeit eingebetteter Lösungen und erstellen Sie eine Checkliste. Metriken können die Häufigkeit von Releases, die für die Arbeit an Softwarefunktionen aufgewendete Zeit und die Anzahl der Fehler im Code sein. Besprechen Sie die Ergebnisse nicht nur mit den Managern, sondern auch mit dem Rest des am Projekt beteiligten Teams. Fragen Sie, welche Werkzeuge fehlen. Beachten Sie diese Anforderungen, wenn Sie Ihre Prozesse weiter optimieren.
Kritik an DevOps
Die Methodik
hilft Unternehmen zwar dabei, Entscheidungen über die Anwendungsentwicklung schneller zu treffen,
verringert die Anzahl der Softwarefehler und ermutigt die Mitarbeiter, neue Dinge zu lernen. Sie hat jedoch auch Kritiker.
Es wird
angenommen, dass Programmierer die Details der Arbeit von Systemadministratoren nicht verstehen sollten. Angeblich führt DevOps dazu, dass anstelle von Spezialisten für Entwicklung oder Verwaltung Menschen im Unternehmen auftreten, die alles verstehen, aber nur oberflächlich.
Es wird auch angenommen, dass DevOps
nicht mit schlechtem Management
funktioniert . Wenn die Teams von Entwicklern und Administratoren keine gemeinsamen Ziele haben, ist dies die Schuld von Managern, die die Interaktion zwischen den Teams nicht organisieren. Um dieses Problem zu lösen, benötigen wir keine neue Methodik, sondern ein System zur Bewertung von Managern auf der Grundlage des Feedbacks von Untergebenen. Hier können Sie lesen,
welche Fragen in den Umfrageformularen für Mitarbeiter enthalten sein sollten .
Foto Ed Ivanushkin / Flickr / CC BY-SAWer ist ein DevOps-Ingenieur?
Der DevOps-Ingenieur implementiert die DevOps-Methodik. Es synchronisiert alle Phasen der Erstellung eines Softwareprodukts: vom Schreiben von Code bis zum Testen und Freigeben einer Anwendung. Ein solcher Spezialist steuert die Entwicklungs- und Verwaltungsabteilungen und automatisiert die Ausführung ihrer Aufgaben durch die Einführung verschiedener Softwaretools.
Das Merkmal des DevOps-Ingenieurs ist, dass er viele Berufe kombiniert: Administrator, Entwickler, Tester und Manager.
Joe Sanchez, DevOps-Evangelist bei VMware, einem Unternehmen für Virtualisierungssoftware,
erläuterte eine Reihe von Fähigkeiten, die ein DevOps-Ingenieur besitzen muss. Zusätzlich zu den offensichtlichen Kenntnissen der DevOps-Methodik sollte diese Person Erfahrung in der Verwaltung von Windows und Linux sowie Erfahrung mit Automatisierungstools wie
Chef ,
Puppet ,
Ansible haben . Er sollte auch in der Lage sein, Skripte und Code in mehreren Sprachen zu schreiben und Netzwerktechnologien zu verstehen.
Der DevOps-Ingenieur ist für die Automatisierung von Aufgaben im Zusammenhang mit der Konfiguration und Bereitstellung von Anwendungen verantwortlich. Die Softwareüberwachung ruht auch auf seinen Schultern. Um diese Probleme zu lösen, verwendet er verschiedene Konfigurationsmanagementsysteme, Virtualisierungslösungen und Cloud-Tools zum Ressourcenausgleich.
Wer stellt ein
DevOps-Ingenieure können jeder Organisation zugute kommen, deren Geschäft die Entwicklung von Anwendungen oder die Verwaltung einer großen Anzahl von Servern umfasst. IT-Giganten wie Amazon, Adobe und Facebook stellen DevOps-Ingenieure ein. Sie arbeiten auch für Netflix, Walmart und Etsy.
Nur Startups
stellen keine DevOps-Ingenieure ein. Ihre Aufgabe ist es, ein minimal lebensfähiges Produkt herauszubringen, um eine neue Idee zu testen. In den meisten Fällen können Startups auf DevOps verzichten.
Wie viel zahlen sie?
DevOps-Ingenieure
verdienen am meisten in der Branche. Das durchschnittliche Gehalt solcher Spezialisten in der Welt liegt zwischen 100 und 125 Tausend Dollar pro Jahr.
In den USA
erhalten sie
90.000 Dollar pro Jahr (500.000 Rubel pro Monat). In Kanada erhalten sie 122.000 Dollar pro Jahr (670.000 Rubel pro Monat) und in Großbritannien 67,5.000 Pfund pro Jahr (490.000 Rubel pro Monat).
In Russland sind Moskauer Unternehmen
bereit , DevOps-Spezialisten zwischen 100 und 200.000 Rubel pro Monat zu zahlen. In St. Petersburg sind die Arbeitgeber etwas großzügiger - sie bieten 160 bis 360.000 Rubel pro Monat an. In den Regionen beträgt das Gehalt 100-120 Tausend Rubel pro Monat.
Wie werde ich DevOps-Spezialist?
DevOps ist eine relativ neue Richtung in der IT, daher gibt es keine festgelegte Liste von Anforderungen für DevOps-Ingenieure. In den offenen Stellen umfassen die Anforderungen für diese Position Debian- und CentOS-Verwaltungsfähigkeiten und die Fähigkeit, mit Festplatten-
RAID-Arrays zu arbeiten .
Daraus können wir schließen, dass der DevOps-Ingenieur zunächst einen guten technischen Ausblick haben muss. Für eine solche Person ist es wichtig, ständig neue Werkzeuge und Technologien zu lernen.
Der einfachste Weg, ein DevOps-Ingenieur zu werden, ist der Systemadministrator oder Entwickler. Sie haben bereits eine Reihe von Fähigkeiten, die nur entwickelt werden müssen. Die Hauptaufgabe besteht darin, ein Mindestmaß an Kenntnissen über DevOps zu vertiefen, zu verstehen, wie mit Automatisierungstools gearbeitet wird, und die Lücken in den Fähigkeiten der Verwaltung, Programmierung und Virtualisierung zu schließen.
Um zu verstehen, wo noch Wissen fehlt, können Sie die
Mini-Wikipedia auf GitHub oder eine
mentale Karte verwenden . Die Bewohner von Hacker News
empfehlen außerdem , die Bücher
Phoenix Project und
DevOps Guide (die wir oben erwähnt haben) sowie
DevOps Philosophy zu lesen
. Die Kunst des IT-Managements “unter der Unterschrift von O'Reilly Media.
Sie können auch den
wöchentlichen Devops-Newsletter abonnieren, die Artikel
im DZone- Themenportal lesen und im
Slack-Chat mit den DevOps-Ingenieuren sprechen. Es lohnt sich auch, kostenlose Kurse zu
Udacity oder
edX zu besuchen.
Beiträge aus unserem Blog: