Cloudflare siirtyi Pingoraan, omaan Rust-kielellä kirjoitettuun välityspalvelimeen

Cloudflare siirtyy NGINX:stä Pingoraan

Pingora on uusi HTTP-välityspalvelin, jonka cloudflare on luonut Rustin avulla

Cloudflare paljastettiin äskettäin kuka muuttaa sisällönjakeluverkostosi käyttääksesi välityspalvelinta "pingora", joka erottuu siitä, että se on kirjoitettu ruosteella. The uusi välityspalvelin vaihdettu NGINX-palvelinpohjainen kokoonpano Lua-skripteillä ja käsittelee yli miljardia pyyntöä päivässä.

On huomattava, että siirtyminen erikoistuneeseen "Pingora" -välityspalvelimeen mahdollisti uusien toimintojen toteuttamisen ja turvallisuuden lisäämisen turvallisen muistin käytön vuoksi, vaan myös lisäsi merkittävästi suorituskykyä ja resurssien säästöjä.

Pingora-pohjainen ratkaisu ei vaadi Luan käyttöä ja käyttää Cloudflaren kuormitukselle optimoitua arkkitehtuuria, joka kuluttaa 70 % vähemmän prosessoriresursseja ja 67 % vähemmän muistia ja käsittelee saman määrän liikennettä.

Pitkään aikaan, liikenteen välityspalvelinjärjestelmä käyttäjien ja loppupalvelinten välillä, joka perustuu NGINX-skripteihin ja Lua täytti Cloudflaren tarpeetmutta kun verkosto kasvoi ja sen monimutkaisuus lisääntyi, universaali ratkaisu ei riittänyt, sekä suorituskyvyn että laajennettavuuden rajoitusten ja uusien mahdollisuuksien käyttöönoton kannalta asiakkaille.

Erityisesti vaikeuksia oli lisätä toimintoja yksinkertaisen yhdyskäytävän ja kuormituksen tasapainottimen lisäksi. Esimerkiksi siinä tapauksessa, että palvelin ei pystynyt käsittelemään pyyntöä, pyyntö oli uudelleenohjattava toiselle palvelimelle antamalla sille eri HTTP-otsikot.

Arkkitehtuurin sijaan pyynnöillä, jotka on jaettu erillisiin työprosesseihin (työntekijät), Pingora käyttää monisäikeistä mallia, joka Cloudflaren käyttöskenaarioissa (korkea liikenteen keskittyminen eri sivustoilta suurella tilastollisella siirtymällä) osoitti tehokkaampaa resurssien jakautumista suorittimen ytimien välillä.

Erityisesti epätasapainoisten pyyntöjen sitominen prosesseihin nginxissä johti epätasapainoiseen kuormitukseen CPU-ytimissä, minkä seurauksena resurssiintensiiviset pyynnöt ja I/O-estot hidastivat muiden pyyntöjen käsittelyä.

Myös yhteyspoolin sitominen ohjainprosesseihin ei mahdollistanut jo muodostettujen yhteyksien uudelleenkäyttöä muista ohjainprosesseista, mikä heikentää tehokkuutta, kun ohjainprosesseja on paljon.

Pingoran käyttöönotto mahdollisti toimenpiteiden määrän vähentämisen 160-kertaiseksi uusien yhteyksien luominen ja nostaa uudelleenkäytettyjen pyyntöjen osuutta 87,1 prosentista 99,92 prosenttiin. Uudelleenyhteyksien vähentymisen ja prosessoriytimien tehokkaamman käytön lisäksi uuden välityspalvelimen suorituskyvyn parantuminen johtui pääasiassa nginxin kanssa käytettyjen hitaiden Lua-ajureiden poistamisesta.

Rust-kieli valittiin, koska se mahdollistaa korkean suorituskyvyn yhdistettynä muistia säästävien työkalujen saatavuuteen. Mainitaan, että huolimatta korkeasti koulutetuista Cloudflare-insinööreistä ja koodin tarkistuksesta, C-kielellä kirjoitetut ohjelmat eivät voineet välttää muistiongelmiin johtavia vikoja (esimerkiksi HTML-jäsentimen haavoittuvuus).

Mitä tulee uuteen koodiin, puhuimme Pingorassa kaatumisanalyysitapauksista, jotka eivät ilmeisesti johtuneet sovelluksen ongelmista, vaan Linux-ytimen bugista ja laitteistovioista.

Lisäksi voidaan todeta, että Linus Torvalds kommentoi Rust-kielen tuen sisällyttämistä Linux-ytimeen, ilmaistuna Open-Source Summit Europe -konferenssissa, joka järjestetään näinä päivinä. Kernel 6.0 ei sisältänyt korjaustiedostoja laiteajurien kehittämiseen Rust-kielellä, mutta Linusin mukaan ne todennäköisesti hyväksytään ytimessä 6.1, etkä aio hyödyntää integraatiota.

Syynä lisätä tukea Rustille, positiivisen tietoturvavaikutuksen lisäksi Linus käyttää myös tilaisuutta hyväkseen lisätäkseen uusien tulokkaiden kiinnostusta ytimen työskentelyyn, mikä on tärkeää ikääntyvien veteraanien kontekstissa.

Vihdoin jos olet kiinnostunut tietämään siitä lisää, voit tarkistaa yksityiskohdat seuraava linkki.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.