Programovanie

Čo je cloud-native? Moderný spôsob vývoja softvéru

Pojem „cloud-native“ sa často vyskytuje hlavne u poskytovateľov cloudu. Nielen to, ale má dokonca aj svoju vlastnú základňu: Cloud Native Computing Foundation (CNCF), ktorú v roku 2015 uviedla nadácia Linux Foundation.

Definovaný ako „cloud-native“

„Cloud-native“ je všeobecne prístup k vytváraniu a prevádzkovaniu aplikácií, ktorý využíva výhody modelu poskytovania cloudových výpočtov. „Cloud-native“ je asi akoaplikácie sa vytvárajú a nasadzujú, nie kde. Znamená to, že aplikácie žijú vo verejnom cloude, na rozdiel od miestneho dátového centra.

CNCF definuje pojem „cloud-native“ trochu užšie, čo znamená použitie otvoreného softvérového zásobníka na kontajnerovanie, kde je každá časť aplikácie zabalená do vlastného kontajnera, dynamicky usporiadaná, takže každá časť je aktívne naplánovaná a spravovaná tak, aby optimalizovala zdroj. využitie a orientované na mikroslužby, aby sa zvýšila celková svižnosť a udržiavateľnosť aplikácií.

„Aplikácia natívneho cloudu je navrhnutá špeciálne pre beh v elastickej a distribuovanej povahe vyžadovanej modernými platformami cloud computingu,“ hovorí Mike Kavis, výkonný riaditeľ konzultačnej spoločnosti Deloitte. „Tieto aplikácie sú voľne spojené, čo znamená, že kód nie je pevne pripojený k žiadnej zo súčastí infraštruktúry, takže táto aplikácia sa môže na požiadanie škálovať a znižovať a využívať koncepty nemennej infraštruktúry. Tieto architektúry sa zvyčajne vytvárajú pomocou mikroslužieb, čo však nie je povinná požiadavka. “

V prípade natívnych cloudových aplikácií je potom veľkým rozdielom to, ako je aplikácia postavená, dodávaná a prevádzkovaná, hovorí Andi Mann, hlavný technologický obhajca spoločnosti Splunk, poskytovateľa cloudových služieb. „Využívanie výhod cloudových služieb znamená použitie agilných a škálovateľných komponentov, ako sú kontajnery, na dodanie diskrétnych a opakovane použiteľných funkcií, ktoré sa integrujú dobre opísanými spôsobmi, dokonca aj cez technologické hranice, ako je multicloud, čo umožňuje doručovacím tímom rýchlo iterovať pomocou opakovateľnej automatizácie a orchestrácie.“

Vývoj natívnych cloudových aplikácií zvyčajne zahrnuje vývoj, agilnú metodológiu, mikroslužby, cloudové platformy, kontajnery ako Kubernetes a Docker a nepretržité doručovanie - skrátka každá nová a moderná metóda nasadenia aplikácie.

Z tohto dôvodu skutočne chcete mať model platformy ako služby (PaaS). PaaS sa nevyžaduje, ale výrazne uľahčuje prácu. Prevažná väčšina cloudových zákazníkov začína s infraštruktúrou ako službou (IaaS), ktorá pomáha abstrahovať ich aplikácie od základného hardvéru. PaaS však pridáva ďalšiu vrstvu na abstraktizáciu základného operačného systému, takže sa môžete úplne sústrediť na obchodnú logiku svojej aplikácie a nemusíte sa starať o hovory z operačného systému.

Súvisiace video: Čo je to natívny cloudový prístup?

V tomto 60-sekundovom videu sa dozviete, ako cloudový natívny prístup mení spôsob, akým podniky štruktúrujú svoje technológie, od Craiga McLuckieho, zakladateľa a výkonného riaditeľa spoločnosti Heptio, a jedného z vynálezcov otvoreného zdroja Kubernetes.

Rozdiely medzi natívnymi cloudovými a miestnymi aplikáciami

Vývoj natívnych cloudových aplikácií vyžaduje veľmi odlišnú architektúru ako tradičné podnikové aplikácie.

Jazyky

Miestne aplikácie napísané na spustenie na serveroch spoločnosti majú tendenciu byť písané v tradičných jazykoch, ako sú C / C ++, C # alebo iný jazyk Visual Studio, ak sú nasadené na platforme Windows Server, a podniková Java. A ak je na sálovom počítači, je pravdepodobné, že je v Cobole.

Cloudové natívne aplikácie sa s najväčšou pravdepodobnosťou budú písať v jazyku zameranom na web, čo znamená HTML, CSS, Java, JavaScript, .Net, Go, Node.js, PHP, Python a Ruby.

Aktualizovateľnosť

Cloudové natívne aplikácie sú vždy aktuálne a aktuálne. Cloudové natívne aplikácie sú vždy k dispozícii.

Miestne aplikácie potrebujú aktualizácie a zvyčajne ich dodáva na základe predplatného dodávateľ a pri inštalácii aktualizácie vyžadujú prestoje.

Pružnosť

Cloudové natívne aplikácie využívajú pružnosť cloudu tým, že počas špičky používania využívajú zvýšené zdroje. Ak vaša cloudová aplikácia pre elektronický obchod zaznamenáva prudký nárast, môžete ju nastaviť tak, aby používala ďalšie výpočtové zdroje, kým sa vrchol nezníži, a potom tieto zdroje vypnúť. Cloudová natívna aplikácia sa môže podľa potreby prispôsobiť zvýšeným zdrojom a škálovať.

Miestna aplikácia sa nemôže dynamicky škálovať.

Mnohonásobnosť

Aplikácia natívna v cloude nemá problém pracovať vo virtualizovanom priestore a zdieľať zdroje s inými aplikáciami.

Mnoho miestnych aplikácií buď nefunguje dobre vo virtuálnom prostredí, alebo nefunguje vôbec a vyžaduje nevirualizovaný priestor.

Pripojené zdroje

Miestna aplikácia je vo svojich pripojeniach k sieťovým prostriedkom, ako sú siete, zabezpečenie, povolenia a úložisko, pomerne rigidná. Mnohé z týchto zdrojov musia byť pevne zakódované a pri zmene alebo zmene niečoho sa zlomia.

„Sieť a úložisko sú v cloude úplne odlišné. Keď počujete výraz „opätovné platformovanie“, zvyčajne sa jedná o prácu na prispôsobení sa zmenám v sieťových, úložných a dokonca aj databázových technológiách, ktoré umožnia aplikácii bežať v cloude, “hovorí Kavis spoločnosti Deloitte.

Prestoje

V cloude je väčšia nadbytočnosť ako v miestnom prostredí, takže ak dôjde k výpadku poskytovateľa cloudu, môže tento nedostatok využiť iný región.

Miestne aplikácie môžu mať pripravené zlyhanie, ale existuje veľká šanca, že ak dôjde k výpadku servera, dôjde k pádu aplikácie aj s ním.

Automatizácia

Veľká časť cloudu je automatizovaná a to zahŕňa správu aplikácií. „Výhody dodávania z cloudu, najmä rýchlosť a svižnosť, sa výrazne spoliehajú na substrát spoľahlivých, overených a auditovaných známych dobrých procesov, ktoré sa podľa potreby opakujú podľa potreby automatizačnými a orchestračnými nástrojmi, a nie manuálnym zásahom,“ hovorí Splunk's Mann. Inžinieri by sa mali snažiť automatizovať prakticky všetko, čo robia viackrát, aby umožnili opakovateľnosť, samoobslužnosť, agilitu, škálovateľnosť a audit a kontrolu.

Miestne aplikácie sa musia spravovať manuálne.

Modulárny dizajn

Miestne aplikácie majú zvyčajne monolitický dizajn. Pre istotu odložia časť práce do knižníc, ale nakoniec je to jedna veľká aplikácia s množstvom podprogramov. Cloudové natívne aplikácie sú oveľa modulárnejšie a majú veľa funkcií rozdelených na mikroslužby. To im umožňuje vypnúť, ak to nie je potrebné, a aktualizovať aktualizáciu skôr pre tento jeden modul ako pre celú aplikáciu.

Bez štátnej príslušnosti

Voľne prepojená povaha cloudu znamená, že aplikácie nie sú viazané na infraštruktúru, čo znamená, že sú bez štátnej príslušnosti. Cloudová natívna aplikácia ukladá svoj stav do databázy alebo inej externej entity, takže inštancie môžu prichádzať a odchádzať a aplikácia môže stále sledovať, kde v pracovnej jednotke je aplikácia. "Toto je podstata voľne prepojeného." Bez väzby na infraštruktúru umožňuje a aplikácia bežať vysoko distribuovaným spôsobom a stále si udržiavať svoj stav nezávisle na pružnej povahe základnej infraštruktúry, “hovorí Kavis.

Väčšina miestnych aplikácií je stavových, čo znamená, že ukladajú stav aplikácie na infraštruktúre, na ktorej je spustený kód. Z tohto dôvodu môže byť aplikácia pri pridávaní prostriedkov servera rozbitá.

Výzvy natívneho cloudu

Jednou z veľkých chýb, ktoré zákazníci robia, je pokus o zdvihnutie a presun ich starých lokálnych aplikácií do cloudu, hovorí Mann. „Pokus o využitie existujúcich aplikácií - najmä monolitických starších aplikácií - a ich presunutie do cloudovej infraštruktúry nebude využívať výhody základných cloudových natívnych funkcií.“

Namiesto toho by ste sa mali pozerať na to, ako robiť nové veci novými spôsobmi, a to buď zavedením nových cloudových aplikácií do novej cloudovej infraštruktúry, alebo rozbitím existujúcich monolitov, ktoré ich od základu prefinancujú pomocou cloudových natívnych princípov.

Musíte tiež upustiť od svojich starých vývojárskych metód. Model vodopádu to určite nebude robiť, a dokonca ani svižný vývoj nemusí stačiť. Musíte teda prijať nové cloudové natívne prístupy, ako je vývoj minimálneho životaschopného produktu (MVP), testovanie viacerých premenných, rýchla iterácia a úzka spolupráca cez hranice organizácie v modeli devops.

Existuje veľa aspektov natívneho cloudu, vrátane služieb infraštruktúry, automatizácie / orchestrácie, virtualizácie a kontajnerizácie, architektúry mikroslužieb a pozorovateľnosti. Všetko toto znamená nový spôsob robenia vecí, čo znamená narušenie starých zvykov, keď sa naučíte nové spôsoby. Robte to teda odmeraným tempom.

Získajte viac informácií o súvisiacich technológiách natívnych pre cloud

  • Vysvetlenie platformy ako služby (PaaS)
  • Vysvetlil Multicloud
  • Agilná metodika vysvetlená
  • Najlepšie postupy pri agilnom vývoji
  • Devops vysvetlil
  • Devops osvedčené postupy
  • Mikroslužby vysvetlené
  • Výukový program pre mikroslužby
  • Vysvetlenie kontajnerov Docker a Linux
  • Výukový program Kubernetes
  • Vysvetlenie CI / CD (nepretržitá integrácia a nepretržité dodávanie)
  • Osvedčené postupy CI / CD
$config[zx-auto] not found$config[zx-overlay] not found