DevOps as a Service

Leistungen

Wir unterstützen Entwickler-Teams mit Infrastruktur- und Operations-Expertise

Ihr Entwicklerteam hat ein volles Backlog mit Feature-Wünschen, Chores und Refactoring gepaart mit Deadlines? Das kennen wir.

Dass sich Entwickler nebenher um den Betrieb und alle damit verbundenen Aufgaben kümmern, ist meistens unrealistisch - und auch nicht wirtschaftlich. Operations einfach komplett abzugeben, ist aber auch keine gute Idee und funktioniert in der Regel nicht. Gemeinsam zu mehr Stabilität, Sicherheit, Verfügbarkeit und Skalierbarkeit.

Wir verstehen uns als Teil des Teams. Wir liefern Know-how zu allen Themen, mit denen webbasierte Anwendungen in Berührung kommen. Wir wissen im Detail, wie Netzwerke, Routing oder Peerings funktionieren mit allem, was dazugehört: IP, TCP, UDP, BGP, DNS, HTTP. Wir sind Experten für Sicherheit, Linux, Datenbanken, Container, Failover und Hochverfügbarkeit. Mit diesem Wissen unterstützen wir Sie und sorgen gemeinsam für einen entspannten und fehlerfreien Betrieb.

Wir entwickeln seit über 12 Jahren Webanwendungen. Unser erster Kunde bestand 2009 darauf, dass wir die entwickelte Anwendung auch betreiben. Seither begleitet uns das Thema Operations. Über die Jahre haben wir ein Team aus Experten aufgebaut, das unseren Entwicklern zur Seite steht und mit diesen gemeinsam einen reibungslosen Betrieb sicherstellt. Inzwischen bekommen wir immer mehr Anfragen externer Entwickler-Teams, die wir heute unterstützen.

Wobei helfen wir mit DevOps as a Service?

Unsere Leistungen sind individuell - so wie unsere Kunden. Wir haben keinen Standardprozess, den wir sklavisch durchlaufen.

Sie haben schon eine laufende Infrastruktur und suchen Unterstützung beim Monitoring oder fragen sich, ob Ihre Backup-Strategie für einen Disaster-Fall ausreichend ist? Sie suchen temporär Unterstützung, um Ihre Entwickler zu entlasten oder ein eigenes Infrastruktur-Team aufzubauen?
Wir helfen gerne.

Dimensionierung der Infrastruktur

Häufig stellt sich noch vor dem Start eines Projekts die Frage, was eigentlich an Infrastruktur benötigt wird. Wo soll deployed werden? Womit? Wann wird Autoscaling benötigt? Auf welchen Metriken lässt man die Skalierung basieren? Wie verhindert man Fehler und hohe Infrastrukturkosten? Wie schafft man einen schnellen “Spin-Up” neuer Kapazitäten? Worauf müssen Entwickler achten, wenn eine automatische Skalierung der Infrastruktur angestrebt wird? Welche Fallstricke drohen?

Dabei helfen wir auch bei der Technologie-Entscheidung. Je nach Wunsch und Anforderungen des Projekts kann die Applikation auf klassischen VMs laufen, mit Kubernetes betrieben werden oder einen spezifischen Service eines Cloud Vendors wie Amazons “Elastic Container Service” verwenden.

Aufbau der Infrastruktur

Beim Setup einer Hosting-Infrastruktur empfehlen wir den Einsatz von Infrastructure-as-Code (IaC). Warum? Weil die Systeme damit eine einheitliche, reproduzierbare Konfiguration bekommen und alle Änderungen in einer Versionsverwaltung wie git, inklusive der Historie gespeichert werden. So kann man Jahre später noch herausfinden, warum etwas gemacht wurde und von wem. Wir verwenden hierfür zum Beispiel oft Puppet für die Zielsysteme und Terraform und Cloudformation für die Definition der Infrastruktur bei Cloud-Anbietern.

Deployment

Code wird heute automatisiert auf Anwendungsserver kopiert und ausgerollt - wir haben hierfür viele Möglichkeiten, von Capistrano über CI-Pipelines mit GitLab oder GitHub-Actions. Selbstverständlich arbeiten wir auch mit klassischen Applikationslayouts oder containerisierter Infrastruktur. Welche Lösung für Sie die Richtige ist, diskutieren wir und helfen bei der Einführung des automatischen Deployments.

Debugging

Im produktiven Betrieb gibt es immer wieder Herausforderungen, die ein Verständnis der Anwendung und zu Grunde liegenden Infrastruktur erfordern. Dazu gehören zum Beispiel Content Delivery Networks (CDNs), DNS, über APIs angebundene Drittsysteme oder die eigene Datenbank, die sich nicht so verhält, wie man es vom eigenen Entwickler-Rechner gewohnt ist.

Oft findet sich ein solcher Fehler wesentlich schneller, wenn ein Entwickler gemeinsam mit einem Infrastruktur-Experten sucht.

Monitoring

Typisches Infrastruktur-Monitoring umfasst die Überwachung von Ressourcen wie RAM oder CPU. Diese Parameter sind zwar zweifelsfrei wichtig im Auge zu behalten, ein gutes Monitoring geht aber einen Schritt weiter und stellt sicher, dass der Software-Stack wirklich funktioniert. Dies beinhaltet einen kompletten Durchstich der Anwendung vom Load Balancer bis zur Datenbank. Gutes Monitoring alarmiert frühzeitig, bevor SSL-Zertifikate ablaufen und checkt asynchrone Job-Queue-Systeme. Darüber hinaus ist natürlich vor allem entscheidend: Reagiert jemand, wenn das Monitoring rot wird? Und wie schnell? Und weiß die Person, wo sie hingreifen muss?

Backup

Fehler passieren. Deswegen erstellen wir gemeinsam mit den Entwicklern Backup-Konzepte und implementieren diese für alle Datenhaltungen. Das betrifft die relationale Datenbank (PostgreSQL, MySQL/MariaDB) aber auch Redis, ElasticSearch oder CouchDB - sofern darin relevante Daten gespeichert werden, die nicht trivial wiederherstellbar sind. Wir überlegen uns außerdem, in welcher Frequenz Backups erstellt werden, wie wir Locks oder Performance-Probleme während der Erstellung vermeiden und auch, wo wir die Daten speichern: Oft verschlüsseln wir Backups und kopieren die Daten an einen physikalisch getrennten Ort, manchmal sogar bei einem zweiten, unabhängigen Anbieter. Mindestens aber müssen die Daten in getrennten Brandsicherungsabschnitten liegen.

Das beste Backup nützt aber nichts, wenn es nicht im Zuge von regelmäßigen Desaster-Recovery-Übungen geprüft wird.

Erfahrung in komplexen Fällen

Auch wenn es mal komplizierter wird unterstützen wir Sie mit unseren Erfahrungen aus 12 Jahren Operations-Arbeit.

Last-Tests

Bevor größere Web-Projekte live gehen, werden in der Regel sogenannte Last-Tests durchgeführt. Damit Last-Tests eine sinnvolle Aussage geben können, müssen sie geplant werden: Welche Routen werden von Besuchern aufgerufen? In welcher Frequenz? Wie verteilen sich die Besucherströme? Während eines Last-Tests müssen die Ziel-Systeme genau im Blick gehalten werden, damit Erkenntnisse gewonnen werden können. Wir haben solche Tests schon mehrfach durchgeführt und können Ihnen helfen, mit einem guten Gefühl live zu gehen.

Sicherheit

Wenn man eines nicht möchte, ist es wegen eines Security-Incidents in der Presse zu stehen. Wir definieren zusammen mit Ihren Entwicklern notwendige und umsetzbare Abwehrmechanismen. Wir arbeiten hier mit unterschiedlichsten Werkzeugen wie zum Beispiel Rate Limits auf bestimmte Routen, Web Application Firewalls (WAF), Reverse Proxies und CDNs. Außerdem sorgen wir mit einem Patch Management und regelmäßigen Updates dafür, dass die eingesetzten Komponenten auf dem aktuellen Stand sind und keine bekannten Sicherheitslücken haben.

Erfahrung bei Audits

Sicherheitsüberprüfungen in Form von Security-Audits oder Penetration-Tests werden häufig von Kunden verlangt und sind spätestens bei einer Technical Due Diligence fällig. Wir haben Erfahrung bei der Vorbereitung der Unterlagen, Absicherung der Systeme und Betreuung der Audits. Wir sind selbst zum Beispiel seit langem TISAX-zertifiziert.

Migration aus eigenem Rechenzentrum zu AWS

Bei einem großen deutschen Konzern unterstützte makandra die Migration vieler Anwendungen zu AWS.

Interesse an DevOps as a Service?

Weitere Informationen finden Sie in unseren Case Studies. Gerne geben wir telefonisch eine Ersteinschätzung und beantworten weitere Fragen.

Verwenden Sie das Kontaktformular oder schreiben Sie an info@makandra.de.
Telefonisch erreichen Sie uns unter 0821 588 66 - 180.

(Pflichtfeld)
(Pflichtfeld)
(Pflichtfeld)
(optional, aber hilfreich)
makandra GmbH
Rails Entwicklung & Betrieb
Melli-Beese-Straße 5
86159 Augsburg