Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

GDPR a IT systémy — technická příprava na nařízení

10. 05. 2018 3 min čtení CORE SYSTEMScloud

Serverless slibuje svět bez serverů — platíte jen za skutečný výpočetní čas, žádná správa infrastruktury, automatické škálování do nekonečna. V roce 2018 máme dvě dominantní platformy: AWS Lambda a Azure Functions. Po roce produkčního provozu na obou sdílíme zkušenosti.

Co je serverless a co není

Serverless neznamená, že servery neexistují — znamená, že se o ně nestaráte vy. Provider spravuje infrastrukturu, vy dodáváte kód ve formě funkcí. Každá funkce zpracuje jeden event — HTTP request, zprávu z fronty, změnu v databázi.

Serverless není vhodný pro všechno. Long-running procesy, WebSocket spojení nebo aplikace vyžadující konzistentní nízkou latenci jsou lepší kandidáti na kontejnery. Serverless exceluje u event-driven workloads s nepředvídatelným provozem.

AWS Lambda — veterán serverless

AWS Lambda odstartovala serverless revoluci v roce 2014. V roce 2018 nabízí:

  • Runtime: Node.js 8.10, Python 3.6, Java 8, Go 1.x, C# (.NET Core 2.0)
  • Memory: 128 MB – 3 GB (CPU se škáluje proporcionálně)
  • Timeout: max 5 minut (pro většinu use cases dostačující)
  • Integrace: API Gateway, S3, DynamoDB, SQS, SNS, Kinesis, Step Functions

Největší výhoda Lambdy je ekosystém. Každá AWS služba umí triggerovat Lambda funkci. Step Functions umožňují orchestraci komplexních workflow. SAM (Serverless Application Model) zjednodušuje deployment.

Azure Functions — Microsoft v serverless hře

Azure Functions vstoupily na trh v roce 2016 a rychle dohánějí:

  • Runtime: C#, JavaScript, F#, Java (preview), Python (experimental)
  • Durable Functions: stateful orchestrace — to Lambda nemá nativně
  • Binding model: deklarativní input/output bindings šetří boilerplate kód
  • Hybrid: Azure Functions runtime běží i on-premise (Kubernetes)
// Azure Functions — Durable orchestration
[FunctionName("OrderProcessing")]
public static async Task RunOrchestrator(
    [OrchestrationTrigger] DurableOrchestrationContext ctx)
{
    var order = ctx.GetInput<Order>();
    await ctx.CallActivityAsync("ValidateOrder", order);
    await ctx.CallActivityAsync("ChargePayment", order);
    await ctx.CallActivityAsync("ShipOrder", order);
    await ctx.CallActivityAsync("SendConfirmation", order);
}

Cold start — elefant v místnosti

Cold start je hlavní bolest serverless. Když funkce nebyla vyvolána delší dobu, provider musí nastartovat nový kontejner. Naměřili jsme:

  • AWS Lambda (Node.js): 150–400 ms cold start
  • AWS Lambda (Java): 3–8 sekund (JVM startup)
  • Azure Functions (C#): 500 ms – 2 s (Consumption plan)
  • Azure Functions (C#): ~0 ms (Premium plan — pre-warmed instances)

Pro API endpointy, kde uživatel čeká na odpověď, je cold start problém. Řešení: warm-up pinging (CloudWatch scheduled events volající funkci každých 5 minut) nebo přechod na provisioned concurrency (Lambda) / Premium plan (Azure).

Pricing — skutečné náklady

Oba provideři účtují per-invocation + per-GB-second:

  • AWS Lambda: $0.20 / milion invocations + $0.00001667 / GB-s
  • Azure Functions: $0.20 / milion invocations + $0.000016 / GB-s
  • Free tier: oba nabízejí 1M invocations + 400K GB-s měsíčně zdarma

Pro nízký až střední provoz je serverless dramaticky levnější než EC2/VM instance. Náš API backend zpracovávající 2M requestů měsíčně stojí na Lambda $12/měsíc. Ekvivalentní EC2 instance by stála ~$50/měsíc.

Pozor na high-throughput scénáře — při 100M+ invocations měsíčně začíná být serverless dražší než dedikované kontejnery.

Monitoring a debugging

Serverless mění způsob, jakým debugujete aplikace. Nemáte SSH přístup na server, nemáte lokální logy. Potřebujete:

  • Distributed tracing: AWS X-Ray, Azure Application Insights
  • Structured logging: JSON logy s correlation ID pro sledování requestu přes více funkcí
  • Alerting: CloudWatch Alarms / Azure Monitor na error rate, duration, throttling

Vendor lock-in — reálné riziko?

Serverless Framework (serverless.com) abstrahuje provider-specifické detaily a umožňuje deployment na AWS, Azure i GCP. V praxi ale většina hodnoty serverless pochází z provider-specifických integrací (API Gateway + Lambda, Event Grid + Functions). Přenositelnost je tedy spíše teoretická.

Doporučujeme: pište business logiku jako čisté funkce bez závislosti na provider SDK. Handler (vstupní bod) je tenká vrstva, kterou můžete vyměnit. Core logic zůstává přenositelná.

Serverless je produkčně ready — s výhradami

Pro event-driven workloads, API backendy s proměnlivým provozem a data processing pipeline je serverless v roce 2018 skvělá volba. Vyhněte se mu u latency-sensitive aplikací a dlouhoběžících procesů. AWS Lambda má širší ekosystém, Azure Functions nabízí lepší developer experience pro .NET tým. Volba závisí na vašem stávajícím cloud providerovi.

gdprcompliancesecuritydata protection