DevOps

Unter DevOps versteht man die Vereinheitlichung von Tools, Prozessen und Arbeitsweisen für die Entwicklung und den Betrieb von Applikationen. In Unternehmen die noch nicht nach DevOps Methoden arbeiten, gibt es üblicherweise getrennte Teams die sich um die Entwicklung und Betrieb von Applikationen kümmern. Durch diese Trennung kommt es oft zu Hemmnissen, die in Entwicklung und Betrieb zu hohen Reibungsverlusten führen.

Beratung

Sie wollen in Ihrem Unternehmen auch DevOps einführen und wissen noch nicht genau, wie Sie es angehen sollen. Wir beraten Sie gern und empfehlen Ihnen Tools und Prozesse für Ihr Team.
Oder Sie arbeiten schon nach DevOps und sind mit den eingesetzten Tools unzufrieden? Auch hier unterstützen wir Sie gern und finde mit Ihnen gemeinsam Wege die Prozesse zu vereinfachen oder auch Tools besser einzusetzen.

Hier können Sie einen kostenlosen Erstberatungstermin vereinbaren.

Aufbau und Betrieb einer DevOps-Umgebung

Eine typische DevOps-Umgebung besteht aus ganz unterschiedlichen Tools. Die nachfolgende Aufstellung zeigt häufig eingesetzte Tools, wobei diese Liste natürlich nur ein kleiner Ausschnitt ist und nicht vollständig sein kann.

  • Versionskontrolle - diese Tools helfen dabei Quelltext, Konfigurationen und ähnliche Artefakte zu speichern, wobei Versionen dieser Artefakte unterschieden werden und jederzeit wiederhergestellt werden können.
    Außerdem unterstützen moderne Versionskontroll- Tools paralleles Arbeiten an Codezweigen (Branches) sowie das Zusammenführen von Änderungen auf unterschiedlichen Codezweigen. Beispiele für diese Tools sind GitHub, Bitbucket, GitLab,etc.
  • Container Management - Container sind heute ein fester Bestandteil moderner Umgebungen. Diese gestatten einen schnellen und flexiblen Aufbau der Umgebung. Auch Anpassungen wie Update des Betriebssystems, der Datenbankversion, o.ä. sind deutlich einfacher zu bewerkstelligen als in statischen Serverumgebungen.
    Besonders bekannt sind u.a. Docker und Kubernetes.
  • Konfigurationsmanagementtools - verwalten die Konfiguration von Servern und Anwendungen. Sie helfen dabei, die Konfiguration zentral vorzuhalten und umgebungsspezifisch auszurollen. Dadurch kann auch in sehr großen Umgebungen sichergestellt werden, dass gleichartige Komponenten identisch konfiguriert werden. Handhabungsfehler können so weitestgehend vermieden werden.
    Beispiel für bekannte Werkzeuge sind Ansible, Puppet, Chef, etc.
  • Continous Integration / Continous Deployment - Continous Integration meint das dauernde Zusammenführen von Codeteilen inkl. Test. Damit erreicht man, dass Fehler (Build schlägt fehl, Schnittstellen passen nicht, etc) frühzeitig erkannt und behoben werden können. Das hilft dabei die Qualität zu erhöhen und fehlerhafte Entwicklungen frühzeitig zu erkennen sowie durch rechtzeitige Reaktion darauf kostspielige Fehler zu vermeiden.
    Die daran angrenzende Disziplin "Continous Deployment" unterstützt bei dem automatischen bzw. halbautomatischen Deployment von Änderungen auf Umgebungen. So ist es zum Beispiel relativ üblich, Testumgebungen automatisch (abhängig von Zeit oder Änderungen) zu deployen. Produktive Umgebungen dagegen werden deployed, wenn ein Administrator das entsprechend freigegeben hat.
    Bekannte Tool für diese Aufgaben sind Jenkins, Bamboo, usw.
  • Test Automation - Tests nehmen einen großen Anteil an der Entwicklung einer Anwendung ein. Ein automatisch ablaufender Test kann da viel Aufwand sparen und erhöht die Testhäufigkeit. Im DevOps-Umfeld führt man im Rahmen eines Continous Integration Laufs einen automatischen Test aus. Dadurch werden Fehler frühzeitig erkannt und können behoben werden, bevor viele andere Codeteile diesen Code benutzen. Neben dem Effizienzgewinn erhöht man auf diesem Weg auch die Qualität.
    Tools wie Selenium. Behave, etc. werden hierzu häufig genutzt.
  • Artifact Management - fertige Artefakte (Anwendungsteile) werden vom Build in einem Archiv abgelegt. Tools zum Verwalten von derartigen Artefakten (.jar, .war, EAR, RPM, etc.) wie Sonatype NEXUS, Apache Archiva oder ähnliche, helfen die unterschiedlichen Versionen zu speichern und machen diese für Deploymenttools abrufbar.

Sie suchen Unterstützung für Aufbau und Betrieb Ihrer DevOps-Umgebung. Dann sprechen Sie mit uns!