Blog

Vom Monolithen zu Microservices – Eine Architektur Strategie

Die meisten Menschen außerhalb der IT bekommen meistens nicht mit, wie schwierig es ist, komplexe Enterprise-Systeme zu verwalten. Es ist ein feiner Balanceakt der auf dem Verständnis beruht, wie sich eine Veränderung auf das gesamte System auswirken wird.

Neue Entwickler verbringen Monate damit, die Codebasis des Systems zu studieren, bevor sie anfangen können daran zu arbeiten. Sogar die kenntnisreichsten Entwicklungsteams zögern Änderungen vorzunehmen oder neuen Code hinzuzufügen, weil es den Betrieb in einer unvorhergesehenen Weise stören könnte. Das hat zu Folge, dass selbst banalste Änderungen diskutiert und hinausgezögert werden.

Wenn Dinge schief gehen, beschuldigen sich Administration, Entwicklung und QA gegenseitig. Das Projektmanagement macht das fehlende Budget verantwortlich usw. Die Folge ist, dass  Unternehmen ihr Vertrauen in die IT verlieren und anfangen nach Outsourcer zu suchen, um das interne Team zu ersetzen.

Wenn Sie nicht gerade von einem Sabbatical wieder gekommen sind haben Sie sicherlich gehört wie Microservices dieses Szenario auf den Kopf stellen können, so dass eine neue, agilere Welt entsteht in dem Entwickler und Operations-Teams Hand in Hand arbeiten, um kleine, lose gekoppelte Software Bundles zu liefern.  Anstelle eines einzigen monolithischen Systems wird die Funktionalität von einem kleineren Satz von Diensten durchgeführt, die ihre Operationen koordinieren.

Masiar IghaniVom Monolithen zu Microservices – Eine Architektur Strategie
Mehr

Agile Infrastruktur und Continuous Delivery in CoreMedia – Zero Downtime Deployment – Teil6

Alles was wir bis jetzt aufgesetz haben diente einem einzigen Zweck: Dem Continuous Delivery Paradigma – der Königs Diziplin. Continuous Integration ist vielen ein Begriff. Darin geht es darum, dass Code in einem Versionierungs System mit einem sogenannten CI Tools wie Jenkins gebaut und in einer Testumgebung gestartet wird. Das dient dem Zweck kontinuerlich zu prüfen, ob Code, repsektive die Features, die man gebaut hat im Gesamtsystem funktioniert, ob alle Komponenten zusammen noch funktionieren. Dieser Workflow soll helfen das Vertrauen aller Beteiligten in das System zu erhöhen und dadurch Releases schneller durchführen zu können. In der Software Entwicklung gibt es viele Abhängigkeiten von Libraries, Entwickler Code, Betriebssystem, Umgebung, Patches, Drittsystemen, etc. Mit CI soll die Integration all dieser Komponenten sicher gestellt werden.

Masiar IghaniAgile Infrastruktur und Continuous Delivery in CoreMedia – Zero Downtime Deployment – Teil6
Mehr

Agile Infrastruktur und Continuous Delivery in CoreMedia – Self Healing – Teil5

In dem Film Terminator gibt es diese Super Humanoiden, die einfach nicht kaputt zu kriegen sind. Egal was man auf sie abfeuert, man kann zusehen wie das „Ding“ sich selbst heilt und dem Protagonisten weiter nachstellt. In dem Falle würde man sich natürlich wünschen, dass der Humanoid irgendwann kaputt geht, aber im Falle unserer CoreMedia Dienste wünscht man sich eher Terminator Fähigkeiten. Genau das wollen wir hier im Artikel an hand unseres Clusters zeigen.

In den vorherigen Artikeln haben wir gezeigt wie wir den Cluster aufgesetzt haben. In diesem Artikel werde ich demonstrieren wie ich einen Dienst manuell „kille“ und das Cluster selbständig für die Heilung des Dienstes sorgt. Am Anfang sieht der Dienst noch gut aus und der Health Status ist auf grün.

Masiar IghaniAgile Infrastruktur und Continuous Delivery in CoreMedia – Self Healing – Teil5
Mehr

Agile Infrastruktur und Continuous Delivery in CoreMedia – Cluster Scheduler – Teil4

Führen wir uns noch einmal das Endziel vor Augen: Eine Umgebung, in der das Deployment von Features in CoreMedia schnell und unkompliziert von statten gehen kann. Eine Grundvoraussetzung hierfür ist ein Cluster, welches Docker Container orchestrieren kann. Es gibt auf dem Markt einige  Lösungen:

  • Apache Mesos, bzw. DC/OS (eine erweiterte Produkt Variante von der Firma Mesosphere)
  • Kubernetes (ursprünglich von Google entwickelt, jetzt Open Source)
  • Docker Swarm
  • Rancher
  • Nomad (von HashiCorp, dem Hersteller von Terraform)
  • Mantl
  • etc.
Masiar IghaniAgile Infrastruktur und Continuous Delivery in CoreMedia – Cluster Scheduler – Teil4
Mehr

Agile Infrastruktur und Continuous Delivery in CoreMedia-Terraform-Teil3

Los geht es mit der Provisionierung der Infrastruktur von „0“ an. D.h. wir haben noch keine Server auf denen wir irgend etwas installieren können. Für unseren ShowCase nutzen wir das Tool Terraform, um Server in der Cloud zu starten. Als Cloud Provider nutzen wir Digital Ocean. Selbstverständlich können aber viele andere Provider genutzt werden wie Amazon Web Services, Google cloud Engine, Microsoft Azure, Redhat Openshift u.v.m.

Man unterscheidet Infrastruktur Provisonierung und Software Provisionierung. Für beide Kategorien gibt es Tools und meist beherrschen die Tools einer Kategorie ein paar Funktionen der anderen Kategorie. Terraform ist ein Tool aus der Kategorie Infrastruktur Provisionierung, es kann aber auch Software Provisonieren.

Masiar IghaniAgile Infrastruktur und Continuous Delivery in CoreMedia-Terraform-Teil3
Mehr

Agile Infrastruktur und Continuous Delivery in CoreMedia – Teil2

Der normale Start eines solchen Projektes bestand meist darin diese Fragen zu beantworten:

  • Welche Dienste brauchen wir?
  • Wieviele Redakteure werden das System nutzen?
  • Wieviele User erwarten wir auf den CAEs?
  • Brauchen wir Ausfallsicherheit und wenn ja in welchem Ausmaß?
  • Wieviele Artikel, Bilder und sonstige Assets soll das System aufbnehmen können?
  • etc.

All diese Metriken dienen dazu die entsprechende Hardware zu planen und zu bestellen. Dann vergehen meist mehrere Tage, wenn nicht Wochen bis die Hardware eintrifft oder im Rechenzentrum bereitgestellt werden kann. Dann machen sich die Admins, meist mit der Hilfe von Kollegen aus der Entwicklung, daran einen CoreMedia Strang (Dev) aufzuzetzen, damit die Entwickler loslegen können.

Masiar IghaniAgile Infrastruktur und Continuous Delivery in CoreMedia – Teil2
Mehr

Agile Infrastruktur und Continuous Delivery in CoreMedia – Teil1

In einer früheren Artikel Serie haben wir die Vorteile einer Container basierten Infrastruktur für CoreMedia beleuchtet. In der Zwischenzeit haben wir eine ShowCase Umgebung aufgebaut, in der wir all diese Features Live und in Farbe dem interessierten Kunden vorführen können. Selbst für uns, die tagtäglich mit dieser Technologie zu tun haben, ist es jedes mal erstaunlich, wenn EIN Kommandozeilen Befehl eine Kaskade an Servern und Diensten (sprich: einen kompletten CoreMedia Serverstrang aus dem Nichts) in der Cloud hochfährt. Das dauert ganze 6 Minuten, oder ein Git Commit 10 Minuten später eine CAE Instanz mit dem neuen Code in der Cloud instanziiert, selbst verständlich ohne Downtime.

Masiar IghaniAgile Infrastruktur und Continuous Delivery in CoreMedia – Teil1
Mehr

Amazon Dash Button

Den Amazon Dash Button gibt es seit kurzem auch in Deutschland. Trotz einiger Kritik von Datenschützern und Dauernörglern bietet der Button einige großartige Einsatzgebiete. Doch zunächst: Was ist der Dash Button? Der Dash Button von Amazon ist ein Internet Of Things Knopf, der auf einfachen Druck einen vorher konfigurierten Artikel automatisch bestellt. Welches Produkt das ist, stellt man über die Shopping App von Amazon ein, ebenso muss man über die App die Wlan Daten eingeben, denn der Knopf verbindet sich über das heimische Wlan mit dem Internet. Die Buttons sind markenspezifisch, d.h. man kauft z.B. einen Button der Marke Ariel und wenn sich das Waschmittel dem Ende neigt drückt man einfach den Knopf und Amazon schickt eine Packung Ariel Waschmittel.

Masiar IghaniAmazon Dash Button
Mehr

5 Beispiele von Facebook Chatbots

Facebook gibt Unternehmen die Möglichkeit über den Facebook Messenger mit ihren Kunden schnell und effizient zu kommunizieren.

Anstatt mehrere Apps auf unser Smartphone zu laden ermöglicht der Messenger die direkte Kommunikation zu mehreren Unternehmen über nur eine App. Diese Kommunikation erfolgt nicht, wie üblich, über den Austausch von E-Mails oder dem Durchstöbern der FAQ auf Websites, sondern durch ein direktes „Gespräch“ mit dem Chatbot.  Da es sich bei den Bots um Algorithmen handelt ist somit Customer Support 24x7x365 im Jahr möglich.

Masiar Ighani5 Beispiele von Facebook Chatbots
Mehr

Wie können Sie Chatbots effektiv nutzen?

Chatbots sind textbasierte Dialogsysteme, die durch programmierte Algorithmen in der Lage sind in natürlicher Sprache mit Nutzern zu kommunizieren. Der Name Chatbot setzt sich aus dem englischen Wort „chat“ für „plaudern, reden“ und „bot“, abgekürzt von „Robot“ zusammen und verrät schon, dass hinter einem Chatbot eine künstliche Intelligenz sitzt.

Mittlerweile benutzen etliche Unternehmen Chatbots, da sie so vielseitig anwendbar sind. Ob man Siri nach dem Wetter fragt, oder mit ihnen ein Taxi ruft, wie das erfolgreiche Unternehmen Uber vormacht, Essen bestellt, einen Termin beim Arzt macht, Nachrichten liest oder den Kundenservice etwas zu einem erworbenen Produkt fragt – alles ist machbar.

Masiar IghaniWie können Sie Chatbots effektiv nutzen?
Mehr