TL; DR: FreeBSD is 'n robuuste oopbron-bedryfstelsel waarop miljoene webwerwe staatmaak om op webwerwe te dien, soos Netflix of u gunsteling spelstelsel. Selfs Mac OSX is deels gebaseer op FreeBSD. Met meer as 400 vrywilligers wat aan die stuur is, is die FreeBSD-projek 'n dinamiese krag wat die beheer in die hande van administrateurs plaas. Die projekbestuurder Allan Jude is sedert 2002 'n aanhanger van die projek. Hy bespreek die interne struktuur van die stelsel en die funksionaliteit wat hom ingespan het – wat bydra tot die dokumentasie en dan tot die ontwikkeling daarvan – en waaraan hy nou meer as 'n dekade werk later.
'Ek het dus hierdie verandering aangebring en nou is dit oral …'
Stel jou voor dat die kode waaraan jy vandag gewerk het, of die trekversoek wat jy gister ingedien het, toegewyd sou wees om miljoene mense se lewens – hul PlayStation of hul Netflix – te beïnvloed en die miljoene webwerwe wat op hul bestuurstelsel staatmaak om webblaaie te help bedien.
"Dit is beslis nederig … en 'n bietjie vreemd," erken Allan Jude.
Toe Allan sy eie onderneming begin met die aanbied van webwerwe vir videostroming, was FreeBSD die enigste bedryfstelsel wat hy voorheen saam met ander gashere gebruik het. Op grond van sy ervaring en gemak daarmee vertrou hy die stelsel met die toekoms van sy ontluikende onderneming.
'N Dekade later het die voormalige SysAdmin na 'n konferensie gegaan wat gefokus is op die open source-bedryfstelsel, waar hy van die mense op die dokumentasie-span te staan ​​gekom het. 'Hulle het my geïnspireer,' het hy in 'n onlangse gesprek aan ons span gesê. Hy het begin met die skryf van dokumentasie, maar hy wou binnekort verbeterings lewer buite die dokumente.
Allan is vandag 'n FreeBSD-projekbestuurder. Dit is selde dat u met iemand praat wat betrokke is by 'n grootskaalse open source-projek soos hierdie – skaars en asemrowend.
1 Twee groot voordele van FreeBSD vanuit die SysAdmin-oogpunt
1.1 1. Kode-organisasie noukeurig onderhou & gedokumenteer
1.2 2. Verspreidingspakkette met pynlose weergawe & Keuse van 25.000 hawens
2 Allan se onlangse projekkollig: Boot-omgewings
3 Die toetsprotokol, met die gebruik van ZFS as 'n wonderlike voorbeeld
3.1 Nie 'n klein funksie om nuwe lêerstelsels in 'n bedryfstelsel op te neem nie
3.2 Toetsing is lastig en streng, so FreeBSD het met die Universum Build uitgekom
3.3 Wat kan deur die krake gly, word onmiddellik deur Jenkins aangegryp
4 Die krag om te dien – sluit aan by die FreeBSD Force
Twee groot voordele van FreeBSD vanuit die SysAdmin-oogpunt
Ons woon in 'n kollege-dorp met baie aspirant-webontwikkelaars en SysAdmins is uit die Universiteit van Florida gesleep. Baie van hulle is bedoel om die Linux-roete te gaan bloot omdat die naam meer bekend is. Hulle sien dit oral. Volgens Allan is die werklikheid egter dat FreeBSD "amper alles kan doen wat Linux kan doen – en die meeste dinge doen dit beter."
FreeBSD-kommissaris Allan Jude het in 2012 by die enorme netwerk van ontwikkelaars aangesluit en was sedert '02 'n aanhanger van die projek.
Die feit dat Allan se betrokkenheid by die ontwikkeling van die projek spruit uit sy persoonlike ervaring met die stelsel, laat die vraag ontstaan: Waarom HIERDIE OS? 'Vanweë die manier waarop dit georganiseer is,' het hy gesê, en dit lyk of die verklaring die interne struktuur en interne span insluit.
1. Kode-organisasie noukeurig onderhou & gedokumenteer
Die FreeBSD-projek funksioneer soos 'n buitengewone goed georganiseerde wêreld. Allan het die omgewing verduidelik: 'Daar is 'n dokumentasie-bladsy wat verduidelik hoe die lêerstelsel uitgelê is en dat alles 'n plek het en altyd op daardie plek aangaan.'
Veral met soveel hande in die pot wat aan hierdie projek werk, is dit maklik om te ontrafel. Allan het verduidelik dat ontwikkelaars in baie ander toepassings die kode struktureer, maar dit voel van hul sin, en dit wissel van dev tot dev. 'Met FreeBSD is daar altyd 'n plek daarvoor (wat dit ook al is) en dit gaan altyd daar,' sluit hy af.
Om hierdie orde te handhaaf, het FreeBSD 'n stylgids wat noukeurig gevolg moet word. Allan het ons vertel dat die hegte span 'n bron van aanspreeklikheid vir mekaar dien. 'Dit is 'n redelik hegte groep mense. As u iets op die verkeerde plek plaas, sal iemand sê: 'Haai, dit gaan eintlik hier,' en dit word reggestel. '
Namate die dev-span aanhou groei, evangeliseer hulle die regte FreeBSD-styl met 'n mentorskapstelsel. Elke nuwe toerusting wat aan boord is, word met 'n mentor gepaar om te verseker dat hulle opgelei word in ooreenstemming met die genoemde riglyne. "As u by FreeBSD aansluit, word u 'n ruk lank 'n mentor aangestel, dus beteken dit dat alles wat u bydra, eers deur hulle beoordeel word," het Allan verduidelik, "en as daar iets fout is, is dit hulle skuld – nie joune nie – wat regtig baie help in die begin as jy net aan die gang is. " Ernstig. Kan jy jou voorstel om net in te duik en die lot van iemand se geliefde spelstelsel aan te pak met jou eerste versoek vir 'n massiewe projek soos hierdie?
2. Verspreidingspakkette met pynlose weergawe & Keuse van 25.000 hawens
Nog 'n opvallende faktor is dat FreeBSD pakkette anders doen – heeltemal onderhou deur hul span met maklike weergawe vir u. Met FreeBSD kan u beheer oor u pakkette neem tydens die opstel en instandhouding van u stelsel, en hulle bied 'n "roll release" -siklus met 25,000 verskillende poorte waaruit u kan kies..
'U hoef nie rond te jag en eksterne repo's by te voeg wat bestuur word deur wie weet wie nie,' het Allan gesê en een van sy gunsteling voordele van FreeBSD verduidelik. 'Dit is alles in een FreeBSD-bewaarplekpakket,' en as u van PHP 5 na PHP 7 wil oorskakel, 'is dit net 'n kwessie van om aan [FreeBSD] te sê om op te gradeer en dit is gedoen.
Met die ekstra voordeel van FreeBSD Jails – die houers waarmee u die webwerf- en produksieweergawes van u webwerf afsonderlik op 'n enkele masjien kan bêre – kan u die skakelaar op 'n proefbasis maak. Dit is nie nodig om nuwe masjiene op te spin of die produksieomgewing te verander nie.
Allan se onlangse projekkollig: Boot-omgewings
So, hoe is 'n dag in die lewe van 'n dev op die FreeBSD-projek? Allan het ons vertel dat die meeste mense wat aan die projek werk, dit doen as stokperdjies of as deeltydse werk saam met hul 'dagtaak'. Hy het gesê dat hy gereeld aan 'n projek vir die genoemde dagtaak gaan werk, en dit is nie so maklik soos wat hy glo dat dit moet wees nie, of dit werk nie soos hy wil nie, of hy word geïnspireer deur the What Ifs: 'Dit sal wonderlik wees as dit hierdie ekstra funksie het,' verwoord hy sy gedagtegang. 'Ek sal daaraan begin werk, en sodra ek 'n algemene idee het van hoe ek dit wil doen, publiseer ek dit op die e-poslys en kry terugvoering.' Met 'n reaksiegemeenskap net 'n inkassie weg en 'n deeglike oorsig van die kode om te volg, het Allan en mede-devs die ondersteuningstelsel wat hulle nodig het om nuwe bydraes in die FreeBSD-vrystellingsiklus te stoot.
"Ek dink die nuutste ding wat ek gedoen het waarvoor baie mense gewag het, is 'n funksie wat ons Boot Environments noem," het Allan ons vertel. 'As u ZFS gebruik, kan u 'n momentopname van u stelsel neem voordat u 'n opgradering installeer, en dan, as die opgradering nie uitwerk nie, kan u terugrol na wat die stelsel voorheen was – maar dit beïnvloed net die stelsellêers. " Met ander woorde, u tuisgidse en databasislêers word nie beïnvloed nie, terwyl die bestuurstelsel teruggerol word totdat u tevrede was daarmee..
Allan het een van sy nuutste edelstene van die FreeBSD-projek met ons gedeel – maklike toegang tot Boot-omgewings vir SysAdmins.
"Voorheen moes u 'n instrument in die bestuurstelsel gebruik om tussen hulle te wissel," het Allan gesê. "As die stelsel na 'n opdatering nie sou begin nie, sal dit nie regtig help nie." Om hierdie frustrasie te bekamp, ​​het Allan die funksie bruikbaar gemaak vir almal deur 'n opsie te voeg om u Boot-omgewing in die menu te kies by die eerste opstart. As ekstra bonus is die funksie voor meer gebruikers wat nie noodwendig sou geweet het dat dit vooraf bestaan ​​het nie. "Nou sien hulle daardie opsie elke keer as dit opduik, so hulle sal die dokumentasie oor hoe om dit te gebruik, gaan soek," sluit Allan af. Om die mense te gee wat hulle wil en selfs wat hulle dalk nie weet wat hulle wil hê nie – Welgedaan, Allan.
Die toetsprotokol, met die gebruik van ZFS as 'n wonderlike voorbeeld
Vir diegene wat nie weet nie, is ZFS, of die Z-lêerstelsel, die nuwe golf lêerstelsels omdat dit eintlik meer is as net 'n lêerstelsel. Dit is 'n projek met 'n oop verkryging wat aanvanklik deur Sun Microsystems ™ ontwikkel is en wat volume-bestuur en tradisionele lêerstelselfunksies kombineer, terwyl die struktuur van die betrokke opbergingsskywe erken word. Dit oorkom baie vorige probleme wat in ander lêerstelsels voorkom, wat slegs 'n enkele skyf kan herken (selfs wanneer dit bo-op 'n gevorderde RAID-konfigurasie van hardeware geplaas word).
Natuurlik het ons Allan gevra hoe dit die spel vir sy eie onderneming as 'n videostroomonderneming verander. 'Noudat ons naby 'n petabyte stoor is, is ander lêerstelsels nie meer 'n opsie nie,' het hy feitelik verduidelik. Die belangrikste verkoopspunte van ZFS vir Allan se besigheid is die foto's en replikasie. "As u oor tien terabytes lêers vir sommige kliënte praat, werk ander maniere om 'n rugsteun te maak, nie meer nie, so as u die blokvlakreplikasie het, word dit vir ons baie verbeter," het hy gesê en gesê dat dit Dit is ook baie lekker om afsonderlike lêerstelsels vir elke klant te onderhou. Met ZFS kan hulle klante-lêers bestuur as 'n diskrete eenheid, met die sogenaamde datastel – en as iemand op die rekening spring, kan hulle die kliënt se enkelvoud van die berging verwyder sonder om ander betalende gebruikers te beïnvloed..
Nie 'n klein funksie om nuwe lêerstelsels in 'n bedryfstelsel op te neem nie
Okay devs – neem 'n oomblik om na te dink oor die proses om 'n nuwe lêerstelsel in 'n bedryfstelsel te integreer. Mmm, wie hou nie van 'n lekker afskuwelike projek wat weke en weke in beslag neem nie? Versterk julleself nou: hierdie dier van 'n prestasie is eintlik deur 'n Poolse ontwikkelaar met die naam Paweł Jakub Dawidek aangepak en oorkom – en hy het dit gedoen in 'n skrale 21 dae.
'Hy het ongeveer 18 uur per dag gewerk,' het Allan gesê en waarskynlik in die vooruitsig gestel dat ons kake deur die luidsprekertelefoon val. 'Hy werk nie so doelbewus nie; dit was meer as wat dit net so opwindend en interessant was dat hy nie kon ophou om daaraan te dink of ophou werk daaraan nie. "
Ek dink dat hierdie houding verteenwoordigend is van die gevoelens wat by die FreeBSD-ontwikkelingspan gevoel word. Ons het elke keer vrae gevra soos: "Hoe gereeld werk u aan die projek?" Allan se reaksies was soos volg: 'Wel, soms kan ek nie die hele week daarby kom nie, en ander kere kry ek 'n HELE WEEKEND deur.' Eenvoudig gestel, Allan het gesê: 'Dit is die lekker ding.'
Toetsing is lastig en streng, so FreeBSD het met die Universum Build uitgekom
Wat die dinge verder kompliseer, het ZFS sy eie stroomop-repo met sy eie reëls en toetsvereistes: byvoorbeeld, 'n trekversoek moet in 'n ZFS-bedryfstelsel soos FreeBSD of Linux wees en vir minstens drie maande in produksie gebruik word voordat dit eintlik gedoen word verbind.
"Die ZFS-repo moet te alle tye in produksiegehalte wees," brei Allan uit. "FreeBSD het self 'n toetssuite, 'n stel regressietoetse en dan voortdurende integrasie met Jenkins." Die truuk daar is die veelvuldige platformkondisie. U maak 'n verbintenis, die kode is skynbaar perfek, maar dan besef u dat u net weet hoe dit op u x86-hardeware werk. Miskien is die funksionaliteit daarvan op ARM 'n ander verhaal. Rut ro, Raggy.
Die FreeBSD-span sou nie volledig wees sonder hul gelukbringer nie. Ontmoet BSD daemon: Beastie!
"Ons het hierdie konsep genaamd die Universe Build, waar u FreeBSD bou vir elke verskillende verwerkeromgewing wat ondersteun word," het Allan gedeel. Op hierdie manier, maak nie saak hoe goed dit op u stelsel werk nie, u weet ook dat dit vir almal anders sal werk.
Soos te wagte is, het Allan ons gesê dat die Universe Build 'n tydjie kan neem om tot volmaaktheid te ontwikkel – 'veral as u nie al die hardeware het nie, maar die FreeBSD Foundation bied bedieners aan die ontwikkelaars van die projek.' So gelukkig het hulle toegang tot baie groot bedieners, ongeveer 36 kerns en 'n vrag RAM. "As u 'n Universe Build op u skootrekenaar moes doen, kan dit 'n anderhalf dag duur," voeg Allan toe met 'n laggie.
Wat kan deur die krake gly, word onmiddellik deur Jenkins aangegryp
Jenkins, 'n geliefde op Java-gebaseerde outomatiseringsbediener wat oopgemaak is om die ontwikkelingswêreld in grootskaalse konstruksies te ondersteun, is FreeBSD se outomatiseringsprogrammatuur van keuse. Dit moet 'n bietjie vertroosting bied aan hierdie ouens wat aktief aan 'n projek werk wat so ingewikkeld is in miljoene mense se lewens. Allan het vir ons gesê dat as iets verkeerd gaan, "sal Jenkins dit agterkom." As u deel was van die onlangse verandering wat getoets is, as u 'n klein plekkie bygedra het, sal u 'n e-pos ontvang: Haai, dit is stukkend; wil u seker maak dat dit nie u skuld is nie.
Tussen Jenkins en die Core Development-span wat die dev-weergawe gebruik wat nog nie gestuur is nie, het Allan ons vertel dat dit skaars is dat probleme nie vinnig raakgesien en reggestel word nie.
Die krag om te dien – sluit aan by die FreeBSD Force
Alan was 'n SysAdmin, voordat hy by die 400 vreemde ontwikkelaars en hul mede-bydraers aangesluit het in 'n gedeelde missie om die kragtige open source rekenaar-bedryfstelsel, FreeBSD, te versterk en te ontwikkel. Hy het in PHP, Perl en shell script geskryf, maar dit was nie tot onlangs toe hy C aangeneem het nie.
"'N Belangrike wegneemete is dat u nie 'n groot ontwikkelaar met baie ervaring hoef te wees om 'n verskil in die projek te maak nie," het Allan gesê – en die verskil wat verskillende dinge soos Allan maak, is ongelooflik. As u ook die verbintenis wil indien wat bydra tot die projek waarop miljoene webbedieners staatmaak, is daar baie maniere om betrokke te raak!
Ons praat veral hier met SysAdmins, aangesien Allan opgemerk het dat hulle die belangrikste gebruikers van FreeBSD is. "As meer SysAdmins betrokke is by die werklike opbou van die stelsel, beteken dit dat ons die gereedskap wat hulle soek, kan aanbied – so ontwerp dat 'n SysAdmin hulle wil ontwerp, en nie noodwendig die manier waarop 'n ontwikkelaar dink die mees sinvolle is nie," het Allan bygevoeg.
As u tans FreeBSD gebruik en die geleentheid kry om 'n funksie makliker of meer funksioneel te maak, begin dan om dit so te maak! "Ons kan bydraes lewer van almal wat dit wil aanbied," sluit Allan af.
Wil u nog betrokke raak, maar nog nie heeltemal op daardie vlak, vaardig of beskikbaar wees nie? Kyk op die FreeBSD wiki se JuniorJobs-bladsy vir die nuutste lys klein take wat u moet doen.