Open-Source-Software treibt Innovationsprojekte auf allen Ebenen in den Anwenderunternehmen voran. Entwickler, Data Scientists und Cloud-Architekten hantieren tagtäglich mit frei verfügbaren Tools und bauen damit die IT-Infrastrukturen, die Betrieben weltweit dabei helfen, die wachsenden Herausforderungen zu bewältigen. DevOps, DataOps, Data Processing, Data Analytics, Machine Learning (ML) und Artificial Intelligence (AI) sind nur einige Disziplinen, in denen Open-Source-Werkzeuge eine maßgebliche Rolle beim Bau neuer Lösungen spielen.
Unsere Kollegen von der US-amerikanischen COMPUTERWOCHE-Schwesterpublikation "Infoworld" haben in ihren Testlabors eine ganze Reihe von Open-Source-Projekten unter die Lupe genommen und die Besten mit den Bossie-Awards ausgezeichnet. Insgesamt 28 Tools haben 2022 die begehrte Open-Source-Trophäe erhalten. Wir stellen Ihnen die interessantesten Dev-Tools vor.
Almalinux
"Braucht die Welt wirklich eine weitere Linux-Distribution?", werden sich auch eingefleischte Linux-Fans fragen – auch weil das Gros der verfügbaren Applikationen mittlerweile an die weit verbreiteten Distributionen, etwa Red Hat Enterprise Linux (RHEL), angepasst sind. Allerdings schwindet inzwischen die Vielfalt. Und bei Red Hat, das zu IBM gehört, schieben sich kommerzielle Interessen rund um Linux weiter in den Vordergrund. Das bei vielen Entwicklern beliebte CentOS hat Red Hat vom Markt gekauft. Den Linux-Verfechtern der reinen Lehre gehen die Alternativen aus.
In diese Lücke will "Almalinux" stoßen. "Ein freies LinuxOS von der Community für die Community", lautet das Motto der dahinterstehenden Entwickler-Gemeinde. Sie wollen Unternehmen eine von der Gemeinschaft verwaltete freie Open-Source-Linux-Distribution offerieren. Der Fokus soll auf nachhaltiger Stabilität und einer robusten Plattform für den Produktionsbereich liegen. Almalinux sei eins zu eins binärkompatibel mit RHEL und CentOS, versprechen die Verantwortlichen.
Podman
Podden sie schon? Container-Management goes "Podman" – das Tool soll dem Container- Pionier Docker den Rang ablaufen. Die Chancen stehen nicht schlecht, nachdem Red Hat den offiziellen Support für Docker seit RHEL 8 eingestellt und mit Podman gleich eine Alternative aus dem Hut gezaubert hat. Das Tool soll Entwickler mit möglichst wenigen Limitierungen aufhalten. Es sei einfach zu bedienen, mit den entsprechenden Container-Pods lasse sich problemlos umgehen, heißt es. Die Migration von Docker-Images auf Container-Pods soll sich ebenfalls unkompliziert bewerkstelligen lassen. Podman unterstützt viele der aus dem Docker-Universum bekannten Befehle. Also: Un-Docken und Los-Podden!
Play with Docker
Das Tool "Play with Docker" (PWD) bietet Entwicklern eine Art Spielwiese, auf der sie verschiedenste Dinge mit Containern ausprobieren können. Das von Docker gesponserte Projekt simuliert im Browser eine virtuelle Maschine, auf der sich Docker-Container erstellen und ausführen lassen. Sogar Cluster können im Docker Swarm-Modus konfiguriert werden. Unter der Haube wird Docker-in-Docker (DinD) verwendet, um den Effekt von mehreren VMs/PCs zu erzeugen. Wer sich nicht so weit aus dem Fenster lehnen will, kann PWD auch herunterladen und lokal auf seinem Rechner installieren. Dann bleiben die Container- Spielereien erst einmal privat. Neben der Container-Spielwiese bietet Play with Docker auch eine Trainingsseite mit einer großen Anzahl von Übungen und Quizfragen für Anfänger und Fortgeschrittene.
Vaadin
"Vaadin" ist ein freies Web-Framework, mit dessen Hilfe Entwickler komplette Rich Internet Applications (RIA) bauen können, ohne dafür ihre gewohnte Java-Entwicklungsumgebung verlassen zu müssen. Gerade wenn es um das User-Interface von Web-Applikationen geht, kommt meist HTML oder JavaScript ins Spiel – Werkzeuge, mit denen so mancher Hardcore-Entwickler fremdelt. Vaadin, das von der gleichnamigen Firma aus dem finnischen Turku entwickelt wurde, bietet eine serverseitige API. Der Großteil der Programmlogik läuft also auf dem Server. Auf der Client-Seite setzt Vaadin seit Version 10 auf Web Components auf, zuvor basierte das Tool auf dem Ajax-Framework Google Web Toolkit.
Jhipster
"Jhipster" ist ein kostenloser Open-Source- Anwendungsgenerator, mit dem Entwickler moderne Webanwendungen und Microservices bauen können. Das Framework unterstützt verschiedene Frontend-Technologien wie Angular oder React. Im Backend wird Spring Boot (mit Java oder Kotlin), Micronaut, Quarkus, Node.js und .NET unterstützt. In Sachen Bereitstellung gelten cloudnative Prinzipien mit Docker und Kubernetes. Jhipster lässt sich auf verschiedenen Plattformen betreiben, darunter AWS, Azure, Cloud Foundry, Google Cloud Platform, Heroku und Openshift. Entwickler erhalten mit dem Tool also verschiedene Deployment-Optionen sowie CI/CD-Integrationen an die Hand. Auch Security-Aspekte lassen sich beispielsweise mithilfe von Spring Security direkt in den Entwicklungsworkflow integrieren.
Redwood
Next.js und Spring sind die Aufsteiger unter den Full-Stack-Javascript-Frameworks. Es gibt allerdings eine Reihe weiterer Tools für die Javascript-Entwicklung, die einen Blick lohnen. "Redwood" zeichnet sich dadurch aus, den Entwicklern einen klaren Rahmen zu bieten, wie die Struktur einer zu programmierenden App aussehen sollte. Developer können ihre Entwicklungen im Vorfeld besser strukturieren, was in der Folge die Experience verbessern und die Arbeit beschleunigen kann. Redwood bietet verschiedene Security-Features wie eine eingebaute Authentifizierung sowie Integrationen zu Lösungen von Drittanbietern. Außerdem erlaubt das Werkzeug den Nutzern, vielfältige Deployment-Umgebungen zu adressieren, darunter Serverless-Plattformen wie Vercel und Netlify.
Wasmtime
"Wasmtime" offeriert Entwicklern eine sichere und schnelle Ablaufumgebung, die auf WebAssembly basiert. Das ist ein offener Standard, der vom W3C festgelegt wurde. Er definiert einen Bytecode zur Ausführung von Programmen innerhalb von Webbrowsern, kann aber auch außerhalb von diesen genutzt werden. Wasmtime bietet Sandbox-Funktionen und unterstützt eine Reihe verschiedener Programmiersprachen und -plattformen. Entwickler können mit dem Werkzeug den CPU- und Memory-Verbrauch ihrer Apps feingranular einstellen und testen. Mit Release 1.0 sei die Leistung des Tools noch einmal verbessert und die Startzeiten beschleunigt worden, sagen die Projektverantwortlichen der Bytecode Alliance.
Pyscript
"Pyscript", das ebenfalls auf WebAssembly basiert, eröffnet Entwicklern von Web-Anwendungen eine breitere Sprachpalette – über die Grenzen des klassischen Javascripts hinaus. Pyscript bietet eine Python-Runtime im Browser. Das Entwicklungstool unterstützt eine ganze Reihe verschiedener Bibliotheken, darunter auch Numpy, mit deren Hilfe sich auch anspruchsvolle und komplexe Apps mit nativen HTML-Frontends entwickeln lassen sollen – ohne dafür einen dedizierten Python-Server im Hintergrund vorhalten und betreiben zu müssen. Einziger Wermutstropfen: An Pyscript wird derzeit im Alpha-Stadium noch viel herumexperimentiert. Es gebe noch etliche Probleme hinsichtlich Usability und Ladezeiten, räumen die Projektverantwortlichen ein. Vor einer ausgereiften stabilen Entwicklungsumgebung kann also derzeit noch keine Rede sein.
Hardhat
Entwicklungen im Blockchain-Umfeld haben ihre Tücken. Tools wie "Hardhat" setzen hier an und sollen das Coding vereinfachen. Zentrale Komponente ist der Hardhat Runner, ein Task-Ausführer, der Entwicklern dabei helfen soll, wiederkehrende Aufgaben zu verwalten und zu automatisieren, die mit der Entwicklung von Smart Contracts und DApps verbunden sind. DApps sind dezentrale Applikationen. In diesem Konzept werden die elementaren Werte und Zustände, anders als bei üblichen Applikationen, nicht auf einer einzigen Maschine, sondern in einem Netzwerk von Maschinen, wie einem Peer-to-Peer-Netzwerk, gespeichert und verifiziert. Weitere Komponenten sind das Hardhat Network, ein speziell für Entwicklungsaufgaben ausgelegter lokaler Ethereum-Netzwerkknoten, auf dem sich der Code testen und debuggen lässt. Darüber hinaus beinhaltet das Werkzeug mit Hardhat VS eine Erweiterung für Visual Studio. Hardhat bietet eine hervorragende Developer-Experience, schreiben die Kollegen der Infoworld. Alles funktioniere genauso wie es soll, out of the box.
Sentry
Das Coden von Apps bringt auch eine Reihe von Routineaufgaben mit sich, vor der sich Entwickler gern drücken. Dazu zählen Sicherheit, das Finden und Beheben von Fehlern sowie kontinuierliche Leistungstests. "Sentry" packt ein Toolset zusammen, mit dessen Hilfe sich diese Hausaufgaben leichter erledigen lassen sollen. Über eine Server-seitige API lassen sich verschiedene Monitoring-Daten einsammeln und in einem Dashboard visualisieren. Das Toolset soll sich in alle möglichen Dev-Stacks einbauen lassen – von Perl bis Python. Entwickler müssen dafür lediglich die entsprechende Bibliothek importieren. Das hat den Vorteil, dass die Business-Logik der App nicht mit externem Code belastet wird. Sentry bietet darüber hinaus verschiedene vorgefertigte Integrationen mit Projekt-Tools, Quell-Kontrollsystemen und Deployment-Plattformen.
Appsmith
Bei "Appsmith" handelt es sich um ein Low-Code-Framework, das Backend-Entwicklern helfen soll, ihre Software mit bestimmten Elementen zu erweitern wie beispielsweise Admin-Panels, Formulare oder Dashboards. Das soll mit minimalem Aufwand hinsichtlich HTML- und CSS-Coding funktionieren. Das Framework beinhaltet vorkonfigurierte User-Interface(UI)-Komponenten, wiederverwendbare Templates und eine breite Palette von APIs, um verschiedenste Datenquellen und Cloud-Services anzubinden. Appsmith bietet mehrere Deployment-Optionen – in der Cloud wie auch im eigenen Rechenzentrum.
Spinnaker
"Spinnaker" ist eine Continous-Delivery(CD)-Plattform für Multicloud-Umgebungen. DevOps-Teams könnten damit das Ausspielen ihrer Software-Releases automatisieren sowie insgesamt ihre Deployment-Strategien besser steuern, versprechen die Projektverantwortlichen. Zu den Spinnaker-Unterstützern gehören klangvolle Namen wie Airbnb, SAP und Salesforce. Die Community zählt mehr als 2.500 Unternehmen, die zu dem Projekt beitragen.
Gravitee
Die API-Management-Plattform erlaubt es Anwendern, weit verteilte API-Landschaften zu monitoren, zu verwalten und abzusichern. Ein zentrales Cockpit bietet eine Übersicht, wie die verschiedenen Systeme und Services innerhalb der eigenen Organisation miteinander verknüpft sind. Ferner beinhaltet "Gravitee" ein Toolset, um Schnittstellen zu identifizieren, zu dokumentieren und in Betrieb zu setzen. Über einen Low-Code-basierten API-Designer sollen sich Schnittstellen entwickeln und aktivieren lassen. Dabei helfen verschiedene Automatisierungsfunktionen, womit sich Fehler minimieren sowie das Debugging und Deployment beschleunigen ließen, heißt es von Seiten der Projektverantwortlichen. Das Tool gibt es unter einer freien Apache-Lizenz sowie als Enterprise-Version mit zusätzlichen Funktionen wie einer Alarm-Engine, Anomalie-Entdeckung und Realtime-Analysen.
Dapr
In Zeiten verteilter Applikationen und Microservices wächst auch die Komplexität. Jedes Mal, wenn ein neuer Service hinzukommt oder sich ein bestehender verändert, tauchen Fragen auf: Wie bleiben die Verbindungen und Schnittstellen sicher? Wie funktionieren Messaging und Monitoring? Wie behält man die Transparenz in der Gesamtinfrastruktur aufrecht? An dieser Stelle kommen oft Third-Party-Services ins Spiel, die allerdings auch jede Menge Schrott im eigenen Code ablagern können. Das soll "Dapr" verhindern. Das Tool, das unter dem Dach der Cloud Native Computing Foundation (CNCF) entwickelt wurde, läuft parallel zum Appservice und abstrahiert die Komplexität der daran hängenden Verbindungen. Je nach der zugrundeliegenden Infrastruktur „verklebt“ Dapr die App mit anderen Komponenten. Entwickler könnten sich mehr auf die Applikationslogik konzentrieren und müssten sich weniger mit dem Code- Kleber herumschlagen, versprechen die Projektverantwortlichen.
Nbdev
Das Coden mit Notebook-Systemen wie Jupyter oder Google Colab bietet Entwicklern zwar etliche Vorteile, hat aber auch seine Schattenseiten. Damit lasse sich Spaghetti-Code der übelsten Sorte produzieren, schreiben unsere Kollegen von der Infoworld. Wenn Data Scientists beispielsweise ein wildes Zellen-Hopping in Datenbanken veranstalteten, schaffe das eine kaum noch zu beherrschende Unordnung. Hier soll "Nbdev" ansetzen. Das Werkzeug bietet Entwicklern eine Jupyter-Notebook-basierte Dev-Plattform und damit den Data Scientists genug Freiraum für Experimente. Gleichzeitig sorgt das Tool für Ordnung, indem Entwickler ihren Code gut dokumentiert in Modulen sortieren können.