Technologien

Unsere Weblösungen basieren auf vier Kern-Technologien. Node.js und Angular ermöglichen uns auf Server- und Clientseite die Verwendung derselben Programmiersprache. Docker bettet unsere Microservices in Container und Kubernetes verwaltet und überwacht diese automatisiert. Im Folgenden finden Sie eine detaillierte Beschreibung der von uns eingesetzten Kern-Technologien. Sollten Sie zu diesen oder anderen technischen Themen weiterführende Fragen haben, kontaktieren Sie uns jederzeit unter tech@codetrust.de.

Angular


Angular ist das neue Open-Source JavaScript Framework von Google. Der Vorgänger Angular 1.x bzw. AngularJS wird seit über sechs Jahren von mehr als 1,3 Millionen Entwicklern verwendet und zählt weltweit zu den beliebtesten Frontend-Frameworks für die Entwicklung von Single Page Applications (SPA). Seit September 2016 ist der Nachfolger auf dem Markt. Durch den Einsatz von TypeScript als Entwicklungssprache und der komponentenbasierten Architektur ist Angular mittlerweile einfacher zu programmieren, zu testen und zu warten. Eine weitere enorme Verbesserung ist die Plattformunabhängigkeit. So können Applikationen für das Web, native Apps für das Smartphone und auch native Programme für den Desktop aus der gleichen Codebasis erstellt werden. Auch Server-Side Rendering oder Web Worker sind dadurch kein Problem mehr und sorgen für hochperformante Anwendungen.

Docker


Docker ist eine Open-Source Software für Container-Technologie. Docker Container ummanteln ein Stück Software mit allem was diese braucht, um zu funktionieren: Code, Laufzeitumgebung, Systembibliotheken. Dadurch wird garantiert, dass die Anwendung immer gleich ausgeführt wird, unabhängig von der Umgebung. Allerdings beinhaltet ein Container kein komplettes Betriebssystem wie eine virtuelle Maschine. Dies bedeutet, dass sich mehrere Container, die auf einer einzelnen Maschine laufen, sich das gleiche Betriebssystem teilen. Diese Container-Technologie bringt viele Vorteile mit sich: So kann die Serverumgebung, in der die Applikation später laufen wird, auf dem eigenen Rechner, unabhängig vom Betriebssystem und den installierten Programmen, nachgebildet werden. Dies beschränkt Kompatibilitätsprobleme auf ein Minimum. Weiterhin kann damit eine skalierbare und unabhängige Infrastruktur aufgebaut werden. Ein Docker Container lässt sich leicht und konfigurierbar auf Servern einrichten, auch Container Cluster über verteilte Server sind damit möglich. Die Container-Technologie ist die Grundvoraussetzung für eine erfolgreiche Umsetzung von Continuous Delivery in einer cloudbasierten Microservice Architektur.

Node.js


Node.js ist eine Open-Source und plattformunabhängige JavaScript Laufzeitumgebung, in der sich Netzwerkanwendungen serverseitig realisieren lassen. Kernstück von Node.js ist die performante V8 JavaScript Engine, die in C++ entwickelt wird und unter anderem im Google Chrome Browser Verwendung findet. Node.js besitzt eine ressourcenschonende Architektur, die ereignisgesteuert reagiert und somit wertvollen Arbeitsspeicher spart. Dadurch eignet sie sich besonders für die Abarbeitung vieler gleichzeitig auftretender, asynchroner Verbindungen und ist beispielsweise prädestiniert für den Einsatz als Plattform bzw. Webserver einer Single Page Application. Zusätzlich ergibt sich ein großer Vorteil indem mit JavaScript eine einheitliche Sprache auf Client- und Serverseite verwendet werden kann.

Kubernetes


Kubernetes ist eine Open-Source Container Verwaltungsplattform für automatisierte Deployments, Skalierung und die operative Steuerung von Anwendungen in Containern auf verteilten Servern. Ursprünglich wurde sie von Google entworfen und basiert somit auf über 15 Jahren Erfahrung im Betrieb von großen Produktionsumgebungen. Kubernetes überwacht automatisierte Deployments und stellt sicher, dass es während des Updates zu keiner Ausfallzeit kommt. Sollte etwas schief gehen reicht ein Kommando, um das Deployment wieder rückgängig zu machen. Auch während dem Betrieb kontrolliert Kubernetes die Anwendungen fortlaufend. Beispielsweise werden Container bei Fehlern sofort neu gestartet oder auf andere Server verteilt, sollte eine Maschine ausfallen. Die Anwendung kann ohne Probleme horizontal skaliert werden, entweder manuell oder automatisch basierend auf dem CPU Verbrauch. Dabei sorgt Kubernetes auch für Load-Balancing zwischen den redundanten Containern. Da Kubernetes mittlerweile weit verbreitet und akzeptiert ist, kann es in allen gängigen Clouds, wie beispielsweise Amazon Web Services, Google Cloud Computing oder Microsoft Azure betrieben werden und wird meistens auch nativ unterstützt.