Monthly Snap May

May at NETWAYS was above all the month of the OSDC, but our team still found the time to share some news and thoughts with us all!

It all started with development…

Alexander started the month with his Blogpost Generics waren gestern. Lang lebe Golangs Reflection! And he raises the question if we really need Generics, or if Golangs would do too.
Jean wrote that it all started with a Gameboy and let us take a peek at her personal journey into programming.
Digging up hidden information for a scavenger hunt? Feu reflected on the thrill in geocaching, solving puzzles and hidden riddles.
Noah got technical! How to: Merge multiple Git repositories into one

Live from the OSDC!

Michael shared the latest news live from Berlin: OSDC 2019: Buzzwo…erm…DevOps, Agile & YAML programmers
And so did Tim: OSDC 2019 Part 2 – Automating patching, VMs in containers & much more

News from the NETWAYS shop!

Immer im Takt bleiben – mit Gude. As Nicole informed us, it is possible to synchronize the inbuilt clock in your hardware per GPS!
TinkerForge is still new in the NETWAYS shop, and in May Nicole presented a new Check-Plugin for TinkerForge Hardware.
Nicole also proudly announced that SMS Eagle sponsored the OSDC for the first time! Welcome SMS Eagle!

Spectacular lottery!

Did you know that our NWS team decided to hold a little competition with several great prices? The first price was winning our very own CEO Bernd Erk for a whole day! Read all about it in Marius` blogpost NETWAYS Web Services Raffle

Poetic and philosophical consultants!

Thomas once again showed his poetic skills in a fun rhyme on Icinga. This is definitely worth the read! Irgendwer muss es halt machen!
Gedanken tanken is Tobias idea of feeding the brain useful but also entertaining Input.
Our apprentice Tobias went on his first business trip! Meine erste Reise bei NETWAYS! He held an Icinga advanced training with Lennart in Munich. Meanwhile Afeef, another junior consultant, dove deep into comparing Podman vs Docker.
Viel hilft viel- nicht immer, Thomas claims! He used Elasticsearch to monitor thresholds in Java and shared useful tips with the community.

Just fit- just awesome!

Healthy living (or at least a bit healthier) is still an important subject at the NETWAYS HQ. Nadja gave us tips on how to treat your back well Just fit – just awesome: Rückenschule How should we sit? What exercises can easily be carried out while seated in front of the PC? Many helpful tips in this one!
Then Catharina gave a summary on the first ever NETWAYS Wellbeing day! A day packed with healthy recipes, business yoga and other interesting components that helped us heighten our awareness and to lock out the world for a moment.

What`s next?

Julia invited us to the Foreman birthday party taking place here in Nuremberg on July 25! Read all about it and register for a great program. It is all for free! New and Next in Automation: Notes on OSCamp Berlin! Julia reviewed the OSCamp and reminded us of the next one on Foreman. It will take place in Nuremberg on November 7, right after the OSMC! The highlight in May was definitely the OSDC in Berlin. Julia reported about a terrific conference with a great atmosphere. OSDC 2019: Unique views and phenomenal people. And soon afterwards the OSDC Archive was online!

And the others?

Achim contemplated the advantages of mtr compared to traceroute for tracing your routing paths in your network. Finde den Weg mit mtr und traceroute
Martin presented our Icinga starter pack, perfect for the first steps with Icinga, and Blerim from Team Icinga announced future Icinga Camps in Stockholm, Mailand und Zürich!
And last, but not least Bernd is looking forward to Rootconf 2019 in Bangalore taking place June 21 to 22.

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.

Wenn Agile, warum dann nicht richtig?

Das Thema Agile sickert nun so langsam in jeden großen Konzern und sogar die ersten Behörden.

Dabei klingt das Thema sehr Verlockend, egal in welcher Tiefe man es ausleben möchte:

  • Kleinere Teams oder Squads
  • Mehr Verantwortung der einzelnen Teams
  • Kurze Dienstwege
  • Klare Schnittstellen
  • Flexible Prozesse

Nur ist die Realität oft nicht so einfach, denn es ist nicht damit getan einen neuen Organisationsplan zu erstellen, und Zuständigkeiten zu definieren.

Es gibt viele weitere Punkte die eigentlich wichtiger sind, gerade Verantwortungen verteilen und vor allem auch Rechte weitergeben fällt den meisten Konzernen sehr schwer. Meine Erfahrungen als Consultant zeigen leider, dass der technische Aspekt von Agile oft vernachlässigt wird.

Viele Konzerne arbeiten noch mit klassischen Managed-Systemen, bei denen das Fachteam, dass eine Anwendung betreibt so gut wie keine Rechte hat. Auch wenn dieses Konzept gute Gründe hat, so ist es fast das Gegenteil von Agile. Denn wenn ein Fachteam nicht in der Lage ist, außerhalb des Laufstalls des ihm zugestanden wird, etwas zu ändern, oder gar ein Paket zu installieren oder updaten, dann ist das eigentlich nicht der Server des Teams. Und dann eigentlich auch in dessen Verantwortung.

Deswegen mein Appell: Wenn man Agile macht, dann bitte auch technische Verantwortung und Rechte übertragen, eben Vertrauen zugestehen.

Das heißt übrigens nicht, dass ein Betriebssystem-Team damit obsolet wäre, dieses wird dann eher zum Dienstleister. Sie stellen die VM oder die Hardware bereit, liefern Grundkonfiguration, helfen bei der Einrichtung, Best-Practices und Problemen.

Der Blick auf die Security der Plattform bleibt eigentlich unverändert, denn es musste auch vorher schon auditiert werden, z.B. ob Sicherheits-Updates installiert wurden, oder Software unsicher konfiguriert ist.

Der Unterschied liegt darin mehr Eigenverantwortung zu etablieren, und damit Flexibilität und Einfachheit zu Gewinnen, eben die Agilität.

Photo by bonneval sebastien on Unsplash

Markus Frosch
Markus Frosch
Principal Consultant

Markus arbeitet bei NETWAYS als Principal Consultant und unterstützt Kunden bei der Implementierung von Nagios, Icinga und anderen Open Source Systems Management Tools. Neben seiner beruflichen Tätigkeit ist Markus aktiver Mitarbeiter im Debian Projekt.

Ich habe einen iX-Artikel für Dich: GitLab, GitLab, GitLab

Servus zusammen,

Dinge die man selbst gelernt hat, anderen Leuten beizubringen und helfend beiseite zu stehen, ist ein echt gutes Gefühl. Bei mir zieht sich das seit vielen Jahren durch die Icinga Community, einer der schönsten weil überraschensten Momente war wohl das Foto als “Danke” auf dem Icinga Camp Berlin 2019. Dann kommt noch dazu, dass ich sehr gerne Dokumentation schreibe, oder einfach alles aufschreibe, was ich irgendwann mal brauchen könnte. Und vielleicht jemand anders, der mal meinen Job macht, und ich mich neuen Aufgaben widmen kann. Nach den ersten Gehversuchen mit der Icinga-Schulung (2.x natürlich ;)) haben das nunmehr meine Kollegen übernommen, und meistern die Wissensvermittlung mit Bravour. Wir Entwickler sorgen dann in unseren Releases dafür, dass auch ihnen nicht langweilig wird 🙂

Ich für mich habe aber auch festgestellt, dass man nicht nur “das eine” machen soll und auch kann, sondern immer “über den Tellerrand” schauen sollte. Und so kams, dass ich auf meiner ersten OSDC 2013 keinen Dunst von Puppet, Elastic, Graphite, Container-Plattformen oder CI/CD hatte. Auch die Jahre danach waren hart, und meine Kollegen durften mir viel erklären, etwa Ceph und OpenStack. Jetzt nach vielen Jahren hilft mir dieses Wissen in meiner tagtäglichen Arbeit, und auf eine gewisse Art und Weise bin ich stolz, wenn mich meine Kollegen und Freunde nach Themen fragen, die nicht unmittelbar mit Icinga zu tun haben.

Dann gibts da noch Git, die schwarze Magie der Entwickler. 2004 in Hagenberg hab ich meinen VHDL-Code noch in CVS eingecheckt, 2009 .at-DNS-Zonen-Files nach SVN geschoben und irgendwann dank Icinga auch Git gesehen. Um gleich mal mit “force push” den Master zu zerstören – aller Anfang ist schwer. Seitdem ist viel passiert, und irgendwie hat jeder einen Git-Kniff, der gerne ausgetauscht wird. Die Nachfrage nach einer Schulung, seitens DEV (Kurzform für unsere Development-Abteilung), wurde immer größer und so wurde vor knapp 2,5 Jahren die Git-Schulung aus dem Boden gestampft.

Seither hat sich einiges getan, und wir haben unsere Open-Source-Entwicklung vollständig auf GitHub migriert, sowohl Icinga als auch NETWAYS. Aus dem vormaligen self-hosted Gitorious wurde dann mal ein GitLab, und mit jedem Release kam etwas neues dazu. GitLab verwenden wir an vielen Stellen – intern fürs Infrastrukturmanagement, betreut von MyEngineer im Hosting, als App in NWS und natürlich für Kunden und interne Projekte auf git.netways.de und git.icinga.com. Die Möglichkeiten, die einem CI mit den Runnern bietet, sowie den Merge-Request-Workflow haben wir seitdem bei uns stetig etabliert und ausgebaut.

All diese Erfahrungen aus der Praxis, und die tagtägliche Arbeit lassen wir in die neu gestaltete GitLab-Schulung einfliessen. Im Vortrag von Nicole und Gabriel auf der OSDC 2018 habe ich dann auch endlich mal Auto-DevOps verstanden und die Web IDE besser kennen gelernt. All das und noch viel mehr erzähle ich Schulungsteilnehmern im Kesselhaus und freu mich über die gemeinsamen Lernerfolge.

© 2019 Heise Medien GmbH & Co. KG

Doch damit hats nicht aufgehört – nachdem ich letztes Jahr für die IX einen Artikel zu IoT-Monitoring rund um Icinga, Elastic, Graylog und MQTT schreiben durfte, hab ich auch GitLab mit Golang in den Raum geworfen. Es ist ein bisserl Zeit ins Land gegangen, und ich hab dank IcingaDB auch mehr Golang gelernt. Im neuen Jahr hab ich eine GitLab-Schulung gehalten, und mich am Wochenende drauf hingesetzt und für die aktuelle iX 04/19 einen Artikel über GitLab und CI/CD geschrieben. Und auch vorab die GitHub Actions evaluiert, wo ich netterweise einen Invite habe 🙂

Wer mich kennt, weiss, dass ich endlos schreiben und reden kann über Dinge, die mir Spass machen. So empfehle ich Dir zur Lektüre auch einige Kaffee-Tassen (und falls vorhanden: Dragee-Keksi). Soferns dann noch offene Fragen gibt, komm einfach auf uns zu – egal ob Workshops, Schulungen oder Consulting, wir kriegen das hin, dass Dein GitLab genauso schnurrt wie unseres 🙂

Bevor ich es vergesse, auf der OSMC 2019 mach ich einen GitLab-Workshop rund um DevOps-Workflows und CI. Die Zeit vergeht eh so schnell – gleich anmelden 😉

Wir lesen uns – Icinga 2.11 wartet und nächste Woche ist Henrik aus der Schule wieder da. “Mein” Azubi der in die Welt von Icinga Core eintauchen darf, ich werd alt ❤️

 

 

Michael Friedrich
Michael Friedrich
Senior Developer

Michael ist seit vielen Jahren Icinga-Entwickler und hat sich Ende 2012 in das Abenteuer NETWAYS gewagt. Ein Umzug von Wien nach Nürnberg mit der Vorliebe, österreichische Köstlichkeiten zu importieren - so mancher Kollege verzweifelt an den süchtig machenden Dragee-Keksi und der Linzer Torte. Oder schlicht am österreichischen Dialekt der gerne mit Thomas im Büro intensiviert wird ("Jo eh."). Wenn sich Michael mal nicht in der Community helfend meldet, arbeitet er am nächsten LEGO-Projekt oder geniesst...

GitLab CI + Docker + Traefik = ❤️

So wie vermutlich einige, bin auch ich zur Zeit sehr von GitLab und dessen CI/CD Features angetan. Vor einigen Monaten habe ich angefangen, für meine privaten Webprojekte eine Template .gitlab-ci.yml zu erstellen, welche für jeden Commit, auf jedem Branch, automatisch Docker Images baut und diese in meiner Docker-Umgebung mit zum Branch/Projekt passender Subdomain und SSL-Zertifikat bereitstellt.

Um zu funktionieren benötigt das ganze eine erreichbare Docker-API, ein darauf laufendes Traefik, ein Docker-Netzwerk namens Proxy (Traefik muss dieses auch nutzen) und einen Account + Repository auf hub.docker.com. Das ganze kann aber recht einfach umgeschrieben werden, falls man seine eigene Registry verwenden möchte.

Ablauf beim Commit:

  1. Bauen und Pushes des Images (Tag => Branch + Commit-Hash)
  2. Umbenennen des alten Containers, falls vorhanden (Suffix ‘-old’ wird angehangen)
  3. Erstellen des neuen Containers (Name => Deployment Domain bsp. master.dev.domain.tld)
  4. Löschen des alten Containers
  5. (Optional) Löschen & neu erstellen des Produktionscontainers, falls der Commit auf dem Masterbranch stattgefunden hat (Muss durch Button ausgelöst werden und läuft wie Schritte 2 bis 4 ab)
  6. Neue Container stehen unter den Deployment-Domains zur Verfügung

Pipeline eines Commits auf Master/andere Branches (Deploy auf Produktion kann durch “Play”-Button ausgelöst werden):

Pipeline eines Commits auf andere Branches:

Für jeden Branch wird auch ein Environment erstellt, welches über Operations/Environments in GitLab verwaltet werden kann.
Hier können Deployments angesehen, gelöscht, in Produktion ausgerollt und auf einen früheren Stand zurückgesetzt werden:

Zur Nutzung des Templates in einem Projekt wird ein Dockerfile im Repository, ein paar CI/CD-Variablen, und das Template selber benötigt.

Benötigte CI/CD-Variablen:

CI_DEV_URL_SUFFIX (Domain-Suffix der Development-Umgebungen): dev.domain.tld
CI_PRODUCTION_URL (Domain der Produktionsumgeben): domain.tld
CI_DOCKER_HOST (Adresse & Port der Docker-API): docker.domain.tld
CI_REGISTRY_IMAGE (Image-Name auf hub.docker.com): supertolleruser/supertollesoftware
CI_REGISTRY_USER (Docker-Hub Benutzer): supertolleruser
CI_REGISTRY_PASSWORD (Passwort des Docker-Hub Benutzers): supertollespasswort
CI_TRAEFIK_PORT (Port der Webanwendung im Container): 8080

Da das ganze Projekt bis jetzt nur Images baut und Container bereitstellt, könnten hier natürlich noch Tests eingebaut werden um das ganze abzurunden.

Zur Zeit arbeite ich an einer Umstellung auf Kubernetes und werde, sobald abgeschlossen, auch davon berichten.

Noah Hilverling
Noah Hilverling
Developer

Nachdem Noah bei einer vierjährigen Exkursion nach Belgien seine Liebe zum Programmieren entdeckte, holte der gebürtige Euskirchener innerhalb kürzester Zeit gleich zwei Schulabschlüsse nach. Danach verließ Noah sogar den schönen Chiemsee, um sich ab September 2016 im Rahmen der Ausbildung zum Fachinformatiker für Anwendungsentwicklung bei NETWAYS voll und ganz dem Programmieren hinzugeben und viele unterschiedliche Erfahrungen zu sammeln. Wenn er mal nicht am Programmieren und Zocken ist, brettert er mit seinem Snowboard die Pisten runter,...

Event Ticketverkauf mit Pretix

Seit etwa einem Jahr setzen wir bei NETWAYS für den Ticketverkauf für unsere Konferenzen und Schulungen auf Pretix. Ich habe unser Event-Team von der Evaluierung bis hin zur vollständigen Umstellung begleitet und dabei viele Eindrücke gewonnen.

Pretix ist eine Open Source Software die es Veranstaltern ermöglicht auf bequeme Weise Tickets für Veranstaltungen anzubieten, zu verkaufen und Teilnehmer zu verwalten. Bei den zahlreichen Schulungen und Konferenzen die NETWAYS organisiert ist so ein Instrument extrem wichtig. Die Wahl auf Pretix ist uns trotz unserer unzähligen Anforderungen relativ leicht gefallen, weil es nahezu alles bietet was das Event-Herz begehrt.

Alle Features aufzulisten wäre hier etwas zu viel. Ich habe daher die für uns wichtigsten Punkte ein mal zusammengefasst.

Verwaltung und Statistiken

Bei Pretix werden Events von verschiedenen Veranstaltern organisiert. Jeder Veranstalter hat dabei Teams die Zugriff auf die jeweiligen Events bekommen. Jedes Event hat eines oder mehrere Produkte (Tickets) die zum Verkauf angeboten werden. In einer aufgeräumten Übersicht bekommt man einen schnellen Überblick über anstehende Veranstaltungen und aktuelle Teilnehmerzahlen. Pretix unterstützt dabei nicht nur einmalige Events sondern auch wiederkehrende, so wie unsere Schulungen. Mit einer Vielzahl an Optionen und Plugins lässt sich der Ticketshop auf die eigenen Bedürfnisse anpassen.

 

Look and Feel

Neben den Farben des Shops erlaubt es Pretix auch die Tickets frei zu designen. Zusätzlich können alle Texte und das gesamte Design für die E-mail Kommunikation angepasst werden. Auch die automatisch generierten Rechnungen lassen sich mit etwas technischem Know-How abstimmen.

Integration

Die generelle Funktionalität wird bei Pretix durch Plugins erweitert. Zum Beispiel können verschiedene Bezahlmethoden eingebunden werden, von Sepa Lastschriftmandat, PayPal bis hin zur Kreditkartenzahlung. Ist man bei einem entsprechenden Provider registriert, lässt sich das problemlos einbinden. Pretix kann auch mit eigenen Plugins erweitern werden, wir verwenden zum Beispiel einen eigenen Renderer für Rechnungen und eine spezielle Export Variante für Teilnehmerdaten. Neben den bereits erwähnten textuellen Anpassungen, kann auch das gesamte Design von E-mails mithilfe eigener Plugins verändert werden. Die jeweiligen Ticket Shops werden auf die entsprechenden Konferenz-Webseiten eingebettet, so müssen Teilnehmer die Seite garnicht erst verlassen um ihre Tickets zu ordern. Ach ja, unser Request Tracker spricht auch mit Pretix über die Pretix REST API, die es natürlich auch gibt. Alles in allem lässt Pretix bezüglich Integrationen keine Wünsche offen.

On-premise oder in der Cloud

User können sich entscheiden ob sie Pretix selbst hosten (so wie wir) oder es lieber in der SaaS Variante einkaufen möchten. Beide Varianten haben ihre Vor- und Nachteile. Für uns war relativ schnell klar das wir selbst hosten werden. Die Installation ist sehr einfach und gut dokumentiert. Pretix grenzt klar ab welche Plugins open source sind und welche man nur gegen Bezahlung bekommt, so gibt es zu keinem Zeitpunkt unklarheiten. Die Software bekommt zuverlässig jeden Monat Updates mit Bugfixes und größeren kleineren Features. Auf GitHub erhält man in einem nahezu unmenschlich schnellem Tempo Antworten auf Fragen und Probleme.

Fazit

In Summe ist Pretix ein Vorzeigeprojekt wie Open Source Software im professionellen Umfeld funktionieren kann. Sowohl von der Funktionalität her als auch von den Möglichkeiten zur Erweiterung hat uns das Projekt überzeugt. Alle Features im Detail werden auf der Pretix Webseite aufgeführt.

Alle unsere Events findet ihr natürlich auf der NETWAYS Webseite.

Blerim Sheqa
Blerim Sheqa
Product Manager

Blerim ist seit 2013 bei NETWAYS und seitdem schon viel in der Firma rum gekommen. Neben dem Support und diversen internen Projekten hat er auch im Team Infrastruktur tatkräftig mitgewirkt. Hin und wieder lässt er sich auch den ein oder anderen Consulting Termin nicht entgehen. Inzwischen ist Blerim als Product Manager für Icinga tätig und kümmert sich dort auch um die Partner.

GitLab Training v2.5.0 released

We have released v2.5.0 of our GitLab training today. Based on the feedback from previous trainings, and many things learned together with the students, we aim for the next classes already.

Dive deep into Git rebase, merge, squash, cherry-pick, get to know real-life development workflows and explore the possibilities of CI/CD pipelines and even more fancy GitLab features. Check our training schedule and register now!

Michael Friedrich
Michael Friedrich
Senior Developer

Michael ist seit vielen Jahren Icinga-Entwickler und hat sich Ende 2012 in das Abenteuer NETWAYS gewagt. Ein Umzug von Wien nach Nürnberg mit der Vorliebe, österreichische Köstlichkeiten zu importieren - so mancher Kollege verzweifelt an den süchtig machenden Dragee-Keksi und der Linzer Torte. Oder schlicht am österreichischen Dialekt der gerne mit Thomas im Büro intensiviert wird ("Jo eh."). Wenn sich Michael mal nicht in der Community helfend meldet, arbeitet er am nächsten LEGO-Projekt oder geniesst...