Programmēšana

10 atvērtā pirmkoda projekti, kas pierāda Google Go spēku

Pašlaik 10 gadus savvaļā Google’s Go programmēšanas valoda noteikti ir ieguvusi vārdu. Viegls un ātri apkopojams Go ir izraisījis ievērojamu interesi, pateicoties tā bagātīgajām bibliotēkām un abstrakcijām, kas atvieglo vienlaicīgu un izplatītu (lasīt: mākoņu) lietojumprogrammu attīstību.

Bet patiesais jebkuras programmēšanas valodas panākumu rādītājs ir projekti, kurus izstrādātāji izveido ar to. Go ir sevi pierādījis kā pirmā izvēle ātrai tīkla pakalpojumu, programmatūras infrastruktūras projektu un visu veidu kompaktu un jaudīgu rīku attīstībai.

Šeit ir 10 ievērības cienīgi projekti, kas rakstīti Go, un daudzi no tiem ir kļuvuši slaveni nekā valoda, kurā tie tika uzrakstīti. Visi no tiem ir ievērojami atzīmējuši savu domēnu. Visi šeit redzamie projekti tiek mitināti vietnē GitHub, tāpēc ziņkārīgajiem ir viegli palūrēt Go kodu, kas liek viņiem atzīmēt.

Dokers

Jums būtu grūti atrast labāku Go veiksmes stāstu nekā Dokers. Nedaudz vairāk kā gada laikā šī programmatūras konteineru ievietošanas tehnoloģija kļuva par bērnu afišu Go piemērotībai liela mēroga izplatītiem programmatūras projektiem. Docker komandai Go patika, jo tā piedāvāja virkni priekšrocību: statiska kompilācija bez atkarībām, spēcīga standarta bibliotēka, pilnīga izstrādes vide un spēja veidot vairākām arhitektūrām ar minimālu problēmu.

Kubernetes

Ja Docker ir rakstīts Go, ir pamats uzskatīt, ka citi nozīmīgi uz mākoņiem orientēti konteineru projekti arī tiks rakstīti Go. Google konteineru orķestrēšanas projekts Kubernetes ir Go projekts, tāpat kā lielākā daļa Kubernetes apakškomponentu un ekosistēmas. Piemērs: Īpaši vieglais Kubernetes spinoff, k3s, cilvēkiem, kuriem nepieciešami tikai Kubernetes pamati, nevis vairāk.

Google apsvēra iespēju rakstīt Kubernetes citās valodās, tostarp C / C ++, Java un Python. Bet, kā norāda Džo Beda, Kubernetes līdzdibinātājs un bijušais tehniskais vadītājs un patlaban galvenais VMware inženieris, neviena no šīm valodām, piemēram, Go, netika sasniegta. Kā izteicās Beda, “Go nav ne pārāk augsts, ne pārāk zems līmenis.”

Fedora CoreOS

CoreOS (tagad Red Hat projekts) izmanto Docker, lai pārvērstu Linux par brīvi savienotu konteineru ganāmpulku, kas ir iespējamais ceļš prom no sajukušās atkarību šķeteres, kas kļuvis par sine qua non Linux pakotņu pārvaldība. Tāpēc nav pārsteigums, ka CoreOS izmanto Docker, lai paveiktu šo burvību - un ka divi no CoreOS pamatpakalpojumiem - Etcd un Fleet - ir rakstīti Go. Fleet ļauj “izturēties pret savu CoreOS kopu tā, it kā tai būtu kopīga viena iniciēšanas sistēma”. Izplatīts atslēgu vērtību krājums Etcd veic iestatījumu sinhronizāciju starp Docker lietojumprogrammām un CoreOS instancēm. Abi tika rakstīti Go, pateicoties Go “lieliskajam starpplatformu atbalstam, mazajiem bināriem un lieliskai kopienai aiz tā”.

InfluxDB

InfluxDB ir “izplatīta laika rindu datu bāze bez ārējām atkarībām”. Termins “laika rinda” nozīmē, ka InfluxDB galvenokārt attiecas uz metrikas vai notikumu uzņemšanu un iespēju tos analizēt reāllaikā. “Nav ārēju atkarību” nozīmē, ka InfluxDB izmantošanai nav nepieciešama cita programmatūra; tas ir pilnībā patstāvīgs (kā mēdz būt Go lietotnes). Datus var ierakstīt datu bāzē vai lasīt no tās, izmantojot REST zvanus, kas iesniedz JSON, un vaicājumus var veikt, izmantojot vienkāršu SQL valodu, kas ļauj veikt pat regexes. InfluxDB ir ļoti elastīgs un horizontāli mērogojams, un, visticamāk, Go tika izvēlēta kā valoda, lai šīs funkcijas padarītu iespējamas un ērtas.

Istio

Istio projekts, kas ir daļa no Kubernetes Visuma, risina problēmu, kas ir labi saprotama un slikti risināta daudzās uzņēmuma lietojumprogrammu vidēs: kā jūs rīkojaties ar tīkla tīklu, kas savieno jūsu pakalpojumus viens ar otru un ar ārpasauli? Istio nodrošina programmējamu “tīkla sietu” jeb tīkla starpniekserveru slāni starp katru Kubernetes kopas konteineru un starp šiem konteineriem un ārpasauli, lai visas izmaiņas šajā tīklā varētu veikt programmatiski, izmantojot kopīgu vadības plakni. Go bija piemērots šim nolūkam, jo ​​Kubernetes tika rakstīts arī Go, bet arī tāpēc, ka Go ir piemērots decentralizētiem, izplatītiem tīkla projektiem.

Traefik

Vēl viens ar tīklu saistīts projekts, kas rakstīts Go, ir Traefik, tīkla pakalpojumu pretējs starpniekserveris un slodzes līdzsvarotājs. Traefik ir paredzēts darbam ar visdažādākajām orķestrēšanas iespējām, sākot no Kubernetes un Docker Swarm līdz Amazon ECS un Azure Service Fabric. Traefik automātiski izveido maršrutus, kas nepieciešami mikropakalpojumiem, kas darbojas zem šiem orķestratoriem, lai runātu ar ārpasauli. Tas arī ģenerē izsekošanas datus un statistiku, kas piemērota jūsu orķestratoram.

Hugo

Statisko vietņu ģeneratori šobrīd ir ļoti dusmīgi. Galu galā tie piedāvā ātru un ērtu veidu, kā izveidot ātru un drošu vietni ar tikai statisku HTML, CSS un JavaScript. Hugo ir statisks vietņu ģenerators, kas izmanto daudzas Go funkcijas, lai darbotos ātri un nevainojami - proti, Go rīki HTML renderēšanai, tīkla bibliotēkas, internacionalizācijas funkcijas un spēja izvietot kā vienu atkārtoti izplatāmu platformas vietējo bināro failu. Visas šīs Go funkcijas atvieglo Hugo izpakošanu, palaišanu un izmantošanu, lai ātri izveidotu vietnes.

Terraform

HashiCorp, kuru dibinājis Vagrant, Ruby balstītais rīks, lai pārvaldītu attīstības vidi, izmantoja Go ātrumu un spēku, lai izveidotu lielāku un vērienīgāku projektu: Terraform - sistēmu IT infrastruktūras izbūvei telpās vai mākonī. definīcijas veidā faili pārvērsti kodā. Jebkuras veiktās izmaiņas var ritināt uz priekšu vai atpakaļ, un jūs saņemat pilnu informāciju par to, kas tieši notiks, t.i., izpildes plānu.pirms jūs izmantojat savu kodu.

TarakānsDB

Go tiek izmantots, lai izveidotu daudzveidīgas izplatītas mākoņdatošanas lietotnes. CockroachDB, kas nosaukts tā elastības dēļ, ir izplatīta datu bāze, kas paredzēta, lai izdzīvotu visa veida nelaimes (pat datu centra kļūmes) un tomēr turpinātu atbildēt uz jūsu SQL vaicājumiem. CockroachDB ir pilnībā uzrakstīts Go, izņemot C ++ smilgu, lai veiktu intensīvas pamatfunkcijas, kas ņemtas no priekšgājēja projekta RocksDB.

Gravitācijas teleport

Go ir kļuvis par noklusējuma valodu daudziem tīkla projektiem un pakārtotajiem projektiem, kas uz tiem balstās. Konkrētais gadījums: Go pati SSH ieviešana ir noderīga kā tādu projektu pamats kā Gravitational Teleport. Gravitācijas teleport ļauj lietotājiem droši piekļūt serveriem, izmantojot čaulu. Tas nodrošina drošību, izmantojot vienreizēju pierakstīšanos, taču neprasot šāda veida administratīvās izmaksas (piemēram, atslēgu pārvaldību un rotāciju).

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