Bevezetés a natív felhőalkalmazások használatába

Tipp.

Ez a tartalom egy részlet a .NET Docs-on elérhető, az Azure-hoz készült, natív felhőalapú .NET-alkalmazások tervezője című e-könyvből vagy egy ingyenesen letölthető PDF-ből, amely offline is olvasható.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Egy másik nap, az irodában, a következő nagy dologon dolgozik.

A mobilja cseng. Ez a barátságos toborzó - aki naponta hív izgalmas új lehetőségeket.

De ezúttal ez más: start-up, tőke, és rengeteg finanszírozás.

A felhő, a mikroszolgáltatások és az élvonalbeli technológia említése a peremhálózatra viszi.

Gyorsan előre néhány hét, és most már egy új alkalmazott egy tervezési munkamenet tervező egy nagy e-kereskedelmi alkalmazás. A vezető e-kereskedelmi webhelyekkel fog versenyezni.

Hogyan fogja felépíteni?

Ha az elmúlt 15 év útmutatását követi, valószínűleg az 1.1. ábrán látható rendszert fogja felépíteni.

Traditional monolithic design

1–1. ábra. Hagyományos monolitikus kialakítás

Egy nagy alapalkalmazást hozhat létre, amely az összes tartománylogikát tartalmazza. Olyan modulokat tartalmaz, mint az Identitás, a Katalógus, a Rendelés stb. Közvetlenül kommunikálnak egymással egyetlen kiszolgálófolyamaton belül. A modulok nagy relációs adatbázissal rendelkeznek. A mag egy HTML-felületen és egy mobilalkalmazáson keresztül teszi elérhetővé a funkciókat.

Gratulálunk! Most hozott létre egy monolitikus alkalmazást.

Nem minden rossz. A Monoliths különböző előnyöket kínál. Például egyszerűen...

  • build
  • teszt
  • deploy
  • troubleshoot
  • függőleges skálázás

A ma létező számos sikeres alkalmazás monolitként lett létrehozva. Az alkalmazás egy találat, és folyamatosan fejlődik, iteráció után iteráció, további funkciók hozzáadásával.

Egy bizonyos ponton azonban kényelmetlenül érzi magát. Úgy találja, hogy elveszíti az irányítást az alkalmazás felett. Az idő előrehaladtával az érzés intenzívebbé válik, és végül a következő néven Fear Cycleismert állapotba lép:

  • Az alkalmazás annyira bonyolulttá vált, hogy egyetlen személy sem érti.
  • Attól tart, hogy a változások - minden változás nem szándékos és költséges mellékhatásokat.
  • Az új funkciók/javítások bonyolultak, időigényesek és költségesek lesznek.
  • Minden kiadás a lehető legkisebb lesz, és a teljes alkalmazás teljes üzembe helyezését igényli.
  • Egy instabil összetevő a teljes rendszert összeomlhatja.
  • Az új technológiák és keretrendszerek nem választhatók.
  • Nehéz implementálni az agilis kézbesítési módszereket.
  • Az architekturális erózió beépül, ahogy a kódbázis romlik a soha véget nem érő "gyors javításokkal".
  • Végül a tanácsadók bejönnek , és elmondják, hogy írja át.

Ismerősen hangzik?

Számos szervezet foglalkozott ezzel a monolitikus félelemciklussal a rendszerek kiépítésének natív felhőbeli megközelítésével. Az 1–2. ábra ugyanazt a rendszert mutatja be, amely a natív felhőbeli technikákat és eljárásokat alkalmazza.

Cloud-Native Design

1–2. ábra. Natív felhőbeli tervezés

Figyelje meg, hogyan bontja le az alkalmazást egy kis izolált mikroszolgáltatás-készletben. Minden szolgáltatás önálló, és magában foglalja a saját kódját, adatait és függőségeit. Mindegyik egy szoftvertárolóban van üzembe helyezve, és egy tárolóvezénylő felügyeli. Nagy relációs adatbázis helyett minden szolgáltatás saját adattárat birtokol, amelynek típusa az adatigényektől függően változik. Figyelje meg, hogy egyes szolgáltatások hogyan függenek egy relációs adatbázistól, de más a NoSQL-adatbázisoktól. Az egyik szolgáltatás egy elosztott gyorsítótárban tárolja az állapotát. Figyelje meg, hogy az összes forgalom egy API Gateway-szolgáltatáson keresztül halad, amely a fő háttérszolgáltatások felé irányuló forgalom irányításáért és számos átfogó probléma érvényesítéséért felelős. A legfontosabb, hogy az alkalmazás teljes mértékben kihasználja a modern felhőplatformokon található méretezhetőségi, rendelkezésre állási és rugalmassági funkciókat.

Natív felhőalapú számítástechnika

Hmm... Most használtuk a Cloud Native kifejezést. Az első gondolatod az lehet, hogy "Mit jelent ez pontosan?" Egy másik iparág buzzword összefűzött a szoftvergyártók, hogy a piac több dolgot?"

Szerencsére ez sokkal más, és remélhetőleg ez a könyv segít meggyőzni.

Rövid időn belül a natív felhő a szoftveripar egyik vezető trendje lett. Ez egy új módszer a nagy, összetett rendszerek létrehozására. A megközelítés teljes mértékben kihasználja a modern szoftverfejlesztési gyakorlatokat, technológiákat és felhőinfrastruktúra előnyeit. A natív felhő a rendszerek tervezésének, implementálásának, üzembe helyezésének és üzembe helyezésének módját változtatja meg.

Az iparágat hajtó folyamatos hype-kkal ellentétben a natív felhő valós. Fontolja meg a Cloud Native Computing Foundationt (CNCF), amely több mint 400 nagyvállalat konzorciuma. A charta célja, hogy a felhőalapú natív számítástechnika mindenütt jelen legyen a technológia és a felhőbeli veremek között. Az egyik legbefolyásosabb nyílt forráskódú csoportként számos leggyorsabban növekvő nyílt forráskód-projektet üzemeltet a GitHubon. Ilyen projektek például a Kubernetes, a Prometheus, a Helm, az Envoy és a gRPC.

A CNCF a nyílt forráskódú és a szállítósemlegesség ökoszisztémáját támogatja. Ezt követően ez a könyv a felhőbeli natív alapelveket, mintákat és ajánlott eljárásokat mutatja be, amelyek technológiai agnosztikusak. Ugyanakkor bemutatjuk a Microsoft Azure-felhőben elérhető szolgáltatásokat és infrastruktúrát a natív felhőrendszerek kiépítéséhez.

Szóval, mi is pontosan a Cloud Native? Dőljön hátra, pihenjen, és segítsünk felfedezni ezt az új világot.