Neuigkeiten von trion.
Immer gut informiert.

Blog-Archiv 2019

macOS Environment für NativeScript 11 Jul

Geschrieben von Thomas Kruse am 11. Juli 2019
NativeScript

NativeScript vereinfacht die plattformübergreifende Entwicklung nativer Mobile-Apps für iOS und Android. Es ermöglicht mit Angular und Vue.js die Verwendung unterschiedlicher Frameworks. Außerdem wird neben JavaScript auch TypeScript als Programmiersprache unterstützt, das mit der Zeit immer beliebter wird. Bei den stackoverflow Developer Survey Results von 2019 wurde TypeScript bei den beliebtesten Programmiersprache bereits auf Platz 3 gewählt. Mit dem NativeScript CLI bietet NativeScript zudem ein mächtiges und zugleich einfaches Tool zur Automatisierung des Builds mittels einer CI-Pipeline.

In diesem Artikel beschreiben wir die Provisionierung eines macOS-Systems für NativeScript. In folgenden Artikeln schauen wir uns noch an, wie wir das System als Runner in Gitlab einbinden und zum Upload von NativeScript-Apps zum Apple App Store nutzen können.

Kommunikation zwischen Kafka und ZooKeeper mit TLS verschlüsseln 28 Jun

Geschrieben von Kai Moritz am 28. Juni 2019

Sichere Kommunikation ist gerade dann wichtig, wenn Infrastruktur zum Einsatz kommt, die nicht voll vertrauenswürdig ist. Dazu zählt zum Beispiel ein Kafka / Zookeeper Deployment in einer Cloud Umgebung.
Zwischen Kafka und Zookeeper ist es möglich, die Kommunikation mit TLS zu verschlüsseln und damit zu sichern.

Kubernetes API mit Java anbinden 28 Mai

Geschrieben von Thomas Kruse am 28. Mai 2019
Kubernetes

Kubernetes bietet mit seiner erweiterbaren API eine sehr einfache Möglichkeit zusätzliches Verhalten mit Kubernetes zu integrieren. Neben der API-Spezifikation als OpenAPI (ehemals Swagger) stellt das Kubernetes-Projekt auch fertige Clients für verschiedene Programmiersprachen an. Eine besondere Rolle nimmt der Kubernetes Go-Client ein, da dieser auch innerhalb von Kubernetes selbst eingesetzt wird.

Auf Basis der OpenAPI-Spezifikation stehen generierte Clients für Java, Python, C# und JavaScript. Zu den offiziellen Kubernetes-Clients kommen noch durch die Community erstellte und gepflegte Libraries für diverse Sprachen hinzu.

Im Folgenden wird demonstriert, wie die Kubernets-API mit Java verwendet werden kann. Wie der dazu benötigte lesende API-Zugriff eingerichtet werden kann, wurde bereits in Kubernetes Readonly API Zugriff erklärt.

SVG-Komponenten mit Angular 26 Mai

Geschrieben von am 26. Mai 2019
Angular

Das Angular-CLI richtet mit Angular 8 einen erweiterten Support für SVG-Grafiken ein. Dies wollen wir zum Anlass nehmen, den SVG-Support von Angular einmal genauer zu beleuchten.

Kubernetes Read-Only API Zugriff 18 Mai

Geschrieben von Thomas Kruse am 18. Mai 2019
Kubernetes

Kubernetes ist durch seine erweiterbare API etwas besonderes: Auf der einen Seite werden für die Clusterverwaltung benötigte Objekte durch die Kubernetes-API bereitgestellt und erlauben damit, beliebige Programme in die Clusterverwaltung einzubeziehen. Zum anderen können beliebige Anwendungen und Produkte die Kubernetes-API um eigene Funktionalität erweitern und damit auf einheitliche, herstellerunabhängige Weise bereitgestellt werden.

Auch - oder gerade - innerhalb eines Kubernetes Clusters kann ein API Zugriff sinnvoll sein. Kubernetes stellt den API-Server daher standardmäßig als Service kubernetes im default Namespace zur Verfügung.
Im Folgenden wird gezeigt, wie die API verwendet werden kann, und wie ein spezieller Serviceaccount angelegt wird, der lediglich Leserechte für die Kubernetes-API besitzt.

Jax 2019 - Testen von Browser Anwendungen 8 Mai

Geschrieben von Thomas Kruse am 8. Mai 2019
Jax 2019

Karsten Sitterberg stellte auf der Jax 2019 in Mainz in seinem Vortrag "Effektives Testen von Browseranwendungen" Technologien und Frameworks vor. Der Überblick wurde dabei durch Tipps und Best-Practices für die Erstellung von wartbaren Tests ergänzt.

Jax 2019 - Frontend Architektur für Microservices 8 Mai

Geschrieben von Thomas Kruse am 8. Mai 2019
Jax 2019

Frontend Architektur im Kontext von Microservices behandelt Thomas Kruse in seinem Vortrag auf der Jax 2019. Der Vortrag zeigt die speziellen Herausforderungen, die sich aus einer guten Benutzbarkeit von Frontends für Microservices, ergeben.

Für den Vortrag wurden die Erfahrungen aus verschiedenen Projekten in einem zeitlichen und technologischen Kontext eingeordnet und liefern damit Entscheidungshilfen für Architekten, die sich mit dem Thema Frontend im Microservice Kontext befassen. Dank aktueller Entwicklungen eignen sich inzwischen Webcomponents für bestimmte Aufgabenstellungen und wurden mit einem Beispiel auf Basis von Angular Elements praktisch demonstriert.

Kubernetes on ODROID-N2 6 Mai

Geschrieben von Thomas Kruse am 6. Mai 2019
Kubernetes

The ODROID-N2 is an amazing single board computer: It is available with 4GB RAM - and with an eMMC card for high speed storage and a power supply it costs less than 100 Euros. With 4+2 ARM64 CPU cores the ODROID-N2 provides an interesting platform to operate a small Kubernetes cluster without too much worrying about the power bill.

This article explains how to setup Kubernetes on ODROID-N2 single board computers. Since there are several options for operating system as well as Kubernetes distribution and setup method, this article makes the following decisions:

  • Use Arch Linux ARM64 as base operating system (this is quite lean and kept very much up to date)

  • Vanilla Kubernetes will be used, compiled and packaged as Arch ARM64 packages on the ODROID N2

  • Plain kubeadm will be used to setup the Kubernetes cluster

  • CRI-O as container runtime (instead of Docker)

  • Single master node and 4 worker nodes

Unfortunately there is no mainline Linux Kernel support for the ODROID-N2, but Hardkernel promised to work on it. The following features are currently not working as desired:

  • zram for compressed memory as swap device

  • Disable GPU memory allocation to make use of the full 2GB/4GB of the ODROID-N2

Previous experiences with Arch Linux ARM 64bit and Kubernetes on Raspberry Pi and ODROID (ODROID-C2 to be precise) can be found here:

Kubernetes Feature Gates konfigurieren 3 Mai

Geschrieben von Thomas Kruse am 3. Mai 2019
Kubernetes

In Kubernetes sind Features in unterschiedlichen Reifegraden enthalten. Einige Features sind im Stadium beta oder auch bereits stabil. Diese Features sind automatisch aktiviert und allgemein nutzbar. Anders ist dies bei den Features im Stadium alpha, diese müssen explizit durch den Administrator aktiviert werden.
Je nach Kubernetes-Version ist die Menge der verfügbaren und automatisch aktivierten Features unterschiedlich.

Die vorhergehenden Beiträge befassten sich mit dem TTL Controller Feature als Beispiel für Admission Controller:

Passend dazu wird nun gezeigt, wie das Feature des TTL-Controllers im Kubernetes-Cluster aktiviert werden kann.

Konfiguration von Kubernetes Admission Controller 2 Mai

Geschrieben von Thomas Kruse am 2. Mai 2019
Kubernetes

Nachdem das Konzept von Kubernetes Admission Controllern in dem Beitrag Kubernetes Admission Controller beschrieben wurde und in Beispiel für Admission Controller gezeigt wurde, wie ein Admission Controller Webhook implementiert werden kann, geht es nun darum, diesen in Betrieb zu nehmen.

Der Webhook an sich kann sowohl in dem selben Kubernetes-Cluster betrieben werden, in dem er auch verwendet wird, als auch völlig unabhängig von Kubernetes.
Damit Kubernetes bei einem so mächtigen Element sicherstellen kann, dass mit dem korrekten Webhook kommuniziert wird, muss die Verbindung TLS gesichert sein und Kubernetes dem Zertifikat vertrauen. Für den Aufbau der Trust-Chain werden entweder die vom zugrundeliegenden Betriebssystem bereitgestellten CA-Zertifikate verwendet, oder es kann in der Webhook Konfiguration explizit ein CA Zertifikat angegeben werden. Um das Beispiel möglichst vollständig nachvollziehbar zu gestalten, wird mit Hilfe der internen Certificate Authority von Kubernetes ein Zertifikat erstellt, wie in diesem Artikel beschrieben: Verwendung von Kubernetes Zertifikaten.

Wird der Webhook in Kubernetes betrieben, so muss vorher natürlich ein Container-Image gebaut werden und für das Image ein Deployment samt entsprechendem Service in Kubernetes angelegt werden.

Los geht's!

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