Nå også en podcast-episode: https://ittalks.libsyn.com/154-threats-to-open-source-ingvar-hagelund-no , eller på Spotify
Jeg har tidligere skrevet om hva Fri Programvare er, og hvor det kommer fra. Så, bare et veldig raskt tilbakeblikk:
Ut fra idealet om fri forskning, der resultater og metoder fra et prosjekt fritt kan brukes i ny forskning, kom idéen om at dette prinsippet også bør gjelde for programvare. Free Software – fri programvare betyr at brukerne av et dataprogram skal ha rett til å bruke programmet som de vil, endre det, og dele videre. Dette betyr at kildekode og byggeinstruksjoner må følge med.
Utbredelsen av fri programvare eksploderte sammen med utbredelsen av Internett. Begrepet Open Source – åpen kildekode, er samme fenomen, men med vekt på de tekniske fordelene med utvikling av programvare når kildekoden er åpent tilgjengelig for alle. Vi kan si at den idealistiske tanken om fri programvare blir virkelig med metode og teknologi i åpen kildekode.
Internett som vi kjenner det i dag ville ikke vært mulig å bygge uten fri programvare. Gigantene på Internett, Facebook, Google, Amazon, Twitter, Wikipedia, og Netflix, oppgir åpent at de ikke kunne bygget sine systemer uten tilgang på fri programvare. Microsoft, som i 2001 omtalte Linux som en kreftsvulst [cancer], har i senere tid snudd helt om, og utvikler stadig flere av sine systemer som fri programvare og med åpen kildekode-verktøy. Eksempler kan være PowerShell, Visual Studio, og SONiC, det Linux-baserte nettverksoperativsystemet i Microsoft sin offentlige sky, Azure.
Mesteparten av dagens Internett kjører på fri programvare inkludert alle nettsteder du kan tenke deg. Ca 80 % av alle moderne mobiltelefoner i Verden har Linux i bunnen. TV’en din, wifi-ruteren, og elbilen din trenger også mengder av fri programvare for å virke.
Hvis du er datautvikler i dag er det helt naturlig å uten videre kunne laste ned et sett verktøy og begynne å programmere, helt uten å bekymre deg for lisensiering. Klassiske og moderne dataspråk, enten det er Cobol, varianter av C, java, perl, php, ruby, go, python, C#, kotlin, elixir, node.js eller hva som helst du skulle ha bruk for, alle er tilgjengelig som fri programvare, og det er noe som uten videre tas for gitt. Når du har laget noe ferdig, kan du laste opp koden din til Internett på en eller annen skytjeneste ganske umiddelbart. Tut og kjør.
Her finner vi en utfordring i dette ellers glade budskapet: Disse skytjenestene; Google, Amazon, Azure, IBM, hvordan står det til med fri programvare her, egentlig? Det viser seg at de kan være ganske schizofrene. De du kanskje ville tro var fyrtårn og veivisere for fri programvare, kan være ganske kjipe hvis de tror det kan ødelegge forretningsvirksomheten deres. Det omvendte kan også være tilfelle: De mest hardbarket kommersielle gigantselskaper fremstår som friprog-forkjempere hvis de kan bruke det til sin fordel. La oss se på noen eksempler:
Noen som husker Sun? Sun var fortroppen i frislippet av kommersiell programvare som åpen kildekode. Som veteran i UNIX-familien, og langt framme med Internett-teknologi, skapte de bølger da de kjøpte friprog-databasen MySQL, og da åpnet kildekoden til programmeringsspråket Java, office-pakka StarOffice, og operativsystemet Solaris. Men så ble Sun kjøpt opp av Oracle. De stengte ned OpenSolaris, droppet OpenOffice, og Java og MySQL gis ut i en kombinasjon av åpen og lukket kildekode.
Bekymret for framtida til MySQL, forlot de opprinnelige utviklerne prosjektet da Oracle tok over, og startet en kompatibel fork – MariaDB. MariaDB leder utviklingen av features i MySQL-universet, og er standard MySQL-variant i f.eks Ubuntu og Red Hat. Oracle må leke catch-up.
OpenOffice.org, prosjektet som vedlikeholdt upstream til OpenOffice med støtte fra Oracle, krevde at alle bidrag skrev over rettighetene på bidraget til prosjektet. Dette var dels historisk, dels for at Oracle kunne bygge en lukket-kildekode-utgave av OpenOffice, slik de gjør med MySQL. Da Oracle droppet OpenOffice.org som prosjekt, beholdt de kravet om eierskap til kildekoden. Friprogmiljøet rundt OpenOffice.org opprettet The Document Foundation, forket kildekoden fra OpenOffice, bygget en ny distribusjon av koden, døpte den til LibreOffice, og har ikke sett seg tilbake siden. Linux-distribusjonene flokket seg raskt om LibreOffice, siden det nå ble enklere å bidra upstream. Kildekoden til OpenOffice.org ble til slutt donert til Apache Foundation, der den lever en stille pensjonisttilværelse uten særlig oppmerksomhet.
Red Hat, selverklært fyrtårn for åpen kildekode, og en av de største hanene i friprog-kurven, var lei av at Oracle og andre konkurrenter kopierte flaggskip-produktet deres RHEL – Red Hat Enterprise Linux. For å gjøre det vanskeligere å plukke features, sluttet Red Hat å gjøre endringsloggene til sin distribusjon av Linux-kjernen tilgjengelig. Oracle svarte med å reverse-engineere endringene deres, bla ved å analysere Red Hat sine bidrag upstream til Linux. Resultatet ligger åpent ute i en kildekodebrønn med git på Oracle sine hjemmesider. Hvem er Good Guy, og hvem er Bad Guy her?
En annen klon av Red Hat Enterprise Linux var CentOS. CentOS var en clean-room gjenbygging av kildekoden fra Red Hat, og er dermed bug-for-bug kompatibel med RHEL. I stedet for å gå i konflikt med hovedutvikleren av CentOS overrasket Red Hat ved å ansette ham. Deretter endret de rekkefølgen, slik at CentOS ble defacto upstream for RHEL. I 2014 lovte Red Hat at CentOS skulle bestå som selvstendig prosjekt, og gjøre deres Enterprise-teknologi tilgjengelig videre i CentOS, med samme levetid som RHEL. Dette løftet brøt de i 2020, da CentOS 8 ble økset til fordel for CentOS Stream, som er en slags gratis tech-preview av det som kanskje blir RHEL etter hvert.
Dette skjedde etter at Red Hat ble kjøpt opp av IBM. Det er lov å tenke at dette ikke er helt tilfeldig. Hva skjedde så? Jo, den opprinnelige utvikleren av CentOS forlot Red Hat. Siden hele RHEL fremdeles er fri programvare kunne han dra igang på nytt, og startet prosjektet Rocky Linux, med målsetningen og igjen bygge en bug-for-bug-kompatibel klon av RHEL, nå med solid støtte fra andre selskaper, og helt uavhengig av Red Hat. I tillegg til Rocky Linux har flere andre storbrukere av CentOS våknet og laget tilsvarende kloner av RHEL.
Amazon er Med sine Web Services – AWS – Verdens største og mektigste tilbyder av skytjenester. AWS har inkorperert veldig mye fri programvare i sine tjenester. Eksempler kan være friprog-databasene MariaDB, MySQL og PostgreSQL, som kundene kan kjøre i AWS sin distribuerte databasetjeneste RDS. Hva de gjør med kildekoden under panseret for å trimme og skalere disse databasene til massive multisite-klynger ville vært veldig interessant å få innblikk i. Dette får vi imidlertid ikke vite. Kildekoden til det som kjører i RDS er ikke tilgjengelig. Hvorfor ikke, når de bruker fri programvare?
De fleste friprog-lisensiering gir faktisk ikke automatisk tilgang til kildekode viser det seg. PostgreSQL er lisensiert under en variant av BSD-lisensen. Denne krever ikke at det gis tilgang til kildekode i det hele tatt, hvis leverandøren ikke ønsker det. MariaDB og MySQL er lisensiert under Free Software Foundation sin General Pulibc License – GPL. GPL sier blant annet at rettighetene som gir tilgang til kildekode utløses ved distribusjon av programvaren. Siden kundene på RDS bare bruker en tjeneste, og ikke får distribuert noe programvare, trenger ikke AWS frigi noe kildekode her heller. Bad guy AWS der altså.
Elasticsearch er en svært kraftig database og søkemotor som kan indeksere gigantiske mengder data med svært god ytelse. Elasticsearch var tilgjengelig som fri programvare under Apache-lisensen. På toppen av Elasticsearch legger man gjerne Kibana, en webapplikasjon for å organisere søk og lage stilige dashboards. Elasticsearch er veldig populært for å håndtere loggdata, og er for eksempel blitt markedsstandard for loggmottak fra container-orkestrering basert på Kubernetes. Da AWS laget et as-a-service-tilbud med Elasticsearch, bestemte musa seg for å brøle. Elastic, selskapet bak Elasticsearch endret lisensen slik at det ble forbudt å tilby Elasticsearch-as-a-service basert på deres produkt. Hva gjorde Amazon da? Jo, de forket koden fra siste versjoner av Elasticsearch og Kibana med helt fri lisens, startet prosjektet OpenSearch og fortsatte som før, nå med OpenSearch-as-aservice. Amazon er sterke nok til å holde prosjektet i gang så lenge de ønsker det. Det blir spennende å se om de kommer til å dedikere seg til å vedlikeholde prosjektet som Fri Programvare over tid.
Hvem er Good Guy, og hvem er Bad Guy i dette eksemplet? Det tør jeg ikke svare på. Redpill Linpro der jeg jobber, har et as-a-service-produkt basert på OpenSearch i sin egen sky Redpill Linpro Nordic Cloud (RLNC).
Vi ser at utviklingen av fri programvare kan være truet av at selskaper som, når de ser det formålstjenelig, kan forsøke å stenge ned kildekoden til et prosjekt. Samtidig ser vi styrken i fri programvare når dette skjer. Prosjektet kan forkes og gjenoppstå i ny drakt uavhengig av den opprinnelige leverandøren hvis det har støtte nok fra miljøet rundt.
Fri programvare utviklet som åpen kildekode har «vunnet» kampen mot lukket programvare på mange arenaer. Det er blitt helt selvfølgelig å bruke kode fra friprog-prosjekter som byggesteiner i all slags infrastruktur på Internett, og Internett er helt avhengig av fri programvare for å virke slik vi kjenner det i dag. Det er imidlertid en trussel mot fri programvare hvis vi, når vi bruker denne teknologien, tar den for gitt. Hvis idéen om fri programvare ikke lenger er viktig for utviklerne, vil utviklingen stoppe opp. Informasjon om fri programvare som begrep og åpen kildekode som metode, og hvor viktig dette er for vår tids tjenester på Internett må være en del av undervisningen alle steder der det undervises i informasjonsteknologi.
En av de største truslene mot fri programvare er at de store skyleverandørene utvikler tjenester kompatible med, og basert på fri programvare, men uten å selv utvikle dem som åpen kildekode eller bidra tilbake til de opprinnelige prosjektene. Dette kan vri kunnskap, feilretting, rapportering og videreutvikling til å dreie seg fra å forbedre og bygge videre på friprog-prosjektet, til ensidig fokus på hvordan skytjenester og APIer brukes. Dette kan på sikt føre til at kvaliteten på slike tjenester oppleves som høyere enn de tilsvarende friprog-prosjektene som tjenestene erstatter. Dermed uthules bruken av og tiltroen til de tilsvarende friprog-prosjektene. Et retorisk spørsmål til slutt: Hvem bryr seg om å sende feilrapporter eller patcher upstream til la oss si MongoDB, hvis Amazon sitt tilsvarende RDS-produkt skalerer enklere, har flere muligheter, og kjører mer effektivt og stabilt til en tilsynelatende lav pris? Ingen som ikke vet at det er bygget på fri programvare, i alle fall.
[cool_tag_cloud on_single_display=”local”]