Lecture #6 - File storage and distribution in Microsoft Azure
Na přednášce se seznámíte s možnostmi efektivního uložení souborů v Microsoft Azure. Diskutovány budou také možnosti použití Azure Storage pro distribuci statických souborů do internetu a použití CDN sítí.
Prezentace
Domácí úkol #2 - Nasazení webové aplikace komunikující s relační databází do PaaS cloudových služeb
Cílem druhého domácího úkolu bude nasazení webové aplikace a relační databáze do PaaS cloudových služeb.
1. Nasazení relační databáze v režimu PaaS
Zvolte si webovou aplikaci komunikující s relační databází a tuto relační databázi nasaďte do Microsoft Azure v režimu PaaS, což znamená, že nebudete vytvářet virtuální server a instalovat si do něj vlastní relační databázový engine, ale využijete některé z možností PaaS cloudových služeb, kdy je databáze nasazena a spravována cloudovým poskytovatelem včetně vysoké dostupnosti a vy se pouze na založenou databázi připojíte s vaší aplikace.
Máte možnost takto jednoduše hostovat Azure SQL Database, MySQL, MariaDB či PostgreSQL. Zvolte vhodně konfiguraci s ohledem na konzumaci kreditů z Vaší subscription.
2. Nasazení webové aplikace do PaaS prostředí
Po úspěšném založení relační databáze jako služby si vyzkoušíte nasadit webovou aplikaci do webového hostingu, který bude spravovaný cloudovým poskytovatelem v režimu PaaS, tedy nebudete do virtuálního serveru instalovat vlastní web server, ale využijete některou z nabízených služeb, jako je třeba Azure App Service. Hosting nakonfigurujte s ohledem na minimální provozní náklady.
Vyberte si webovou aplikaci, kterou budete nasazovat do cloudového prostředí. Může se jednat o jakýkoliv projekt z jiných předmětů nebo klidně jednoduchou webovou aplikaci komunikující s databází, kterou legálně seženete jako sample na webu či GitHubu. Technologický stack může být cokoliv, co jste schopni zdarma nasadit do Azure Virtual Machine, přes .NET+MSSQL, PHP+MYSQL, Java+PostgreSQL či jakékoliv jiné kombinace webové a databázové technologie, kterou budete schopni v Microsoft Azure provozovat v režimu PaaS.
Pokud byste narazili na překážku v provozu Vaší aplikace ve službě Azure App Service, potom máte jedinou možnost a tou je kontejnerizace aplikace, což Vám rozšíří možnosti jazyků a technologií na provoz vaší webové aplikace. Pro případný hosting kontejneru s vaší aplikací zvolte některou z PaaS cloudových služeb na provoz kontejnerů (Azure Kubernetes Service bych volil jako poslední možnost).
Uveďte webovou aplikaci do provozuschopného stavu, aby byla dostupná z internetu na své DNS adrese poskytnuté cloudovým poskytovatelem.
Vytvořte PDF dokument, kam ve formě vhodně zvolených screenshotů zdokumentujte stav Vašeho prostředí v Microsoft Azure, abyste prokázali splnění úkolu. Vložte i odkaz na běžící webovou aplikaci. Nemusíte mít z důvodu úspory kreditů webovou aplikaci spuštěnou přes týden, nechť je prosím dostupná po deadline do zadání bodů z úkolů. Pokud by náhodou webová aplikace začínala přihlašovací obrazovkou, tak odevzdejte prosím přihlašovací údaje k testovacímu účtu. Toto PDF odevzdejte do středy 5. 4. 2023 23:59:59.997 do níže uvedené odevzdávárny. Pokud budete chtít opravený úkol opravit dříve, napište mi na Teams.
Zadání aplikace Sociální síť
Pokud hledáte nějaké zadání webové aplikace, se kterou si vystačíte po celý předmět i v rámci zbylých úkolů, nabízím vám následující zadání projektu, který budu prezentovat na přednáškách.
Jedná se o sociální síť pro střední a základní školy na podporu komunikace mezi vyučujícími předmětů a svými studenty. Webové aplikace by měla splňovat následující funkční požadavky:
- Hlavní komponentou tohoto projektu je "zeď příspěvků", kam se vkládají příspěvky učitelů i studentů. Příspěvek je tvořen jen textem o maximální délce do 15000 znaků. Vložený příspěvek může být později změněn a nebo odstraněn.
- Registrovaní uživatelé patří buď do role učitel nebo student.
- Existuje globální zeď školy, kam smí přispívat jen učitelé; existují třídy a předměty, kdy každý předmět i třída mají svou zeď, své studenty i své učitele.
- Pro členství studenta i učitele ve škole, třídě i předmětu je uchovávána informace od kdy do kdy byl členem a smí vidět příspěvky vložené jen v tomto období.
- Student smí měnit a mazat jen své příspěvky, učitel smí mazat příspěvky všech ve své třídě nebo předmětu. Smazané příspěvky zůstávají uložené v systému.
- Musí být možné zobrazit zeď uživatele (zde jsou zobrazeny viditelné příspěvky ze školy, předmětů i tříd), kde je uživatel členem, ale i jednotlivé zdi odděleně (např. jen zeď konkrétního předmětu).
- Příspěvky na zdi mohou být likovány 👍a liky zase odebrány, nerozlišují se typy liků a u příspěvku je vidět aktuální počet.
- Pod příspěvek na zdi je možné psát komentáře a ty taky mohou být likovány. U příspěvku se zobrazuje jen poslední komentář a jejich počet. Všechny komentáře se zobrazí až při načtení detailu příspěvku.
Nevyžaduji po vás implementaci celé webové aplikace, ale pouze implementaci REST API pouze pro práci se zdí příspěvků (tedy školy, třídy, předměty, uživatele a členství předgenerujete jako vhodná vzorová data a nebude třeba API na jejich správu). Měli byste implementovat ale nějakou formu autentizace a autorizace, aby přihlášený uživatel směl dělat jen povolené operace na zdi.
V rámci druhého úkolu byste toto REST API implementovali proti relační databázi a nasadili do PaaS cloudové služby.
V rámci třetího úkolu budete dle později upřesněného zadání implementovat využití NoSQL databáze a měřit dopad na výkon REST API.
V rámci čtvrtého úkolu budete implementovat asynchronní procesy s využitím Azure Functions.
V rámci pátého úkolu budete implementovat CI/CD aplikace z repozitáře zdrojových kódů přímo do cloudu.
Použití výše uvedeného zadání je zcela dobrovolné, klidně nasazujte a pracujte s vlastní aplikací, jen uvažte, jestli budete schopni splinit výše uvedené úkoly #3-5.