Mi az a nyílt forráskódú szoftver?
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:
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.