Nyolc híres vállalat használja az elixirt - és miért váltották a váltót
2020. január 20
Az Elixir egy funkcionális és dinamikus programozási nyelv, amelyet először 2011-ben adtak ki, így még mindig viszonylag új.
Azóta egyre népszerűbb, mert nagyon skálázható, megbízható, és kiválóan használható mikroszolgáltatásokhoz és felhőalapú számítástechnikához. Nézzünk meg néhány nagyliga vállalatot, amelyek úgy döntöttek, hogy bevezetik az Elixirt az építészetükbe, és megnézzük, mit nyertek a változásból.
Az Elixir az Erlang VM-re, egy 20 éves virtuális gépre épül, amely robusztus, egyidejű és elosztott szoftverek támogatására készült. Azzal együtt Főnix keretrendszerben gyakorlatilag bármely iparágban és bármilyen alkalmazáshoz használhatja az Elixirt. A közelmúltban egyre népszerűbb vállalati szintű szoftverként:
- távközlés
- banki
- e-kereskedelem
- hirdető
- azonnali üzenetküldés
- IoT
A nyelv tökéletes azokhoz a projektekhez, amelyeknek támogatniuk kell a párhuzamosságot és az alacsony késést, nagy forgalmat kezelnek és könnyen méretezhetők. Valójában az „Elixir programozása ≥ 1.6: funkcionális |> Egyidejű |> Pragmatikus |> Szórakozás” előszó, Dave Thomas nemrégiben megjelent könyve, a nyelv megalkotója, José Valim az egyidejűséget írja le az Elixir gerinceként, hozzátéve, hogy legnagyobb értéke a „programozók megszabadítása az elavult párhuzamossági mechanizmusoktól”.
Az Elixir előnyei közé tartozik a magas hibatűrés, a megbízhatóság és a rendezett, modern szintaxis is. Hasznosnak bizonyult olyan elosztott rendszereknél, mint a Blockchain projektek, beágyazott rendszerek, valamint azonnali üzenetküldést, videocsevegést vagy pénzügyi alkalmazásokat használó valós idejű alkalmazásoknál.
Ezenkívül számos további architektúra, szolgáltatás és keretrendszer létezik, amelyek az Elixirre építenek. Néhány példa:
- Phoenix - egy keretrendszer a REST API-k és HTML-alkalmazások létrehozásához az Elixir segítségével
- Ecto - az adatbázis-burkoló és az Elixir lekérdezési nyelve
- ExUnit - az Elixir beépített egységtesztelési keretei
- Mox - gúnyos könyvtár automatizált tesztekben történő felhasználásra
- Exq - az Elixir munkakezelő könyvtár.
Gondolkodik azon, hogy maga végezze el a váltást? Vessen egy pillantást néhány kiemelkedően sikeres vállalatra, amelyek az elmúlt hónapokban az Elixirt alkalmazták nagyprojektjeikben - és az eredményeket, melyeket ezzel sikerült elérniük.
Nem biztos abban, hogy a méretezéshez vagy a szoftverépítéshez az Elixirt vagy a Rubint kell választania?
1. Pinterest: a szerverek fele, tízszer kevesebb kód
A Pinterest az egyik legnagyobb online vállalat, amely sikeresen használta az Elixirt. 2018 harmadik negyedévében a szolgáltatás 250 millió aktív felhasználóval 175 milliárd elemet rögzített a tábláján. Gyors növekedésüknek köze lehet az Elixir-be való áttéréshez 2014-ben. Az új programozási nyelv segített nekik felgyorsítani az értesítési rendszerük teljesítményét, másodpercenként 14 000 értesítést küldve, és felére - 30-ról csak 30-ra - csökkentve a szerverek számát. 15 - ahhoz képest, amikor a szolgáltatás Java-ra támaszkodott.
Az Elixir használata lehetővé tette a Pinterest számára, hogy megtisztítsa kódját, mintegy 1000 sorra csökkentve - tízszeres csökkenéssel. A Pinterest most az Elixirt is használja, hogy másodpercenként több mint 30 000 eseményt irányítson a házon belüli szabály motorjába a spam megelőzésére.
2. Moz: 63-szor kevesebb lemezterület, 20-szor gyorsabb API
2016-ban a Moz Pro, a vezető SEO eszköz és online platform, amely segíti a vállalatokat a keresőmotorok teljesítményének elemzésében és javításában, úgy döntött, hogy átalakítja háttér-architektúrájukat. Céljaik a következők voltak:
- javítja a sebességet és a teljesítményt,
- segítsen méretezni az eszközt,
- új funkciók hozzáadása, például választható dátumtartományok, teljes kampányelőzmények, rugalmas alkalmazáson belüli adatszegmentálás és testreszabható adatszűrés.
Fejlesztői blogjukon ismertették a folyamatot és az eredményeket. A fő problémát, amelyet meg kellett oldaniuk, az volt, hogy kinőtték az adatbázis-infrastruktúrájukat. Ennek eredményeként az architektúra nem méretezhető jól, és nagy adathalmazokkal elárasztva nem működött megfelelően, ami feltétlenül kulcsfontosságú volt egy növekvő SEO elemző eszköz számára.
Az architektúra korlátozta a különféle módon bemutatandó adatok mélységét és rugalmasságát. Az általuk azonosított problémák közé tartoztak a skálázhatatlanság, a MySQL nem szabványos használata és a Ruby párhuzamossági korlátozásai.
Az Elixirre váltva kisebb adatfájlokat tudtak használni, és ennek eredményeként átlagosan 63-szor kevesebb lemezterületet használtak fel, mint a MySQL ranglisták használatakor. 20-szor is javítani tudták API-juk sebességét az előző API-hoz képest, az átlagos válaszidők következetesen 50 ms alatt voltak (800+ ms-hoz képest). Összességében az egyszerű telepítés 30-szor gyorsabb építési sebességet eredményezett.
3. Lonely Planet: jobb teljesítmény, méretezhető tartalom
A Lonely Planet egy világméretű utazási oldal (és egy hagyományos útikalauz-kiadó), amely havonta egyedi látogatók millióit szolgálja ki. Nagyon sok gazdag tartalmat tesz közzé webhelyük, mobilalkalmazásuk és harmadik fél által nyújtott szolgáltatások segítségével. A probléma az volt, hogy webes tartalmuk elakadt a Ruby on Rails alkalmazások, a Wordpress példányok és különféle egyéb adattárak mögött.
Szükségük volt arra, hogy gyorsabban és nagyobb mértékben tudjanak kiszolgálni a webes és mobilalkalmazásokban. Ehhez más adatmodell, tisztább API és sokkal skálázhatóbb infrastruktúra kellett.
Több sikertelen próbálkozás után a vállalat felbecsült egy fejlesztőcsapatot, amely több mikroszolgáltatást hozott létre, amelyek közül néhányat az Elixir írt. Az egyik egy Elixir mikrokiszolgáló volt, a Phoenix Web keretrendszert használó API-alszolgáltatással, amelyet a booking.com és a HostelWorld elérhető szállásainak kiszolgálására terveztek. Egy másik, az Elixirben írt mikroszolgáltatás a könyvek és e-könyvek készletét szolgálja egy egyedi e-kereskedelmi rendszerből, amelyet egy Microsoft SQL szerver támogat.
Az új megoldás építészei szerint az Elixir segítségével robusztus architektúrát tudtak a helyükre állítani, jóval nagyobb teljesítménnyel és alacsonyabb memóriaigénnyel.
4. Financial Times: könnyen megtanulható, gyorsan méretezhető
A Financial Times egy elismert hírkiadvány, amelyet 1888-ban alapítottak. A hagyományos napilapok mellett hatalmas online szolgáltatást is működtetnek, amely tavaly áprilisban jelentett be egymillió fizetős olvasót. Korábban egy mikropalvelu REST API-kat használtak, de a növekvő online olvasóközönség kezelése és a szolgáltatás teljesítményének javítása érdekében az Elixir alapú GrapQL API-hoz fordultak.
Most egy másik Elixir-alapú alkalmazásuk is van, és élvezhetik őket sokkal kisebb memóriahasználat a Java-hoz képest. A Financial Times immár korábbi vezető fejlesztője szerint, Ellis Pritchard, az Elixirt könnyű megtanulni a fejlesztő csapat számára - ez a nyelv további előnye.
5. Toyota Connected: mobilitás globális szinten
A Toyota most indította útjára első globális autómegosztó platformját. A szolgáltatás a Toyota saját globális mobilitási szolgáltatási platformját (MSPF) és a fogyasztóknak szánt alkalmazást használja.
A Toyota Connected az Elixirt használja a Mobility Service Platformot alkotó háttérrendszer részeként. API-t biztosít a mobil és webes alkalmazásokhoz, és kezeli a geo-feldolgozást, pl. annak ellenőrzése, hogy a jármű belül vagy kívül van-e a geokerítésen.
A vállalat azt tervezi, hogy Észak-Amerikában és Japánban értékesített új járműveinek többsége 2020-ig információkat küld a felhőbe. Tervezik a forgalmi szokások és a járművezetők viselkedésének elemzését, a járművezetők összekapcsolását az infrastruktúrával, valamint új szolgáltatások és termékek létrehozását.
Ha többet szeretne megtudni arról, hogy a Toyota Connected hogyan használja az Elixirt, nézze meg azt a beszélgetést, amelyet Powell Kinney fejlesztője tartott a Code Elixir LDN konferencián 2018-ban, ahol elmagyarázza a hosszú élettartam tervezését az Elixir és az Erlang/OTP használatával.
6. Fehérítő jelentés: 8-szor nagyobb forgalom
A Bleacher Report, a Turner Sports részlege a világ második legnagyobb sportwebhelye. Havonta akár 1,5 milliárd oldalmegtekintést kapnak, és több mint 3 milliárd push értesítést küldenek.
A Ruby on Rails szolgáltatást eredetileg a szolgáltatás létrehozására használták, de a növekvő forgalom végül bebizonyította, hogy a szolgáltatás már nem skálázható. Egy másik hatalmas kihívás az egyidejű streaming támogatását jelentette a Team Stream alkalmazásban. Tekintettel a valós idejű, mobil-első megközelítésre, amellyel a vállalat büszkélkedhet, képesnek kellett lenniük arra, hogy hatalmas csúcsidőben kezeljék a forgalom csúcsát a mobil eszközökön.
Fejlesztői csapatuk különféle lehetőségeket, köztük a Node.js-t és a Go-t is kipróbált, mielőtt végül az Elixirről döntöttek - jelentős javulást hozott a teljesítményben, míg szintaxisa hasonló volt a Ruby-hoz, ami megkönnyítette a megtanulást.
Ben Marx vezető mérnök így foglalta össze a váltás előnyeit:
Az Elixir olyan hatékonynak bizonyult, hogy szolgáltatásaink határainak tesztelése kihívássá vált önmagának, és új benchmarking eszközökbe és stratégiákba kellett befektetni. Egy nemrégiben elvégzett tesztben például a legnagyobb forgalmú szolgáltatásunk képes volt átlagos forgalmi terhelésünk nyolcszorosát kezelni, automatikus skálázás nélkül, még mielőtt az adatbázis szűk keresztmetszetnek bizonyult volna.
Az Elixir alkalmazásának egyéb előnyei a következők voltak:
- tisztább kódot,
- kisebb technikai adósság,
- a fejlesztési sebesség növekedése,
- lenyűgöző teljesítmény-fejlesztések.
7. Visszatérés: 11 millió egyidejű felhasználó
A Discord egy erőteljes audio/video kommunikációs eszköz, amely chat-platformként indult a játékosok számára, mert zökkenőmentesen kezeli az audio bemenetet több ezer hangkommunikációs csatornán egyszerre. Jelenleg túlmutatott a játékközösség szolgálatán, és sok vállalat és szervezet számára választott kommunikációs és együttműködési eszközzé vált.
Az Elixirt használták szolgáltatásaik felépítéséhez, és ennek köszönhetően 2017-ben 5 millió egyidejű felhasználót és másodpercenként több millió eseményt kezeltek sikeresen. Amint azt a blogjukban megemlítik, "sok kutatást és kísérletet kellett elvégezniük ahhoz, hogy idejussanak". 2019-ben a Discord a Rust segítségével megoldotta az Elixir megváltoztathatatlan adatstruktúráinak problémáját, és így 11 millió egyidejű felhasználót érhet el. Elküldték a megoldást a GitHub-ra.
8. PepsiCo: Elixir-alapú e-kereskedelmi fiók 2 milliárd dollárt keres
Az a vállalat, amelynek nincs szüksége bevezetésre, a PepsiCo arról számolt be, hogy az Elixirt használta a fogyasztói csomagolt termékek értékesítésére szolgáló e-kereskedelmi eszközéhez. 2019-ben a fiók 2 milliárd dollárt keresett a PepsiCo-nak.
Jason Fertel, aki a PepsiCo Ecommerce marketing automatizálási eszközét futtatja, megosztotta az Elixir használatának okait a Devchat.tv podcastban.
Kifejtette, hogy: "Az Elixir erőteljes, egyenes és könnyen megtanulható. Hatékony és mindent megtalál, amire szüksége van."
Mit jelent az üzlet számára?
A fent említett esetek többségében az Elixirre való áttérés (vagy a döntés az Elixir beépítéséről a kezdetektől fogva) olyan alkalmazásokat és szolgáltatásokat eredményezett, amelyek sokkal nagyobb forgalmat képesek kezelni. Ez azt jelenti, hogy jól skálázhatók, növekedhetnek a megbízhatóság elvesztése nélkül, miközben javítják az általános teljesítményt. Üzleti szempontból ez több felhasználót, ügyfelet és magasabb megtérülést jelent.
- Kínai orvoslást és kozmetikai sebészetet használó híres emberek - vörös nyár wellness akupunktúra
- Híres emberek, akik felhagytak a vegánsággal és miért tették ezt - Insider
- Vegán élsportolók, és mi váltotta őket étrendjük váltásába - Business Insider
- Képezhet ideghálózatot SMT-megoldóval - James Bornholt?
- Koronavírus A fogyástól kezdve a növény szülővé válásáig új jó szokások alakultak ki