Programiranje

10 odprtokodnih projektov, ki dokazujejo moč Googla Go

Zdaj že 10 let v divjini se je Googlov programski jezik Go zagotovo uveljavil. Lahek in hiter za prevajanje, Go je vzbudil veliko zanimanje zaradi svojih velikodušnih knjižnic in abstrakcij, ki olajšajo razvoj sočasnih in distribuiranih (beri: oblak) aplikacij.

Toda pravo merilo uspešnosti katerega koli programskega jezika so projekti, ki jih razvijalci ustvarijo z njim. Go se je izkazal kot prva izbira za hiter razvoj omrežnih storitev, infrastrukturnih projektov programske opreme ter kompaktnih in zmogljivih orodij vseh vrst.

Tukaj je 10 omembe vrednih projektov, napisanih v programu Go, od katerih so mnogi postali bolj znani kot jezik, v katerem so bili napisani. Vsi so pomembno zaznamovali svoje domene. Vsi tukaj predstavljeni projekti gostujejo na GitHubu, zato so radovedneži lahko preprosto pokukajo na kodo Go, zaradi katere so kljukice.

Docker

Za Go bi težko našli boljšo zgodbo o uspehu kot Docker. V nekaj več kot letu dni je ta tehnologija posodabljanja programske opreme postala podrejena družba podjetja Go za primernost obsežnih, distribuiranih projektov programske opreme. Dockerjevi ekipi je bil Go všeč, ker je ponudil številne prednosti: statično prevajanje brez odvisnosti, močno standardno knjižnico, popolno razvojno okolje in zmožnost gradnje več arhitektur z minimalnimi težavami.

Kubernetes

Če je Docker napisan v Go, je razumljivo, da bi bili tudi drugi pomembni projekti v vsebniku usmerjeni v oblak napisani v Go. Kubernetes, Googlov projekt orkestracije zabojnikov, je projekt Go, tako kot večina Kubernetesovih podkomponent in ekosistema. Primer: Superlahek Kubernetesov spinoff, k3s, za ljudi, ki potrebujejo samo osnove Kubernetesa in nič več.

Google je razmišljal, da bi Kubernetes napisal v drugih jezikih, vključno s C / C ++, Java in Python. Toda po besedah ​​Joeja Bede, soustanovitelja in nekdanjega tehničnega vodje Kubernetesa in trenutno glavnega inženirja podjetja VMware, nobeden od teh jezikov ni dosegel "sladke točke", kot je Go. Kot je dejal Beda, "Go ni niti previsok niti prenizek nivo."

Fedora CoreOS

CoreOS (zdaj projekt Red Hat) uporablja Docker za pretvorbo Linuxa v čredo ohlapno povezanih vsebnikov, kar je možna pot stran od zapletene odvisnosti, ki je postala sine qua non upravljanja paketov Linux. Zato ni presenetljivo, da CoreOS za doseganje te čarobnosti uporablja Docker - in da sta dve temeljni storitvi CoreOS, Etcd in Fleet, napisani v Go. Fleet vam omogoča, da »z grozdom CoreOS ravnate, kot da ima en sam sistem za zagon«. Etcd, porazdeljena shramba ključ-vrednost, skrbi za sinhronizacijo nastavitev med aplikacijami Docker in primerki CoreOS. Oba sta bila napisana v jeziku Go zaradi "odlične podpore med platformami, majhnih binarnih datotek in odlične skupnosti za tem."

Priliv DB

InfluxDB je "porazdeljena baza podatkov o časovnih vrstah brez zunanjih odvisnosti." Izraz "časovne vrste" pomeni, da se InfluxDB ukvarja predvsem s sprejemanjem meritev ali dogodkov in njihovo analizo v realnem času. »Brez zunanjih odvisnosti« pomeni, da za uporabo InfluxDB ne potrebujete druge programske opreme; je popolnoma samostojen (kot so ponavadi aplikacije Go). Podatke lahko zapisujemo v bazo podatkov ali jih beremo iz klicev REST, ki oddajajo JSON, poizvedbe pa lahko naredimo prek preprostega jezika SQL, ki omogoča celo regularne izraze. InfluxDB je zelo elastičen in vodoravno prilagodljiv, verjetno pa je bil za jezik izbran Go, da so te funkcije možne in enostavne.

Istio

Projekt Istio, del vesolja Kubernetes, se ukvarja s težavo, ki je v mnogih podjetniških okoljih tako razumljena kot slabo obravnavana: kako se spopadate z mrežno mrežo, ki povezuje vaše storitve med seboj in z zunanjim svetom? Istio ponuja programljivo "servisno mrežo" ali plast omrežnih posrednikov med vsakim vsebnikom v gruči Kubernetes ter med temi vsebniki in zunanjim svetom, tako da je mogoče spremembe v tem omrežju programsko izvesti prek skupne nadzorne ravnine. Go je bil primeren za to, ker je bil Kubernetes napisan tudi v Go, vendar tudi zaradi njegove primernosti za decentralizirane projekte distribuiranega omrežja.

Traefik

Drug projekt, povezan z omrežjem, napisan v Go, je Traefik, povratni proxy in izravnalnik obremenitve omrežnih storitev. Traefik je zasnovan za delo s številnimi možnostmi orkestracije, od Kubernetes in Docker Swarm do Amazon ECS in Azure Service Fabric. Traefik samodejno ustvari poti, ki jih potrebujejo mikro storitve, ki se izvajajo pod temi orkestratorji, za pogovor z zunanjim svetom. Ustvari tudi podatke o sledenju in statistiko, primerne za vašega orkestratorja.

Hugo

Statični generatorji spletnih mest so trenutno v besu. Navsezadnje ponujajo hiter in priročen način za ustvarjanje hitrega, varnega spletnega mesta s samo statičnimi HTML, CSS in JavaScript. Hugo je statični generator spletnih mest, ki za hitro in nemoteno delovanje izkorišča številne funkcije Go, in sicer Go-jeva orodja za upodabljanje HTML-ja, njegove omrežne knjižnice, njegove funkcije internacionalizacije in njegovo zmožnost uvajanja kot en sam binarni binarni sistem, ki se lahko distribuira. Vse te funkcije Go omogočajo hitro razpakiranje, zagon in uporabo Huga za hitro izdelavo spletnih mest.

Terraform

HashiCorp, ki ga je ustanovil ustvarjalec Vagrant, orodje za upravljanje razvojnih okolij, ki temelji na Ruby, se je oprl na hitrost in moč Go za izgradnjo večjega in ambicioznejšega projekta: Terraform, sistem za izgradnjo IT infrastrukture v prostorih ali v oblaku z definicijo datoteke pretvorjene v kodo. Vse spremembe, ki jih naredite, se lahko premaknejo naprej ali nazaj in dobite popoln pregled, kaj natančno se bo zgodilo - tj. Načrt izvedbe -prej prikličete svojo kodo.

Ščurek DB

Go se uporablja za izdelavo številnih vrst distribuiranih aplikacij v domačem jeziku. CockroachDB, imenovan tako zaradi svoje odpornosti, je porazdeljena baza podatkov, zasnovana tako, da preživi vse vrste nesreč (tudi okvare podatkovnega centra) in se kljub temu še naprej odziva na vaša vprašanja SQL. CockroachDB je v celoti napisan v jeziku Go, z izjemo C ++ za zmogljive osnovne funkcije, vzete iz predhodnega projekta RocksDB.

Gravitacijski teleport

Go je postal privzeti jezik za številne mrežne projekte in nadaljnje projekte, ki temeljijo na njih. Primer: Go-jeva uporaba SSH, ki je že sama po sebi koristna, služi kot podlaga za projekte, kot je Gravitational Teleport. Gravitacijski teleport uporabnikom omogoča varen dostop do strežnikov prek lupine. Uveljavlja varnost z enotno prijavo, vendar ne zahteva vrste administrativnih stroškov (npr. Upravljanje ključev in rotacija), ki jih take stvari običajno potrebujejo.

$config[zx-auto] not found$config[zx-overlay] not found