Seite wählen

NETWAYS Blog

Mein Praktikum bei Netways III

Hallo zusammen,
nachdem mein Praktikum sich nun leider dem Ende neigt, ein paar abschließende Worte.
Zuallererst, muss ich sagen, dass ich wirklich froh bin, hier bei Netways eine Stelle bekommen zu haben.
UnbenanntBislang kannte ich Programmieren, genauer Softwareentwicklung, nur aus dem akademischen Feld und hatte privat kleine Projekte. Gerade deshalb war es wahnsinnig interessant, das Arbeiten im Team an einem großen Projekt zu erleben. Zwar ist mein Studium an der Hochschule stärker praxisorientiert als eines an der Uni, dennoch ist der richtige Arbeitsalltag natürlich etwas völlig anderes.
Während  des Praktikums verbrachte ich viel Zeit mit Icinga2 und Logstash, sowie Kibana. Dies lieferte mir viele Anregungen, mit welchen Themen ich mich in Zukunft noch genauer Beschäftigen will, sowie eine Idee für ein künftiges Projekt. Die Entwicklung rund um Icinga werde ich jedenfalls weiter verfolgen.
Schade, dass mir leider doch viel an Hintergrundwissen, gerade im Bereich Linux fehlte. Besonders bemerkbar machte sich dies, beim Testing für das kommende Icinga 2.5. Das viele Nachschlagen, wirkte sich definitiv auf mein Arbeitstempo aus. Jedoch bin ich auch hier froh, diese Erfahrung und ein ellenlanges Nachschlagewerk in Form von Bookmarks für die Zukunft parat zu haben.
 
An dieser Stelle möchte ich mich nochmal herzlich bei meinen Kollegen für die super Zeit hier bei Netways bedanken 🙂
Weiter möchte ich gerne jedem empfehlen, egal ob ausbildungssuchend, oder bereits mit Berufserfahrung, sich Netways genauer anzuschauen. Bereuen wird man es mit Sicherheit nicht 😉
Ab Oktober ist wieder der Studienalltag angesagt, thematisch nun hoffentlich interessanter, da prizipiell nur noch selbst gewählte Vertiefungsrichtungen, sowie Projekt und Abschlussarbeit anstehen. Und Anschließend?
Viellecht liest man mich ja in einiger Zeit wieder, würde mich jedenfalls freuen 🙂
Beste Grüße und danke fürs Lesen 🙂

Rust

Hallo zusammen,
heute mal kein Zwischenbericht zu meinem Praktikum, sondern etwas über die Programmiersprache Rust.
Erstmal, was ist Rust? 2009 begonnen als Hobbyprojekt des Mozilla Entwicklers Gradon Hoare, wurde Mai 2015 die erste stabile Version samt Compiler bereitgestellt.
Ziel ist es, eine Alternative zu low-level Sprachen wie C/ C++ zu bieten, die zudem den Komfort einer high-level Sprache wie Java oder C# besitzt. Dank direktem Hardwarezugriff, soll eine hohe Performance ermöglicht werden. Der mitgelieferte Rustic Compiler übersetzt direkt in Maschienencode, achtet jedoch während des des Kompiliervorgangs darauf, dass Speicherzugriffe nicht zu Sicherheitslücken führen. Dafür stellt man eine interne Zeigerverwaltung bereit (Pointer Ownership und Lifetime) und verzichtet auf einen laufzeitseitigen Garbadgecollector wie in Java und C# . Das kommt der Performance zugute und zudem muss man sich weniger Gedanken um die Speicherverwaltung, unter anderem auch bei Nebenläufigkeit, machen. Bei Bedarf ist es aber ebenso möglich reguläre C Pointer mit dem Schlüsselwort unsafe zu deklarieren.
Der Syntax erinnt an Python und C++. Wer erfahrung mit diesen Sprachen hat, sollte sich gut zurecht finden können. (Anm. ich selbst habe bislang noch keine Erfahrung mit Python gesammelt und verlasse mich hier auf die Meinung anderer Programmierer)
Hier etwas Beispielcode:

// Funktion, die ein Tupel zurückgibt
fn get_tuple() -> (i8,i8)
{
  let a = 4;
  let b = 2;
  // a und b zu Tupel zusammenfassen
  (a,b)
}
fn main()
{
  // pattern matching, um das Tupel wieder zu trennen
  let (x1, x2) = get_tuple();
  println!("x1: {}", x1);
  println!("x2: {}", x2);
  // Werte sind automatisch Konstanten
  let ro = 3;
  // Variable als veränderbar deklarieren
  let mut rw = 2;
  rw = 10; // zulässig
  // ro = 7; unzulässig,
}

Wer sich nun selbst an Rust versuchen will, findet hier die Dokumentation und einen Onlinecompiler
Nun aber zu der nicht unberechtigten Frage, was man sich von Rust erwarten kann.
Aktuell steht es in der Version 1.9 zum Download bereit, dahinter eine Community mit knapp 1200 Mitwirkenden. Jedoch fehlt es für eine weite Verbreitung noch an Bibliotheken. Das nächste größere Projekt ist Servo, Mozillas neue Firefox Engine. Der Benchmark eines Nightly Builds zeigt bereits eine top Performance. Jedoch bleibt das fertige Produkt abzuwarten, vorallem ob dieses neben performanten Rendern auch bei der Speichernutztung überzeugt. Stichwort Garbadge Collection. Wer bereits Waterfox (der 64Bit Build von Firefox) nutzte, hatte vielleicht auch schon das Erlebnis, dass sogar bei wenigen offenen Tabs, die  Speicherbelegung jenseits der 4GB lag.
Rust ist definitiv ein Projekt welches man im Auge behalten sollte.

Mein Praktikum bei Netways II

Hallo liebe Leser,
nachdem ich jetzt schon knapp den zweiten Monat bei Netways bin, ein kleines Status Update zu meinem Praktikum.
Von den Schulungsunterlagen ging es direkt weiter zu meiner eigentlichen Praktikumsaufgabe, Icinga2 die Nutzung von UDP ermöglichen. Kurz vorweg, es gibt zwei relevante Transferprotokolle zur Datenübertragung: TCP und UDP. Dem geneigten Leser werden diese sicher bekannnt sein, dennoch eine knappe Erklärung.
Werden zum Beispiel große Datenpakete übertragen, werden diese zunächst in Kleinere zerlegt. Im Fall von TCP werden im Header der Teilpakete, die Sequenznummern für deren Reihenfolge und eine Prüfsumme hinterlegt. Werden Dateien vom Sender zum Empfänger übermittelt, erfolgt pro eingegangenem Paktet eine Eingangsbestätigung des Empfängers. Erst wenn der Sender diese erhält, wird das nächste Paket versand. Sollte ein Paket nicht korrekt ankommen, wird nach einer zuvor festgelegten Wartezeit das Paket erneut gesendet.
UDP hingegen verzichtet auf das Verifizieren des erfolgreichen Datenempfangs. Wird ein Paktet als fehlerhaft befunden, muss es erneut  gesendet werden. Die Vorteile hier liegen ehr darin, dass diese Übertragung performanter ist und wird deshalb vornehmlich bei Audio und Videoübertragung genutzt, da fehlerhafte Pakete hier nicht so stark ins Gewicht fallen.
Doch zurück zu Icinga: dieses nutzt zum Versenden von Logdaten GELF ( Graylog Extended Log Format). Nun gibt es einige Empfänger wie Logstash, die zwar GELF verstehen, jedoch keine Kommunikation eingehen können, da sie unterschiedliche Übertragungsprotokolle beutzten (hier: Icinga2 sendet TCP;  Logstash empfängt nur UDP).

Meine Aufgabe ist es, diese Kommunikation zu ermöglichen.Dafür habe ich mich Anfangs mit dem  Elastic Stack beschäftigt, der eine tolle Art und Weise bereitstellt, Daten zu Sammeln, Auszuwerten und zu Visualisieren.
Zig geschossene VMs später, bastel ich nun endlich selbst am Code von Icinga2. Was mich Anfangs sehr eingeschüchtert hat, ist Icingas „Größe“ (locs) und die Anzahl der Dependencies der einzelnen Klassen. Dadurch, dass die Kollegen im Dev selbst genug Tickets zu bearbeiten haben, habe ich mich selbst in den Aufbau des Code eingelesen. Glücklicherweise wird mir jedoch kein Arbeitstempo diktiert, sondern man lässt mir Zeit, mich mit der Materie zu beschäftigen und zu experimentieren.
Ich schätze es wirklich, als Praktikant diese Freiheit zu besitzen 🙂
Danke fürs Lesen!

Mein Praktikum bei Netways

Hallo zusammen, 
heute wird mir die Ehre zuteil meinen ersten Blogpost zu verfassen, doch erstmal zu meiner Person.
Mein Name ist Kai Goller und ich studiere Media Engineering  im 4. Semester an der TH Nürnberg. Seit Mitte März mache ich hier bei Netways mein Praxissemester. Wer sich nun fragt worum es bei Media Engineering geht, gute Frage? Grob gesagt ist es ein Mix aus Informatik, E-Technik und Design.
Warum ein Praktikum bei Netways?
Durch mein Studium konnte ich sehr viel aus den verschiedensten Bereichen mitnehmen, wobei viel davon leider bloß halbherzig abgehandelt wurde. Deshalb entschloss ich mich, das Development Team zu unterstützen, um meine Progammierkenntnisse zu vertiefen.
Was ich hier aktuell mache? Mein Aufgabenbereich befasst sich mit der Monitoring Software Icinga 2. Bislang habe ich mich mit dem Schulungsprogramm und der Dokumentation befasst, um überhaupt ein Bild über die Mögichkeiten dieser Software zu gewinnen, ebenso mit der Bash. Zugegeben, es macht sich bemerkbar, dass ich diese bislang fast ausschließlich zum Kompilieren kleiner Programme benutzt habe und ansonsten IDE verwöhnt bin.
Super finde ich an Icinga zum einen die Tatsache, dass es Open-Source-Soft­ware, also für jeden Interessenten frei zugänglich ist. Weiterhin beeindruckend, dass diese Software auch wirklich komplexe Netzwerke Überwachen kann.

Die Dezentralisierung von Netzumgebungen ist vor allem bei großen Firmen nichts Neues. Natürlich steigt mit der Größe dieser Netzwerke ebenso der Verwaltungsaufwand. Genau hier schafft Icinga Abhilfe und erleichtert vielen Systemadmins den Tag ungemein. Zudem lässt sich Featurepalette bequem dank Plugins erweitern.
Mit Netztechnik kam ich bereits in Berührung, jedoch hauptsächlich die Theorie dahinter, zum Beispiel die Funktionsweise verschiedener Protokolle. Bei der praktischen Anwendung, kommen aber doch öfter diverse Fragen auf. Hier kommen die Kollegen ins Spiel, die mir immer mit Rat und Tat zur Seite stehen.
Ich muss sagen, wirklich positiv überrascht zu sein, was für ein angenehmes Firmenklima herrscht und kann mir auch sehr gut vorstellen, mich nach dem Studium für eine Festanstellung zu bewerben.
Solltet auch ihr Interesse haben, schaut mal hier vorbei, oder sendet doch einfach eine Initiativbewerbung wie ich.
Vielen Dank fürs Lesen !