Da Deine Behauptung war, das man unter FreeBSD gar keine Softwareentwicklung machen kann.
Das habe ich niemals behauptet.
Ich zitiere mich mal selbst:
mangels OCI-Container-Support ist FreeBSD für Softwarenentwickler aktuell kaum eine Option
Das ist ein großer Unterschied.
Die nehmen den Linux-Docker-Container und lassen ihn dann in einer virtualisierten Linux-Umgebung laufen.
Es gibt zwar auch Projekte für Linux-Container unter Windows in einer Linux-VM, ich meinte aber schon explizit u.a.
Windows Server Core in einem OCI-Container, der dann unter Windows läuft.
Auch hier sind wir uns offenbar einig, das ein (zumindest Stand jetzt) kein Write-Once-Run-Everywhere gibt.
Nicht betriebssystemübergreifend.
Die sagen sich vielleicht das gleiche was ich mir auch sage. Was nützt mir der OCI-Support in der Praxis? Das Deployment fällt weg. Bleibt halt nur ein bisschen Erleichterung in der Entwicklung was ich aber auch so hinkriege.
Kann du mir einen Blog-Beitrag nennen, bei dem jemand seinen Produktiveinsatz von BastilleBSD o.ä. für Entwicklung, Test und Produktivbetrieb hochverfügbarer und skalierbarer Software beschreibt? Gerne auch mit Anwendungsfällen wie Rolling Releases, A/B-Testing und vergleichbaren Szenarien, die im OCI-Umfeld Standard sind.
Für automatisierte Security-Scans existierender Jails - sowohl als Image in der Registry als auch laufende Jails - auf
CVEs in 3rd-Party-Bibliotheken jenseits von Ports und Packages hätte ich auch gerne eine Lösung, damit ich als Entwickler immer weiß, ob ich bekannte Sicherheitslücken in meiner Software haben könnte.
Wie nutzt du für die Service Discovery bei der Skalierung von Services in Jails?
Falls du selber sowas beruflich produktiv mit Jails betreibst und gelöst hast, würde ich mich extrem über einen Erfahrungsbericht freuen!
Ja. Es macht auch den Entwicklungs-Workflow angenehmer. Aber genau das kann ich auch mit FreeBSD haben. Mit BastilleBSD hab ich sogar ein Framework was sich sehr stark Docker und Co orientiert.
Gerade im Bereich Networking ist es noch weit entfernt, aber immerhin ein Schritt in die richtige Richtung. Stand heute ist es halt noch lange kein Ersatz.
Ich bin dann halt nur nicht OCI-kompatibel. Auch das hat sicherlich seine Nachteile. Wie auch schon von Dir angesprochen viele Tools sind halt für Docker und Co gedacht und die kann ich dann natürlich nicht benutzen.
Korrekt. Warum sollte ein Entwickler also auf diese Vorteile verzichten und freiwillig mit schlechteren Tools als notwendig arbeiten?
Das ist ein Nachteil. Aber bei dieser näheren Betrachtung ist er halt nicht mehr ganz so groß wie anfänglich suggeriert.
Er ist aktuell für viele Entwickler (nicht nur mich) ein Showstopper für den Einsatz von BSD - nicht nur auf dem Desktop. Ich kann ja auch schlecht als Entwickler zum Kunden sagen: "Dein Anwendungsfall schreit nach Containern, aber wir setzen die jetzt nicht ein, denn BSD unterstützt die nicht. Komm, lass uns einfach schlechter Software machen und den Fortschritt der letzten 10 Jahre ignorieren."
Hast Du da mal ein konkretes Beispiel bei der Hand, damit man sich mal ein Bild machen kann?
Klar. Mit Tools wie
Testcontainers (gibt es in ähnlicher Form für viele Programmiersprachen) kannst du Unit Tests für deine Anwendung ohne Mocks schreiben, sondern einfach für den jeweiligen Test automatisch einen Container mit deiner echten Datenbank oder was auch immer on the fly starten, dagegen testen und wieder entsorgen lassen. Du erreichst also eine bessere Softwarequalität, weil du keine Mocks, In-Memory-Datenbanken o.ä. verwenden musst, geschweige denn lokal auf deiner Kiste irgendwas in (einer) bestimmten Version(en) installieren musst.
Ich finde ja eine Sache ganz lustig. Anfänglich kamst Du noch so rüber, das man als Softwarentwickler heute unbedingt Container braucht etc. und jetzt wirfst Du hier ne Statistik raus, das es nur 40% sind. :-)
Umgekehrt wird ein Schuh daraus: mit FreeBSD bin ich vom einem großen Teil der Neuentwicklungen ausgeschlossen, die schon von 40% der Entwickler eingesetzt werden - Tendenz steigend.
Du fällst also immer weiter hinter den aktuellen Stand der Technik zurück; keine prickelnden Aussichten für einen Entwickler.
Das funktioniert aber halt nur, wenn Du auf einer Plattform bist. Bei Multiplattform funktioniert es ja gerade nicht.
Du kannst problemlos OCI-Container mit Windows, die auf Windows laufen und Linux nicht mal vom Hörensagen kennen, unter Windows mit verfügbaren Tools (ein willkürliches Beispiel
hier) auf Sicherheitslücken scannen - eben weil es OCI-Container sind. Hier ist weit und breit kein Linux involviert.
Ich bezweifel ich gar nicht. Ich denk nur nicht, das die Verfügbarkeit von OCI-Containern da großartig etwas ändern würde. Und Du hast das bisher auch noch nicht wirklich überzeugend darlegen können.
Ich kann als Softwareentwickler nur von meinen Erfahrungen aus der Praxis bei Kunden, meinem Umfeld und meinen Beweggründen für den Einsatz von Linux auf dem Desktop berichten. Man soll nicht von sich auf andere schließen, aber nachdem ich inzwischen viele Softwareentwickler kenne, die als Grund für ihren Weggang von BSD die mangelnde Container-Unterstützung anführen und u.a. die alljährliche Stackoverflow-Umfrage meine Ansicht untermauert, scheine ich doch kein Einzelfall zu sein.
Und klar würde es Vorteile bringen wenns ein OCI-Containerframework für FreeBSD bringen. Aber ich glaube nicht, das der Vorteil so groß ist, wie Du hier darstellst.
Ich habe mehr als einen Kunden, für den die Abwesenheit von Containern ein Grund für die Migration weg von FreeBSD war. Ich hab hier im Forum vor knapp einem Jahr
einen Fall aus meiner beruflichen Praxis beschrieben. Besagter Kunde hat zwischenzeitlich auch beschlossen, dass FreeBSD 12 nach rund zwei Jahrzehnten die letzte FreeBSD-Version in diesem Unternehmen gewesen sein wird.
Richtig. Aber gerade bei Containern ist das ja kein FreeBSD-exklusives Problem. Das Problem hast Du exakt genauso bei anderen Nicht-Linux-Betriebssystemen. Somit kommen wir wieder zu meiner Ursprungsaussage, das wenn Du irgendwie in diesem Umfeld was machst Du eh nicht um Linux drum herum kommst.
Unter Windows laufen OCI-Container produktiv, ganz ohne Linux. Wenn du willst, kannst du Windows-OCI-Container auf Windows-Hosts unter der Hoheit von diversen Orchestrierungsplattformen laufen lassen, ohne dass du irgendwo Linux in der Hand hättest.
Auf dem Desktop gibt es für Windows und macOS
Docker Desktop (womit du unter Windows auch reinrassige Windows-Container bauen kannst). Der Mac kann hier in Verbindung mit seiner stimmigen UX samt Unix-Unterbau auch wieder gut punkten.
Interessant. Weil ich es genau anders herum erlebe. So von für FreeBSD ist ja für Server ganz ok aber auf dem Desktop ists nicht so der Bringer zu Ich hab die Wahl zwischen Golden-Käfig-MacOS, Telemetrie-und-Trojaner-Windows und Frickel-Linux, da ist FreeBSD inzwischen ne interessante Option.
Zumindest im Bereich der Softwareentwicklung sehe ich keinerlei Indikatoren, die für ein Revival von FreeBSD sprechen. Sofern du belastbare Belege für die Renaissance von FreeBSD in der Softwareentwicklung hast, immer her damit.
Mich würde auch die Antwort auf die Frage interessieren: "Welche Vorteile bietet mir FreeBSD gegenüber z.B. Arch Linux als Entwicklerplattform, was die Nachteile (u.a. kein Container-Support) mehr als kompensieren könnte?"
Wenn dann sehe ich eher, das aufgrund von Docker und Co bei Servern die Bewegung weg von FreeBSD hin zu Linux geht. Aber wie gesagt. Auch da hilft mir OCI-Support nicht weiter, weil die verfügbare Software die ich auf den Servern fahren will halt auf Linux ausgelegt ist.
Ist es nicht eher umgekehrt? FreeBSD stellt keine OCI-Runtime zur Verfügung. Will ich das rund um Docker entstandene Ökosystem und die damit verbundenen Vorteile nutzen, lande ich (bei den freien Betriebssystemen) automatisch bei Linux, weil sich die BSDs selber aus der Auswahl rauskegeln.
lol Uraltprogramme und uralt Code sind in der IT auch eine einzige Erfolgsgeschichte. :-)
Wie hat Bjarne Stroustrup, der Vater von C++, so schön gesagt:
"Legacy code" often differs from its suggested alternative by actually working and scaling.
Wenn ich mir anschaue, wie sehr unsere Zivilisation von Code aus den 1960/70ern abhängt...
Bisher ist ja ganz ranziger Code dadurch weggefallen, das die Probleme damit soweit eskaliert sind, das selbst wildeste "Wieso neu machen? Läuft doch!"-Rhetoik nicht mehr darüber hinwegtäuschen konnte. Wenn das auch noch wegfällt, weil der Gammel-Code dann in irgendeinem Docker-Brutkasten am Leben gehalten wird, sinken natürlich die Chancen solche Metastasen dann doch noch irgendwie los zu werden. :-)
Was ist denn dein
praktikabler Lösungsvorschlag für das angesprochene Problem von Projektcode aus dem akademischen Umfeld, für den es keine Wartung gibt? Ich bin gespannt auf deine Lösungsvorschläge, das würde mich noch brennend interessieren.
Die restliche Diskussion rund um Legacy-Code können wir gerne in einen eigenen Thread auslagern, wir sind eh schon ordentlich off-topic.