Hvordan GitHub blev nexus af software til automatisering

0
134

Nul

Video: Sådan GitHub blev de facto automatiseret forsyningskæden for software

At kalde GitHub en hjemmeside, er at ringe til Italien et sted at spise. GitHub er den førende udøver af en ny markedsplads — og ja, det kan med rette kaldes et “marked”, fordi det ikke generere indtægter. Det tjente, ved at flere vurderer, at over $200 millioner i omsætning i 2017, og var åbenbart værdifuldt nok til, at Microsoft for at få den til at købe GitHub direkte, i en $7,5 milliarder alle-lager aftale i juni sidste år.

Læs også: Hvorfor Microsoft er at købe GitHub: Det handler om at udviklere

Det er præcis og fair at sige, at GitHub skabt et marked i udbuddet af open-source software, og automatisering af dens udbredelse. Der er andre konkurrenter på dette marked, især GitLab og Atlassian er Bitbucket. Det er tilstedeværelsen af de spillere, der legitimerer dette marked.

Hvad GitHub er blevet er den mest effektive eksempel på en web-tjeneste, der absorberer funktion af en hel industri ‘ s supply chain. Open source software er blevet delt online i fortiden, med SourceForge at være en af de mest effektive udøvere. Men det distribution af software via SourceForge, og steder som det, der finder sted ved hjælp af et content management system-en platform, der egner sig bedst til folk, der bruger web-browsere.

Git vil

180702-github-example-page.jpg

GitHub er udviklet til at bruge et værktøj, som er udviklet til Linux kaldet git, af den mand, der skabte Linux i sig selv, Linus Torvalds. Det er en automatiseret forsyningskæden for distribution af open source-software, både mellem mennesker, der udvikler, og for de folk, der bruger det. Automation sikrer, at distribution channel giver dig de nyeste, sikreste version til rådighed for brugerne, samtidig med at distribuere mindre stabil igangværende arbejder for udviklere. Det giver også den mest stabile versioner af alle andre komponenter på, som en fælles kode element kan afhænge af.

Læs også: Linus Torvalds på Linux, liv og badekåber

“Cloud er i stigende grad en central prioritet for udviklere. Og på GitHub, alt, hvad vi gør, bør være om at gøre en udviklers liv bedre på alle trin af deres arbejde og livscyklus,” sagde Nat Friedman, indgående GitHub CEO, i løbet af juni en fælles pressekonference med Microsoft. “Der omfatter at hjælpe dem med at gøre det lettere at bygge i skyen.

“GitHub er en åben platform,” Friedman fortsatte. “Så har vi mulighed for alle, til at tilslutte deres cloud-tjenester i GitHub, og gøre det lettere for dig at gå fra kode til cloud. Og det går ud over den sky: Kode til mobil, som koden til kant enhed, kode for at tingenes internet. Hver arbejdsproces, som en udvikler ønsker at forfølge, om vi vil støtte.”

Linus Torvalds’ intentioner

Git-værktøj er ikke i modsætning til, hvad du kan læse andetsteds, i en eksklusiv del af Linux. Ja, versioner til Windows og Mac OS X er distribueret frit. Teknisk, git (som også er ikke en forkortelse, der står for noget bestemt) er indført som et distribueret version control system . Fremstillet oprindeligt for Linux-kommandolinjen, det etablerer et registreringssystem, bortset fra computerens eget filsystem, hvor der er flere versioner af en udvikling filen kan gemmes og hentes. Den database, hvor disse versioner er der udveksles kaldes et lager (eller “repo” er for korte). En version af en fil, der er sat ind i et repository kan udvindes fra det, i samme stand. Fra git perspektiv, er dette ikke behøver at være software. Det kan være manuskriptet til en bog, brugsanvisninger for separate versioner af en progressiv maskine, eller en persons dagbog.

Torvalds skrev den oprindelige git som en kilde kode management system til sit eget personlige bidrag til Linux-kernen. En del af hans inspiration var et eksisterende arkiv-baseret version control management system kaldet Concurrent versions System (CVS). Hvis du vil huske på den antikke verden af disk-baserede databaser, låse blev pålagt registreringer, der blev hentet, og muligvis opdateret, for at sikre, at ikke to kunder har forskellige opfattelser af den samme post. CVS havde et lignende begreb ved hjælp af et depot af indhold versioner, der skilte fra hinanden som grenene på et træ. En filial kan være “tjekket ud” af en person, der ønsker at foretage opdateringer eller ændringer. Når disse ændringer er foretaget, og en revideret version af indhold vil blive fusioneret tilbage til stammen, men i stedet for at beskære den gamle gren, et tag, ville markere sin oprindelige placering, der gør det muligt at blive genoprettet, hvis det er nødvendigt.

Læs også: Linux skaber Linus Torvalds: Dette er, hvad der driver mig nødder

Mere til det punkt, Torvalds hadede CV ‘ er. Men det alternativ, han havde valgt til at vedligeholde Linux var et stykke af leverandørejet software kaldet BitKeeper. Det kan have været den første ægte skalerbar indhold arkiv system. Alligevel er det, som ejes nøglerne til sit eget rige-især de metadata, der beskriver historien om bidrag til et repository. Disse metadata er helt afgørende for opbygningen af en operativsystem-kerne, men kun var til rådighed for BitKeeper brugere med licens. BitKeeper udvidet sådan en licens til Linux bidragydere på et read-only basis.

Når en anden Linux bidragyder tilsyneladende forsøgt at foretage reverse engineering af metadata for sig selv — en handling, som Torvalds ville offentligt at fordømme — BitKeeper ‘s forlag sled den licens, der forlader Torvalds til enten at kæmpe med CV’ er i stedet, eller udtænke et alternativ.

Fra en centraliseret til en distribueret arkiv

Som alternativ, git, ville styre fri af BitKeeper centraliseret opbevaringssted, vælger i stedet for en distribueret model. Et resultat af denne model er, at en lang række bidragydere kunne tilbyde deres egne opdateringer til en filial uden nogle vilkårligt udpegede upper-class person, der bliver givet “commit adgang” — ret til at erklære et sådant bidrag, som den “officielle”.

Læs også: Git: Et cheat sheet – TechRepublic

Som Torvalds fortalte en Google-sponsoreret konference i Maj 2007, distribueret model bevidst undgår den form for politik, der endte med at ødelægge hans indsats med BitKeeper.

180702-github-01-linus-torvalds-2006.jpg
(Billede:Google LLC)

“Siden du ikke vil have alle til at skrive til det centrale register, fordi de fleste mennesker er idioter,” sagde han til publikum, “du kan oprette denne klasse af mennesker, der tilsyneladende ikke idioter. Og det meste af tiden, hvad der sker, er, at du laver denne klasse for lille, fordi det er virkelig svært at vide, hvis en person er smart eller ej-og selv hvis du gør det for lille, vil du få problemer. Så det hele begå adgang problem — som nogle virksomheder er i stand til at ignorere ved blot at give alle begå adgang-er en enorm psykologisk barriere, og forårsager endeløse timer af politik i de fleste open-source-projekter.”

Bevidst eller ej, Torvalds’ arkitektoniske beslutning var katalysator for en bevægelse, der forvandlede open source fra en revolution ind i en virksomhed. “Åbenhed” aldrig gav mening i et samfund med en mere mystiske organisatoriske hierarki end den gennemsnitlige corporation. Ved hjælp af et distribueret arkiv model, enhver person, — selv en anonym — ville kunne gøre krav på en fork af et eksisterende projekt, og bidrage med de ændringer, der er nødvendige for at gøre gaffel hans egen.

Logge ind

Hvad GitHub bidrager til dette billede er, at disse vigtige komponenter:

Den sociale ramme for koordinering af git blandt flere brugere; En grundlæggende system af identitet for den enkelte bidragydere (i modsætning til deres arbejdsgivere eller deres projekter); En grundlæggende hjemmeside med til at præsentere og forklare den software (eller andet indhold) til omverdenen; forbindelse til projekter, der skal integreres med continuous integration (CI) pipeline platforme som Travis CI, CircleCI, og Jenkins.

En af de vigtigste udfordringer open source-samfundet står over for under sin formative år var, ganske ironisk er det, at manglen på en fælles, programmérbar infrastruktur, der spænder over alle sine bidragydere. Ja, de havde content management systemer, men de var ikke rigtig skyer, ej heller, at de systemer, der er konstrueret til distribution og implementering af software.

Læs også: Google exec siger det er OK Microsoft nuppe GitHub – CNET

Selvom dette måske ikke har været Torvalds’ oprindelige hensigt, bindingen af git på udviklere Pc’ er med GitHub på nettet resulterede i en let automatiseret system, hvor enhver borger kan deltage i en massiv fælles projekt, selv uden en invitation. Enhver GitHub medlem kan gaffel et open-source arkiv. Hun kan så vælge at klone det til sin PC lokalt (forking er ikke det samme som kloning, på trods af, hvordan nogle tutorials denne sætning).

Næste, GitHub brugeren konfigurerer git til at pege på, at lageret. Alle ændringer, hun gør, vil skabe nye versioner af lageret. Sådan en ændring vil ikke fysisk klone hele arkivet, men det vil producere et nyt billede, der effektivt samler ændringer med den originale. Hun kan eksperimentere med at lave grene — evolutionære veje, der afviger fra hinanden, især for at afprøve mange metoder for at opnå et resultat.

Pull request

Loven om bidrag — for at anmode om, at ændringer eller (formentlig) forbedringer blive begået eller fusioneret, enten forud for eller til en anden opbevaringssted — er den proces, du måske har hørt om, der kaldes en pull request . Dette er den vigtigste sociale proces i hele systemet. Det er en hjælp for en bidragyder til at bede ejeren af et andet arkiv — normalt vedligeholder af projektet-at evaluere de ændringer, hun har gjort, og til enten at acceptere dem, og flette dem ind i sin egen repository, eller afviser dem, som han finder det passende.

Læs også: Lær at bruge GitHub med GitHub Learning Lab

Det kan ikke være en tilfældighed, at GitHub bruger forkortelsen “PR” til at henvise til et pull request (vi journalister umiddelbart tror, det betyder “press release”). En social etikette har dannet sig omkring den korrekte metode til at indføre en anmodning om at trække fællesskabet, navnlig for at gøre det mere tiltrækkende end en kontakt anmodning på LinkedIn. Brugere anbefales at blive mere venlige, mere overbevisende, mere — for at slå en sætning — “åbne” om hensigten med de ændringer, de prøver at gøre. Det er et forsøg på at bevare det menneskelige element i open source-processen, snarere end at antage, at folk er lige så fin med plain-vanilla automatisering.

180702-github-03-conference.jpg
(Billede: GitHub Inc.)

“Trække anmodninger kan ske i enhver arbejdsproces, som du bruger, når du ønsker at indarbejde ændringer i din kodebase,” forklarede GitHub træner Eric Hollenberry (afbilledet til højre), som i løbet af en 2016 selskab konference, til en deltager og GitHub medlem, der ikke vidste trække anmodninger eksisteret. “Et pull-request, per definition, er en samtale om en ændring. Du opretter, at samtalen uanset på hvilket tidspunkt du vil bruge i din arbejdsgang, og så ville det resultere i en ændring, som du blander sig i, i den sidste ende.”

Den Docker faktor

Magt GitHub til at opildne en meget varieret indsamling af bidragydere, som har nået en kritisk masse med indførelsen af containerization. Forud for standardisering af containere med Dokker, det vigtigste middel til deling af kode, online var gennem en fælles kompression format såsom TJÆRE eller ZIP. Der blev automatiseret scripts overalt for at komme og sætte bidrag fra og til iscenesættelse. Men “overalt” er et svært sted at patruljere og administrere. Nogle SourceForge brugere vedtaget plugins til deres respektive udviklingsmiljø (Ide), som Eclipse. Og de plugins, ville være standardiseret efter en mode, men kun med hensyn til de vestlige lande.

Som et filformat, Docker ‘ s container er ikke noget særlig ny eller nye. Det bruger en form af ZIP-komprimering (baseret på Lempel-Ziv), der er så tæt på den standard, som UNZIP forsyningsvirksomheder kan gøre følelse af det. Men det er indholdet af den container, der var så revolutionerende, især inddragelsen af noget, der hedder en Dockerfile . Det er en slags manifest med instruktioner til, hvordan du skal udforme og implementere software inde i beholderen. Disse instruktioner kan udføres automatisk af Docker ‘ s egen Komponere nytte, og de indeholde anvisninger om, hvordan til at erhverve, udpakke og installere alle de andre komponenter, som software baseret, uden at skulle inkludere dem i beholderen pakke. Disse instruktioner må inddrage arkiver, og Dokker Inc.’s egne kaldes Docker Hub.

Læs også: Hvad er Docker og hvorfor er det så pokkers populær?

Den Dockerfile udfyldes et stort hul i automatisering af processen for GitHub og andre online repository systemer baseret på git. I stedet for at stole på scripts af deres egen udarbejdelse (eller ironisk nok igen, at de havde delt med hinanden) på at iscenesætte og implementere deres software, som SourceForge brugere var nødt til at gøre det, de er ansat et betyder, at alle kunne frit vedtage. Denne software, der opnås gennem trække anmodninger, der både kan anvendes og afprøves i en isoleret kontekst, der ikke ville forstyrre andre programmer, herunder andre trække anmodninger.

Hvad forvaltere af open source-projekter, der endelig havde til rådighed var et middel, hvormed de kunne evaluere og godkende andres arbejde, og marshal færd med at begå deres arbejde opstrøms, uden rigtig at skulle til at tænke over den proces meget.

Business case

Andre steder

Open Source-Udviklere, på Vagt over for Microsoft ‘s Indtil GitHub Overtagelse, kan du Overveje en “Plan B” af Scott M. Fulton, III, Den Nye Stak af, Hvordan Microsoft har skabt en Skalerbar Git til Bedre håndtering af Windows-Udvikling af Joab Jackson, Den Nye Stak GitHub: Konto Opsætning og Konfiguration — Kapitel 6.1 Pro Git af Scott Chacon og Ben Kristensen, udgivet af Apress, men frit offentliggøres online

Relaterede historier

Microsoft ‘ s største udfordring med GitHub: at Overvinde sin pastGitHub: Vores afhængighed scan har fundet fire millioner securityGitHub siger bug udsat nogle alm passwords

Relaterede Emner:

zdnet_topic.relaterede.executive-vejledninger

Virksomhedens Software

Open Source

Mobil-OS

0