Što je izvorno iz oblaka? Suvremeni način za razvoj softvera

Izraz "izvorni za oblak" često se razbacuje, posebno pružatelji usluga u oblaku. I ne samo to, već ima i vlastiti temelj: Cloud Native Computing Foundation (CNCF), koji je 2015. pokrenula Linux Foundation.

Definirano 'Cloud-native'

Općenito, "cloud-native" pristup je izradi i pokretanju aplikacija koji iskorištava prednosti modela isporuke računalstva u oblaku. "Cloud-native" govori o tome kako se aplikacije izrađuju i primjenjuju, a ne gdje. Podrazumijeva da aplikacije žive u javnom oblaku, za razliku od lokalnog centra podataka.

CNCF definira "cloud-native" malo uže, što znači korištenje softverskog snopa otvorenog koda koji se kontejnerizira, gdje je svaki dio aplikacije spakiran u vlastiti spremnik, dinamički orkestriran, tako da se svaki dio aktivno planira i uspijeva optimizirati resurs korištenje i orijentirane na mikrousluge kako bi se povećala ukupna okretnost i održivost aplikacija.

"Nativna aplikacija u oblaku dizajnirana je posebno za pokretanje u elastičnoj i distribuiranoj prirodi kakvu zahtijevaju moderne platforme za računalstvo u oblaku", kaže Mike Kavis, generalni direktor konzultantske tvrtke Deloitte. „Ove su aplikacije labavo povezane, što znači da kod nije čvrsto povezan s bilo kojom infrastrukturnom komponentom, tako da se aplikacija može povećavati i smanjivati ​​na zahtjev i prihvatiti koncepte nepromjenjive infrastrukture. Tipično se te arhitekture grade pomoću mikroservisa, ali to nije obvezan uvjet. "

Za nativne programe u oblaku velika je razlika zapravo u tome kako se aplikacija izrađuje, isporučuje i koristi, kaže Andi Mann, glavni zagovornik tehnologije u Splunku, dobavljaču usluga u oblaku. "Iskorištavanje usluga u oblaku znači korištenje okretnih i skalabilnih komponenata poput spremnika za isporuku diskretnih i ponovnih značajki koje se integriraju na dobro opisane načine, čak i preko tehnoloških granica poput multicloud-a, što timovima za dostavu omogućuje brzu iteraciju pomoću ponovljive automatizacije i orkestracije."

Razvoj aplikacija izvornih za oblak obično uključuje devops, agilnu metodologiju, mikroservise, platforme u oblaku, spremnike poput Kubernetesa i Dockera i kontinuiranu isporuku - ukratko, svaki novi i moderni način primjene aplikacija.

Zbog toga stvarno želite imati model platforme kao usluge (PaaS). PaaS nije potreban, ali to puno olakšava. Velika većina kupaca u oblaku započinje s infrastrukturom kao uslugom (IaaS), koja pomaže apstrahirati svoje aplikacije od osnovnog hardvera. Ali PaaS dodaje dodatni sloj za apstrahiranje osnovnog OS-a, tako da se možete u potpunosti usredotočiti na poslovnu logiku svoje aplikacije i ne brinuti se o upućivanju OS poziva.

Povezani videozapis: Koji je pristup iz oblaka?

U ovom 60-sekundnom videozapisu naučite kako pristup koji koristi izvorni oblak mijenja način na koji poduzeća strukturiraju svoje tehnologije, od Craiga McLuckieja, osnivača i izvršnog direktora tvrtke Heptio, i jednog od izumitelja otvorenog koda Kubernetes.

Razlike između izvornih aplikacija u oblaku i lokalnih aplikacija

Razvoj aplikacija u oblaku zahtijeva vrlo različitu arhitekturu od tradicionalnih poslovnih aplikacija.

Jezici

Lokalne aplikacije napisane za pokretanje na poslužiteljima tvrtke uglavnom se pišu na tradicionalnim jezicima, poput C / C ++, C # ili drugog jezika Visual Studio ako su raspoređene na platformi Windows Server i Enterprise Java. A ako je na glavnom računalu, vjerojatno je u Cobolu.

Aplikacije izvorne za oblak vjerojatnije će biti napisane na jeziku usmjerenom na web, što znači HTML, CSS, Java, JavaScript, .Net, Go, Node.js, PHP, Python i Ruby.

Ažuriranost

Aplikacije u oblaku uvijek su aktualne i ažurirane. Uvijek dostupne aplikacije u oblaku.

Lokacijske aplikacije trebaju ažuriranja, a dobavljač ih obično isporučuje na pretplati i zahtijeva zastoje dok je ažuriranje instalirano.

Elastičnost

Izvorne aplikacije u oblaku iskorištavaju elastičnost oblaka korištenjem povećanih resursa za vrijeme korištenja. Ako vaša aplikacija za e-trgovinu zasnovana na oblaku doživi nagli porast u upotrebi, možete je postaviti da koristi dodatne računske resurse dok se šiljak ne smiri, a zatim ih isključite. Izvorna aplikacija u oblaku može se prilagoditi povećanim resursima i skali po potrebi.

Lokalna aplikacija ne može se dinamički skalirati.

Multitenacija

Izvorna aplikacija u oblaku nema problema s radom u virtualiziranom prostoru i dijeljenjem resursa s drugim aplikacijama.

Mnoge lokalne aplikacije ili ne rade dobro u virtualnom okruženju ili uopće ne rade i zahtijevaju nevirtualizirani prostor.

Povezani resursi

Lokalna aplikacija prilično je kruta u svojim vezama s mrežnim resursima, poput mreža, sigurnosti, dozvola i pohrane. Mnoge od tih resursa treba čvrsto kodirati i oni se lome ako se nešto premjesti ili promijeni.

“Mreža i pohrana potpuno su različiti u oblaku. Kad čujete pojam "re-platformiranje", to je obično posao prilagođavanja promjenama u umrežavanju, pohrani, pa čak i tehnologijama baza podataka kako bi se aplikacija mogla pokretati u oblaku ”, kaže Kavis iz Deloittea.

Vrijeme zastoja

U oblaku je veća suvišnost nego u onom lokalnom, pa ako pružatelj usluga u oblaku ispadne, druga regija može popusti.

Lokalne aplikacije možda su spremne za prelazak na failover, ali postoji velika vjerojatnost da će se, ako poslužitelj padne, aplikacija s njim i isključiti.

Automatizacija

Toliko je oblaka automatizirano, a to uključuje i upravljanje aplikacijama. "Blagodati isporuke u oblaku, posebno brzina i okretnost, značajno se oslanjaju na podlogu pouzdanih, dokazanih i revidiranih poznatih i dobrih procesa koji se izvode više puta po potrebi pomoću alata za automatizaciju i orkestraciju, a ne ručnom intervencijom", kaže Splunk Mann. Inženjeri bi trebali nastojati automatizirati gotovo sve što rade više puta kako bi omogućili ponovljivost, samoposluživanje, okretnost, skalabilnost te reviziju i kontrolu.

Lokalnim aplikacijama mora se upravljati ručno.

Modularni dizajn

Lokalne aplikacije imaju tendenciju monolitnog dizajna. Svakako pretovaruju neke poslove u knjižnice, ali na kraju je to jedna velika aplikacija s puno podprograma. Aplikacije u oblaku mnogo su modularnije, a mnoge su funkcije raščlanjene na mikroservise. To im omogućuje isključivanje kada nije potrebno i ažuriranje za taj jedan modul, a ne za cijelu aplikaciju.

Apatridnost

Labavo povezana priroda oblaka znači da aplikacije nisu povezane s infrastrukturom, što znači da nemaju državljanstvo. Izvorna aplikacija u oblaku svoje stanje pohranjuje u bazu podataka ili neki drugi vanjski entitet kako bi instance mogle doći i proći, a aplikacija i dalje može pratiti gdje se u jedinici rada aplikacija nalazi. „Ovo je bit labavo spojenih. Nevezivanje s infrastrukturom omogućava i aplikaciji da radi na vrlo distribuiran način i dalje održava svoje stanje neovisno o elastičnoj prirodi temeljne infrastrukture ”, kaže Kavis.

Većina lokalnih aplikacija ima status, što znači da stanje aplikacije pohranjuje na infrastrukturi na kojoj se kôd izvodi. Aplikacija se zbog toga može slomiti prilikom dodavanja resursa poslužitelja.

Izazovi računalstva u izvornom oblaku

Jedna od velikih pogrešaka koje kupci čine je pokušaj podizanja i prebacivanja starih lokalnih aplikacija u oblak, kaže Mann. "Pokušaj uzimanja postojećih aplikacija - posebno monolitnih naslijeđenih aplikacija - i njihovo premještanje na infrastrukturu u oblaku neće iskoristiti bitne značajke izvorne za oblak."

Umjesto toga, trebali biste nastojati raditi nove stvari na nove načine, bilo stavljanjem novih aplikacija u oblaku u novu infrastrukturu oblaka ili razbijanjem postojećih monolita kako biste ih refaktorirali koristeći principe izvornih za oblak od temelja.

Također se morate odreći svojih starih razvojnih metoda. Model slapa sigurno neće uspjeti, a čak ni okretan razvoj možda neće biti dovoljan. Dakle, morate usvojiti nove pristupe zasnovane na oblaku, poput razvoja minimalno održivog proizvoda (MVP), multivarijantnog testiranja, brze iteracije i bliske suradnje preko organizacijskih granica u devops modelu.

Mnogo je aspekata korištenja oblaka, uključujući infrastrukturne usluge, automatizaciju / orkestraciju, virtualizaciju i kontejnerizaciju, arhitekturu mikroservisa i promatranost. Sve to znači novi način rada, što znači razbijanje starih navika dok učite nove načine. Dakle, radite to odmjerenim tempom.

Saznajte više o srodnim tehnologijama izvornih za oblak

  • Objašnjena platforma kao usluga (PaaS)
  • Objasnio je Multicloud
  • Objašnjena agilna metodologija
  • Najbolje prakse agilnog razvoja
  • Objasnio je Devops
  • Uvodi najbolje prakse
  • Objasnili su mikroservisi
  • Vodič za mikro usluge
  • Objašnjeni Docker i Linux spremnici
  • Vodič za Kubernetesa
  • Objašnjen CI / CD (kontinuirana integracija i kontinuirana isporuka)
  • Najbolje prakse za CI / CD