Softwareentwicklung

Must-have Ressourcen, Skills und Techniken für Data Engineers und Data Scientists

Nachdem wir in den Artikeln „Onboarding neuer IT-Mitarbeiter (DevOps, Big Data, Developer)“ und „Tutorial: IT-Basiswissen für DevOps, Big Data, Developer“ die grundlegenden Themen für neue IT-Fachkräfte vorgestellt und ein Tutorial zum Erlernen dieses Basiswissens gezeigt haben, möchten wir nun genauer auf Werkzeuge und Techniken eingehen, die speziell für Mitarbeiter im Bereich Data Engineering oder Data Science relevant sind.

Maurice KnoppMust-have Ressourcen, Skills und Techniken für Data Engineers und Data Scientists
Mehr

Java Heap Settings in Docker Containern

Entwicklern sollte bewusst sein, dass sich Java Prozesse in Docker Containern anders verhalten als wenn sie direkt auf einem Host ausgeführt werden. Wenn wir z.B. eine Anwendung mit java -jar mypplication-fat.jar” starten, dann passt die JVM einige Parameter selbständig an, um die bestmögliche Performance zu gewährleisten.

Man neigt dazu zu denken, dass Container genau wie virtuelle Maschinen sind, wo wir eine Reihe von virtuellen CPUs und virtuellen Speicher vollständig definieren können. Container sind eher ein Isolationsmechanismus, bei denen die Ressourcen (CPU, Speicher, Dateisystem, Netzwerk, etc.) für Prozesse voneinander getrennt sind. Diese Isolation wird durch eine Linux-Kernelfunktion namens cgroups ermöglicht. Einige Anwendungen, die Informationen aus der Ausführungsumgebung benutzen, wurden jedoch vor der Existenz von cgroups implementiert. Tools wie ‚top‘, ‚free‘, ‚ps‘, und selbst die JVM ist nicht dafür optimiert, innerhalb eines Containers einen stark eingeschränkten Linux-Prozess auszuführen. Schauen wir uns das mal an.

Masiar IghaniJava Heap Settings in Docker Containern
Mehr

Tutorial: IT-Basiswissen für DevOps, Big Data, Developer

Nachdem wir im Artikel „Onboarding neuer IT-Mitarbeiter (DevOps, Big Data, Developer)“ die grundlegenden Themen für neue IT-Fachkräfte vorgestellt haben, möchten wir nun anhand eines Tutorials zeigen, wie Wissen zu diesen Themen praktisch angewendet werden kann. Neue IT-Mitarbeiter können die nachfolgenden Tutorialaufgaben Schritt für Schritt durchlaufen und zum Abschluss die Projektdokumentation und die beiden kurzen Präsentationen einem Senior Entwickler vorlegen bzw. präsentieren.

Maurice KnoppTutorial: IT-Basiswissen für DevOps, Big Data, Developer
Mehr

Onboarding neuer IT-Mitarbeiter (DevOps, Big Data, Developer)

Damit Hochschulabsolventen aus MINT Fächern als IT-Fachkräfte möglichst schnell produktiv im Firmenumfeld arbeiten können, sollten diese die gebräuchlichsten Technologien und Werkzeuge kennen und verwenden können. Nachfolgend heben wir die wichtigsten Themen heraus und verweisen auf Ressourcen um diese schnell zu erlernen.

Maurice KnoppOnboarding neuer IT-Mitarbeiter (DevOps, Big Data, Developer)
Mehr

Continuous Delivery Pipeline mit CoreMedia – Teil2

Continuous Delivery beschreibt im Software Entwicklungsprozess die Kette bzw. den Prozess der zwischen Entwicklung und Produktionsstellung liegt. Ziel ist es diesen Weg so schnell, automatisiert und zuverlässig wie möglich zu gestalten. Die Vorteile einer gelungenen Continuous Delivery sind immens und liegen auf der Hand:
Time-To-Market: Features sollen schnell in Produktion gehen
Aus fachlicher Sicht können zum einen Ideen schneller ausprobiert und somit schneller Feedback vom Markt/Kunden eingeholt werden. Aus technischer Sicht bekommt auch der Entwickler schneller Feedback zu den umgesetzten Features. Ich habe Firmen erlebt wo alle 6 Monate ein Release durchgeführt wird. Wenn Fragen dabei auftreten ist es für den Entwickler schwer sich an Implementierungsdetails zu erinnern. Er verliert Zeit, weil er sich wieder hineindenken muss. Im Schlimmsten Fall ist der Entwickler schon gar nicht mehr in der Firma. Auch das kommt häufiger vor als gewünscht.

Masiar IghaniContinuous Delivery Pipeline mit CoreMedia – Teil2
Mehr

Continuous Delivery Pipeline mit CoreMedia – Teil1

Als Senior Software Entwickler und Architektur Berater in großen Java und Coremedia Projekten habe ich mit verschiedenen Build und Delivery Prozessen zu tun gehabt. Jedes Projekt hat natürlich seine eigenen Herausforderungen; doch ein Problem war allen gemein: die schnelle Auslieferung von Features in die Produktion. Jedes Unternehmen hatte dabei eigene Prozesse implementiert: manuelle, halb automatisierte, langwierige (6 Monats-Releases), Fastlanes um die langwierigen zu umgehen, etc. etc.

In einer Artikelserie möchte ich meine Erfahrungen in dem letzten Projekt wiedergeben. Wir haben eine Continuous Delivery Pipeline aufgebaut, welches den Herausforderungen von einem modernen, agilen Softwareentwicklungs Prozess und im speziellen von Coremedia 8 gerecht werden kann. Die Erkenntnisse sind genereller Natur und können in jedem Softwareentwicklungs Prozess mit kleinerer Anpassungen Verwendung finden.

Masiar IghaniContinuous Delivery Pipeline mit CoreMedia – Teil1
Mehr