Monthly Snap July 2019

Summer has come to Nuremberg, and as July is typically the hottest month of the year, the NETWAYS gang is really happy to be in our new office with air conditioning! And our annual barbecue also always takes place in July, and now our office is much closer to the rooftop! All in all, a good month.

Lots of news from our Shop

Nicole kicked July off with her blog Produktankündigung: GUDE Expert Power Control 8031-Serie in which she presented upcoming products soon available in the NETWAYS shop.
She also informed us of a new software version for SMSEagle. SMSEagle veröffentlicht neue Geräte-Software
No idle time for Nicole, she had more news for us: now a simple SMS suffices to configure Ares remotely. HW group Ares – Konfiguration per SMS
Special offer on our NETWAYS monitor! Nicole let us know how to easily monitor temperature and humidity: NETWAYS Monitor Spezial-Angebot
Rekordtemperaturen – nicht im Rechenzentrum! How to keep the summer heat from your data centers? Nicole showed us various ways of monitoring them. Now the air conditioning must do the rest.

(Mental) health

See the world from Bernd`s point of view in his blog series Bernd hilft. This time: Bernd hilft – Das passt ja wie die Faust aufs Auge!
Breaks and holidays are important for the work- life- balance, as Blerim explained in Mach mal Pause! – „Just fit – Just awesome“, the newest addition to our health-related blog series.
Speaking of healthy! NETWAYS was well represented at this year`s Business to run! Andreas gave us some inside information on this 6,3k run on a very hot summer day. NETWAYS Running Squad beim B2Run

How to develop new developers?

Michael told his story about passing on knowledge. DEV stories: Icinga Core trainees in the making
Cleanup your Docker Environment Marius gave helpful tips for anyone using, and possibly having problems with, Docker

Upcoming events

What do the German Open Stack days have to offer? Das bieten die Deutschen OpenStack Tage Julia gave us an overview on the Event taking place in September.
Keya remembers, do you too? OSMC | Take a glance back… Make sure to get your ticket for this year`s OSMC, as usual it will take place in November in beautiful Nuremberg!

NETWAYS on tour!

Stefan humorously recapped the team Event of Sales, Finance & Administration and Events & Marketing in Fahrt ins Blaue – das Teamevent 2019. Enjoy the read!
At the same time the Dev retreat 2019 took place! Diana shared the highlights with us.

Well, technically…

Elastic Stack viel neues, aber sicher! Daniel took a look at the new Elastic Stack releases.
If it is Foreman-related, ask Dirk! This time he shared his knowledge on automation with Foreman: Automatisierte Updates mit Foreman Distributed Lock Manager
How to create self- sign certificates for internal uses? And what exactly is a certificate? Lennart helped us out in Selbstsignierte Zertifikate oder semantische Korinthen in der IT

Johannes taught us how to get RaspberryPI notifications on the Telegram app Temperatur und Feuchtigkeit in Telegram vom RaspberryPI
And Tim? He showed his sense of humour in his detailed guide to migrating a server. Lessons learned – how not to make beginner’s mistakes: Migrating server
How do we delete server safely? Tobias shared his experience on the NETWAYS way: Server löschen mit Darik´s Boot and Nuke

 

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.

Azubiprojektwoche 2019

Wie jedes Jahr findet bei NETWAYS eine Azubiprojektwoche statt. In dieser sollen alle Azubis abteilungsübergreifend ein Projekt umsetzen. Dieses Jahr waren wir zu neunt und wenn man der Resonanz der Kollegen glauben schenken darf, dann war das Projekt ein voller Erfolg.

Alles begann am Morgen mit einem Brainwriting bei dem auch ordentlich Ideen gesammelt worden sind. Wer weiß, vielleicht gibt es die ein oder andere in den nächsten Jahren ja noch zu sehen.


Die Entscheidung fiel dann auf ein Projekt das sich um einen 3D-Drucker herum entwickeln soll. Ziel der Projektwoche ist immerhin, sowohl Spaß zu haben, als auch mal etwas Anderes zu machen als man sonst machen würde. Dazu kommt noch, dass man bestenfalls etwas kreiert was für NETWAYS einen Nutzen hat und nicht nur das uns gegebene Budget restlos aufbraucht. Bestimmt wird eines Tages mit dem 3D-Drucker ein Ersatzteil für unsere Kaffee-Maschine gedruckt und bis dahin könnten damit Goodies für unsere Schulungen oder ähnliches gedruckt werden. Vorwand – Check

Damit war auch schonmal ein Aufgabenbereich geschaffen, ein Team das sich mit dem Drucker auseinandersetzt, der dazugehörigen Software und bestenfalls auch selbst einige Dinge modelliert. (Wir haben dazu Blender genutzt)

Natürlich wäre Hallo wir haben einen 3D-Drucker gekauft und uns zu neunt damit beschäftigt ein etwas einfacher Weg sich aus der Affäre zu ziehen, deswegen gab es gleichzeitig noch einen Teil mit persönlicheren Beweggründen für alle Nerds und die es werden wollen.

Ein Gaming-Table, also ein Tisch der für mitunter für Tabletop-Games genutzt werden kann, aber natürlich war auch hier der Zukunftsgedanke gegeben.
Das ein odere andere Meeting-Thema mag sich anbieten an solch einen Tisch zu führen. Außerdem ist es sehr angenehm, dass sich nicht ein jeder zu einer Leinwand oder einem Fernseher wenden muss und nicht in den leeren Raum gesprochen wird.

Dadurch wurde natürlich ein zweites Squad geboren, weil der Fernseher lässt sich nicht von alleine in die MDF-Platte, die Tischbeine schrauben sich nicht von Selbst an, die Stichsäge schneidet nicht von alleine und der Überzug kommt auch nicht von irgendwo.

Wir haben uns in jeden Fall nicht zu wenig vorgenommen für fünf Tage und das ganze hat auch nur so gut funktioniert, weil jeder an einem Strang gezogen hat und man sich gegenseitig geholfen hat. Unsere Arbeitsstruktur hat sichergestellt das jeder über den Stand des jeweils anderen Bescheid wusste und entsprechend helfen konnte wenn eine Gruppen hinter den Zeitplan fällt. Am letzten Tag, dann noch ein paar Mal gemeinsam Proben, damit die Triple-Moderation nicht in die Hose geht, kurz bevor die Präsentation ansteht und natürlich ging alles gut.

Ein paar von uns werden bis zum nächsten Azubiprojekt keine Azubis mehr sein, sondern ausgelernt, während Andere versuchen werden das diesjährige Projekt zu toppen. Wir freuen uns drauf.

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 Running Squad beim B2Run

Seit Wochen wurden alte B2Run-Geschichten erzählt und Pläne für das Lauftraining geschmiedet. Und auch Bernd feuerte den Ehrgeiz zusätzlich an, indem er dem Gewinner ein paar neue Laufschuhe in Aussicht stellte. Am Dienstag, 23. Juli, war es dann endlich soweit: Nach dreijähriger Pause waren wir wieder am Start! Um 17 Uhr standen alle in ihren sportlichen Lauf-Outfits mit stylishen NETWAYS Running Squad-Shirts zur Abfahrt bereit am NETWAYS Counter. Ziel der Fahrt: Max-Morlock-Stadion, Treffpunkt NETWAYS Biertisch mitten im Stadion.

Nachdem sich jeder nochmal ordentlich gedehnt und mental vorbereitet hatte, ging es geschlossen als Team zur Startgasse an der Steintribüne, wo schon tausende Menschen darauf warteten starten zu können. Ein gut gelaunter Moderator und treibende Musik heizten die Stimmung ein. Dann endlich der Startschuss und die große Menge setzte sich in Bewegung, um möglichst schnell die 6,3 km zu bewältigen. Nach kurzer Zeit war dann auch schon die Anfangseuphorie verschwunden und es machte sich Anstrengung breit. Temperaturen über 30 Grad und die pralle Sonne machten es uns nicht gerade leicht.

Glücklich und erschöpft liefen wir schließlich im Stadion ein, um uns an unserem NETWAYS Biertisch zutreffen und uns über den Lauf auszutauschen.

Mit einer Zeit von 29,14 Minuten kam Thomas als Gewinner von NETWAYS freudig und erleichtert im Ziel an.

Das kühle Bier und die Brezen haben wir uns mehr als verdient!

Wir freuen uns aufs nächste Jahr, um wieder beim B2Run dabei zu sein, schon allein für Markus, unseren Sieger vom letzten B2Run, der sich seinen Wanderpokal zurückholen möchte.

Andreas Wienkop
Andreas Wienkop
Office Manager

Andreas ist seit 2015 bei NETWAYS. Im November 2018 hat er seine Ausbildung zum IT-Systemkaufmann erfolgreich abgeschlossen und ist nun im Bereich Finance & Administration tätig. In seiner Freizeit widmet er sich dem Reisen und dem Boxen.
DEV stories: Icinga Core trainees in the making

DEV stories: Icinga Core trainees in the making

When my dev leads approached me with the idea to guide a trainee in the Icinga core topic, I was like … wow, sounds interesting and finally a chance to share my knowledge.

But where should I start and how can it be organized with my ongoing projects?

 

Prepare for the unexpected

My view on the code and how things are organized changed quite a bit since then. You cannot expect things, nor should you throw everything you know into the pool. While working on Icinga 2.11, I’ve collected ideas and issues for moving Henrik into these topics. In addition to that, we’ve improved on ticket and documentation quality, including technical concepts and much more.

My colleagues know me as the “Where is the test protocol?” PR reviewer. Also, reliable configuration and steps on reproducing the issues and problems are highly encouraged. Why? The past has proven that little to zero content in ticket makes debugging and problem analysis really hard. Knowledge transfer is an investment in the future of both NETWAYS and Icinga.

Some say, that documentation would replace their job. My mission is to document everything for my colleagues to make their life easier. Later on, they contribute to fixing bugs and implement new features while I’m moving into project management, architecture and future trainees. They learn what I know, especially “fresh” trainees can be challenged to learn new things and don’t necessarily need to change habits.

 

Clear instructions?

At the beginning, yes. Henrik started with the C++ basics, a really old book from my studies in 2002. C++11 is a thing here, still, the real “old fashioned” basics with short examples and feedback workshops prove the rule. Later on, we went for an online course and our own requirements.

Since Icinga 2 is a complex tool with an even more complex source code, I decided to not immediately throw Henrik into it. Instead, we had the chance to work with the Tinkerforge weather station. This follows the evaluation from our Startupdays and new product inside the NETWAYS shop. The instructions were simple, but not so detailed:

  • Put the components together and learn about the main functionality. This is where the “learn by playing” feeling helps a lot.
  • Explore the online documentation and learn how to use the API bindings to program the Tinkerforge bricks and sensors.
  • Use the existing check_tinkerforge plugin written in Python to see how it works
  • Write C++ code which talks to the API and fetches sensor data

Documentation, a blog post and keeping sales updated in an RT ticket was also part of the project. Having learned about the requirements, totally new environment and communication with multiple teams, this paves the way for future development projects.

 

Freedom

In order to debug and analyse problems or implement new features, we need to first understand the overall functionality. Starting a new project allows for own code, experiences, feedback, refactoring and what not. Icinga 2 as core has grown since early 2012, so it is key to understand the components and how everything is put together.

Where to start? Yep, visit the official Icinga trainings for a sound base. Then start with some Icinga cluster scenarios, with just pointing to the docs. This takes a while to understand, so Henrik was granted two weeks to fully install, test and prepare his findings.

With the freedom provided, and the lessons learned about documentation and feedback, I was surprised with a Powerpoint presentation on the Icinga cluster exercises. Essentially we discussed everything in the main area in our new NETWAYS office. A big flat screen and the chance that colleagues stop by and listen or even add to the discussion. Henrik was so inspired to write a blogpost on TLS.

 

Focus on knowledge

In the latest session, I decided to prove things and did throw a lot of Icinga DSL exercises at Henrik, also with the main question – what’s a DSL anyways?

Many things in the Icinga DSL are hidden gems, with the base parts documented, but missing the bits on how to build them together. From my experience, you cannot explain them in one shot, specific user and customer questions or debugging sessions enforce you to put them together. At the point when lambda functions with callbacks were on the horizon, a 5 hour drive through the DSL ended. Can you explain the following snippet? 😘

object HostGroup "hg1" { assign where host.check_command == "dummy" }
object HostGroup "hg2" {
  assign where true
//  assign where host.name in Cities
 }

object Host "runtime" {
  check_command = "dummy"
  check_interval = 5s
  retry_interval = 5s

  vars.dummy_text = {{
    var mygroup = "hg2"
    var mylog = "henrik"
  //  var nodes = get_objects(Host).filter(node => mygroup in node.groups)

    f = function (node) use(mygroup, mylog) {
      log(LogCritical, "Filterfunc", mylog+node.name )
      return mygroup in node.groups
    }
    var nodes = get_objects(Host).filter(f)

    var nodenames = nodes.map(n => n.name)
    return nodenames.join(",")
   // return Json.encode(nodes.map(n => n.name))
  }}

}

We also did some live coding in the DSL, this is now a new howto on the Icinga community channels: “DSL: Count check plugin usage from service checks“. Maybe we’ll offer an Icinga DSL workshop in the future. This is where I want our trainees become an active part, since it also involves programming knowledge and building the Icinga architecture.

 

Code?

Henrik’s first PR was an isolated request by myself, with executing a check in-memory instead of forking a plugin process. We had drawn lots of pictures already how check execution generally works, including the macro resolver. The first PR approved and merged. What a feeling.

We didn’t stop there – our NETWAYS trainees are working together with creating PRs all over the Icinga project. Henrik had the chance to review a PR from Alex, and also merge it. Slowly granting responsibility and trust is key.

Thanks to trainees asking about this, Icinga 2 now also got a style guide. This includes modern programming techniques such as “auto”, lambda functions and function doc headers shown below.

/**
 * Main interface for notification type to string representation.
 *
 * @param type Notification type enum (int)
 * @return Type as string. Returns empty if not found.
 */
String Notification::NotificationTypeToString(NotificationType type)
{
	auto typeMap = Notification::m_TypeFilterMap;

	auto it = std::find_if(typeMap.begin(), typeMap.end(),
		[&type](const std::pair<String, int>& p) {
			return p.second == type;
	});

	if (it == typeMap.end())
		return Empty;

	return it->first;
}

 

 

Learn and improve

There are many more things in Icinga: The config compiler itself with AST expressions, the newly written network stack including the REST API parts, feature integration with Graphite or Elastic and even more. We’ll cover these topics with future exercises and workshops.

While Henrik is in school, I’m working on Icinga 2.11 with our core team. Thus far, the new release offers improved docs for future trainees and developers:

This also includes evaluating new technologies, writing unit tests and planning code rewrites and/or improvements. Here’s some ideas for future pair programming sessions:

  • Boost.DateTime instead of using C-ish APIs for date and time manipulation. This blocks other ideas with timezones for TimePeriods, etc.
  • DSL methods to print values and retrieve external data
  • Metric enhancements and status endpoints

 

Trainees rock your world

Treat them as colleagues, listen to their questions and see them “grow up”. I admit it, I am sometimes really tired in the evening after talking all day long. On the other day, it makes me smile to see a ready-to-merge pull request or a presentation with own ideas inspired by an old senior dev. This makes me a better person, every day.

I’m looking forward to September with our two new DEV trainees joining our adventure. We are always searching for passionate developers, so why not immediately dive into the above with us? 🙂 Promise, it will be fun with #lifeatnetways and #drageekeksi ❤️

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...

DEV Retreat 2019 Recap

In this Episode: Everybody gets blown to smithereens (digitally).

Those team events are often paired with team-building exercises, causing possibly uncomfortable situations with your co-workers or let you find out things you never wanted to know about them. That’s at least what every comedy involving such an event leads us to believe. So for the breaks between remembering what we did well and not so well since our last DEV Retreat we had a game of “Keep Talking and Nobody Explodes“: The only game released since 2000 to require a manual, it’s also great fun.

The method for retrospection did not change much from last time but we had better sticky notes this time, which helped! We started off with a general assessment of our well being and mood and I am happy to report nobody was too grumpy. This was followed by thinking back what had happened, which projects did we do, what has changed and our unfinished business. Surprisingly a lot of us remembered not only big releases of Icinga 2, Icinga Web 2 or other larger projects but also small things, like our Trainees first merge, taking a break from PHP in favor of JS or making a brochure to advertise apprenticeship at NEWTAYS.

After making concrete plans on how to improve with out team dinner was served. The Hotel had a habit of making the portions a bit smaller than some would have liked but after the dessert nobody was hungry anymore and ready for a mellow evening with Gin and Tonic.

Of course not all is happy, rainbow and unicorns. But there weren’t any problems we aren’t confident we can solve. Except what to do for our next DEV Retreat. But our colleagues went for a round of arrow tag, maybe we’ll steal that idea for next time.

Diana Flach
Diana Flach
Developer

Geboren und aufgewachsen in Bamberg kam Diana, nach einem Ausflug an die Uni, als Azubi zu NETWAYS. Dort sitzt sie seit 2014 im Icinga 2 Core Entwicklungsteam.

Fahrt ins Blaue – das Teamevent 2019

Letzten Freitag war es wieder einmal soweit:

Alle Kollegen von Finance, Sales, Marketing und Events haben sich um 08.00 Uhr auf dem Parkdeck vom Netways HQ getroffen und schon ging es los zum einzigartigen Teamwochenende.

Der besondere Kick der Veranstaltung liegt darin, dass keiner (bis auf die Organisatoren) weiß, wo es hin geht und was dort unternommen wird.
Und so beginnt jedes Jahr aufs neue eine Woche vor dem Event das große Buschfunkraten: “Weißt du was? Wo geht´s denn hin? Ich hab gehört, dieses Mal fahren wir ins Bootcamp nach Kasachstan.” Neugier und Fantasie steigern sich ins Unermessliche und die Gerüchteküche brodelt.

Dieses Mal ging es auf nach Betzenstein im Herzen der fränkischen Schweiz. Hier liegt, umrahmt von Wald, Felsen und einem malerischen Schwimmbad, der Abenteuerpark Betzenstein, in dem unser Mut, Teamspirit und Kampfgeist auf die Probe gestellt werden sollte.

Weißwurstfrühstück zur Stärkung

Aber keine Schlacht wird mit leerem Magen ausgefochten und so gab es zu allererst ein ordentliches Weißwurstfrühstück zur Stärkung.

Arrow Tag im Abenteuerpark

Dann endlich fiel der Startschuss: unser Guide Tobias hat uns in die Welt des “Arrow Tag” eingeführt. Hierbei wurden wir nach einer kurzen Einweisung in die Kunst des Bogenschießens in zwei gegnerische Mannschaften aufgeteilt und mussten versuchen uns mit Soft-Pfeilen zu “taggen”. Die Mannschaft, die zuerst alle Gegner taggt, hat die Runde gewonnen.
Klingt einfacher als es gewesen ist. Im Vollsprint den Bogen abzuschießen und dabei wilde Haken zu schlagen, um nicht selbst getroffen zu werden, bedurfte einige Runden Übung.
Aber wir lernten schnell und hatten mächtig Spaß dabei, uns immer wieder eine neue Taktik zu überlegen, wie der Gegner am Besten überrumpelt werden konnte.

Pizza-Workshop mit Manolo

Nach unzähligen Runden waren die Akkus komplett leer und mussten dringend wieder geladen werden. Hier kam der Pizza-Workshop gerade recht. Schnell wurden die köstlichsten Zutaten geschnibbelt und in den wildesten Kreationen auf dem Teig platziert.
Der schöne Manolo, original Pizzabäcker aus Süd-Sizilien, hat uns dann den richtigen Dreh am Holzofen gezeigt – innerhalb von zwei Minuten war die Pizza kross durchgebacken und fertig zum Verzehr.
Highlight war hier sicherlich die Dessert-Pizza belegt mit Mascarpone und frischen Früchten und mit weißer Schokolade überbacken. Klingt komisch, schmeckt aber köstlich.

Höhenflug im Kletterpark

Als nächster Programmpunkt stand der Hochseilgarten an. Hier konnten alle ihren inneren Schweinehund auf den unterschiedlichsten Routen überwinden. Wir haben uns gegenseitig gepusht und jeder hat sein Limit Route für Route ein Stückchen nach oben verschoben. Die Krönung war am Ende die 100 Meter lange Seilrutsche, mit der man in zwanzig Meter Höhe direkt über das Schwimmbad geschwebt ist.

Chill & Grill im Schlosshotel

Nach neun Stunden Action und Abenteuer waren wir absolut platt – es war Zeit einzukehren.
Also auf nach Reichenschwand in das beeindruckende Domero Schlosshotel. Die ganze Anlage ist eine perfekte Fusion von alten Gemäuern und moderner Architektur. Es gibt einen großzügigen Schloßpark und die gesamte Restaurant-Terrasse ist direkt über der Pegnitz angelegt. Beim Essen plätschert der Fluß also direkt unter einem entlang.

In diesem Ambiente haben wir bei Barbecue, Weißwein und dem ein oder anderen Gin-Tonic den Tag noch einmal ausführlich Revue passieren lassen. Das Fazit war einstimmig: Es war wie immer ein perfekt organisiertes Event, das Wetter war ideal und alle waren mit Herzblut dabei. Wir hatten viel Spaß und sind als Team noch ein Stück enger zusammengerückt. Summa summarum ein voller Erfolg!!

Ich freue mich jetzt schon auf das Teamevent 2020. Hab gehört, es geht mit den nepalesischen Honigjägern in die Felsen des Himalayas… Ob´s stimmt, sehen wir dann ja nächstes Jahr!

Stefan Schneider
Stefan Schneider
Event Manager

Vor seiner Zeit bei NETWAYS hat Stefan als Projektmanager in einer Nürnberger Agentur dabei geholfen, Werbeprojekte auf die Straße zu bringen. Seit Juni 2017 ist er nun stolzes Mitglied der NETWAYS-Crew. Hier ist er Ansprechpartner für alle Fragen rund um die Organisation unserer Schulungen. Die Freizeit vertreibt sich Stefan am liebsten mit Sport. Vom Joggen über Slacklining bis zum PennyBoard fahren ist er für alles zu haben.