Programiranje

Kaj je domače v oblaku? Sodoben način za razvoj programske opreme

Izraz »domač v oblaku« se pogosto premetava, zlasti ponudniki oblakov. Ne samo to, ampak ima celo svojo lastno fundacijo: Cloud Native Computing Foundation (CNCF), ki jo je leta 2015 ustanovila fundacija Linux.

Opredeljeno „Cloud-native“

Običajno je »native-native« pristop k izdelavi in ​​zagonu aplikacij, ki izkorišča prednosti modela dostave računalništva v oblaku. "Cloud-native" je približno kakoaplikacije se ustvarijo in uvedejo, ne kje. To pomeni, da aplikacije živijo v javnem oblaku, v nasprotju s krajevnim podatkovnim centrom.

CNCF opredeljuje "cloud-native" nekoliko ožje, kar pomeni uporabo odprtokodnega sklada programske opreme, ki ga je treba kontejnerirati, pri čemer je vsak del aplikacije zapakiran v svoj vsebnik, dinamično orkestriran, tako da je vsak del aktivno razporejen in mu je uspelo optimizirati vir uporabe in usmerjene v mikro storitve za povečanje splošne okretnosti in vzdržnosti aplikacij.

"Naravna aplikacija v oblaku je zasnovana posebej za delovanje v elastični in porazdeljeni naravi, ki jo zahtevajo sodobne platforme za računalništvo v oblaku," pravi Mike Kavis, generalni direktor pri svetovalnem podjetju Deloitte. »Te aplikacije so ohlapno povezane, kar pomeni, da koda ni trdno povezana z nobeno komponento infrastrukture, tako da se lahko aplikacija na zahtevo poveča in zmanjša in zajame koncepte nespremenljive infrastrukture. Običajno so te arhitekture zgrajene z uporabo mikroservisov, vendar to ni obvezna zahteva. "

Pri aplikacijah, ki temeljijo na oblaku, je potem res velika razlika v tem, kako je aplikacija zgrajena, dostavljena in upravljana, pravi Andi Mann, glavni zagovornik tehnologije pri Splunku, ponudniku storitev v oblaku. "Izkoriščanje storitev v oblaku pomeni uporabo gibčnih in razširljivih komponent, kot so zabojniki, za zagotavljanje diskretnih funkcij in funkcij za večkratno uporabo, ki se integrirajo na dobro opisane načine, tudi prek tehnoloških meja, kot je večglasnost, kar omogoča dostavnim skupinam hitro ponovitev s ponovljivo avtomatizacijo in orkestracijo."

Razvoj aplikacij v domačem oblaku običajno vključuje devops, agilno metodologijo, mikro storitve, platforme v oblaku, vsebnike, kot sta Kubernetes in Docker, in neprekinjeno dostavo - skratka vsak nov in sodoben način uvajanja aplikacij.

Zaradi tega si resnično želite imeti model platforme kot storitve (PaaS). PaaS ni potreben, vendar stvari precej olajša. Velika večina kupcev v oblaku začne z infrastrukturo kot storitvijo (IaaS), ki pomaga njihove aplikacije abstrahirati iz osnovne strojne opreme. Toda PaaS dodaja dodatno plast za abstrakcijo osnovnega operacijskega sistema, tako da se lahko popolnoma osredotočite na poslovno logiko svoje aplikacije in ne skrbite za klicanje OS.

Sorodni video: Kaj je pristop, ki temelji na oblaku?

V tem 60-sekundnem videoposnetku od Craiga McLuckieja, ustanovitelja in izvršnega direktorja podjetja Heptio in enega od izumiteljev odprtokodne Kubernetes, preberite, kako pristop, ki temelji na oblaku, spreminja način, kako podjetja strukturirajo svoje tehnologije.

Razlike med lokalnimi in lokalnimi aplikacijami v oblaku

Razvoj aplikacij v oblaku zahteva povsem drugačno arhitekturo kot tradicionalne poslovne aplikacije.

Jeziki

Lokalne aplikacije, napisane za izvajanje na strežnikih podjetja, so običajno napisane v tradicionalnih jezikih, kot so C / C ++, C # ali drug jezik Visual Studio, če so nameščene na platformi Windows Server, in v podjetniški Javi. In če je na glavnem računalniku, je verjetno v Cobolu.

Aplikacije v oblaku so bolj verjetno napisane v spletnem jeziku, kar pomeni HTML, CSS, Java, JavaScript, .Net, Go, Node.js, PHP, Python in Ruby.

Posodobljivost

Aplikacije v oblaku so vedno aktualne in posodobljene. Aplikacije v oblaku so vedno na voljo.

Lokalne aplikacije potrebujejo posodobitve, ponavadi pa jih prodajalec dobavi na podlagi naročnine, med namestitvijo posodobitve pa zahtevajo izpad.

Elastičnost

Naravne aplikacije v oblaku izkoristijo elastičnost oblaka z uporabo povečanih virov med konico uporabe. Če vaša aplikacija za e-poslovanje v oblaku doživi hiter porast, jo lahko nastavite tako, da uporablja dodatne računske vire, dokler se konica ne umiri, nato pa te vire izklopite. Aplikacija v domačem oblaku se lahko po potrebi prilagodi večjim virom in obsegu.

Lokalna aplikacija se ne more dinamično spreminjati.

Več najemno

Izvorna aplikacija v oblaku nima težav z delom v virtualiziranem prostoru in delitvijo virov z drugimi aplikacijami.

Številne krajevne aplikacije v virtualnem okolju ne delujejo dobro ali pa sploh ne delujejo in zahtevajo nevirtualiziran prostor.

Povezani viri

Lokalna aplikacija je precej toga v povezavah z omrežnimi viri, kot so omrežja, varnost, dovoljenja in shramba. Mnogo teh virov je treba trdno kodirati in se zlomijo, če se kaj premakne ali spremeni.

»Omrežje in pomnilnik se v oblaku popolnoma razlikujeta. Ko zaslišite izraz "ponovno platformiranje", je to običajno delo, ki ustreza spremembam v omrežju, shranjevanju in celo tehnologijah baz podatkov, da lahko aplikacija deluje v oblaku, "pravi Kavis iz Deloitteja.

Čas izpada

V oblaku je več odvečnosti kot v krajevnih prostorih, zato lahko, če ponudnik oblaka pride do izpada, drugo območje pobere.

V krajevnih aplikacijah je morda pripravljena failover, vendar obstaja velika verjetnost, da se bo, če strežnik ne deluje, aplikacija z njim poslala.

Avtomatizacija

Toliko oblaka je avtomatizirano, kar vključuje tudi upravljanje aplikacij. "Prednosti dostave v oblaku, zlasti hitrost in okretnost, se v veliki meri zanašajo na podlago zanesljivih, preverjenih in revidiranih znanih in dobrih procesov, ki se večkrat izvajajo po potrebi z orodji za avtomatizacijo in orkestracijo, ne pa z ročnimi posegi," pravi Splunk Mann. Inženirji bi si morali prizadevati za avtomatizacijo skoraj vsega, kar naredijo večkrat, da se omogoči ponovljivost, samopostrežba, okretnost, razširljivost ter revizija in nadzor.

Lokalne aplikacije je treba upravljati ročno.

Modularna zasnova

Lokalne aplikacije so ponavadi monolitne. Zagotovo nekaj knjižnega dela raztovorijo v knjižnice, toda na koncu je to ena velika aplikacija s celo vrsto podprogramov. Aplikacije v oblaku so precej bolj modularne, veliko funkcij je razdeljenih na mikro storitve. To jim omogoča, da jih izklopijo, kadar niso potrebni, in da se posodobitve razširijo na ta en modul in ne na celotno aplikacijo.

Državljanstvo

Ohlapna narava oblaka pomeni, da aplikacije niso povezane z infrastrukturo, kar pomeni, da nimajo državljanstva. Izvorna aplikacija v oblaku shranjuje svoje stanje v zbirki podatkov ali kakšni drugi zunanji entiteti, tako da lahko primerki prihajajo in odhajajo, aplikacija pa še vedno lahko sledi, kje v enoti dela je aplikacija. »To je bistvo ohlapno povezanih. Ker ni vezan na infrastrukturo, aplikacija lahko deluje zelo razpršeno in še vedno ohranja svoje stanje neodvisno od elastične narave osnovne infrastrukture, «pravi Kavis.

Večina krajevnih aplikacij je opremljena s stanjem, kar pomeni, da shranjujejo stanje aplikacije v infrastrukturi, na kateri deluje koda. Zaradi dodajanja strežniških virov se aplikacija lahko zlomi.

Izzivi računalništva v domačem oblaku

Ena največjih napak, ki jih stranke naredijo, je poskušati dvigniti in prestaviti svoje stare lokalne aplikacije v oblak, pravi Mann. "Poskus prevzema obstoječih programov - zlasti monolitnih zapuščenih aplikacij - in njihovo premestitev v oblačno infrastrukturo ne bo izkoristil bistvenih funkcij, ki so izvorne v oblaku."

Namesto tega bi si morali prizadevati za nove stvari na nove načine, bodisi tako, da nove aplikacije v oblaku daste v novo infrastrukturo v oblaku bodisi z razbijanjem obstoječih monolitov, da jih refaktorirate z uporabo načel v oblaku od začetka.

Opustiti morate tudi stare metode razvijalcev. Model slapa zagotovo ne bo uspel in tudi gibčen razvoj morda ne bo dovolj. Torej morate sprejeti nove pristope, ki temeljijo na oblaku, kot so razvoj minimalno sposobnih izdelkov (MVP), večvariatno testiranje, hitra ponovitev in tesno sodelovanje prek organizacijskih meja v modelu devops.

V domačem oblaku je veliko vidikov, vključno z infrastrukturnimi storitvami, avtomatizacijo / orkestracijo, virtualizacijo in kontejnerizacijo, arhitekturo mikro storitev in opazovanjem. Vse to pomeni nov način početja, kar pomeni razbijanje starih navad, ko se naučite novih načinov. Naredite to torej z izmerjenim tempom.

Preberite več o sorodnih tehnologijah v domačem oblaku

  • Razloženo platformo kot storitev (PaaS)
  • Večglasno razloženo
  • Razložena agilna metodologija
  • Najboljše prakse agilnega razvoja
  • Devops je pojasnil
  • Uvaja najboljše prakse
  • Razložene mikro storitve
  • Vadnica za mikro storitve
  • Razloženi zabojniki Docker in Linux
  • Kubernetesova vadnica
  • Razložen CI / CD (stalna integracija in stalna dostava)
  • Najboljše prakse za CI / CD
$config[zx-auto] not found$config[zx-overlay] not found