Docker ist die führende Umsetzung von Linux Containern - kein Wunder, hat Docker die Idee von Containern als leichtgewichtige Alternative zu Virtualisierung erst populär gemacht.
Inzwischen hat sich das Ökosystem deutlich weiterentwickelt.
Google hat mit dem Kubernetes Projekt den defacto Standard für Scheduling und Verwaltung von Containern und zugehörigen Resourcen geschaffen.
Neben Docker existieren mit rkt (CoreOS) und CRI-O (Open Container Initiative) weitere Container Runtimes für das mittlerweile gesetzte OCI Image Format.
Relativ neu dabei sind die Werkzeuge buildah zum Bauen von Containern und podman zur Ausführung mittels CRI-O (beide von Project Atomic, RedHat).
Warum entstehen unterschiedliche Runtimes und Build-Toolchains?
Welche Vorteil für Nutzer im Kontext von Docker oder Kubernetes ergeben sich daraus?
Der Trend weg von großen, schwerfälligen Applikationsservern hin zu Microservices und Containern wird durch die Cloud als Ablaufumgebung stark beschleunigt.
Konsequent weitergedacht erhält man noch kleinere Dienste, Nanoservices, die lediglich einzelne Funktionen umsetzen.
Als minimale Deploymenteinheit lässt sich darüber eine feingranulare Skalierung erzielen, und durch verringerten Overhead eine kosteneffiziente Nutzung der Infrastruktur realisieren.
Vorreiter war Amazon mit Lambda, doch auch andere Cloud Anbieter zogen schnell nach, und bieten Function-as-a-Service (FaaS) oder "serverless" Umgebungen an.
Kubernetes als De-facto-Standard für containerbasierte Cloudinfrastruktur bietet von Haus aus zwar kein vergleichbares Modell an, jedoch gibt es mit Oracle Fn, Kubeless und Open Whisk zahlreiche Projekte, die FaaS als OpenSource Plattform für den Einsatz in eigener Cloudinfrastruktur oder auch öffentlichen Kubernetes Cloud-Runtimes ermöglichen wollen.
Im folgenden wird ein kurzer Blick auf Kubeless in Kombination mit Java geworfen.
Ausschlaggebend für diese Auswahl war ein relativ unkompliziertes Setup, wodurch die Hemmschwelle für Experimente verringert wird.
Im November findet die diesjährige W-JAX Konferenz in München statt.
Karsten Sitterberg hält auf der Konferenz einen Vortrag, um die Praxiserfahrungen mit Angular zu teilen:
Angular ist ein vielversprechendes Framework, aber wie verwendet man es optimal?
Welche Fallstricke gilt es zu vermeiden, damit auch in Produktion alles reibungslos läuft?
Dieser Vortrag basiert auf den Praxiserfahrungen aus rund zwei Jahren Entwicklung mit Angular:
Vom Design bis zum produktiven Betrieb mehrerer Systeme.
Neben Tipps zum API-Design geht es um Integration von Komponenten von Drittanbietern, Komponenten-Schnitt und Diagnose der Anwendung.
Der Vortrag richtet sich an Softwareentwickler und Architekten, die an Best Practices und wertvollen Tipps und Tricks für eigene Projekte mit Angular interessiert sind.
— Angular im Projektalltag: Dos and Don’ts
Die W-JAX Konferenz positioniert sich als Konferenz für moderne Java- und Web-Entwicklung, Software-Architektur und innovative Infrastruktur.
Auf der JAX 2018 Konferenz in Mainz hielt Karsten Sitterberg einen Vortrag zum Thema Angular:
"Erfahrungsbericht: 2 Jahre Angular in mehreren Kundenprojekten".
Der Vortrag richtete sich vor allem an Teilnehmer, die gerade erst mit Angular starten oder sich noch in der Evaluierungsphase für eine passende Frontendtechnologie befinden.
Ausgehend von einem typischen Kundenprojekt betrachtete Karsten Sitterberg in dem Vortrag den mehrstufigen Lernpfad von Angular und den damit einhergehenden architekturellen Fragestellungen.
Auf der Konferenz JavaLand stellten Stefan Reuter und Thomas Kruse das Thema "Self-Contained Systems" (SCS) im Kontext moderner Technologieentscheidungen vor.
Auf Basis von Erfahrungen in mehreren Projekten wurde der Weg von einer monolithischen Anwendungslandschaft zu einer Zielarchitektur auf Basis von Microservices und modernen Frontendtechnologien wie Angular skizziert.
Empfohlen wurde dabei die Nutzung von Domain-Driven Design für den Schnitt fachlicher Domänen und damit für die Identifikation möglicher SCS.
Fehler gehören selbst zu Softwareprojekten mit sehr hoher Qualität, denn nicht immer ist die Anwendung selbst für auftretende Probleme verantwortlich.
Dies kann etwa in Single-Page-Applications der Fall sein, die in fremden Browsern laufen, hier am Beispiel einer Angular-Anwendung illustriert.
In einer solchen Anwendung können Fehler zum Beispiel aus unerwarten Interkationen des Benutzers, aber auch Plugins oder Browser-Erweiterungen resultieren.
Mit dem Thema Dokumentation von Angular-Anwendungen beschäftigt sich Karsten Sitterberg in dem Artikel "Angular dokumentieren", der im Windows Developer Magazin veröffentlicht wurde.
Angular eignet sich gut als Framework für große und komplexe Anwendungen.
Da solche Anwendungen in der Regel langfristig gewartet und weiterentwickelt werden, erfordern sie auch eine gut nutzbare und leicht zu pflegende Entwicklerdokumentation.
In Kundenprojekten steht immer wieder die Frage nach der richtigen Frontendtechnologie im Raum.
Typischerweise fällt die Wahl dabei entweder auf "React" von Facebook oder "Angular" von Google.
Doch mit welchen Kriterien und Bewertungsmaßstäben geht man hier sinnvoll vor?
Welche der Optionen passt optimal zu den Anforderungen?
Gerade bei umfangreicheren Anwendungen ist das Thema Dokumentation wichtig:
Neue Entwickler sollen sich schnell zurecht finden und bei einer langfristigen Wartung der Anwendung sollen Konzepte möglichst gleichförmig angewendet werden.
Welche Dokumentationsoptionen dabei in Frage kommen, und wie man diese richtig anwendet werden in dem Fachartikel "Angular Anwendungen perfekt dokumentieren" durch unseren Angular Trainer Karsten Sitterberg beschrieben.
Geschrieben von Karsten Sitterberg am 20. September 2017
Der Browser entwickelt sich mehr und mehr zu einer vielseitigen Plattform, die als Ziel für immer komplexere Anwendungen dient.
Um mit dieser neuen Plattform alle Anwendungsfälle abbilden zu können, müssen auch aufwändige grafische Darstellungen wie etwa 3D-Modelle oder ganze Spiele auf dieser Plattform möglich sein.
Für 3D-Modelle und Videospiele wurden bisher zum Beispiel OpenGl oder Direct3D verwendet.
Im Browserumfeld steht mit WebGL jetzt eine vergleichbare API für 3D-Programmierung zur Verfügung.
Damit wird ermöglicht, aus dem Browser heraus per JavaScript Grafiken zu erzeugen, die hardwarebeschleunigt direkt durch die Grafikkarte gerendert werden.