Úvod do Azure Cloud

Cloudové služby

Prenájom softvérových a hardvérových prostriedkov.

Celkové náklady na vlastnenie infraštruktúry

  • hardware: cena servera a serverovne
  • personálne náklady: plat administrátora a developera
  • pohyblivé náklady: náklady na energie, náklady na údržbu

Nie je potrebný softvér

  • inštalácia a konfigurácia je oveľa jednoduchšia.
  • zálohy a redundancia sú automatické.
  • skrátenie času na uvedenie na trh.
  • "prenájom" know-how - hotových služieb, nižšie personálne výdavky
  • vyššia bezpečnosť

Nie sú potrebné servery

  • optimalizácia fixných nákladov.
  • flexibilita - rýchly štart služby
  • nie je potrebná údržba

Nevýhody cloudových služieb

  • komplikované sledovanie a optimalizácia poplatkov.
  • prepojenie s existujúcou infraštruktúrou.
  • "uzavretie" na konkrétne služby konkrétneho poskytovateľa.
  • Strata časti kontroly nad dátami.
  • potreba zaškoleného personálu.
  • komplikované prispôsobenie na špecifické požiadavky.

Náklady: čo sledovať

  • Pay-as-you-go: platíte za spotrebu (compute, storage, egress).
  • Nastavte budgets + alerts a tagujte zdroje (projekt/predmet/tím).
  • Vypínajte nevyužité VM a služby mimo potreby.

Čo je lepšie?

  • Verejný cloud: Vaša "záťaž" beží spoločne s inými v cudzom datacentre.
  • Privátny cloud: Vaše aplikácie bežia osamotené vo vlastnom alebo prenajatom datacentre.
  • Hybridný cloud: Vaša infraštruktúra je manažovaná rovnako ako verejný cloud pomocou nástrojov od poskytovateľa cloudových služieb.

Rozdelenie cloudových služieb

Anything As a Service, Pay as You Go

  • Infraštruktúra - IaaS
  • Platforma - PaaS
  • Aplikácie - SaaS

IaaS vs PaaS vs SaaS

IaaS - Infrastructure as a Service

Virtualizácia hardvérovej a sieťovej infraštruktúry

  • Prenájom virtuálnych serverov a sietí
  • prenájom diskov a blokových zariadení
  • load balancer

PaaS - Platform as a Service

Prenájom služieb "cloudového" operačného systému:

  • Docker, Docker Compose
  • Kubernetes
  • Heroku

SaaS - Software as a Service

Hotové aplikácie alebo komponenty:

  • container registry
  • databáza
  • systémy strojového učenia
  • strojový preklad, vyhľadávací stroj

Serverless

V "serverless" službách nemusíme riešiť prideľovanie konkrétnych zdrojov (diskov alebo výpočtových uzlov).

With serverless applications, the cloud service provider automatically provisions, scales, and manages the infrastructure required to run the code. Serverless architectures are highly scalable and event-driven. They use resources only when a specific function or trigger occurs.

Shared responsibility model

  • Azure spravuje: fyzické dátové centrá, sieť, hypervisor a základné platformové služby.
  • Vy spravujete: dáta, identity/prístupy, konfiguráciu, kód a tajomstvá.
  • Prakticky: RBAC (least privilege), aktualizácie, zálohy a monitoring.

Poskytovatelia cloudových služieb

Trhový podiel

  • Azure 21%
  • Google 8%
  • Amazon 32%

Menší hráči 39%:

  • Heroku
  • IBM Cloud
  • Alibaba Cloud
  • DigitalOcean

Čo je to Azure Cloud?

  • Prepojené verejné služby dátových centier Microsoftu.
  • Ovládanie pomocou webového rozhrania alebo príkazového riadku.
  • Možnosť pristupovať pomocou študentského účtu.

Najdôležitejšie služby

Storage (Úložisko)

File (súborový systém), Disk (blokové zariadenie), Blob (Objekt)

Špeciálne úložiská: Data Lake (analytické úložisko), Archive (archivácia), HPC Cache (vyrovnávacia pamäť)

Virtual Machines

Virtuálny stroj

  • Linux (CentOS, RHEL, Suse, Debian, Ubuntu)
  • Windows (Server)
  • Vlastný obraz

Web Apps

  • Web aplikácia bez kontajnera
    • Java, Node.js, PHP, Python, .NET, Ruby
  • Web aplikácia s kontajnerom
    • ľubovoľné závislosti
  • Napojenie na storage (adresár /home alebo iný)
  • Automatické zostavenie a nasadenie (CI/CD: continuous integration and deployment), Prepojenie s GitHub

Database

SQL

  • SQL Server
  • Azure SQL
  • Postgres, MySQL/MariaDB

NoSQL

  • Cosmos DB (MongoDB, Cassandra compatible)
  • Redis, Cassandra,

Load Balancer

  • Zverejnenie služby
  • Zabezpečenie vysokej dostupnosti
  • HTTPS termination

Základy sietí v Azure

  • VNet + subnets: privátna sieť pre služby.
  • NSG: pravidlá (in/out) na úrovni subnet/NIC.
  • Public IP/DNS: zverejnenie služby.

ACR Container Registry

Registry obrazov kontajnerov

Pre použitie v App Services a AKS

AKS Kubernetes Service

Kubernetes klaster

  • Vytvorenie klastra na požiadanie
  • Automatické škálovanie
  • CI/CD
  • Využitie na strojové učenie
  • Podpora hybridných cloudov - manažment viacerých klastrov z jedného miesta.

Prenájom Azure služby

Account : prihlásenie a identita

Subscription : predplatné, účtovná jednotka

Tenant, subscription, tagy

  • Tenant (Microsoft Entra ID): identitná hranica (users, groups, app registrations).
  • Subscription: účtovná (billing) jednotka a limity.
  • Tagy: cost allocation (projekt, predmet, tím).
  • Management groups: zoskupenie subscription pre politiky a riadenie.

Organizácia a konfigurácia služieb

ResourceGroup : skupina zdrojov v rámci predplatného

Resource : konkrétny zdroj za ktorý platíme

resourceManagerTemplate : súbor ktorý definuje použitie jedného alebo viacerých zdrojov.

SKU: Kvalita služby

Vieme si vybrať akú "kvalitnú" službu potrebujeme:

  • Basic alebo Premium
  • rýchlosť, redundancia, zálohovanie, stabilita, latencia

SKU

: Stock Keeping Unit

Výber lokácie

Je rozdiel kde fyzicky beží služba:

  • latencia
  • jurisdikcia

Region : kde sa nachádza datacentrum

Datacenter : konkrétne datacentrum

Manažment cloudových služieb

Azure portal : Webové rozhranie pre manažment cloudových služieb

Azure Command Line : az riadkové rozhranie pre manažment cloudových služieb. Umožňuje vytváranie skriptov.

Manažment cloudových služieb

+--------------+ +---------------+
| Provider API |-| Cloud Service |
+--------------+ +---------------+
            |
        App protocol
            |
 +----------------------+
 | web or cmd client    |
 +----------------------+

Docker Volume Plugin/ Storage Driver

  • Poskytovatelia cloudových služieb používajú vlastné pluginy.
  • Súbory môžu byť uložené kdekoľvek inde.
  • Dáta sa v cloudových systémoch nachádzajú na inom mieste ako aplikácia a konfigurácia.
  • Uložisko vieme pripojiť ako blokové zariadenie, sieťový súborový systém alebo použiť osobitnú aplikáciu.
  • V Dockeri musíme namapovať zväzok alebo nakonfigurovať aplikáciu na prístup k databáze alebo úložisku.
  • V Dockeri je potrebné manažovať súbory osobitne.

Docker v cloude

  • Na virtuálnom stroji viete ľahko nainštalovať Docker a nasadiť viacero kontajnerov.
  • Azure App Service.
  • Amazon EC2 Container Service.
  • Google Cloud Run.

Ak chcem nasadiť Wordpress webovú stránku do produkcie, potrebujem:

  • MySQL alebo PostgreSQL databázu.
  • Apache Web server s mod_php a ďalšie potrebné PHP knižnice, napr. GD.
  • Adresár, kde dám PHP súbory.
  • Adresár, kde sa budú ukladať obrázky a súbory od používateľov.
  • HTTPS Certifikát, napr. Let's Encrypt.
  • Doménové meno.
  • Skript pre zálohovanie a obnovu certifikátu.

Software/Platform as a Service

Väčšinou sa finančne oplatí hotový WordPress hosting (Software as a Service). Niekedy ale SaaS služba nie je dostupná.

Niekedy potrebujem:

  • Vlastné zdrojové kódy.
  • Vlastný kontajner so špecifickou verziou.
  • Splniť veľké bezpečnostné nároky.
  • Veľké škálovanie.

Compose and Docker @ Cloud

Ale inak sa na viackontajnerové aplikácie používa Kubernetes

Compose @ Cloud

Docker Context - nastavenie s ktorým vzdialeným Docker strojom komunikujeme

  • Potrebujeme verejne prístupný register obrazov
  • Zmeníme Docker context
  • Môžeme vykonávať docker príkazy bežným spôsobom a vykonajú sa na prenajatej infraštruktúre.

Existujú lepšie nástroje ako Compose....

Bibliografia

Reload?