DevOps & Continuous Integration

Sie möchten ein qualitativ hochwertiges Produkt entwickeln lassen? Der ganze Prozess soll zusätzlich noch beschleunigt werden?

Dann sind Sie bei unserem DevOps-Ansatz genau richtig.

docker.jpg
devop-laptop-finger

Mit DevOps schneller zum Ziel

Wenn alle notwendigen Kompetenzen zur Entwicklung (Dev) und dem Betrieb (Ops) in einem Team vereint sind, wird dieser Prozess vereinfacht und beschleunigt. Dies wird häufig als „DevOps“-Team bezeichnet.

Unser DevOps-Team kann dann die komplette Verantwortung für das Produkt übernehmen. Es hat bei der Optimierung des Prozesses (Wie können wir öfter releasen?) alle Aspekte im Auge und kann Fehler schnell finden und beheben, unabhängig davon, ob sie im Anwendungscode oder an der Infrastruktur liegen.

Schon vom DevOps-Ansatz überzeugt?

Vorteile häufiger Releases

Als Folge der kleinen Iterationen gibt es immer häufiger Releases und die Anwendung muss immer öfter getestet und deployed werden. Entgegen der ersten Intuition „Ich möchte alles möglichst gründlich und lange testen und deshalb lieber seltener neue Versionen veröffentlichen“, senken häufige Releases das Risiko:

  • Wenn seit dem letzten Release nur sehr wenig verändert wurde, kann auch nicht viel kaputt gegangen sein.
  • Wenn etwas kaputt gegangen ist, weiß man sehr genau, an welcher Stelle das passiert sein muss und kann es in der Regel auch sehr schnell reparieren.

Außer dem geringeren Risiko, haben häufige Releases den großen Vorteil, dass die Nutzer*innen schon früher von den neuen Funktionen profitieren, die sich bestenfalls in einer höheren Nutzerzufriedenheit oder einem höheren Umsatz niederschlagen. Warum sollen die Nutzer*innen Monate auf ein großes Release mit zehn neuen Funktionen warten, wenn neun davon schon viel früher fertig waren?

Viele sehr erfolgreiche Unternehmen wie Github, Facebook und Amazon treiben dies auf die Spitze und releasen jeden Tag mehrere dutzend kleine Änderungen.

Automatisierung CI-Pipeline

Arrow image
  • Merge

    Nach der erfolgten Qualitätssicherung des Codes (Code Review), werden die Änderungen am Code in den Ziel-Branch gemerged.

  • Linting

    Anschließend wird die Struktur des Codes (Einrückung, Variablennamen etc.) automatisiert entsprechend der im Projekt getroffenen Konventionen ("Linting Rules") geprüft.

  • Unit Tests

    War das Linting erfolgreich, werden die Unit Tests ausgeführt.

  • Akzeptanztests

    Wenn alle Unit Tests erfolgreich waren, werden die funktionalen Akzeptanztests ausgeführt, welche das Verhalten eine*r Nutzer*in simulieren.

Bewege den Planeten auf der Umlaufbahn
Ambient-3.jpg

Tools für Continuous Integration

Wir arbeiten in der Regel mit folgenden Tools:

  • Gitlab und GitlabCI: Gitlab ist eine grafische Oberfläche zur Verwaltung von Git Repositories. Gitlab bietet darüber hinaus moderne Tools zur Ausführung der einzelnen Aufgaben bei der Continuous Integration.
  • Docker: Die CI-Pipeline bei Ambient basiert stark auf Docker. Durch das „Verpacken“ der Anwendungen in Containern, wird eine Vereinheitlichung erreicht und große Teile der CI-Pipelines bleiben in den verschiedenen Projekten trotz teilweise unterschiedlicher Programmiersprachen gleich.
  • Kubernetes: Kubernetes ist eine Plattform zur Orchestrierung von Docker-Containern, welche wir sehr stark einsetzen, um die Anwendungen unserer Kund*innen zu betreiben.

Unsere Leistungen

Unsere Leistungen

Yes, we can.

Von der Ideenentwicklung bis zur Realisierung, im gesamten Softwareentwicklungsprozess, stehen wir Ihnen in allen Bereichen und Fragen professionell zur Verfügung.
Bee Icon Cap Icon Smartphone Icon