Sind Container der richtige Ansatz?
Seit der Ankündigung der offiziellen Unterstützung für containerisierte Installationen hat es in der Sitecore Community um Docker und Container einen großen Hype gegeben. Das Docker-Repository community hat viel Hilfe bei der Vorbereitung von Images und Skripten für Entwickler bereitgestellt, damit sie sehr schnell eingerichtet werden können. Entwickler sind begeistert von dem Versprechen einer höheren Produktivität und eines einfacheren Installationsmanagements, und jetzt müssen Sie eine Entscheidung darüber treffen, ob das Unternehmen Containerisierung als Strategie für Ihre Softwarebereitstellung einführt.
Was ist die schnelle Antwort?
Leider lautet die Antwort: "Es kommt darauf an".
Eine gute Faustregel lautet: Wenn Sie ein Unternehmen sind, das virtuelle Computer verwendet, sind Sie mit Containern wahrscheinlich besser dran. Es sollte beachtet werden, dass Ihre einzelnen Entwickler von der Verwendung von Docker profitieren können, auch wenn Sie sich entscheiden, es nicht unternehmensweit für den gesamten DevOps-Fluss bis zur Produktion zu übernehmen.
Im Allgemeinen deuten die folgenden Herausforderungen darauf hin, dass Ihre Organisation von einer Containerstrategie profitieren könnte:
- Der aktuelle DevOps-Flow verursacht hohe Infrastrukturkosten aufgrund der übermäßigen Nutzung von Ressourcen, die von virtuellen Maschinen benötigt werden.
- Für das Unternehmen ist es schwierig, die Sitecore-Infrastruktur zu verwalten, da die Abhängigkeiten zwischen den verschiedenen Versionen von Sitecore variieren.
- Das Unternehmen verschwendet viel Zeit mit der Einrichtung von Sitecore-Umgebungen.
- Die verschiedenen Umgebungen werden in mehreren Cloud-Hosting Umgebungen bereitgestellt.
- Das Team muss in der Lage sein, spezifische Umgebungen schnell zu replizieren, z. B. Unterstützung für gemeldete Probleme in der Produktion.
- Das Team muss an verschiedenen Standorten/Lösungen/Projekten arbeiten, die möglicherweise auch unterschiedliche Versionen von Sitecore verwenden und unterschiedliche Abhängigkeiten erfordern (SQL Server-Versionen, Betriebssysteme, Solr-Versionen usw.).
- Entwickler wechseln von einem Sitecore-Projekt zum anderen, müssen schnell loslegen und dann schnell wieder abbauen.
- Das Team hat Mühe, eine Möglichkeit zu finden, vor der Bereitstellung isoliert zu testen.
Die Vorteile für das Unternehmen
Hier sind meine 4 wichtigsten Vorteile, die Ihnen helfen können, die Gründe für die Einführung einer Containerisierungsstrategie zu erklären:
- Schnellere Markteinführung. Viele Marketingteams werden von schnelleren Entwickler-Setup-Zeiten, reibungsloseren Bereitstellungsabläufen zwischen Umgebungen und weniger "Arbeiten auf meinem Computer"-Szenarien profitieren, die zu einer Verlangsamung der technischen Bereitstellung führen. Dies ermöglicht es dem Team, schneller zu iterieren und das Risiko im Dev-to-Produktion-Flow zu reduzieren.
Herausforderung: Das Team muss sich an eine neue Arbeitsweise anpassen, so dass diese Vorteile erst mit Verzögerung sichtbar werden. Wenn die Organisation andere Gründe hat, die verhindern, dass Code Produktion erreicht (z. B. lange Test-/Annahmephasen), müssen Sie sich möglicherweise zuerst auf diese größeren Ablaufprobleme konzentrieren.
- Geringere Betriebskosten. Das IT-Abteilung Team wird eine Reduzierung der Infrastrukturkosten feststellen, wenn mehrere Container auf einem Host im Vergleich zu mehreren virtuellen Maschinen auf demselben Host betrieben werden. Es sind weniger Ressourcen erforderlich, um die Container auf dem Host auszuführen, da der Betriebssystemkernel gemeinsam genutzt und nicht mehr jedes Mal dupliziert wird.
Herausforderung: Die einfache Bereitstellung von Containern kann einen Nebeneffekt der "Container-Zersiedelung" haben, was tatsächlich den gegenteiligen Effekt auf Ihre Betriebskosten hätte. Es ist von entscheidender Bedeutung, über eine ordnungsgemäße Orchestrierung und Verwaltung von Containern zu verfügen, um sicherzustellen, dass Ihre Betriebskosten niedrig gehalten werden. Kubernetes (K8s) ist hier dein Freund!
- Flexibilität in der Cloud. Aufgrund der Art und Weise, wie Container das Betriebssystem abstrahieren, können Ihre Container zwischen verschiedenen Cloud-Anbietern verschoben werden. Dies gibt Ihrem Unternehmen Flexibilität bei der Frage, mit wem es für seine Cloud-Infrastruktur zu tun hat.
Herausforderung: Die Container sind zwar flexibel, aber wenn Sie "Kubernetes as a Service" (auch bekannt als Managed Kubernetes Service) verwenden möchten, kann Ihre Orchestrierung je nach Cloud-Anbieter unterschiedlich sein. Dies ist etwas, das Sie einplanen sollten, wenn Sie zwischen Cloud-Anbietern wechseln oder auf mehreren gleichzeitig ausführen möchten.
- Reduzierte mittlere Zeit bis zur Problemlösung (MTTR). Wenn Ihre Container-Strategie in alle Umgebungen, einschließlich Produktion, angewendet wird, können Sie Ihr Support-Team Produktion Umgebungen schnell lokal replizieren lassen, damit es früher und mit geringerer Wahrscheinlichkeit von Diskrepanzen zwischen lokalen und Produktion Umgebungen an der Behebung von Problemen arbeiten kann.
Herausforderung: Bevor Sie einen Vorteil für dieses Szenario sehen, müssen Sie dies über die gesamte Flusskette hinweg übernehmen, es wird nicht ausreichen, nur ein paar Entwickler Docker installieren zu lassen. Dies sollte ganzheitlich angegangen werden, um den Nutzen zu erkennen.
Wann werden Container eine Herausforderung sein?
Es gibt Anzeichen, die darauf hindeuten, dass ein Unternehmen bei der Einführung einer Container-Strategie wahrscheinlich vor Herausforderungen stehen wird:
- Späte Anwender. Das Unternehmen hat Schwierigkeiten, neue Technologien zu übernehmen, sobald sie auf den Markt kommen. Sie wollen es nicht "herausfinden", sie wollen die Dinge so machen, wie sie es können, und andere zuerst neue, gut dokumentierte Praktiken etablieren lassen. Diese Organisationen zeigen in der Regel ein Verhalten der "späten Einführung" wie "Version Minus One"-Richtlinien, die auf älteren Betriebssystemen und Browserversionen ausgeführt werden, zögern, auf eine Cloud-basierte Infrastruktur umzusteigen usw. In einigen Szenarien sind diese älteren Infrastrukturen möglicherweise nicht einmal in der Lage, die Virtualisierungsanforderungen für Docker.
zu erfüllen
Kubernetes und Docker sind zwar nicht gerade neu, aber es ist immer noch eine neuere technische Lösung in der Sitecore Community und wird daher Lücken in der Dokumentation, bewährten Praktiken und einer weit verbreiteten Akzeptanz aufweisen.
Die Herausforderung meistern: Identifizieren Sie Fallstudien von Organisationen, die derzeit Sitecore nutzen und ein ähnliches Profil wie Ihr eigenes Unternehmen haben. Dies wird dazu beitragen, den Interessenträgern eine gewisse Gewissheit zu geben, dass "dies schon einmal getan wurde". Dann wäre eine Analyse des aktuellen Zustands der Infrastruktur Technologie erforderlich, um eine Bereitschaft für Container zu gewährleisten.
- Stark regulierte Umgebungen. Unabhängig davon, ob es sich um staatliche Gesetze oder Richtlinien auf Unternehmensebene handelt, haben diese Organisationen viele Regeln, wie Sie Software von der Entwicklung bis zur Produktion bringen können. Das DevSecOps-Team weiß möglicherweise nicht, wie es seine aktuellen Richtlinien und Vorschriften in eine Containerwelt übersetzen soll. Wie werden alles Teams darüber informiert, wie sie sicherstellen können, dass die Container den Richtlinien entsprechen? Einige dieser Richtlinien wurden wahrscheinlich vor vielen Jahren entwickelt und nicht erneut auf neuere Technologien überprüft.
Die Herausforderung meistern: Hier geht es alles um Bildung. Es ist nicht so, dass Sie es nicht können, aber die Leute werden nicht unbedingt wissen, wie. Es ist hilfreich, einige Champions zu identifizieren, die Proofs of Concept durchführen können und den verschiedenen Teams etwas "zeigen" können, damit sie die Unterschiede zwischen dem bestehenden und dem vorgeschlagenen Technologie verstehen können.
- Die Infrastrukturkosten scheinen "unter Kontrolle" zu sein. Es gibt einen sehr geringen Infrastrukturaufwand, oder die technische Lieferung/der Betrieb wurde an eine externe Gruppe ausgelagert, bei der die Kosten für den Service im Vergleich zur reduzierten technischen Verantwortung angemessen sind.
Anmerkung: Das Team, das die ausgelagerte Arbeit erledigt, sollte sich mit einer Containerstrategie befassen, um seine Gewinnspanne zu erhöhen!
Die Herausforderung meistern: Wenn die aktuellen Infrastrukturkosten das Unternehmen nicht behindern und Sie wirklich der Meinung sind, dass Container der Weg sind, den das Unternehmen gehen sollte, kann es sich lohnen, die Zeit bis zur Lösung (MTTR) für Produktionen oder die Vorteile der Markteinführung zu betrachten, anstatt sich nur auf die Infrastrukturkosten zu konzentrieren. Wird Ihr Unternehmen in diesen Bereichen mehr Wert sehen?
- Ausgereifte und stabile Anwendungsbasis. Es gibt nur sehr wenige Änderungen, die täglich in den von Sitecore gehosteten Umgebungen stattfinden. Vielleicht gibt es ein kleines Team, das mit Sitecore arbeitet, eine einzige Website, eine einzige Softwareversion. Keine Komplexität bei der Pflege verschiedener Umgebungen, es gibt nur sehr wenige Änderungen.
Die Herausforderung meistern: Dieser Zustand ist eigentlich ein Warnzeichen für Innovationen! Sie sollten sich in einem kontinuierlichen Verbesserungsmodell befinden, und ein Mangel an Änderungen ist eigentlich keine gute Sache. Wenn sich das Team aus diesem Grund gegen die Einführung neuer Technologien sträubt, benötigen Sie möglicherweise eine tiefere Analyse der Probleme, die zu dieser Situation führen. Möglicherweise gibt es eine größere Strategie als eine Container-Strategie.
- Verzögerte Automatisierung der Infrastruktur. Wenn das Team, das für alles die Infrastruktur verantwortlich ist, Schwierigkeiten hat, mit der Infrastrukturautomatisierung Schritt zu halten, kann sich die Einführung einer neuen Technologie, die eine Infrastrukturautomatisierung erfordert, als Herausforderung erweisen. Wenn diese Teams bei der Verwaltung der Infrastruktur nicht innovativ sind, sind sie manchmal nicht bereit, diese neuen Technologien zu übernehmen, insbesondere wenn das Unternehmen in eine der ersten beiden hier aufgeführten Herausforderungen gerät.
Die Herausforderung meistern: Bevor eine Container-Strategie in Angriff genommen wird, kann diese Herausforderung darauf hindeuten, dass die Priorität darauf liegt, wie das Unternehmen seine Infrastruktur automatisiert (oder nicht automatisiert). Eine Gesamtinvestition in die Art und Weise, wie Ihr Team die Automatisierung priorisiert, kann ein erster Schritt sein. Vielleicht ist eine Container-Strategie der richtige Weg, um dies zu erreichen, aber möglicherweise müssen Sie hier zuerst einige kleine Schritte unternehmen, um das Team an einen Punkt zu bringen, an dem diese kulturelle Übernahme funktioniert.
Zusätzliche Lektüre
- 5 Unternehmen Gründe, warum jeder CIOs Kubernetes, Kalyan Ramanathan, Sumo Logic in Betracht ziehen sollte
- Was sind Container und wozu braucht man sie?, Paul Rubens, cio.com
- Docker-Referenzarchitektur: Best Practices für Docker-Unternehmen und Sicherheit, Docker
- Kubernetes as a Service: GKE vs. AKS vs. EKS, Evan Klein, logz.io
Jason St-Cyr, Vice President, Engagement, Fishtank Consulting
https://jasonstcyr.com