Události

Revoluce ve vývoji softwaru s Amazon Q a CodeNOW | AWS Praha 2024

Poznatky z AWS Praha 2024 o revoluci ve vývoji softwaru s Amazon Q a CodeNOW.

AWS Prague 2024 - Amazon Q and CodeNOW

Přehled

Na AWS Day Prague CEO CodeNOW Petr Svoboda demonstroval rychlý vývoj mikroslužeb. Během pouhých 20 minut vytvořil dvě mikroslužby pomocí Amazon Q a platformy CodeNOW, což ukázalo, jak moderní nástroje mohou dramaticky urychlit dodávání cloud-native aplikací.

Výzva přijetí mikroslužeb

Mnoho podniků váhá s přijetím architektury mikroslužeb, vnímá ji jako příliš složitou nebo náročnou na zdroje. Skutečné překážky se však objevují během implementace:

  • Složitost testování a nasazování
  • Přechod mezi on-premises a cloudovými prostředími
  • Zvýšené požadavky na automatizaci a monitoring

Na rozdíl od monolitických systémů "mikroslužby vyžadují opakování těchto úloh pro každou službu" bez automatizace, což vytváří významnou provozní zátěž, která odvádí pozornost vývojářů od business-kritických funkcí.

Vytvoření dvou mikroslužeb za 20 minut

Struktura třívrstvé aplikace

Svobodova demonstrace ukázala architekturu omnikanálové aplikace zahrnující:

  • Front-end vrstvu
  • Back-end for front-end (BFF) vrstvu
  • Základní back-end komponentu

Tato struktura zvládá různé požadavky klientů při zachování jednotné business logiky napříč všemi kanály.

Strategie vývojového prostředí

Osobní cloudové vývojové prostory

Platforma používá přístup "share-nothing", poskytuje vývojářům izolovaná, cloudová prostředí. To umožňuje:

  • Nezávislou správu schémat
  • Izolované testování funkcí
  • Produktivitu bez ohledu na fyzickou lokaci

Stack komponent

Vývojová prostředí typicky zahrnují:

  • Back-end-for-front-end vystavující REST API
  • Kafka pro messaging a event streaming
  • PostgreSQL pro persistenci dat

Managed služby pro produkci

Vyšší prostředí (staging/produkce) přecházejí na managed cloudové služby:

  • AWS RDS pro PostgreSQL
  • Managed Kafka instance

Tyto služby poskytují vestavěnou škálovatelnost, monitoring a disaster recovery schopnosti.

Zefektivněný workflow: od kódování po nasazení

Pětistupňová pipeline

Standardní dodací proces následuje tyto kroky:

  1. Kódování
  2. Verzování
  3. Release management
  4. Nasazení
  5. Testování

Implementace Infrastructure as Code

Svoboda demonstroval vytváření nových vývojových prostředí pomocí Kubernetes namespace. Aplikační komponenty byly inicializovány ze zlatých šablon a scaffold do Git repozitářů s projektově-specifickými konfiguracemi.

Podle "12-factor app principů" byla připojení k externím službám dynamicky konfigurována během nasazení, což zajišťuje bezproblémové přechody napříč prostředími.

Využití AI pro generování kódu

Integrace Amazon Q

Přes omezenou expertízu v Pythonu Svoboda použil Amazon Q k vygenerování frontend kódu, včetně:

  • Funkcionality pro vykreslování formulářů
  • Připojení k externímu BFF
  • Zpracování HTTP odpovědí backendu (200 pro úspěch, 400 pro validační chyby)

CI/CD a GitOps workflow

Git-centrický vývoj

Celý workflow byl centrován kolem Git repozitářů, kde změny kódu automaticky spouštěly CI pipeline. Integrace s GitHub Actions zajišťovala:

  • Bezproblémovou správu komponent
  • Konzistentní orchestraci pipeline
  • Vynucené kontroly oprávnění

Automatizace release

Proces zahrnoval:

  • Vytváření release splněním závislostí
  • Synchronizaci stavu do cílových prostředí pomocí Argo CD
  • Automatizaci nasazení prostřednictvím Infrastructure as Code nástrojů (Terraform)

Validace výkonu

Zátěžové testování a observabilita

Amazon Q vygeneroval K6 skripty pro zátěžové testování cílící na BFF endpoint. Výsledky byly monitorovány prostřednictvím:

  • Grafana dashboardů pro vizualizaci metrik
  • Agregace logů a live tails
  • End-to-end trasování kódu pro troubleshooting

Klíčové poznatky

Svoboda zdůraznil kritické architektonické principy:

  • Domain-Driven Design (DDD): Zajišťuje vhodnou velikost softwarových komponent a logické oddělení
  • Samoobslužné platformy: Minimalizují zbytečnou komunikaci vývoj-operace
  • Immutable infrastruktura: Posiluje spolehlivost a zjednodušuje disaster recovery
  • Integrované platformy: "Sjednotit vývojářskou zkušenost napříč celým životním cyklem vývoje softwaru"

Zdroje

Napsal/a CodeNOW