Neuigkeiten von trion.
Immer gut informiert.

Artikel in der Kategorie 'cloud'

PHP in Docker 16. Oktober 2018

Geschrieben von Thomas Kruse am 16. Oktober 2018
Docker

Auch wenn mit Docker die Containertechnologie fast überall Einzug hält, gibt es immer wieder in der praktischen Arbeit Herausforderungen zu meistern. Ganz besonders dann, wenn die Anwendung, die in einen Container verbracht werden soll, nicht dafür ausgelegt wurde, entsprechend betrieben zu werden. Vor allem im PHP Umfeld finden sich oft Anwendungsarchitekturen, die der Docker Philosophie "Ein Container, eine Aufgabe" entgegen stehen.

Ein möglicher Ansatz zur Lösung ist die Nutzung von Docker lediglich zur Ausführung der PHP- und Webserverprozesse und separate Verwaltung der PHP Programmdateien. Ein Host-Mount kann die Dateien in beliebige Container einbinden - doch verliert man dann gerade die Stärke von Docker, sowohl für Rollout als auch Rollback eine handhabbare Einheit bestehend aus Anwendungsserver und Programmdateien bereitzustellen.

Das Problem besteht bei PHP Anwendungen in Docker darin, dass diese typischerweise aus mehreren Komponenten bestehen:

  • PHP-FPM für die Ausführung von PHP als Resultat von Web-Anfragen

  • Cron Jobs, oft ebenfalls als Trigger von PHP Scripten für periodische und asynchrone Aufgaben

  • Memcached oder Redis als Cache

  • Eine Datenbank wie MySQL oder PostgreSQL

  • Ein Webserver (nginx, Apache httpd, …​) zur Auslieferung statischer Dateien

Zumindest die ersten beiden Dienste benötigen Zugriff auf die selben PHP Programmdateien. Einen Scheduler und PHP-FPM im selben Container auszuführen passt nicht so ganz zur reinen Lehre von Docker, ist aber solange leicht zu verschmerzen, wie lediglich eine Container-Instanz läuft.

Sowieso als externe Resourcen verwaltete Dienste wie die Datenbank oder einen Memcached in einem separaten Container laufen zu lassen ist naheliegen. Doch wie geht mit man Software um, die für eine gänzlich andere Betriebsumgebung konzipiert wurde?

Am Beispiel typischer PHP Projekte kann man die unterschiedlichen Vorgehensweisen und damit einhergehende Eigenschaften betrachten.

Architektur mit Angular Elements 26. September 2018

Geschrieben von Thomas Kruse am 26. September 2018
Java Magazin 11/2018

Das seit Angular 6 als Beta verfügbare Feature "Angular Elements" wird mit Angular 7 erweitert und für den produtkiven Einsatz stabilisiert. Mit Angular Elements lassen sich mit dem Angular-Framework leichtgewichtige Web-Components entwickeln, die sich in unterschiedlichen Kontexten einsetzen lassen.

Karsten Sitterberg stellt in seinem Artikel "Architektur mit Angular Elements" vor, wie sich bereits mit Angular in Version 6 die Entwicklung von Web-Components gestalten lässt und welche Konsequenzen sich für die Architektur von Anwendungen durch die neuen Möglichkeiten ergeben.

Kubernetes Ingress mit traefik 20. August 2018

Geschrieben von Thomas Kruse am 20. August 2018
Kubernetes

Um auf Kubernetes-Dienste zuzugreifen gibt es mehrere Möglichkeiten, eine davon ist der Ingress. Ingress eignet sich für HTTP basierte Dienste und kann Funktionalitäten wie TLS-Terminierung und Load-Balancing übernehmen. Im Prinzip handelt es sich bei Ingress also um so etwas wie einen Reverse-Proxy.

Kubernetes bringt dabei keine Ingress-Implementierung mit, sondern es gibt diverse Optionen von nginx über HA-Proxy und Apache Trafficserver bis zu traefik. Wie traefik als Kubernetes-Ingress-Implementierung eingesetzt werden kann, wird in diesem Beitrag vorgestellt.

fn Project - Serverless Java mit Docker und Kubernetes 29. Juni 2018

Geschrieben von Thomas Kruse am 29. Juni 2018
fn project

Im Markt der Serverless-Ansätze positioniert sich Oracle mit Project Fn. Dieser Beitrag demonstriert den Einsatz des Fn Project um mittels Docker oder Kubernetes Function-As-A-Service (FaaS) bzw. Serverless Architekturen umzusetzen. Als Demo wird eine Java Anwendung mit Project Fn als Docker-Container erstellt und im Fn Server betrieben.

buildah: Docker und Kubernetes Images ohne Daemon 22. Juni 2018

Geschrieben von Thomas Kruse am 22. Juni 2018
buildah

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?

Kubernetes und Java Serverless - Function as a Service 8. Juni 2018

Geschrieben von Thomas Kruse am 8. Juni 2018

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.

Self-Contained Systems mit Angular (JavaLand 2018) 13. März 2018

Geschrieben von Thomas Kruse am 13. März 2018

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.

Authentication and Authorization in a Cloud and Microservice World: Devoxx 2016 18. August 2016

Geschrieben von Stefan Reuter am 18. August 2016
image

Die diesjährige Devoxx findet vom 7. bis 11. November in Antwerpen, Belgien, statt.

Die weltweit größte herstellerunabhängige Java-Konferenz wird seit 2001 von der belgischen Java User Group organisiert und ist mit konstant mehr als 3000 Teilnehmern eine wichtige Größe in der Entwicklercommunity.

Die trion wird in diesem Jahr von Stefan Reuter und Thomas Kruse mit dem Talk "Authentication and Authorization in a Cloud and Microservice World" vertreten sein.

Suche

Los geht's!

Bitte teilen Sie uns mit, wie wir Sie am besten erreichen können.