Die Zeit ist reif!


Viele unserer Trainer werden sich bald in den verdienten Sommerurlaub verabschieden und auch unser Schulungsprogramm pausiert in den heißen Sommermonaten. Im September starten wir dann wieder voll durch mit neuen Trainings, noch mehr Wissen und viel Raum und Zeit zum Lernen und Ausprobieren. Mit der Erfahrung aus über 300 Open Source Projekten, wissen wir genau, worauf es ankommt und freuen uns darauf, dieses Wissen mit Ihnen zu teilen. Sichern Sie sich jetzt Ihren Platz und planen Sie sich im Herbst ein wenig Abwechslung und neuen Input ein! Die Zeit ist reif!
Alle Schulungen im Überblick finden Sie hier.

Das bietet unser Schulungsprogramm im Herbst:

 

  1. Elastic Stack | 2 Tage | 12.09. – 13.09.2018

Sie erhalten eine detaillierte Einführung in die, auf Open Source basierenden Logmanagement Tools Elasticsearch, Logstash und Kibana. Darüber hinaus werden Techniken der Logübertragung, -auswertung und -analyse vermittelt.

  1. Icinga 2 Advanced | 3 Tage | 18.09. – 20.09.2018

In diesem Lehrgang für Fortgeschrittene erfahren Sie alles, was für den Betrieb von größeren und komplexeren Umgebungen notwendig ist: über das Icinga 2 Setup, distributed Monitoring und Hochverfügbarkeit, Performancegraphing und vieles mehr.

  1. GitLab | 2 Tage | 18.09. – 19.09.2018

GitLab ist mittlerweile das Tool zur verteilten Versionsverwaltung und erfreut sich immer größerer Beliebtheit, nicht nur unter Entwicklern, auch in der DevOps-Bewegung. In unserer Schulung erfahren Sie, wie Git und GitLab die tägliche Arbeit erleichtern.

  1. Advanced Puppet | 3 Tage | 25.09. – 27.09.2018

Lernen Sie den Umgang mit systemübergreifender Konfiguration mit Puppet, Module um Komponenten zu erweitern und die Qualität ihrer Module mit Tests zu verbessern. Außerdem im Programm: Module-Design und Troubleshooting.

  1. Graphite + Grafana | 2 Tage | 25.09. – 26.09.2018

Ihre Schulung für erfolgreiches Performance-Monitoring, vom Sammeln und Auswerten von Werten mit Graphite, bis zum Darstellen und Analysieren mit Grafana und weiteren Tools für den Aufbau eines individuellen, integrierbaren Stacks.

  1. Icinga 2 Fundamentals | 4 Tage | 09.10. – 12.10.2018

In diesem Training erhalten Sie Basiswissen zur Installation von Icinga 2 und Icinga Web 2 garniert mit Praxisbeispielen und Best Practices für Icinga 2 Konfiguration, Integration von Remote Clients und PNP4Nagios und weiteren nützlichen Inhalten.

  1. Fundamentals for Puppet | 3 Tage | 16.10 – 18.10.2018

Lernen Sie die grundsätzliche Funktionsweise hinter der Abstraktionsschicht von Puppet kennen, den Aufbau von Puppet-Modulen und deren Entwicklung vom lokalen Prototyp zum Deployment auf dem Puppet-Master.

  1. Ansible | 2 Tage | 23.10. – 24.10.2018

Nebst Installation und Umgang mit Ansible geht das Training auf die Konfiguration von Linux/Unix Systemen, den Umgang mit Playbooks und Rollen ein und gibt Hinweise zur Erstellung eigener Module.
9. Ansible AWX (Tower) | 1 Tag | 25.10.2018
Ansible AWX und Ansible Tower begleiten Unternehmen bei der Automatisierung. In diesem Kurs geben wir Ihnen einen umfassenden Überblick über deren Einsatzmöglichkeiten.
10. Jenkins | 1 Tag | 25.10.2018
Erfahren Sie alles über Jenkins, ein erweiterbares, webbasiertes Continuous Integration System zur Automatisierung von Integration, Tests und Paketbau.
 
Die NETWAYS Schulungen bestehen aus einer Kombination von Vortrag und praktischen Übungen. Unsere kompetenten Trainer arbeiten – wie Sie – als Praktiker tagtäglich mit den entsprechenden Open Source Anwendungen. Im Preis enthalten sind umfangreiche Schulungsunterlagen und volle Verpflegung. Notebooks und Wifi stellen wir.
Alle hier gelisteten Schulungen finden im NETWAYS Headquarter in Nürnberg statt, Deutschherrnstraße 15-19. Gerne sind wir Ihnen bei der Buchung eines Hotels behilflich. Melden Sie sich einfach bei uns.
Weitere Infos und Anmeldung unter: netways.de/schulungen

Julia Hornung
Julia Hornung
Marketing Manager

Julia ist seit Juni 2018 Mitglied der NETWAYS Family. Vor ihrer Zeit in unserem Marketing Team hat sie als Journalistin und in der freien Theaterszene gearbeitet. Ihre Leidenschaft gilt gutem Storytelling, klarer Sprache und ausgefeilten Texten. Privat widmet sie sich dem Klettern und ihrer Ausbildung zur Yogalehrerin.

Zeiterfassung mit Rachota


Neulich musste ich mich nach Jahren wieder einmal nach einer Lösung für die tägliche Zeiterfassung umsehen, da ich mittlerweile während des Tages öfter wie zuvor Tasks für unterschiedliche Kunden, bzw. auch Änderungen an unserer internen Infrastruktur zu erledigen habe.
Bei der Recherche ist mir sofort das TimeTracking Tool Rachota aufgefallen, das zunächst als Java Anwendung einfach plattformübergreifend ist und somit auch ohne Umgewöhnung auf diversen Betriebssystemen in meinen VMs oder auch auf dem Netbook läuft.
Nebenbei bemerkt sogar auf einem USB Stick, sehr gut falls jemand oft an unterschiedlichen Arbeitsplätzen ohne Notebook etc. arbeitet.
Das Interface sieht auf den ersten Blick sehr schlicht aus, bietet aber nach etwas Einarbeitung und Anpassung der Default Konfiguration alle Funktionen, die ich brauche. Wichtig war mir in dem Fall, dass man eine beliebige Anzahl einzelner Projekte anlegen und priorisieren kann, und auch wiederkehrende Aufgaben definiert werden können.
Weniger ging es darum die tägliche Gesamt-Arbeitszeit auf die Sekunde genau erfassen zu können, was aber durchaus mit entsprechendem Aufwand auch ein Ziel der Anwendung sein kann wenn man möchte.
Dem interessierten Anwender liefert es z.B. auch eine „Analytics“ Funktion, mit der man seinen Arbeitsablauf optimieren kann.
Die erstellten Reports lassen sich sowohl im HTML und Textformat, als auch zur Weiterverarbeitung als CSV ausgeben.
In der kurzen Zeit konnte ich sicherlich nicht alles was die Software bietet perfekt ausnutzen, aber mir hat die tägliche Arbeit damit jedenfalls bisher gut gefallen, einen Blick ist das Programm auf jeden Fall wert.

Stefan Gundel
Stefan Gundel
Senior Systems Engineer

Stefan ist ein Urgestein bei NETWAYS und arbeitet im Managed Services Team. Der internationale Durchbruch gelang Stefan als Fotomodel für den K+K Warenkorb. Nachdem er einige Jahre exklusiv für unseren Kunden StayFriends gearbeitet hat, darf er nun endlich auch wieder in anderen Projekten mitarbeiten.

Monthly Snap July – Sommermeeting & Grillfeier | Icinga Releases | Neuerungen, Updates, #lifeatnetways


Während der Monat Juli zu Ende geht, klettern die Temperaturen auf ihren diesjährigen Höchststand: Dienstag, 31. Juli | 36 Grad! Jeder geht mit der Hitze ja anders um. In einem solchen Monat lernt man seine Kollegen nochmal ganz anders kennen – und schätzen! Mit Nicole und Markus etwa werden Stieleis-Kindheitsträume wahr 😉
Sommer, Sonne, Sommermeeting

Highlight des Monats ist der 20. Juli: Sommermeeting und Grillfeier! Vormittags versammelt sich die gesamte NETWAYS Familie im Kesselhaus, wo die Teamleads das Abteilungsgeschehen präsentieren und CEO Bernd eine motivierende Rede hält, wie sie nur Bernd halten kann und einen Ausblick auf große Veränderungen gibt: Wir werden umziehen – physisch in neue Räumlichkeiten, virtuell auf eine neue Webseite. Das muss natürlich gefeiert werden: Am späten Nachmittag ziehen immer mehr Kollegen auf die Dachterrasse zu BBQ, DJ Alexander und Gin&Tonic-Bar.
Gefeiert hat die NETWAYS Familie im Juli so einiges  – auch den #SysadminDay, zu dem es ein großes Frühstücksbuffet gab.
Neuerungen und Updates
Aber wir waren auch abseits der Tanzfläche fleißig! Eine ganze Reihe NWS | Neuerungen und Updates stellt Marius in seinem Blogpost vor. Alexander hat SSL geknackt! Naja, fast. Markus sieht sich ReaR mal anders an und Georg erklärt, wie man einen verschlüsselten File-Container mittels cryptsetup und LUKS erstellen kann. Consultant Markus verrät, wie wir dienstlich Reisen. Marius hat einen anderen Ansatz gefunden: Let’s Encrypt HTTP Proxy: Another approach und Webinar-Meister Christian präsentiert die NETWAYS Webinare: Icinga 2 Serie.
Überhaupt Icinga! Hier hagelts Releases
Mitte Juli präsentieren die Icinga Entwickler ihr Icinga 2.9.0 Release! 2.9.0 bringt Neuerungen wie Elasticsearch 6-Unterstützung, eine einfachere Client-Installation und Bugfixes in punkto Windows-Reload, Speicherprobleme, geplante Downtimes und Benachrichtigungsreihenfolge. Kurz darauf folgt das Release von Icinga Web 2 2.6.0 mit zusätzlichen Dashboard-Widgets, einer neuen Hostgruppen-Übersicht und erweitertem Audit-Logging. Dank aufmerksamer Community Mitglieder, die einen weiteren Bug melden, kann die Icinga Crew letzte Woche gleich noch eins drauf setzen: Icinga 2.9.1.
Auch unsere Buchautoren Lennart und Thomas setzen eins drauf: Icinga 2 Buch, 2nd Edition. Dank Gunnar gibt es in unserem Blog einen Überblick über den Icinga Config Compiler. (Und dank @noledge eine lustige Icinga-Integration. ;))
Let it grow!
Am 1. August wird der erste von 7 (!) neuen Azubis in diesem Jahr kommen. Ja, auch deswegen werden wir umziehen: Wir wachsen! Unsere derzeitigen Auszubildenden kennt ihr ja schon. Afeef hat sich im Juli aber noch einmal genauer vorgestellt (Serie: NETWAYS stellt sich vor). Und worüber zerbrechen sich die anderen so den Kopf? Philipp beschäftigt sich mit der i-doit API, Killian mit AI – Artificial Intelligence (Was ist das? Ist das Gefährlich?) und Nicole gibt einen Einblick in ihre Projektwoche in der Berufsschule.
Und sonst so?
Nach dem einen Event, ist vor dem anderen: Von der OSDC gibt es Fotos, Slides und Videos im Archiv, für die OSBConf steht das Programm. Check it out! Niemals zuvor hatten wir so vielen Anfragen von Menschen, die unser Kesselhaus mieten wollen. Nie zuvor so früh im Jahr so viele Anmeldungen für die OSMC und so viele neue Speaker. Freut euch auf den Herbst! Dann gibt’s auch wieder viele interessante und lehrreiche Schulungen. Guckt doch mal in unseren Kalender: Die Zeit ist reif!
In diesem Sinne: Schönen Sommer!

Julia Hornung
Julia Hornung
Marketing Manager

Julia ist seit Juni 2018 Mitglied der NETWAYS Family. Vor ihrer Zeit in unserem Marketing Team hat sie als Journalistin und in der freien Theaterszene gearbeitet. Ihre Leidenschaft gilt gutem Storytelling, klarer Sprache und ausgefeilten Texten. Privat widmet sie sich dem Klettern und ihrer Ausbildung zur Yogalehrerin.

Terraform Changes

Hallo!

Was vielen unseren von geneigten Lesern entgeht ist das wir auch in unserem Alltag zwischen der ganzen Softwareschreiber- und Kompilier Tätigkeiten auch ganz viele virtuelle Maschinen und Container zum testen selbiger Software rauf und runter installieren müssen und das Tag für Tag.

Deshalb und gerade deshalb versuchen wir uns das Leben mit dafür erstellter Software und deren arbeitserleichternden Funktionen leichter zu machen. Wie mein Kollege schon in seinem Blogpost im März mir vorgegriffen hat benutzen wir bei der Netways Terraform. Achim wird in weiteren Artikeln darauf eingehen wie man Openstack per Terraform nach seiner Pfeife tanzen lassen kann und Ich möchte mich heute auf ein anderes Terraform Thema beziehen nämlich dem nahen release von Terraform 0.12.

Zu dem Zeitpunkt wo ich diese Zeilen niederschreibe ist auf der aktuellen Website von Hashicorp noch die Aktuelle Version 0.11.13 zu finden.

Aber Terraform hat schon etwas den Vorgang gelüftet und uns vielversprechendes gezeigt mit dem 0.12.0-beta1 pre-release.

Damit kann man schon die viele Erleichterungen welche der neue Terraform release mit sich bringt erahnen und auch schon antesten. Ich versuche mich an einer Erleuterung den änderungungen Anhand eines kleinen Beispiels.
Vielleicht kann ich den einen oder anderen IaaS Codeschreiber welcher sich hierfür interessiert etwas auf den Geschmack zu bringen schon etwas zu testen mit der neuen Version.

Hier der Unterschied zwischen einer (aktuell 0.11.13) alten Terraform Version und einer neuen Version in Terraform 0.12 durch eine Gegenüberstellung.

main.tf (Random Tiernamen Beispiel)

variable "count" { default = 1 } variable "default_prefix" { default = "Giraffe" } variable "zoo_enabled" { default = "0" } variable "prefix_liste" { default = [] } resource "random_pet" "my_pet" { count = "${var.count}" prefix = "${var.zoo_enabled == "0" ? var.default_prefix : element(concat(var.prefix_liste, list (""), count.index)}" }

main.tf HCL2 Version(Random Tiernamen Beispiel)

variable "pet_count" { default = 1 } variable "default_prefix" { default = "Giraffe" } variable "prefix_list" { default = [] } resource "random_pet" "my_pet" { count = var.pet_count prefix = var.zoo_enabled ? element(var.prefix_list, count.index) : var.default_prefix }

Die Unterschiede fallen zuerst etwas weniger ins Auge sind aber dafür meines Erachtens tiefgreifender für Leute die IaaS Code schreiben müssen und es dient der Lesbarkeit des Codes.

Vorteil Nummer 1:
Im alten Beispiel musste noch mit “${var.count}” von einem String zu einer Number evaluiert werden, mit der neuen HCL2 schreibweise entfällt das und es kann mit var.pet_count direkt der korrekte String oder Number Wert adressiert werden.

Vorteil Nummer 2:
Auch die Evaluierung der Liste prefix = “${var.zoo_enabled == “0” ? var.default_prefix : element(concat(var.prefix_liste, list (“”), count.index)}”  wird mit der neuen notation der HCL2 wesentlich eingängiger. prefix = var.zoo_enabled ? element(var.prefix_list, count.index) : var.default_prefix ist prägnanter. Es entfällt auch die element(concat(x), list(“”), x ) Hack-Situation um aus einer leeren Liste auch eine Liste mit einem NULL Element zum machen.

Vorteil Nummer usw. es gibt viel mehr was geändert worden ist, if you want to know more here.

Ich hoffe ich habe euch nicht zu sehr gelangweilt mit C.O.D.E. kurz vor dem Wochenende.

Gruß David

 

David Okon
David Okon
Senior Consultant

Weltenbummler David hat aus Berlin fast den direkten Weg zu uns nach Nürnberg genommen. Bevor er hier anheuerte, gab es einen kleinen Schlenker nach Irland, England, Frankreich und in die Niederlande. Alles nur, damit er sein Know How als IHK Geprüfter DOSenöffner so sehr vertiefen konnte, dass er vom Apple Consultant den Sprung in unser Professional Services-Team wagen konnte. Er ist stolzer Papa eines Sohnemanns und bei uns mit der Mission unterwegs, unsere Kunden zu...

TinkerForge-Basteln Teil 1: Auspacken und Einrichten!

Um meine neuerworbenen Kenntnisse in C++ zu vertiefen, habe ich netterweise etwas äußerst Interessantes auf den Tisch gestellt bekommen. Einen kleinen Karton mit mehreren Elektronikbauteilen, noch in ihren Antistatikbeuteln. (Meine Vorfreude steigt ins Unermessliche.)

 

Worum geht’s?

TinkerForge ist ein mittelständisches Unternehmen aus Ostwestfalen-Lippe, welches Mikrocontrollerbausteine herstellt, die sogenannten Bricks. Die Idee zu diesen Bricks hatten die beiden Gründer Bastian Nordmeyer und Olaf Lüke, nachdem sie – auf der Suche nach Mikrokontrollermodulen für autonome Fußballroboter – keine entsprechenden offenen, mit verschiedenen Programmiersprachen ansteuerbaren Bauteile gefunden haben. Was 2011 noch mit einer kleinen Produktlinie begann, ist nun ein extensiver Katalog an Controllern (Bricks) und Modulen (Bricklets), die sich in zahlreichen Programmiersprachen ansteuern lassen, und sich durch ihre modulare Bauweise schier endlos verknüpfen lassen.
Neben der Option, sich seine Bricks selbst zusammenzustellen, vertreibt Tinkerforge verschiedene Kits – Komplettpakete für verschiedene Anwendungsmöglichkeiten.
Eines dieser Kits – die Tischwetterstation (für 114,99 €) habe ich zum Austoben bekommen, dazu gab es noch einen WIFI Master Extension Brick (für 29,99€).
In diesem Blogpost wird es um das “Unboxing”, den Zusammenbau, die erste Einrichtung und Codebeispiele von Tinkerforge selbst gehen.

 

Was haben wir denn da?

Hierbei handelt es sich um den Master Brick, Version 2.1. Man kann sich diesen Brick wie die zentrale Verteilerstelle vorstellen. Er hat eine USB-Schnittstelle und hat – neben den stapelbaren Anschlüssen für andere Bricks (Master Extensions, siehe Wifi Extension!) – hat er vier Anschlüsse für Bricklets (siehe Air Quality Bricklet!), und kümmert sich um die Kommunikation zwischen den einzelnen Modulen. Dort wird auch die Verbindung zu einer Recheneinheit hergestellt, die verschiedene Formen annehmen kann, worauf ich später noch kurz eingehen werde. Außerdem ist der Master Brick mit zwei kleinen Knöpfchen an der Seite des USB-Anschlusses ausgestattet, ein Reset-Knopf und ein Erase-Knopf.

Dies ist die WIFI Master Extension, Version 2.0. Dieser Brick kann auf den Master draufgesteckt werden – der Formfaktor ist mit 4×4 cm gleich, euch fallen auch garantiert die Anschlüsse an den Seiten des Bricks auf. Mit diesen Anschlüssen lassen sich mehrere, verschiedenste Kombinationen von Bricks aufeinander stapeln, die das ganze System um zahlreiche Funktionen erweitern können. In diesem Fall, bei der WIFI Master Extension 2.0 handelt es sich um ein Kommunikationsmodul, mit dessen Hilfe sich der Master Brick drahtlos steuern ließe. Bisher hat dieser Brick aber noch nicht die ausreichende Liebe von mir erfahren – da die Wetterstation (noch?) nicht ohne Rechenpower von außen funktioniert, und per USB über den Master Brick mit Strom versorgt werden muss – dementsprechend die Kommunikation bisher größtenteils auch über dieses USB-Kabel lief.

Na, fällt euch schon etwas auf? Dieser Brick ist kein Brick, sondern ein Bricklet, der Formfaktor ist auch deutlich kleiner, mit 2,5×2 cm – es fehlen auch die gerade angesprochenen Anschlüsse zum Stapeln. Dieses kleine Bauteil ist der Air Quality Bricklet, ein interessantes Bauteil, welches mehrere Sensoren an Bord hat. Das Herzstück ist der Indoor Air Quality (kurz IAQ)-Sensor, welcher “flüchtige organische Verbindungen” (Volatile Organic Components, kurz VOC) misst. Diese Messungen werden mit den Messungen der ebenso vorhanden Luftdruck-, Luftfeuchte- und Temperatursensoren kombiniert, um den IAQ-Indexwert zu bestimmen. Laut TinkerForge braucht es rund 28 Tage Durchlaufzeit für die vollständige Kalibrierung dieses Moduls, ansonsten gilt der IAQ-Indexwert als unzuverlässig. Soviel Zeit habe ich dem Bricklet noch nicht gegeben, aber das kommt auch noch. Angeschlossen wird dieses Sensorpaket – per in dem Tischwetterstationskit enthaltenen 10-Pol- auf 7-Pol-Kabel – an den Master Brick. Insgesamt ist dieses kleine, aber feine Bauteil das, was diese Tischwetterstation zu einer Wetterstation macht.

Ein LCD-Bildschirm! Auf irgendwas muss ich ja schauen können, wenn ich es schon explizit vermeide, aus dem Fenster zu schauen, um zu sehen, wie das Wetter so ist.
Spaß beiseite, dieses Bauteil ist für mich wohl am Interessantesten aus dem ganzen Kit, denn die Möglichkeiten mit einem 2,8″ großem Display mit 128×64 Pixel wären schon unbegrenzt genug – dann hat das wunderbare Ding auch noch einen resistiven Touchscreen! Ich bin sehr gespannt drauf, was für kreative Ideen Ihr (und ich) mit sowas haben könntet (und wie weit die sich von der Grundidee einer Wetterstation entfernen). Wetterstationsschach, anyone?! Das Display wird genauso wie der Air Quality Bricklet über ein 10-Pol- auf 7-Pol-Kabel mit dem Master Brick verbunden.

Wo wir bei Kabeln sind – in dem Paket waren die zwei benötigten 10-Pol- auf 7-Pol-Kabel dabei, und das USB-Kabel, welches zur Stromversorgung und Kommunikation der Recheneinheit mit der Wetterstation dient. Außerdem war auch noch eine Schutzhülle aus gelasertem Plastik, und jede Menge Schrauben dabei. Alles, was das Bastlerherz begehert. Dann öffnen wir all die schönen Dinge mal!

 

Hardware braucht Software

Nach dem Auspacken der Bauteile (mit gebührendem Respekt) habe ich – vor dem großen Zusammenschrauben – die Bricks testen und einrichten wollen. Dazu bietet TinkerForge zwei Programme an, den Brick Deamon und den Brick Viewer.
Heruntergeladen, Master Brick per USB angeschlossen… es wird nichts erkannt. Hm.
Der Brick Viewer zeigt kein neues Modul an. Nach einigem Grübeln kam’ ich auf die Idee, den Master Brick mit einem RED Brick, den wir (inklusive einiger anderer Module) in der Firma haben, zu verbinden und den (eingerichteten) RED Brick mit meinem Rechner zu verbinden. Damit konnte ich auch den Master Brick im Brick Viewer finden. Den RED Brick abmontiert und den Master Brick wieder mit USB mit dem Rechner verbunden, siehe da, wir haben eine Verbindung. Die anderen Module u. Bricklets ließen sich ganz einfach durch Verbinden mit dem Master Brick ansteuern und die Updates funktionierten auch sehr einfach; allerhöchstens der Prozess den Master Brick auf den neuesten Stand zu bringen ist ein wenig komplizierter als nur auf den Updateknopf im Brick Viewer zu drücken; man muss zuerst den Erase-Knopf auf der Rückseite des Master Bricks gedrückt halten, den Reset-Knopf betätigen und loslassen, und dann den Erase-Knopf ebenso loslassen. Dies versetzt den Master Brick in den Bootloadermodus, dadurch lässt sich dann die neue Firmware über eine serielle Schnittstelle (in meinem Fall USB) aufspielen.

Brick Viewer

Der Brick Viewer ist ein kleines GUI-Tool, mit dem sich die einzelnen Bricks und Module updaten, testen und einrichten lassen.

Jeder Brick hat seinen Eintrag und seinen Reiter, eine UID (wichtig!), eine Position und eine Firmwareversion. Hier kann man sehr unkompliziert beispielweise die WIFI Extension einrichten, und die Kommunikation über diese Verbindung ablaufen lassen.
Hier sieht man den Reiter für den Air Quality Bricklet. Die Werte werden sekündlich geupdatet, und man kann ohne eigenes Zutun schauen, ob die Sensoren das tun, was sie sollen, oder der grundlegende Aufbau der Wetterstation stimmt. Der Brick Viewer sollte für alle Experimente die erste Anlaufstelle sein, da man hier überprüfen kann, ob alles seine “Arbeit” so erledigt, wie es das soll.

 

Brick Daemon

Der Brick Daemon ist ein zentrales Stück Software bei der Ansteuerung der einzelnen Bricks und Bricklets; der Brick Daemon sorgt dafür, dass – egal, welche von den unterstützen Programmiersprachen (eine lange Liste) man für eigene Programme verwenden sollte – die Kommunikation auf TCP/IP-Basis abläuft, sodass mit den von TinkerForge bereitgestellten APIs sich Bindings ohne Abhängigkeiten erstellen lassen. Seinen Dienst erledigt der Brick Daemon vergleichweise still im Hintergrund, loggt dabei aber auch jede Menge Informationen, Warnungen und Fehler – ein weiteres praktisches Feature, bei dem einem von TinkerForge einiges an Arbeit abgenommen wurde.

 

Demo-Anwendung!

Nachdem ich alle Bricks getestet habe, und die Station zusammengebaut und -geschraubt habe, habe ich mich gleich auf die ebenso von TinkerForge bereitgestellte Demoanwendung gestürzt, und auch da – es wäre schwer, mir das Leben noch einfacher zu machen. Die Demo-Anwendung ist in Python geschrieben, und bietet einem eine grundlegende Anzeige, die die Wetterstation allerdings schon voll funktionstüchtig macht. Der Quellcode der Anwendung bietet sogar sehr einfache Optionen, sich seine eigenen Reiter zusammenzustellen – mit eigenen Icons, Funktionen, sogar Bilder lassen sich per Python Imaging Library zur geeigneten Ausgabe auf dem LCD-Bildschirm konvertieren und ausgeben.
Hübsch, oder? Und das ist alles auf der Website von TinkerForge frei erhältlich – also, der Quellcode, aber auch die Schaltpläne der einzelnen Bricks, für die Elektrobauteiltüftler unter euch.
Ich denke, das sollte erstmal als grobe Übersicht, was für ein Projekt ich auf dem Tisch habe, reichen.

 

Erster Eindruck?

Mein erster Eindruck, bzw. Gedanke, den ich hatte, als ich die Bauteile ausgepackt habe, war: “Jetzt nochmal vierzehn sein, und so etwas unter dem Baum stehen haben. Ich wäre verliebt gewesen.” Nicht, dass das zehn Jahre später bei mir gänzlich anders aussieht. Das, was ich bisher alles mit dieser Wetterstation gemacht habe, und was sich wohl noch machen lässt… eine Plethora an Möglichkeiten, die sich einem öffnet. Die Bauteile, ihre modulare Bauweise, all der Quellcode und die Programme, die einem mitgegeben werden, beziehungsweise welche man auf der TinkerForge Website findet, sind sehr extensiv, und gerade deswegen würde ich sagen, es ist absolut super geeignet für junge, neugierige Bastler und Tüftler mit einer Leidenschaft für das Programmieren und Elektrobauteile.
Das scheint mir aber auch wirklich nicht das Anwendungsgebiet dieser Wetterstation zu sein, nein. Die Bauteile, das Set, all diese Dinge sind ganz klar auf Tüftler ausgelegt, und die wirklich sehr hohe Einsteigerfreudlichkeit macht dieses Kit definitiv zu einer Empfehlung für junge Leute ab vierzehn, die mal gerne ihre grundlegenden Programmierfertigkeiten mit einer greifbaren Anwendung verknüpfen wollen. Der Kreativität ist dank des Screens ohnehin schon keine Grenzen gesetzt; die modulare Bauweise würde auch noch viele Erweiterungen für diese Wetterstation unterstützen.
Also, fertigt schonmal die Wunschzettel an, denn nach Weihnachten ist vor Weihnachten.
Im zweiten Teil dieser Blogposts werde ich dann die ersten selbstgeschrieben Anwendungen von mir vorstellen, auf die APIs eingehen, und weitere Ideen besprechen, die ich bislang schon hatte, und auch noch haben werde.

 

Henrik Triem
Henrik Triem
Junior Developer

Henrik is Anwendungsentwickler in Ausbildung, verhindeter Rockstar, kaffeegetrieben und Open Source-begeistert. Zuhause lässt er es auch mal ruhiger mit Tee angehen, entspannt an Klavier oder Gitarre, erkundet neue Musik oder treibt sich mit seinen Freunden in Deutschland herum.

Der Abteilungsdurchlauf: Von Managed Services zum Eventmanagement

Gut vier Monate sind vergangen seitdem ich bei NETWAYS angefangen habe. Viel hat sich seitdem ereignet: Ein LAMP-Projekt, die Open Source Monitoring Conference, dann diverse interne Schulungen und ein paar eingestreute Berufsschulblöcke später finde ich mich zuerst bei Managed Services und dann bei Events wieder.

Wie war es bei Managed Services

Managed Services im Customer Hosting umfasst viele Themengebiete, die für mich als zukünftigen Consultant relevant sind. Die acht Wochen dort, waren zunächst vor allem eine Möglichkeit die anderen Kollegen kennenzulernen, aber auch eine Zeit, in der ich bei NETWAYS das erste Mal Verantwortung übernehmen durfte und für die Kunden direkt arbeiten konnte. Natürlich in einem abgesicherten Umfeld, da mir bei Fragen eine Reihe erfahrener Kollegen zur Seite stand.

Was hat dir Events gebracht?

Durch meine Zeit bei Events habe ich vielleicht noch ein bisschen mehr verstanden, wie die Zahnräder bei NETWAYS ineinandergreifen.

Wenn man so möchte, kann man Events unterteilen in  Training und Events (Konferenzen). Die Woche über habe ich mit Stefan ungefähr 80 % einer GitLab-Schulung vorbereitet. Ich habe die Handouts, Aufgaben, sowie Lösungen ausgedruckt, gestanzt, abgeheftet, eine Vielzahl an Laptops für die Schulung vorbereitet, Reservierungen und Bestellungen getroffen und so weiter.

Ich habe zum Beispiel auch Kontakt zu unserem Trainer für die Schulung aufgenommen und die Unterlagen für ihn vorbereitet. Eben dieser Trainer kann mit dem nötigen Know-How irgendwann ich sein und dann bin ich mir bereits über vieles im Klaren und kann so besser mit Stefan zusammenarbeiten.

Was ich sonst gelernt habe: Das Marketing braucht Input der anderen Abteilungen, um Produkte und Dienstleistungen möglichst konkret darstellen zu können und Events, wie die OSMC oder die bevorstehende OSDC, sind Veranstaltungen auf denen sich Leute austauschen können und bieten Experten eine Plattform, um ihr Wissen zu teilen. Eben diesen Experten, die mir helfen meinen Job besser zu machen.

 

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.

MyEngineer – IT-Systemadministration nach Maß

Mit unserem neuen Produkt OpenStack in NETWAYS-Web-Services, starten wir auch einen neuen Service – MyEngineer.
Doch was ist NETWAYS Web Services, OpenStack und MyEngineer? Genau das wird in diesem Artikel erklärt.

NETWAYS Web Services (NWS)

Bei NETWAYS Web Services, zunächst kürzer “NWS” handelt es sich um eine Software as a Service-Plattform (SaaS) auf der einige Produkte zur sofortigen Nutzung als fertig betriebene Software bereitstehen. Interessenten und Kunden müssen sich lediglich in einem einfachen Verfahren ein Konto anlegen und die Wunschsoftware bzw. Apps starten. Inzwischen stehen hier einige Produkte zur Auswahl – und das sogar die ersten 30 Tage kostenfrei! Die Produktpalette reicht von Gitlab (CE/EE) über Nextcloud, WordPress, SuiteCRM, Icinga 2 (Master/Satellite) bis hin zum Request-Tracker (und es kommen immer neue Produkte dazu). Für jedes Produkt gibt es verschiedene Pakete, die jedem Anwendungsfall entsprechen. Die Vorteile einer SaaS-Lösung liegen klar auf der Hand, die Kunden brauchen sich keine Gedanken über Sicherheit, Backups oder Aktualisierungen mehr machen, denn genau da drum kümmern wir uns dezent im Hintergrund. Als Nutzer eines NWS-Produktes konzentrieren Sie sich auf Ihre Arbeit und verlieren keine Zeit in der Administration Ihrer Anwendung. Schauen Sie doch mal rein!

OpenStack

Seit einigen Wochen bieten wir OpenStack als als Produkt im NWS an. Allerdings handelt es sich weniger um eine App, also nicht wirklich um SaaS (vielleicht doch – ein Bisschen), sondern viel mehr um Infrastructure as a Service (IaaS) – und das ist so ziemlich der letzte Schrei aktuell in der IT. Mit einem Zugang in unser OpenStack haben Anwender die Gelegenheit, ihre eigene IT-Infrastruktur aufzubauen – und da geht so einiges, also nicht nur VMs wie bei manch anderem Marktbegleiter. Unsere OpenStack-User können bei uns alles nach Wunsch anlegen: virtuelle Maschinen (Sizings mit nahezu beliebigen Spezifikationen, natürlich mit root-Zugriff), Netzwerke, Firewall-Regeln, interne Netzwerke, Snapshots, Loadbalancer, Router, VPNs, S3-Buckets – alles genau, wie es gebraucht und gewünscht ist. Mit OpenStack erhalten Administratoren Zugriff auf ein mächtiges Tool (Webinarvideo), welches dennoch leicht verständlich und wartbar ist. Das Beste kommt wie immer zum Schluss – die eigene OpenStack-App ist bei uns 100% kostenlos. Es werden nur Ressourcen gezahlt, die auch verbraucht wurden – und das zu günstigen Preisen und auf die Stunde genau. Also auch mal schnell eine Test-VM starten und was probieren, VM wieder löschen – kein Problem, die VM steht inkl. der Registrierung im NWS in unter 5 Minuten zur Verfügung (Videobeweis)! Mit unserem OpenStack Kosten-Rechner (erst zu sehen beim laufenden Produkt, aber hier sieht man, wie es aussieht) haben Sie immer die bisher aufgelaufenen, sowie die für diesen Monat zu erwartenden Kosten im Blick! Eine Preisübersicht über die einzelnen Ressourcen pro Stunde finde man auf der Produktseite. Gezahlt wird übrigens bequem via Kreditkarte oder auf Rechnung – und jetzt ganz neu: PayPal. Datenschutzkonform, gehostet in Deutschland über mehrere Standorte.

MyEngineer

Der NETWAYS-MyEngineer erfüllt den Wunsch nach einer wartungsfreien Software (wie bei NWS) und den Einsatz von OpenStack. Unerfahrene Anwender, oder solche, die sich ihrem Geschäft zuwenden wollen, greift MyEngineer unter die Arme, stellt gewünschte Applikationen bereit, kümmert sich um Updates, Backups, Firewalleinstellungen und stellt den Betrieb sicher. Die Anwendungsmöglichkeiten sind hier unbegrenzt. Was und wie viel gemacht wird, entscheiden Sie. Wir stellen beim Onboarding hierzu gezielt Fragen, damit wichtige Punkte nicht vergessen werden. Nach der initialen Einrichtung sind unsere MyEngineers für Sie da. Ein Anruf oder ein Ticket genügt und wir kümmern uns. Optional zur Entstörung kritischer Anwendungen bietet der MyEngineer 24×7 Support auch rund um die Uhr, am Wochenende und an Feiertagen.

Um einen Einblick zu bekommen, was so alles geht, nachfolgend eine kurzer Auszug von dem, was unsere MyEngineers kürzlich gemacht haben:

  • Ein Studierendenwerk bestellte einen zentralen im OpenStack gehosteten Unifi-SDN-Controller für 600 Unifi-Access Points, verteilt über mehrere Studentenwohnheime. Unsere MyEngineers stellten diesen innerhalb eines Tages nach Bestellung mit root-Zugriff für den Kunden inkl. aller erforderlichen Firewall-Regeln und Backup bereit. Die eigentliche Einrichtung der Access-Points und Netzwerke in der Controller-Software, wollte der Kunde übernehmen. Nach sauberer Dokumentation und kurzer Einweisung wollte der Kunde die letzte Firewall-Regel dann doch selbst einmal einrichten und von der einfachen Bedienung im OpenStack überzeugen. Der MyEngineer wird sich monatlich um die Updates des Controllers kümmern, alles andere auf Abruf.
  • Ein Systemlieferant für Maschinen- und Anlagenbau orderte eine virtuelle Maschine mit Docker und Docker-Compose, sowie ein einfaches Firewall-Regelwerk für den Webzugriff. Auch dies stellen unsere MyEngineers innerhalb kurzer Zeit zur Verfügung und standen auch bei der Inbetriebnahme der Container zur Verfügung.
  • Ein Softwarehersteller aus München orderte ein Gitlab EE und hatte den Wunsch nach einer zentralen Gitlab-Instanz mit besonders viel Power und AD-Anbindung. Für die AD-Anbindung war ein VPN erforderlich, welches unsere MyEngineers ihm gern direkt im OpenStack einrichteten und ihm bei der Anbindung an sein Gateway behilflich waren. Übrigens: die Lizenz für Gitlab EE hat der Kunde selbst mitgebracht.
  • Ein Softwarehersteller, der Kita-Anmeldungen zentral mit einer Webapplikation verwaltet, bereitet seinen Go live vor und bringt seine Anwendung (mit mächtig vielen Paketabhängigkeiten) frisch aus der Entwicklung mit. Kein Problem für die MyEngineers – diese bauen ein verteiltes Setup, mit getrennten Workern, Datenbanken und Webservern auf. Zudem ist die ganze Anwendung aus der Produktion noch einmal als Staging-Umgebung gespiegelt.
  • Ein IT-Dienstleister aus Nürnberg: Wünschte den Neuaufbau seines Webauftritts. Unsere MyEngineers kümmerten sich um die Bereitstellung der Maschinen mit einem klassischem LAMP-Stack. Besonders hier dran: dieser Kunde wünschte einen eigenen Puppetmaster um jederzeit neue Maschinen dazu nehmen zu können und ein zentrales Config-Management zu realisieren. Die Webanwendung läuft loadbalanced mit dem OpenStack Loadbalancer.

Kurzum, sollte der Wunsch an die Applikation doch etwas komplexer sein und wird nicht mit Standardprodukten abgebildet, helfen wir gerne. Abgerechnet wird fair nach aufgebrachter Zeit – kein Laufzeitvertrag mit monatlichen Kosten! Eine kurze Anfrage genügt!

 

Georg Mimietz
Georg Mimietz
Lead Senior Systems Engineer

Georg kam im April 2009 zu NETWAYS, um seine Ausbildung als Fachinformatiker für Systemintegration zu machen. Nach einigen Jahren im Bereich Managed Services ist er in den Vertrieb gewechselt und kümmerte sich dort überwiegend um die Bereiche Shop und Managed Services. Seit 2015 ist er als Teamlead für den Support verantwortlich und kümmert sich um Kundenanfragen und die Ressourcenplanung. Darüber hinaus erledigt er in Nacht-und-Nebel-Aktionen Dinge, für die andere zwei Wochen brauchen.

Bernd hilft – Was ist ein Coworking-Space?

This entry is part 1 of 2 in the series Bernd hilft!

Einige Dinge bin ich in den letzten Jahren schon öfters gefragt worden und daher kam mir der Gedanke die Antworten mit Euch zu teilen und somit auch für die Nachwelt (weitere Fragende) festzuhalten.

Ich werde mich daher bemühen, dieser kleinen und manchmal durchaus humoristischen Blogserie über die nächsten Monate etwas Leben einzuhauchen.

Aber jetzt zur eigentlichen Beantwortung der Frage: Was ist ein Coworking-Space?

Laut Statista gibt es weltweit ca. 19000 Coworking-Spaces. Diese Form der Zusammenarbeitet bietet den Mietern größtmögliche Flexibilität bei den Fixkosten und darüber hinaus die Möglichkeit, auf die vorhandenen technischen (Drucker, Fax -> echt jetzt, Toilette) und fachlichen Assets (andere Coworker) des Spaces zurückzugreifen. Dabei entsteht eine lokale Community welche mit Diskussionen, Kaffeeklatsch und kleinen Snacks den Tag zur Erlebnisreise macht und die Uhr in wahnsinniger Geschwindigkeit nach Vorne dreht.

Für viele Neulinge fühlt sich die Arbeit in einem Coworking-Space wie ein Zeitreise an, da man quasi nach dem ersten Kaffee schon wieder in die Feierabendvorbereitung einsteigen kann. Die Zeit wird jedoch nicht mit einer Einstein-Rosen-Brücke überwunden, sondern geht zwischen den verschiedenen Pausen und Toilettengängen quasi auf dem Flur drauf. Coworking ist nichts für Anfänger und es Bedarf einiger Übung und Training, sich den Reizen des unterhaltsamen Faulheit nicht zu unterwerfen. So gehören Kopfhörer und ein Spotify-Abo zur festen Ausstattung, wenn man in dem flexiblen Büro etwas durch die Tür bringen will.

Oberflächlich betrachtet teilen sich die Mieter in einem Coworking-Space in zwei Gruppen auf:

  1. Sie wissen eigentlich nicht wohin (ggf. auch Barcamper) und da dort permanent geheizt wird und mann den Kaffee anschreiben kann, ist der Coworking-Space eine beliebte Anlaufstelle. So kann man dann beim gemeinsamen Google Analytics Frühstück die Zahlen der Vorwoche ignorieren und gemeinsam warten, bis es draußen wieder dunkel wird. Ein Untergruppe war bereits am Vorabend zum SEO-Bingo da und hat noch immer die gleichen Klamotten an.
  2. Hier wird wirklich gearbeitet und die Verpflichtungen im privaten und geschäftlichen Bereich erfordern, dass mehr Geld eingenommen als ausgegeben wird. Diese Gruppe ist sehr einfach daran zu erkennen da sie extrem darum bemüht ist, nicht zu viel Zeit mit Gruppe 1 zu verbringen. Wer das nicht innerhalb der ersten zwei bis drei Monate schafft, kann dann seinen Tisch nicht mehr bezahlen und fällt den Betreibern zu last. Finanziell sind diese Zitronen dann meist schon so ausgepresst, dass selbst unseriöse Inkassounternehmen die Auftragsannahme verweigern.

Als neue Arbeitsform hat sich Coworking fest etabliert und bietet Kleinunternehmern, Freaks und Barcampern ein Zuhause. Darüber hinaus können die Räumlichkeiten auch für andere skurrile Veranstaltungen verwendet werden, da die EDA-Kosten ja bereits grundsätzlich gedeckt werden müssen. Ob nun Berlin, München oder Nürnberg, Coworking verbindet Menschen und ermöglicht Ergebnisse, die auch ohne Coworking möglich wären, wenn man zu Hause die Playstation nicht einschalten würde.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startet er das wöchentliche Lexware-Backup und investiert seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinem Sohn.

Willkommen zurück, wir freuen uns auf Euch!

Es ist nun doch anzunehmen, dass es die überwiegende Mehrheit wieder so langsam in die Arbeit geschafft hat. Ja, es ist nicht einfacher geworden und der ein oder andere musste am Morgen ganz schön beherzt zugreifen, um den Gürtel im Vorjahresloch einzuhaken. Natürlich nutzen wir noch die Chance Euch nur das Beste für 2019 zu wünschen. Angeblich soll es jetzt noch möglich sein, jedoch verstreicht das Zeitfenster wegen der anstehenden Ostervorbereitungen bald.

Wir waren in den letzten Wochen bzw. Monaten richtig fleissig und freuen uns, Euch auf der neuen Website von NETWAYS zu begrüssen. So haben wir endlich Blog und Website in einem System vereint und werden Euch natürlich weiterhin hier im Blog-“Teil” mit dem Neusten aus unserer Welt auf dem Laufenden halten.

Nehmt Euch doch ein bisschen Zeit, um Euch auf der neuen Website umzusehen. Lernt das Team näher kann, bestellt 100 Tage Consulting (haben wir eigentlich in 2019 nicht mehr frei) und 300 OSDC Tickets. Jetzt geht so ziemlich alles in einer Plattform und das macht es uns und hoffentlich Euch in Zukunft einfacher bei uns. Apropos, Schulungen könnt ihr natürlich auch noch buchen. Eigentlich bedarf es keiner weiteren Erklärung und wir freuen uns natürlich sehr über Feedback.

Macht was aus 2019 und in diesem Sinn – Ready, set, go!

And of course we have most of the content in English as well. Click the button in the upper right corner of the website to see what’s going on “there”.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startet er das wöchentliche Lexware-Backup und investiert seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinem Sohn.

The way to Go

Lange Zeit waren die Auftragnehmer der Raumfahrt große Rüstungskonzerne mit eingefahrenen Strukturen und dem entsprechenden Produkten. Die Raketen waren bspw. nicht gerade dazu gedacht, sie wieder zu verwenden. Wahrscheinlich konnte sich kaum einer der Auftraggeber vorstellen, dass das auch ganz anders geht. Und dann kam Elon Musk und hat “mal eben” SpaceX auf die Beine gestellt… und dann gingen viele Dinge auf einmal viel besser. So ähnlich auch in unserer Branche…
Lange Zeit gab es zwar maschinennahe Programmiersprachen, aber diese waren umständlich in der Handhabung – insbesondere im Hinblick auf die parallele Ausführung mehrerer Aufgaben. Die konstante Größe der Thread-Stacks limitierte zusätzlich die Anzahl der Threads, so dass bspw. das in C++ geschriebene Icinga 2 aktuell die E/A auf einige wenige Threads verteilen muss. Seit 2009 gibt es immerhin NodeJS, das gut und gerne viele E/A-Aufgaben parallel ausführt, aber auch nur diese – für Rechenoperationen steht nur ein Thread zur Verfügung. Zudem sind die Typen und Funktionen dynamisch und damit nicht so maschinennah und performant wie bspw. in C++. Und da saßen die Programmierer bis 2012 zwischen diesen zwei Stühlen. Und dann hat Google 2012 die erste stabile Version von Go veröffentlicht… und damit gingen viele Dinge auf einmal viel besser. So auch mittlerweile bei NETWAYS

Und was macht dieses Go jetzt besser als alle anderen?

Wie mein Kollege Florian sagen würde: “So einiges.” Aber Scherz beiseite…
Go ist maschinennah – d.h. die Typen und Funktionen sind allesamt statisch und werden wie auch bei bspw. C++ im voraus in Maschinencode umgewandelt – mehr Performance geht nicht.
Go ist einfach (obwohl es maschinennah ist). Die Datentypen sind zwar statisch, also explizit, aber deren Angabe ist nur so explizit wie nötig:

type IcingaStatus struct {
   Name, Description string
}
var IcingaStatusSet = map[uint8]IcingaStatus{
   0: {"OK",       "Alles im grünen Bereich"},
   1: {"WARNING",  "Die Ruhe vor dem Sturm"},
   2: {"CRITICAL", "Sämtliche Infrastruktur im Eimer"},
   3: {"UNKNOWN",  "Mein Name ist Hase, ich weiß von nichts"},
}

Im gerade gezeigten Beispiel muss der Datentyp der Map-Variable nur einmal angegeben werden. Weder die Typen der enthaltenen Werte, noch deren Felder müssen angegeben werden – sie werden vom Typ der Map abgeleitet. Wer befürchtet, den Überblick zu verlieren, kann auf die IDE GoLand zurückgreifen:

Go ist relativ sicher vor Unfällen (obwohl es maschinennah ist). Bei Zugriff auf eine Stelle eines Arrays, die gar nicht existiert oder unzulässiger Umwandlung von Zeiger-Datentypen wirft Go einen Fehler, um Schäden durch Programmierfehler abzuwenden:

type Laptop struct {
    DvdDrive uint32
}
func (l *Laptop) DoSomethingUseful() {
}
type SmartPhone struct {
    SimSlot uint16
}
func (s *SmartPhone) DoSomethingUseful() {
}
type Computer interface {
    DoSomethingUseful()
}
func main() {
    var computers = []Computer{&Laptop{}, &Laptop{}, &Laptop{}}
    _ = computers[3]
    var computer Computer = &Laptop{}
    _ = computer.(*SmartPhone)
}

Go erledigt von sich aus E/A-Aufgaben effizient (obwohl es nicht NodeJS ist). Aufgaben werden in Go nicht über Threads parallelisiert, sondern über sog. Go-Routinen (das gleiche in grün). Diese werden von Go selbst auf die eigentlichen Threads verteilt. Wenn eine Go-Routine eine blockierende E/A-Operation ausführt, wird diese transparent im Hintergrund vollzogen und eine andere Go-Routine beansprucht währenddessen den Thread.
Der Himmel ist die Grenze der Parallelisierung dank Scheduler und dynamischer Stack-Größe. Die o.g. Verteilung von Go-Routinen auf Threads verantwortet der sog. Scheduler von Go. Dies führt dazu, dass “zu” viele parallele Aufgaben sich und dem Rest des Systems nicht im Weg stehen. Zudem beansprucht jede Go-Routine nur soviel RAM wie sie auch wirklich braucht, d.h. eigentlich kann ein Programmierer so viele Go-Routinen starten wie er lustig ist (Beispiel). “Eigentlich” ist genau das richtige Stichwort, denn trotzdem sollte jeder Einzelfall für sich betrachtet werden. Ansonsten macht das OS irgendwann git push --feierabend (Beispiel).
Go geht einfach (daher kommt wahrscheinlich auch der Name). Im Gegensatz zu etablierten maschinennahen Sprachen muss ich mich nicht darum kümmern, dass libfoobar23.dll an der richtigen Stelle in der korrekten Version vorliegt. Das Ergebnis eines Go-Kompiliervorgangs ist eine Binary, die nichtmal gegen libc gelinked ist:

root@576214afd7e6:/# cat example.go
package main
func main() {
}
root@576214afd7e6:/# go build -o example example.go
root@576214afd7e6:/# ./example
root@576214afd7e6:/# ldd ./example
not a dynamic executable
root@576214afd7e6:/#

Alles kann, nichts muss. Go muss ja nicht von heute auf Morgen in sämtlichen Applikationen Anwendung finden. Man kann auch mit einem einzigen Programm anfangen, das nicht heute, jetzt und eigentlich schon vorgestern fertig sein muss. Und selbst wenn nicht alles beim ersten Mal klappt, bieten wir Ihnen gerne maßgeschneidertes Consulting an.

Alexander Klimov
Alexander Klimov
Developer

Alexander hat 2017 seine Ausbildung zum Developer bei NETWAYS erfolgreich abgeschlossen. Als leidenschaftlicher Programmierer und begeisterter Anhänger der Idee freier Software, hat er sich dabei innerhalb kürzester Zeit in die Herzen seiner Kollegen im Development geschlichen. Wäre nicht ausgerechnet Gandhi sein Vorbild, würde er von dort aus daran arbeiten, seinen geheimen Plan, erst die Abteilung und dann die Weltherrschaft an sich zu reißen, zu realisieren - tut er aber nicht. Stattdessen beschreitet er mit der...