Mi az a nyílt forráskódú szoftver?

Befejeződött

A nyílt forráskódú szoftverek olyan szoftverek , amelyek forráskódja nyilvánosan elérhetővé válik bárki számára a vizsgálathoz, a módosításhoz és az terjesztéshez. A nyílt forráskódú kezdeményezés a széles körben elfogadott definíciót biztosítja:

"A nyílt forráskódú szoftverek olyan forráskóddal rendelkező szoftverek, amelyeket bárki megvizsgálhat, módosíthat és fejleszthet. A szerzői jog jogosultja a nyílt forráskódú licenc feltételeinek megfelelően jogot biztosít a felhasználóknak a szoftver tanulmányozására, módosítására és terjesztésére bárki számára és bármilyen célra."

Ez a definíció több fő alapelvet emel ki:

  • Forráskód rendelkezésre állása: A teljes forráskódnak nyilvánosan elérhetőnek kell lennie, nem csak végrehajtható bináris fájloknak.
  • A módosítás szabadsága: A felhasználók az igényeiknek megfelelően módosíthatják a szoftvert, kijavíthatják a hibákat, vagy szolgáltatásokat adhatnak hozzá.
  • Újraterjesztési jogok: A felhasználók megoszthatják a szoftvert másokkal, akár eredeti, akár módosított formában.
  • Licencfeltételek: A használati jogosultságokat egy nyílt forráskódú licenc határozza meg, amely engedélyeket, korlátozásokat és kötelezettségeket határoz meg.

A nyílt forráskódú szoftverek alapvetően különböznek a védett szoftverektől, ahol a forráskód titkos marad, és a használati jogokat a szerzői jog jogosultja szigorúan szabályozza.

Az együttműködésen alapuló nyílt forráskódú modell

A nyílt forráskódú fejlesztés több közreműködővel rendelkező együttműködésen alapuló szoftverek létrehozását foglalja magában:

Közösségvezérelt fejlesztés

  • Elosztott közreműködők: A világ minden tájáról származó fejlesztők kódot, dokumentációt, tesztelést és támogatást nyújtanak.
  • Önkéntes részvétel: Sok közreműködő önkéntesen vesz részt, motiválva a problémák megoldásával, a tanulással, a hírnév kiépítésével vagy az általuk használt támogató eszközökkel.
  • Meritokrácia: A projektek befolyásolása általában a szervezeti hierarchia helyett a minőséggel és a hozzájárulások mennyiségével van összefüggésben.
  • Transzparens folyamatok: A fejlesztés nyilvános adattárakban történik, ahol bárki megfigyelheti a vitákat, a döntéseket és a változásokat.

Együttműködésen alapuló munkafolyamatok

  • Nyilvános adattárak: A kód olyan platformokon fut, mint a GitHub, a GitLab vagy a Bitbucket, ahol bárki megtekintheti.
  • Problémakövetés: A hibákat és a funkciókéréseket nyilvánosan követik nyomon, így a közösség tagjai azonosíthatják a problémákat, és megoldásokat javasolnak.
  • Lekéréses kérelmek véleményezése: A közreműködők lekéréses kérelmeken keresztül küldik el a módosításokat, amelyeket a fenntartó és más közösségi tagok az egyesítés előtt felülvizsgálnak.
  • Kiadáskezelés: A karbantartók koordinálják a kiadásokat, biztosítva a stabilitást és a kompatibilitást a közösségi hozzájárulások beépítése mellett.

Projektirányítási modellek

A különböző nyílt forráskódú projektek különböző irányítási megközelítéseket alkalmaznak:

  • Jóindulatú diktátor: Egyetlen személy (gyakran az alapító) végső döntéseket hoz a projekt irányáról (például a Python guido van Rossummal).
  • Alapvető csapat: A fenntartók egy kis csoportja közösen hoz döntéseket konszenzussal vagy szavazással.
  • Alapszintű irányítás: A nagy projektek gyakran olyan alapokat hoznak létre (például Apache Foundation, Linux Foundation), amelyek jogi struktúrát, erőforrásokat és szabályozási keretrendszereket biztosítanak.
  • Vállalati szponzorálás: Számos nyílt forráskódú projektet elsősorban a szoftvertől függő vállalatok alkalmazottai tartanak fenn.

Nyílt forráskódú szoftverek széles körű bevezetése

A nyílt forráskódú szoftverek a technológia minden területén mindenütt jelen vannak:

Iparági bevezetési statisztikák

  • Vállalati használat: A vállalatok több mint 90% használnak nyílt forráskódú szoftvereket éles környezetben.
  • Internetes infrastruktúra: A webkiszolgálók többsége Linuxon fut (nyílt forráskódú), az Apache vagy az Nginx (nyílt forráskódú) rendszeren keresztül szolgálja ki a tartalmat, és olyan adatbázisokat használ, mint a PostgreSQL vagy a MySQL (nyílt forráskódú).
  • Felhőalapú számítástechnika: A főbb felhőplatformok széles körben használják és támogatják a nyílt forráskódú technológiákat – a Kubernetes, a Docker, a Terraform és számos más nyílt forráskódú eszköz képezi a modern felhőinfrastruktúra alapját.
  • Mobileszközök: Az Android, a világ legnépszerűbb mobil operációs rendszere a Linux kernelre épül, és széles körű nyílt forráskódú összetevőket tartalmaz.

Technológiai stack összetétele

A modern technológiai halmazok túlnyomórészt nyílt forráskódúak.

  • Operációs rendszerek: A Linux felhőalapú infrastruktúrát, tárolókat és számos beágyazott rendszert működtet.
  • Programozási nyelvek: Python, JavaScript, Java, Go, Rust, Ruby, PHP – a legnépszerűbb nyelvek a nyílt forráskódú nyelvek.
  • Adatbázisok: A PostgreSQL, a MySQL, a MongoDB, a Redis, az Elasticsearch uralja az adatbázis-telepítéseket.
  • Webtechnológiák: React, Angular, Vue.js, Express, Django, Rails lehetővé teszi a webalkalmazások fejlesztését.
  • Fejlesztői eszközök: A Git, a Docker, a Kubernetes, a Jenkins és a VS Code alapvető nyílt forráskódú fejlesztési eszközök.

A Microsoft nyílt forráskódú használatba adása

A Microsoft a nyílt forráskódú szoftverek vállalati hozzáállásának átalakítását szemlélteti:

Előzményváltás

A Microsoft korábban fenyegetésként tekintett a nyílt forráskódú szoftver üzleti modelljére. Ez jelentősen megváltozott az elmúlt évtizedben, mivel a vállalat felismerte a nyílt forráskódú stratégiai jelentőségét.

Nyílt forráskódú az Azure-ban

Az Azure széles körben integrálja a nyílt forráskódú technológiákat:

Képernyőkép az Azure nyílt forráskódú eszközeiről és technológiáiról.

Nyelvek és futtatókörnyezetek: Az Azure első osztályú platformlehetőségként támogatja a Python, a Node.js, a Java, a PHP, a Ruby, a Go és más nyílt forráskódú nyelveket.

Adatbázisok: Az Azure felügyelt szolgáltatásokat kínál a PostgreSQL-hez, a MySQL-hez, a MariaDB-hez és a Redishez a saját fejlesztésű ajánlatok mellett.

Tároló vezénylése: Az Azure Kubernetes Service (AKS) felügyelt Kubernetes-t, a nyílt forráskódú tárolóvezénylési platformot biztosítja.

Fejlesztői eszközök: Az Azure DevOps integrálható a Gittel, a Jenkinsszel és más nyílt forráskódú eszközökkel, míg a GitHub (amelyet a Microsoft szerzett be) a világ legnagyobb nyílt forráskódú fejlesztési platformja.

Adatok és elemzések: Az Azure támogatja az Apache Sparkot, a Hadoopot, a Kafkát és más nyílt forráskódú big data technológiákat.

.NET-átalakítás

A .NET platform bemutatja a Microsoft nyílt forráskódú iránti átfogó elkötelezettségét:

Open-sourcing .NET: A Microsoft a .NET Core-t (most .NET 5+) nyílt forráskódúként adta ki az MIT-licenc alapján, így a teljes platform szabadon elérhető lesz a forráskóddal. A .NET-futtatókörnyezet, a kódtárak, a fordítók és az eszközök mind nyílt forráskódúak.

Keresztplatformos fejlesztés: Azáltal, hogy a .NET-et nyílt forráskódúvá tette, a Microsoft lehetővé tette a keresztplatformos fejlesztést Windows, Linux és macOS rendszeren, ami jelentősen kibővítette a .NET elérését.

Közösségi hozzájárulások: A GitHubon található .NET-adattárak több ezer hozzájárulást kapnak a Microsofton kívüli fejlesztőktől, és a vállalat aktívan felülvizsgálja és elfogadja a közösségi fejlesztéseket.

Nyílt forráskódú függőségek: ASP.NET Core-alkalmazások általában számos nyílt forráskódú összetevőt tartalmaznak:

  • Előtérbeli kódtárak: jQuery, React, Angular, Vue.js lehetővé teszik a gazdag felhasználói felületeket.
  • Segédprogram-kódtárak: A Newtonsoft.Json, a Serilog, az AutoMapper és számtalan más szolgáltatás közös funkciókat biztosít.
  • Tesztelési keretrendszerek: xUnit, NUnit, Moq támogatja a tesztalapú fejlesztést.

Hozzájárulás nyílt forráskódú projektekhez

A Microsoft aktívan közreműködik a nyílt forráskódú projektekben a sajáton kívül:

Linux-kernel: A Microsoft hozzájárul a Linux-kernelhez, javítja Hyper-V integrációját és támogatja az Azure-infrastruktúrát.

Kubernetes: A Microsoft jelentős mértékben hozzájárul a Kuberneteshez, és segíti az AKS-t hatalmon lévő platform kialakítását.

Nyílt forráskódú kezdeményezések: A Microsoft támogatja a nyílt forráskódú eseményeket, támogatja a kritikus fontosságú nyílt forráskódú infrastruktúrát, és fejlesztőket alkalmaz a nyílt forráskódú projekteken való teljes munkaidős munkára.

A Microsoft által létrehozott nyílt forráskódú projektek

A meglévő projektekhez való hozzájáruláson túl a Microsoft jelentős szoftvereket hoz létre és nyílt forráskódú:

Visual Studio Code: A legnépszerűbb kódszerkesztő a nyílt forráskódú, bővítményekkel, témákkal és fejlesztésekkel, amelyeket egy globális közösség járul hozzá.

TypeScript: A Microsoft gépileg biztonságos JavaScript-fejlesztéshez használt nyelve nyílt forráskódú, és széles körben elterjedt.

PowerShell Core: A Microsoft automatizálási keretrendszere nyílt forráskódú és platformfüggetlen.

.NET Foundation: A Microsoft létrehozta a .NET Foundationt, amely nyílt forráskódú projekteket támogat a .NET-ökoszisztémában, erőforrásokat, irányítást és közösségi támogatást nyújtva.

További információt a .NET Foundation webhelyén talál.

Stratégiai indokok

A Microsoft nyílt forráskódú használatba adása stratégiai üzleti döntéseket tükröz:

Fejlesztői bevezetés: A fejlesztők a nyílt forráskódú eszközöket és nyelveket részesítik előnyben. A nyílt forráskódú alkalmazások támogatásával a Microsoft vonzza a fejlesztőket a platformjaira.

Felhőszolgáltatás: A nyílt forráskódú számítási feladatok vezetnek a felhőbevezetéshez. Az Azure kiváló nyílt forráskódú támogatása vonzóbbá teszi a platformot.

Innovációs sebesség: A nyílt forráskódú megoldások a közösségi hozzájárulások révén gyorsabb innovációt tesz lehetővé, csökkentve a Microsoft fejlesztési terheit.

Ökoszisztéma-növekedés: A nyílt forráskódú közösségek értékes bővítményeket, eszközöket és tudást hoznak létre, amelyek növelik a platform értékét.

Versenyhelyzet: Mivel a versenytársak (AWS, Google Cloud) széles körben támogatják a nyílt forráskódú szolgáltatásokat, a Microsoftnak meg kell egyeznie vagy meg kell haladnia a nyílt forráskódú képességeit.

Miért választják a szervezetek a nyílt forráskódú elemet?

A szervezetek többféle okból választják ki a nyílt forráskódú szoftvereket:

Költségekkel kapcsolatos szempontok: A licencdíjak megszüntetése csökkenti a közvetlen költségeket, különösen akkor, ha nagy léptékű szoftvereket helyez üzembe, vagy olyan termékeket készít, ahol a licencelési költségeket áthárítanák az ügyfeleknek.

Rugalmasság és vezérlés: A forráskódhoz való hozzáférés azt jelenti, hogy a szervezetek az adott igényeknek megfelelően módosíthatják a szoftvereket, egymástól függetlenül kijavíthatják a kritikus hibákat, és nem zárhatók be a szolgáltatások és javítások szállítói ütemterveibe.

Átláthatóság és biztonság: A nyilvános forráskód biztonsági naplózást tesz lehetővé, a közösségi felülvizsgálat gyorsabban azonosítja a biztonsági réseket, és a rejtett háttérrendszer vagy adatgyűjtés hiánya megbízhatóságot biztosít.

A szállítók zárolásának elkerülése: A nyílt forráskódú szoftverek általában bárhol üzembe helyezhetők, csökkentve az adott szállítóktól való függőséget és javítva a tárgyalási pozíciókat.

Közösségi támogatás: Az aktív nyílt forráskódú közösségek fórumokat, dokumentációkat, oktatóanyagokat és társsegítséget nyújtanak, amelyek gyakran vetélytársi támogatást nyújtanak, vagy túllépik a kereskedelmi támogatás minőségét.

Innováció és funkciók: A nyílt forráskódú technológiák gyakran előtérbe kerülnek, és a szervezetek ahelyett, hogy a szállítói ütemtervekre várnának, hozzájárulhatnak a szükséges funkciókhoz.

Annak megértése, hogy mi a nyílt forráskódú szoftver, és miért lett ilyen széles körben elfogadott, alapvető kontextust biztosít a szervezeteknek a nyílt forráskódú összetevők implementálása során felmerülő problémák feltárásához, amelyeket a következő egység tárgyal.