Neo Tech Blog

NEO TECH LBLOG - Praxis-Techblog für IT, Web und Mobile
Manuel Kasiske Software Entwickler Neofonie

Digitalmacher:
Open Source ist überall

Keine Kommentare


Ende der 90er machte Netscape seinen Quellcode für den Internetbrowser Navigator als Antwort auf die dominierende Marktstellung des Explorers von Microsoft öffentlich zugänglich. Seither wächst die globale Open Source-Bewegung stetig. Heute steckt in nahezu jeder Anwendung, App und Software auch ein Stück Open Source. Manuel Kasiske ist Softwareentwickler bei Neofonie. Er gibt einen Einblick in die Bedeutung von Open Source aus Entwicklersicht und erklärt, wie er Open Source für die Entwicklung eines Plugins für Docker nutzt.

Welche Bedeutung hat Open Source für Dich?

Die Nutzung von Open Source Lösungen bietet den Vorteil, dass sich das Verhalten genutzter Bibliotheken leichter verstehen und weiterentwickeln lässt. Open Source, sprich transparent und öffentlich für alle nutzbarer Code, wird durch die Community ermöglicht, die sich aktiv an der Weiterentwicklung von Software beteiligt.

Die Entwickler in der Open Source Community helfen sich gegenseitig und bringen eine Sache gemeinsam voran. Es gibt unzählige Projekte und Ideen und Millionen von Entwicklern, die sich hier einbringen.

Ich nutze Open Source mit Hilfe von github, sowohl privat als auch beruflich. Da wo es Sinn macht, nutzen wir bei Neofonie freie Bibliotheken – auch im Rahmen von Kundenprojekten. Nicht nur weil diese von einer großen Community genutzt und somit Fehler schneller erkannt und gefixt werden, sondern auch weil andere Unternehmen wie zum Beispiel Google, Apache, Netflix, etc. sich in die Community einbringen und so einen Einblick in ganz individuelle, unterschiedliche Herangehensweisen der Problemlösung ermöglichen.

Ich bin froh darüber, dass ich mich aktiv in die Open Source Community einbringen kann.

Wie bringst Du Dich in der Open Source Community ein?

Neben meinen Routineaufgaben als Softwareentwickler engagiere ich mich mit zwei Projekten, die dazu beitragen, dass unsere Kundenprojekte im Sinne des „Continuous Delivery“-Ansatzes kontinuerlich und damit insgesamt schneller ausgeliefert werden können: Zum einen habe ich das Plugin „GoCD Plugin for Docker – Registry Poller“ weiterentwickelt und zum anderen ermöglicht, dass dieses Open Source Plugin einen eigenen Continuous Integration (CI) Prozess durchläuft.

Was steckt hinter dem „GoCD Plugin for Docker“?

Im Rahmen unserer Kundenprojekte entwickeln wir sog. Microservices, die kleinere Aufgaben übernehmen und im Zusammenschluss größere Aufgaben erledigen können. Für den produktiven Einsatz der Microservices verwenden wir die Container-Technologie Docker. Die Idee dahinter ist, dass man nicht mehr eine gigantisch große Software hat, sondern viele kleinere, flexible Dienste miteinander kombiniert und beispielsweise jeden Dienst für sich jederzeit updaten kann. Diese Updates sollen möglichst fehlerfrei und automatisiert integriert und ausgeliefert werden und mit der „Continuous Delivery“ (CD) – bzw. Build-Pipeline reibungslos funktionieren. An der Stelle kommt ein „GoCD Server“ zum Einsatz, der die voneinander abhängigen Services der jeweiligen Kette integriert und für die kontinuierliche Auslieferung sorgt.

Damit der GoCD Server in der aktuellen Version 15.3.1  in der Lage ist, die geänderten Services speziell in der Docker-Registry zu erkennen und die entsprechende CD Kette startet, habe ich das Plugin „GoCD Plugin for Docker“ weiterentwickelt. Vorab hatte ich mich mit den Entwicklern von Docker in San Francisco ausgetauscht. Der GoCD Server ist nun in der Lage Änderungen von Microservices in der Docker-Registry zu ermitteln und alle interdependenten Microservices bereitzustellen bzw. neuzustarten.

Wie hast Du das Plugin in den Continuous Integration Prozess integriert?

Das Plugin „GoCD Plugin for Docker“ selbst unterliegt ebenfalls der CD-Idee. Gibt es ein neues Feature für eines der Open Source Projekte, wird automatisch ein „Deployment“ in Travis CI  (ein Deployment-Tool zum Bauen der Software) angestoßen. Die Software durchläuft die integrierten Unit- und Integration-Tests und wird, falls der Test erfolgreich war, als ein Release auf Bintray (ein Distribution-Tool zur Bereitstellung der Software-Releases) veröffentlicht, ohne das ein Entwickler manuell etwas starten müsste. Dabei checkt Travis regelmäßig Änderungen im GitHub-Projekt und stößt ein Deployment innerhalb eines Docker-Containers auf dem Travis-Server an, wenn etwas geändert worden ist. Ist das Deployment erfolgreich durchlaufen wird das gebaute Release auf Bintray hochgeladen und automatisch veröffentlicht.

Welche Technologien und Trends interessieren Dich außerdem?

Continuous Delivery und Continuous Integration in Zusammenhang mit Docker und Microservices sind schon sehr vordergründig präsent  und bieten bei der Entwicklung neuer Microservices auch Spielraum für den Einsatz neuer Programmiersprachen und anderer Technologien.  So ist  die Programmiersprache „Go“ von Google eine passende Erweiterung für die Wissensbasis, die ich durch Docker aufbauen konnte.

In unserem kostenfreien Whitepaper geben wir eine Praxisanleitung, wie mit DevOps und Docker eine agile Softwarearchitektur aufgebaut werden kann und Continuous Delivery gelingt.

Jetzt Whitepaper „Mit DevOps und Docker durchstarten“ kostenfrei downloaden.

 

 „Digitalmacher

In unserer Serie „Digitalmacher“  stellen wir Entwickler, Projektmanager, Softwarearchitekten und Designer vor und sprechen über Methoden, Tools und Vorlieben. Sie geben uns Einblick in ihre Erfahrungen bei der Entstehung digitaler Anwendungen.

Wir suchen DICH!

Neofonie sucht CMS Spezialisten, Software Developer, Projekt Manager und System Architekten.
Bewirb Dich jetzt.

Manuel Kasiske

Autor: Manuel Kasiske

Manuel Kasiske hat 2009 als Praktikant den Einstieg zu Neofonie gefunden. Heute ist er Professional Software Developer und Java Entwickler. Er organisiert und optimiert unter anderem die Software-Releases. Zu seinen Stärken gehören die Frameworks Spring und Grails.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.