Lass uns klären, worum es bei der Methodologie geht und wem sie zugutekommen kann.
Wir sprechen auch über DevOps-Spezialisten: ihre Aufgaben, Gehälter und Fähigkeiten.
Foto / Flickr / CC BY-SA
Was ist DevOps
DevOps ist eine Softwareentwicklungs-Methodologie, die darauf abzielt, die Zusammenarbeit zwischen Programmierern und Systemadministratoren in einem Unternehmen zu optimieren. Wenn IT-Spezialisten aus unterschiedlichen Abteilungen die Ziele des jeweils anderen nicht verstehen, verzögert sich die Veröffentlichung neuer Anwendungen und Updates.
DevOps schafft einen "nahtlosen" Entwicklungszyklus und hilft somit, die Veröffentlichung von Softwareprodukten zu beschleunigen. Die Beschleunigung erfolgt durch die Einführung von Automatisierungssystemen. Außerdem beginnen Programmierer, an der Serverkonfiguration und der Fehlersuche teilzunehmen; sie können beispielsweise automatisierte Tests schreiben.
So wird die Zusammenarbeit zwischen den Abteilungen verbessert. Die Mitarbeiter beginnen besser zu verstehen, welche Schritte ein Softwareprodukt durchläuft, bevor es in die Hände des Benutzers gelangt.
Wenn ein Entwickler versteht, mit welchen Herausforderungen ein Administrator bei der Serverkonfiguration konfrontiert ist, wird er versuchen, mögliche "Schwachstellen" im Code abzuschwächen. Dies reduziert die Anzahl der Bugs bei der Bereitstellung der Anwendung – statistisch gesehen ungefähr um das Fünfzehnfache.
Wem nützt und wem nützt die Methodologie nicht?
Viele , dass DevOps jeder Organisation zugutekommen kann, die Softwareentwicklungen betreibt. Dies gilt sogar in dem Fall, dass das Unternehmen einfach Nutzer von IT-Diensten ist und keine eigenen Anwendungen entwickelt. In diesem Fall hilft die Einführung der DevOps-Kultur, sich auf Innovationen zu konzentrieren.
Eine Ausnahme Startups, aber auch hier hängt alles vom Umfang des Projekts ab. Wenn Ihr Ziel darin besteht, ein minimal tragfähiges Produkt (Minimum Viable Product, MVP) zu starten, um eine neue Idee zu testen, kann dies auch ohne DevOps erfolgen. Zum Beispiel hat der Gründer von Groupon zu Beginn der Arbeiten an dem Dienst alles manuell und Bestellungen gesammelt. Er hat dabei keine Automatisierungstools verwendet.
Es macht nur dann Sinn, die Methodologie und Automatisierungsinstrumente einzuführen, wenn die Anwendung an Popularität gewinnt. Dies hilft, die Geschäftsprozesse zu verbessern und die Veröffentlichung von Updates zu beschleunigen.
Wie implementiert man DevOps?
Hier sind einige Empfehlungen für den Übergang zu einer neuen Methodik.
Identifizieren Sie Probleme in den Geschäftsprozessen. Vor der Implementierung der Methodik sollten Sie die Ziele und Probleme der Organisation festlegen. Diese werden die Strategie für den Übergang zu DevOps bestimmen. Stellen Sie dazu eine Liste von Fragen zusammen, zum Beispiel:
- Wofür wird bei der Softwareaktualisierung die meiste Zeit benötigt?
- Kann dieser Prozess automatisiert werden?
- Beeinflusst die Struktur der Organisation dies?
Details zur Identifizierung von Problemen in der Organisation «» und „» von den Autoren der Methodik.
Ändern Sie die Unternehmenskultur. Es ist wichtig, alle Mitarbeiter davon zu überzeugen, ihre gewohnten Arbeitsweisen zu ändern und ihr Kompetenzspektrum zu erweitern. Zum Beispiel sind bei Facebook alle Programmierer für den gesamten Lebenszyklus der Anwendung: von der Codierung bis zur Implementierung. Auch bei Facebook gibt es keine separate Testabteilung – die Tests werden von den Entwicklern selbst geschrieben.
Beginnen Sie mit kleinen Schritten. Wählen Sie einen Prozess aus, der beim Release von Aktualisierungen am meisten Zeit und Mühe kostet, und automatisieren Sie ihn. Dies das Testen oder der Bereitstellungsprozess von Anwendungen. Experten zuerst die Implementierung von Werkzeugen für die verteilte Versionskontrolle. Mit ihnen ist die Verwaltung der Quellcodes einfacher. Zu den bekanntesten Lösungen gehören Git, Mercurial, Subversion (SVN) und CVS.
Es ist auch wichtig, auf Systeme der kontinuierlichen Integration zu achten, die für die Erstellung und das Testen des Endprodukts verantwortlich sind. Beispiele für solche Werkzeuge sind Jenkins, TeamCity und Bamboo.
Bewerten Sie die Verbesserungen. Entwickeln Sie Leistungskennzahlen für die implementierten Lösungen und erstellen Sie eine Checkliste. Zu den Kennzahlen können die Veröffentlichungsfrequenz, die Zeit für die Entwicklung von Softwarefunktionen und die Anzahl der Bugs im Code gehören. Besprechen Sie die Ergebnisse nicht nur mit den Managern, sondern auch mit dem restlichen Team, das am Projekt arbeitet. Fragen Sie, welche Werkzeuge fehlen. Berücksichtigen Sie diese Anfragen bei der weiteren Optimierung der Prozesse.
Kritik an DevOps
Obwohl die Methodik die Anzahl der Softwarefehler reduziert Die Anzahl der Softwarefehler wurde reduziert
Ja , dass Programmierer sich nicht mit den Details der Arbeit von Systemadministratoren auseinandersetzen müssen. Angeblich führt DevOps dazu, dass im Unternehmen anstelle von Spezialisten für Entwicklung oder Administration Personen auftreten, die sich mit allem, aber nur oberflächlich auskennen.
Es wird auch angenommen, dass DevOps bei schlechtem Management. Wenn Entwickler- und Administratorenteams keine gemeinsamen Ziele haben, sind die Manager schuld, die die Interaktion zwischen den Teams nicht organisieren. Um dieses Problem zu lösen, wird nicht eine neue Methodik benötigt, sondern ein Bewertungssystem für Manager basierend auf Feedback von Untergebenen. Hier kann man lesen, .

Foto / Flickr / CC BY-SA
Wer ist ein DevOps-Ingenieur
Ein DevOps-Ingenieur beschäftigt sich mit der Implementierung der DevOps-Methodik. Er synchronisiert alle Phasen der Erstellung eines Softwareprodukts: von der Codierung bis hin zu Tests und der Veröffentlichung der Anwendung. Ein solcher Spezialist überwacht die Entwicklungs- und Administrationsabteilungen und automatisiert deren Aufgaben, indem er verschiedene Software-Tools einführt.
Das Besondere am DevOps-Ingenieur ist, dass er mehrere Berufe vereint: Administrator, Entwickler, Tester und Manager.
Joe Sanchez, DevOps-Evangelist von VMware, einem Softwareentwickler für Virtualisierung, eine Reihe von Fähigkeiten, über die ein DevOps-Ingenieur verfügen muss. Neben dem offensichtlichen Wissen über die DevOps-Methodik sollte diese Person Erfahrung in der Administration von Windows- und Linux-Betriebssystemen sowie Erfahrung mit Automatisierungstools wie , , . Außerdem sollte er in der Lage sein, Skripte und Code in ein paar Sprachen zu schreiben und sich mit Netzwerktechnologien auszukennen.
Der DevOps-Ingenieur ist verantwortlich für jede Automatisierung von Aufgaben, die mit der Konfiguration und Bereitstellung von Anwendungen zu tun haben. Auch die Überwachung der Software fällt in seinen Aufgabenbereich. Um diese Aufgaben zu lösen, nutzt er verschiedene Konfigurationsmanagementsysteme, Virtualisierungslösungen und Cloud-Tools zur Ressourcen-Balancierung.
Wer stellt ein
DevOps-Ingenieure können jeder Organisation, die mit der Entwicklung von Anwendungen oder der Verwaltung einer großen Anzahl von Servern zu tun hat, von Nutzen sein. DevOps-Ingenieure von IT-Giganten wie Amazon, Adobe und Facebook. Sie arbeiten auch bei Netflix, Walmart und Etsy.
DevOps-Ingenieure arbeiten ausschließlich in Startups. Ihre Aufgabe ist es, ein minimal funktionsfähiges Produkt zu veröffentlichen, um eine neue Idee zu testen. In den meisten Fällen können Startups auf DevOps verzichten.
Wie viel man verdient
DevOps-Ingenieure am meisten in der Branche. Das durchschnittliche Einkommen solcher Spezialisten weltweit liegt zwischen 100 und 125 Tausend Dollar pro Jahr.
In den USA erhalten sie 122 Tausend Dollar pro Jahr (670 Tausend Rubel pro Monat), während es im Vereinigten Königreich 67,5 Tausend Pfund Sterling pro Jahr (490 Tausend Rubel pro Monat) sind. bereit
DevOps-Spezialisten zwischen 100 und 200 Tausend Rubel pro Monat zu zahlen. In St. Petersburg sind die Arbeitgeber etwas großzügiger — sie bieten 160–360 Tausend Rubel pro Monat. In den Regionen liegt das Gehalt bei 100–120 Tausend Rubel pro Monat. DevOps ist ein relativ neues Feld in der IT, daher gibt es keine etablierten Anforderungen an DevOps-Ingenieure. In den Stellenangeboten findet man sowohl Kenntnisse in der Administration von Debian und CentOS als auch die Fähigkeit, mit disk-basierten
RAID-Arrays
zu arbeiten. Daraus kann man schlussfolgern, dass DevOps-Ingenieure vor allem einen guten technischen Überblick haben sollten. Für solche Menschen ist es wichtig, ständig neue Tools und Technologien zu lernen. .
Um herauszufinden, wo noch Wissen fehlt, kann man die
Mini-Wikipedia auf GitHub
oder die oder “ (die wir oben erwähnt haben) und „ Die Philosophie von DevOps. Die Kunst des IT-Managements» und „“ im O’Reilly Media Verlag lesen.Devops Weekly Newsletter
anmelden, Artikel auf dem thematischen lesen und anfangen, mit DevOps-Ingenieuren im zu kommunizieren. Es lohnt sich auch, kostenlose Kurse anzusehen auf Die Fabrik für Netzwerksicherheit von Fortinet: was sie kann oder .
Ein Blick hinter die Kulissen: Unboxing des All-Flash-Speichers NetApp AFF A300
Quelle: habr.com
