Seite wählen

NETWAYS Blog

Monthly Snap May 2020

In the beginning of the month almost all NETWAYS’ers were working from home. By the end of the month more and more came to work in the office, which was newly equipped with face masks and disinfectant dispensers. What else was on our minds in May?

 

Kubernetes

Part two of the blog-series Kubernetes – so startest Du durch! is Achim’s So startest Du Dein Managed Kubernetes bei NWS, a thorough how-to for getting started with your cluster. Also read part three, in which your first steps with Kubernetes are described: Erste Schritte mit Kubernetes. In part four in the series Achim gave us further helpful tips. Read Kubernetes Nginx Ingress Controller – So gelingt Dein einfacher Start! Part five of the series is Sebastian’s blog Monitoring Kubernetes mit Prometheus, because whether we like it or not, monitoring is an important issue that should never be neglected.

 

CEOs point of view

Many of us order from Amazon automatically, without even considering other options. Bernd encourages us to rethink this behaviour for various reasons in Amazon ist nicht alternativlos.

 

Techie news

David started out with his blog Die Out of the Box Experience, in which he claims that some of the joy of unboxing your new pc or gaming console is lost in all the waiting and installing we have to go through to actually use the new item. What to do with preinstalled Python versions? Markus gave us an idea in: Virtual Environments in Python. Philipp talked about evaluating SNMP traps in Ein kleiner Exkurs zu SNMP. And Saeid tested the program Pretalx for us, an open source program for organizing events and conferences.

 

SHOPs corner

Nicole explained the advantages of one of Gude’s products GUDE Expert Net Control 2111-Serie: Schalten und Messen for medium-sized to large server-rooms and data-centers. What do you need for monitoring your data center this summer? Natalie suggests the HWg-Ares 12 in Der – vermutlich etwas andere – Sommer kommt! What’s new from AKCP? Nicole wrote NEU im Shop: AKCP LoRaWan Geräte für wireless Sensoren and explained how this technology works. In GUDE Expert Sensor Box 7213 und 7214-Serie im direkten Vergleich, Natalie compares two Gude Boxes, to help us decide which one meets our needs the best.

 

Upcoming Events

In Call for Papers: Become a Speaker at OSMC 2020, Julia invited all of us to become speakers at the Open Source Monitoring Conference in Nuremberg. Hand in your proposal and take part in the event of the year! Did you know that we now offer some of our trainings as online trainings? Julia gave us an overview of upcoming trainings in Alles neu macht der Mai: NETWAYS Trainings – Online und vor Ort. And Julia informed us that the agenda for the stackconf is set! Read about it in stackconf online: stream, chat, network

Julia also wrote about the importance of helpful apps while working from home. Suddenly „nice“ and „helpful“ apps became significant for our work, and we were so happy to have them and our MyEngineers! Read about it in Wie ich meine Open Source-Apps und MyEngineers zu schätzen gelernt habe.

 

OSDC Recap

In our blog series OSDC recap we present some of last years’ highlights. In 5 Steps to a DevOps Transformation by Dan Barker | OSDC 2019, Aleksander gave a summary of the talk and shared a link to its video. Did you miss Jan Martens’ talk? Alexander recapped it in Evolution of a Microservice-Infrastructure by Jan Martens | OSDC 2019 and he also shared a link to the video.

 

#lifeatnetways

Working from home is different for everyone. Our apprentice Nathaniel shared his experiences in Arbeiten und Leben im Homeoffice in Zeiten von Corona

 

Catharina Celikel
Catharina Celikel
Office Manager

Catharina unterstützt seit März 2016 unsere Abteilung Finance & Administration. Die gebürtige Norwegerin ist Fremdsprachenkorrespondentin für Englisch. Als Office Manager kümmert sie sich deshalb nicht nur um das Tagesgeschäft sondern übernimmt nebenbei zusätzlich einen Großteil der Übersetzungen. Privat ist der bekennende Bücherwurm am liebsten mit dem Fahrrad unterwegs.

Evolution of a Microservice-Infrastructure by Jan Martens | OSDC 2019

This entry is part 2 of 6 in the series OSDC 2019 | Recap

 

At the Open Source Data Center Conference (OSDC) 2019 in Berlin, Jan Martens invited to audience to travel with him in his talk „Evolution of a Microservice-Infrastructure”. You have missed him speaking? We got something for you: See the video of Jan‘s presentation and read a summary (below).

The former OSDC will be held for the first time in 2020 under the new name stackconf. With the changes in modern IT in recent years, the focus of the conference has increasingly shifted from a mainly static infrastructure approach to a broader spectrum that includes agile methods, continuous integration, container, hybrid and cloud solutions. This development is taken into account by changing the name of the conference and opening the topic area for further innovations.

Due to concerns around the coronavirus (COVID-19), the decision was made to hold stackconf 2020 as an online conference. The online event will now take place from June 16 to 18, 2020. Join us, live online! Save your ticket now at: stackconf.eu/ticket/


 

Evolution of a Microservice-Infrastructure

Jan Martens signed up with a talk titled “Evolution of a Microservice Infrastructure” and why should I summarize his talk if he had done that himself perfectly: “This talk is about our journey from Ngnix & Docker Swarm to Traefik & Nomad.”

But before we start getting more in depth with this talk, there is one more thing to know about it. This is more or less a sequel to “From Monolith to Microservices” by Paul Puschmann a colleague of Jan Martens, but it’s not absolutely necessary to watch them in order or both.

 

So there will be a bunch of questions answered by Jan during the talk, regarding their environment, like: “How do we do deployments? How do we do request routing? What problems did we encounter, during our infrastructural growth and how did we address them?”

After giving some quick insight in the scale he has to deal with, that being 345.000 employees and 15.000 shops, he goes on with the history of their infrastructure.

Jan works at REWE Digital, which is responsible for the infrastructure around services, like delivery of groceries. They started off with the takeover of an existing monolithic infrastructure, not very attractive huh? They confronted themselves with the question: “How can we scale this delivery service?” and the solution they came up with was a micro service environment. Important to point out here, would be the use of Docker/Swarm for the deployment of micro services.

Let’s skip ahead a bit and take a look at the state of 2018 REWE Digital. Well there operating custom Docker-Environment consists of: Docker, Consul, Elastic Stack, ngnix, dnsmasq and debian

Jan goes into explaining his infrastructure more and more and how the different applications work with each other, but let’s just say: Everything was fine and peaceful until the size of the environment grew to a certain point. And at that point problems with nginx were starting to surface, like requests which never reached their destination or keepalive connections, which dropped after a short time. The reason? Consul-template would reload all ngnix instances at the same time. The solution? Well they looked for a different reverse proxy, which is able to reload configuration dynamically and best case that new reverse proxy is even able to be configured dynamically.

The three being deemed fitting for that job were envoy, Fabio and traefik, but I have already spoiled their decision, its treafik. The points Jan mentioned, which had them decide on traefik were that it is dynamically configurable and is able to reload configuration live. That’s obviously not all, lots of metrics, a web ui, which was deemed nice by Jan and a single go binary, might have made the difference.

Jan drops a few words on how migration is done and then invests some time in talking about the benefits of traefik, well the most important benefit for us to know is, that the issues that existed with ngnix are gone now.

Well now that the environment was changed, there were also changes coming for swarm, acting on its own. The problems Jan addresses are a poor container spread, no self-healing, and more. You should be able to see where this is going. Well the candidates besides Docker Swarm are Rancher, Kubernetes and Nomad. Well, this one was spoiled by me as well.

The reasons to use nomad in this infrastructure might be pretty obvious, but I will list them anyway. Firstly, seamless consul integration, well both are by HashiCorp, who would have guessed. Nomad is able to selfheal and comes in a single go binary, just like traefik. Jan also claims it has a nice web UI, we have to take his word on that one.

Jan goes into the benefits of using Nomad, just like he went into the benefits of ngnix and shows how their work processes have changed with the change of their environment.

This post doesn’t give enough credit to how much information Jan has shared during his talk. Maybe roughly twenty percent of his talk are covered here. You should definitely check it out the full video to catch all the deeper more insightful topics about the infrastructure and how the applications work with each other.

Alexander Stoll
Alexander Stoll
Junior Consultant

Alexander ist ein Organisationstalent und außerdem seit Kurzem Azubi im Professional Services. Wenn er nicht bei NETWAYS ist, sieht sein Tagesablauf so aus: Montag, Dienstag, Mittwoch Sport - Donnerstag Pen and Paper und ein Wochenende ohne Pläne. Den Sportteil lässt er gern auch mal ausfallen.

NETWAYS Managed Kubernetes. Auf in die Welt der Container!

Stolz können wir verkünden: Wir haben ab sofort Kubernetes (K8s) als “NETWAYS Managed Kubernetes” neu in unserem Managed und Web Services-Portfolio.

Kubernetes ist griechisch und bedeutet Steuermann. Der Name passt, denn das Open Source-System gibt wie ein Steuermann den Weg zur Bereitstellung, Skalierung und Verwaltung von Containern vor. Du definierst, was Du willst und Kubernetes steuert alles, was an Infrastruktur auf dem Weg dorthin nötig ist.

Ein ganz großer Vorteil von Kubernetes: Services werden in Containern automatisch auf den kompletten Kubernetes-Cluster verteilt. Die vorhandenen Ressourcen werden dabei optimal ausgenutzt. Die Herausforderung: K8s braucht die richtigen Ressourcen zur richtigen Zeit, der Kubernetes-Cluster muss hochverfügbar gebaut sein und bestens gepflegt werden, um skalieren zu können.

Ich könnte jetzt darüber witzeln, dass Sebastian, unser Head of Managed Services, Kopf der NWS-Mannschaft, Saemann heißt, also irgendwie ähnlich, und muss bei dem Gedanken daran wirklich ein bisschen schmunzeln. Weil das ja irgendwie gut passt. Der Saemann und seine Mannschaft bereiten den Boden, auf dem der Steuermann seine Container automatisch dirigieren kann. So ist das mit unserem Managed Kubernetes.

Also gut – damit ihr wisst, was ich meine, hier ein paar Fakten.

Das bietet NETWAYS Managed Kubernetes:

  • Cluster-Erstellung in Minuten | Cluster-Status definieren, die Anzahl der Nodes (früher Minions) festlegen, kubectl starten: Nach nur wenigen Schritten ist Dein Kubernetes bereit. Wir helfen Dir gern dabei!
  • Managed Control Plane | Auf Wunsch überwachen und betreiben wir die Control Plane für Dich, auch 24/7.
  • Object Storage | Du kannst lokalen Speicher oder Ceph-Speicher verwenden. Objekte werden über unsere zwei ISO 27001-zertifizierte Rechenzentren repliziert.
  • Offene Standards und APIs | Alle Kubernetes-Cluster sind kompatibel mit dem Upstream-Projekt. Ebenso die zugrunde liegende Infrastruktur, die auf OpenStack basiert. Eh klar. Wir lieben Open Source!
  • Persistente Volume Claims | Ermöglichen die Speicherung von Daten über den Lebenszyklus des Containers hinaus.
  • Load Balancer | Load Balancing und die DNS-Verwaltung erfolgen automatisch. Auf Wunsch stellen wir Dir Services und Ingress-Controller bereit.

Kubernetes unterstützt eine Reihe von Container-Runtime-Engines, einschließlich Docker. Es wird in vielen IT-Abteilungen häufig als eine Möglichkeit verwendet, eine auf Microservices basierende Anwendung zu betreiben. Das enorme Ökosystem und die verbreitete Integration in Drittanwendungen ist Garant für reibungslose Continuous Integration und Deployment-Prozesse.

Das Kubernetes-Projekt wurde von Google-Entwicklern initiiert und wird von der Cloud Native Computing Foundation (CNCF) betrieben. Die CNCF ist Teil der gemeinnützigen Linux Foundation.

Kubernetes – der De-facto-Standard im agilen Software-Entwicklungsumfeld

“Kubernetes ist der De-facto-Standard für moderne und zukunftsorientierte Anwendungen im agilen Software-Entwicklungsumfeld”, sagt Sebastian und zeigt sich stolz, diesen Service jetzt anbieten zu können.

Du willst mehr wissen? Oder direkt Deine ersten eigenen Container starten?

Dann schau doch mal auf nws.netways.de/kubernetes.

Julia Hornung
Julia Hornung
Senior Marketing Manager

Julia ist seit Juni 2018 bei NETWAYS. Mit ihren Spezialgebieten Texte/Konzepte, Branding und PR ist sie für Tone of Voice und Wording von NETWAYS und Icinga verantwortlich. Davor war sie als Journalistin und in der freien Theaterszene spannenden Geschichten auf der Spur. Ihre Leidenschaft gilt gutem Storytelling, klarer Sprache und ausgefeilten Texten. Ihre innere Mitte findet sie beim Klettern und Yoga.

Docker – ein erster Eindruck!

Ich habe in den letzten Monaten meiner Ausbildung schon viel über verschiedene Software, Strukturen und Programiersprachen gelernt. Seit einigen Wochen arbeite ich in der Managed Services-Abteilung mit Docker und bin wirklich fasziniert, was Docker alles kann und wie es funktioniert.

Was genau ist Docker?

Docker ist eine Containerisierungstechnologie, die die Erstellung und den Betrieb von Linux-Containern ermöglicht, die man nicht mit virtuellen Maschinen verwechseln sollte.

Docker vereinfacht die Bereitstellung von Anwendungen, weil sich Container, die alle nötigen Pakete enthalten, leicht als Dateien transportieren und installieren lassen. Container gewährleisten die Trennung und Verwaltung der auf einem Rechner genutzten Ressourcen. Das beinhaltet laut Aussage der Entwickler: Code, Laufzeitmodul, Systemwerkzeuge, Systembibliotheken – alles was auf einem Rechner installiert werden kann.

Welche Vorteile bringt Docker?

Ein Vorteil ist, dass man diese Container sehr flexibel erstellen, einsetzen, kopieren und zwischen Umgebungen hin- und her verschieben kann. Sogar ein Betrieb in der Cloud ist dadurch möglich und eröffnet viele neue Möglichkeiten. Das Ausführen verschiedener Container bietet zusätzlich einige Sicherheitsvorteile. Wenn man Anwendungen in verschiedenen Containern ausführt, hat jeder Container nur Zugriff auf die Ports und Dateien, die der andere Container explizit freigibt.

Darüber hinaus bieten Container ein höheres Maß an Kontrolle darüber, welche Daten und Software auf dem Container installiert sind. Schadsoftware, die in einem Container ausgeführt wird, wirkt sich nicht auf andere Container aus.

Was ist der Unterschied zwischen Docker-Containern und virtuellen Maschinen?

Virtuelle Maschinen enthalten von der simulierten Hardware, über das Betriebssystem bis zu den installierten Programmen eine große Menge an Informationen. Die Folge: Sie verbrauchen viel Speicherplatz und Ressourcen.

Der große und schöne Unterschied zu herkömmlichen virtuellen Maschinen ist, dass die Container kein Betriebssystem beinhalten und booten müssen, sondern lediglich die wichtigen Daten der Anwendung enthalten. Wollten wir früher beispielsweise eine Datenbank und einen Webserver getrennt voneinander starten, benötigen wir zwei VMs. Mit Docker werden hier nur noch zwei Container benötigt, ohne dass man die VMs booten muss, die kaum Ressourcen verbrauchen – im Vergleich zu den virtuellen Maschinen.

Virtuelle Maschinen jedoch haben nach wie vor ihre Daseinsberechtigung: zum Beispiel wenn auf einem Host mehrere Maschinen mit jeweils unterschiedlichen Betriebssystemen oder Hardware-Spezifikationen simuliert werden müssen. Denn ein Docker-Container enthält kein eigenes Betriebssystem und keine simulierte Hardware. Hier wird auf das System des Hosts zugegriffen, so dass alle Container Betriebssystem und Hardware gemeinsam nutzen.

Fazit zum Thema Docker:

Den Einsatz von Docker betrachte ich als sinnvoll. Es ergeben sich viele Vorteile und so ist es inzwischen möglich, eine Softwareumgebung rascher aufzubauen, ohne viel Speicherplatz und Ressourcen zu verbrauchen.

Out-of-Memory: Marathon 1.6+ und Heap Size

Auch wenn in Sachen Container Orchestrierung Kubernetes klar gegen Marathon und Mesos gewonnen hat bietet das Duo seit Jahren eine zuverlässig Plattform. Durch die stetige Weiterentwicklung und die Umstellung auf Systemd ändert sich leider auch immer wieder die Konfigurationen der Dienste.

Für einen stabilen Betrieb von Marathon sollte die maximale Heap-Size der Java Virtual Machine (JVM) eine angemessene Größe haben. Zu wenig Memory äußert sich z.B. durch erhöhte Antwortzeiten oder durch die Aktivierung des OOM-Killer. Wo in vergangenen Versionen und Konfigurationen noch die /etc/defaults/marathon zum Setzen der Javaoption verwendet wurde, kann man hier seit Marathon 1.6 vergeblich sein Glück suchen. Aus meiner Sicht ist ein Verzicht auf /etc/defaults/marathon und eine saubere Definition in einer systemd Unit-Datei natürlich zu begrüßen. Die Umgebungsvariablen lassen sich auch dort einfach definieren, aber wie genau muss das für Marathon aussehen?

# systemctl edit marathon.service
[Service]
Environment=JAVA_OPTS=-Xmx2g

Mit systemclt edit kann man eine bestehende Unit-Datei einfach erweitern und der Parameter Environment setzt die Umgebungsvariable.  Alternativ könnte man auch Environmentfile=/etc/defaults/marathon verwenden um das gewohnte Verhalten wieder herzustellen.

Nach dem Speichern braucht es einen Daemon-Reload, damit die neue Unit-Datei eingelesen wird.

# systemctl daemon-reload
# systemctl restart marathon.service

Eigentlich bleibt also alles beim Alten, man muss nur die zusätzlichen Parameter in die JAVA_OPTS setzen und den Service neu starten ?.

 

Achim Ledermüller
Achim Ledermüller
Lead Senior Systems Engineer

Der Exil Regensburger kam 2012 zu NETWAYS, nachdem er dort sein Wirtschaftsinformatik Studium beendet hatte. In der Managed Services Abteilung ist unter anderem für die Automatisierung des RZ-Betriebs und der Evaluierung und Einführung neuer Technologien zuständig.

Veranstaltungen

Dez 01

Icinga 2 Fundamentals Training | Online

Dezember 1 @ 09:00 - Dezember 4 @ 17:00
Dez 03

DevOps Meetup

Dezember 3 @ 17:30 - 20:30
Dez 08

Terraform mit OpenStack Training | Online

Dezember 8 @ 09:00 - Dezember 9 @ 17:00
Dez 08

Icinga 2 Advanced Training | Online

Dezember 8 @ 09:00 - Dezember 10 @ 17:00
Dez 15

GitLab Training | Online

Dezember 15 @ 09:00 - Dezember 16 @ 17:00