Hva er åpen kildekode-programvare?

Fullført

Programvare med åpen kildekode er programvare hvis kildekode er gjort offentlig tilgjengelig for alle å inspisere, endre og distribuere. Open Source Initiative gir den allment aksepterte definisjonen:

"Åpen kildekode-programvare er programvare med kildekode som alle kan inspisere, endre og forbedre. Opphavsrettsinnehaveren gir brukerne rettighetene til å studere, endre og distribuere programvaren til hvem som helst og for ethvert formål, underlagt vilkårene i en åpen kildekode-lisens."

Denne definisjonen legger vekt på flere nøkkelprinsipper:

  • Kildekode tilgjengelighet: Den fullstendige kildekoden må være offentlig tilgjengelig, ikke bare kjørbare binærfiler.
  • Frihet til å endre: Brukere kan endre programvaren for å passe deres behov, fikse feil eller legge til funksjoner.
  • Rettigheter til videredistribusjon: Brukere kan dele programvaren med andre, enten i original eller modifisert form.
  • Lisensvilkår: Bruksrettigheter er definert av en åpen kildekode-lisens som spesifiserer tillatelser, begrensninger og forpliktelser.

Åpen kildekode-programvare skiller seg fundamentalt fra proprietær programvare, der kildekoden forblir hemmelig, og bruksrettighetene er strengt kontrollert av rettighetshaveren.

Den samarbeidende modellen med åpen kildekode

Åpen kildekode-utvikling innebærer samarbeidende programvareoppretting med flere bidragsytere:

Samfunnsdrevet utvikling

  • Distribuerte bidragsytere: Utviklere fra hele verden bidrar med kode, dokumentasjon, testing og støtte.
  • Frivillig deltakelse: Mange bidragsytere deltar frivillig, motivert av å løse problemer, lære, omdømmebygging eller støtteverktøy de bruker.
  • Meritocracy: Innflytelse i prosjekter korrelerer vanligvis med kvalitet og kvantitet av bidrag i stedet for organisasjonshierarki.
  • Transparente prosesser: Utviklingen skjer i offentlige depoter der alle kan observere diskusjoner, beslutninger og endringer.

Arbeidsflyter for samarbeid

  • Offentlige depoter: Kode er vert på plattformer som GitHub, GitLab eller Bitbucket hvor alle kan se den.
  • Sporing av problemer: Feil og funksjonsforespørsler spores offentlig, slik at fellesskapsmedlemmer kan identifisere problemer og foreslå løsninger.
  • Gjennomganger av pull-forespørsler: Bidragsytere sender inn endringer gjennom pull-forespørsler som gjennomgås av vedlikeholdere og andre fellesskapsmedlemmer før sammenslåing.
  • Administrasjon av utgivelser: Vedlikeholdere koordinerer utgivelser, sikrer stabilitet og kompatibilitet samtidig som de inkorporerer bidrag fra fellesskapet.

Modeller for prosjektstyring

Ulike åpen kildekode-prosjekter tar i bruk ulike styringstilnærminger:

  • Velvillig diktator: En enkelt person (ofte grunnleggeren) tar endelige beslutninger om prosjektretning (f.eks. Python med Guido van Rossum historisk).
  • Kjerneteam: En liten gruppe vedlikeholdere tar kollektivt avgjørelser gjennom konsensus eller avstemning.
  • Stiftelsens styring: Store prosjekter oppretter ofte stiftelser (som Apache Foundation, Linux Foundation) som gir juridisk struktur, ressurser og styringsrammeverk.
  • Sponsing av bedrifter: Mange åpen kildekode-prosjekter vedlikeholdes først og fremst av ansatte i selskaper som er avhengige av programvaren.

Utbredt bruk av åpen kildekode-programvare

Åpen kildekode-programvare har blitt allestedsnærværende på tvers av alle teknologisektorer:

Statistikk over bransjeadopsjon

  • Bedriftsbruk: Over 90% av bedriftene bruker åpen kildekode-programvare i produksjonsmiljøer.
  • Internett-infrastruktur: De fleste webservere kjører på Linux (åpen kildekode), serverer innhold gjennom Apache eller Nginx (åpen kildekode), og bruker databaser som PostgreSQL eller MySQL (åpen kildekode).
  • Databehandling i skyen: Store skyplattformer bruker og støtter i stor grad åpen kildekode-teknologier – Kubernetes, Docker, Terraform og en rekke andre åpen kildekode-verktøy danner grunnlaget for moderne skyinfrastruktur.
  • Mobile enheter: Android, verdens mest populære mobiloperativsystem, er bygget på Linux-kjernen og inkluderer omfattende åpen kildekode-komponenter.

Sammensetning av teknologistabel

Moderne teknologistabler er hovedsakelig åpen kildekode:

  • Operativsystemer: Linux driver skyinfrastruktur, containere og mange innebygde systemer.
  • Programmeringsspråk: Python, JavaScript, Java, Go, Rust, Ruby, PHP – de mest populære språkene er åpen kildekode.
  • Databaser: PostgreSQL, MySQL, MongoDB, Redis, Elasticsearch dominerer databasedistribusjoner.
  • Web-teknologier: React, Angular, Vue.js, Express, Django, Rails muliggjør utvikling av webapplikasjoner.
  • Utviklingsverktøy: Git, Docker, Kubernetes, Jenkins, VS Code er viktige utviklingsverktøy med åpen kildekode.

Microsofts omfavnelse av åpen kildekode

Microsoft eksemplifiserer transformasjonen i bedrifters holdninger til programvare med åpen kildekode:

Historisk skifte

Microsoft har historisk sett på åpen kildekode som en trussel mot sin proprietære programvareforretningsmodell. Dette endret seg dramatisk i løpet av det siste tiåret da selskapet anerkjente åpen kildekodes strategiske betydning.

Åpen kildekode i Azure

Azure integrerer teknologier med åpen kildekode i stor grad:

Skjermbilde av verktøy og teknologier med åpen kildekode i Azure.

Språk og kjøretider: Azure støtter Python, Node.js, Java, PHP, Ruby, Go og andre språk med åpen kildekode som førsteklasses plattformalternativer.

Databaser: Azure tilbyr administrerte tjenester for PostgreSQL, MySQL, MariaDB og Redis, i tillegg til proprietære tilbud.

Orkestrering av beholdere: Azure Kubernetes Service (AKS) tilbyr administrert Kubernetes, beholderorkestreringsplattformen med åpen kildekode.

Utviklingsverktøy: Azure DevOps integreres med Git, Jenkins og andre verktøy med åpen kildekode, mens GitHub (kjøpt opp av Microsoft) er verdens største plattform for utvikling med åpen kildekode.

Data og analyse: Azure støtter Apache Spark, Hadoop, Kafka og andre stordatateknologier med åpen kildekode.

NET-transformasjon

NET-plattformen demonstrerer Microsofts omfattende forpliktelse til åpen kildekode:

NET med åpen kildekode: Microsoft ga ut .NET Core (nå .NET 5+) som åpen kildekode under MIT-lisensen, noe som gjorde hele plattformen fritt tilgjengelig med kildekode. .NET runtime, biblioteker, kompilatorer og verktøy er alle åpen kildekode.

Utvikling på tvers av plattformer: Ved å åpne kildekoden .NET muliggjorde Microsoft utvikling på tvers av plattformer på Windows, Linux og macOS, og utvidet seg dramatisk. NETs rekkevidde.

Bidrag fra fellesskapet: NET-depotene på GitHub mottar tusenvis av bidrag fra utviklere utenfor Microsoft, og selskapet gjennomgår og godtar aktivt fellesskapsforbedringer.

Avhengigheter med åpen kildekode: ASP.NET kjerneprogrammer inneholder vanligvis mange komponenter med åpen kildekode:

  • Frontend-biblioteker: jQuery, React, Angular, Vue.js muliggjør rike brukergrensesnitt.
  • Verktøybiblioteker: Newtonsoft.Json, Serilog, AutoMapper og utallige andre gir felles funksjonalitet.
  • Testrammeverk: xUnit, NUnit, Moq støtter testdrevet utvikling.

Bidra til åpen kildekode-prosjekter

Microsoft bidrar aktivt til prosjekter med åpen kildekode utover sine egne:

Linux-kjerne: Microsoft bidrar til Linux-kjernen, forbedrer Hyper-V integrasjon og støtter Azure-infrastruktur.

Kubernetes: Microsoft er en stor bidragsyter til Kubernetes, og hjelper til med å forme plattformen som driver AKS.

Åpen kildekode-initiativer: Microsoft sponser arrangementer med åpen kildekode, finansierer kritisk infrastruktur med åpen kildekode og ansetter utviklere til å jobbe heltid med prosjekter med åpen kildekode.

Microsoft-opprettede prosjekter med åpen kildekode

I tillegg til å bidra til eksisterende prosjekter, lager Microsoft og åpner kildekode betydelig programvare:

Visual Studio-kode: Den mest populære koderedigereren er åpen kildekode, med utvidelser, temaer og forbedringer bidratt av et globalt fellesskap.

Typeskript: Microsofts språk for typesikker JavaScript-utvikling er åpen kildekode og mye brukt.

PowerShell-kjerne: Microsofts automatiseringsrammeverk er åpen kildekode og på tvers av plattformer.

.NET Foundation: Microsoft etablerte .NET Foundation for å støtte prosjekter med åpen kildekode i .NET-økosystemet, og gir ressurser, styring og fellesskapsstøtte.

Hvis du vil ha mer informasjon, kan du se .NET Foundation-nettstedet.

Strategisk begrunnelse

Microsofts omfavnelse av åpen kildekode gjenspeiler strategiske forretningsbeslutninger:

Adopsjon av utviklere: Utviklere foretrekker åpen kildekode-verktøy og språk. Ved å støtte åpen kildekode tiltrekker Microsoft utviklere til plattformene sine.

Skyvirksomhet: Arbeidsbelastninger med åpen kildekode driver skyadopsjon. Utmerket støtte for åpen kildekode på Azure gjør plattformen mer attraktiv.

Innovasjonshastighet: Åpen kildekode muliggjør raskere innovasjon gjennom bidrag fra fellesskapet, noe som reduserer Microsofts utviklingsbyrde.

Vekst i økosystemet: Åpen kildekode-fellesskap skaper verdifulle utvidelser, verktøy og kunnskap som øker plattformverdien.

Konkurransedyktig posisjonering: Ettersom konkurrenter (AWS, Google Cloud) støtter åpen kildekode i stor grad, må Microsoft matche eller overgå deres åpen kildekode-funksjoner.

Hvorfor organisasjoner velger åpen kildekode

Organisasjoner velger programvare med åpen kildekode av flere grunner:

Kostnadsbetraktninger: Eliminering av lisensavgifter reduserer direkte kostnader, spesielt viktig når du distribuerer programvare i stor skala eller bygger produkter der lisenskostnadene vil bli overført til kundene.

Fleksibilitet og kontroll: Tilgang til kildekode betyr at organisasjoner kan endre programvare for å møte spesifikke behov, fikse kritiske feil uavhengig og ikke er låst til leverandørens tidslinjer for funksjoner eller rettelser.

Åpenhet og sikkerhet: Offentlig kildekode muliggjør sikkerhetsrevisjoner, fellesskapsgjennomgang identifiserer sårbarheter raskere, og fraværet av skjulte bakdører eller datainnsamling gir tillit.

Unngå leverandørlåsing: Programvare med åpen kildekode kan vanligvis distribueres hvor som helst, noe som reduserer avhengigheten av spesifikke leverandører og forbedrer forhandlingsposisjoner.

Støtte fra fellesskapet: Aktive åpen kildekode-fellesskap tilbyr fora, dokumentasjon, opplæringsprogrammer og kollegahjelp, som ofte konkurrerer med eller overgår kommersiell støttekvalitet.

Innovasjon og funksjoner: Banebrytende teknologier dukker ofte opp i åpen kildekode først, og organisasjoner kan bidra med funksjoner de trenger i stedet for å vente på leverandørveikart.

Å forstå hva åpen kildekode-programvare er og hvorfor den har blitt så utbredt, gir viktig kontekst for å utforske bekymringene organisasjoner må ta opp når de implementerer åpen kildekode-komponenter, som neste enhet dekker.