Podstawowe pojęcia
Cloud Computing
Dostarczanie zasobów IT (serwery, bazy, sieci, oprogramowanie) przez Internet na żądanie, w modelu pay-as-you-go. Eliminuje konieczność zarządzania fizyczną infrastrukturą.
IaaS — Infrastructure as a Service
Dostajesz surową infrastrukturę: VM, sieci, dyski. Zarządzasz OS i wszystkim wyżej. Przykłady: EC2 (AWS), Compute Engine (GCP), Azure VMs.
PaaS — Platform as a Service
Dostajesz platformę do uruchomienia aplikacji — nie musisz zarządzać OS. Przykłady: App Engine (GCP), App Service (Azure), Elastic Beanstalk (AWS).
SaaS — Software as a Service
Gotowe oprogramowanie przez przeglądarkę. Zarządzasz tylko danymi i użytkownikami. Przykłady: Gmail, Office 365, Salesforce, GitHub.
Serverless / FaaS
Uruchamiasz kod bez zarządzania serwerami. Płacisz za wywołania funkcji, nie za czas działania VM. Przykłady: Cloud Functions (GCP), Azure Functions, Lambda (AWS).
Region vs Availability Zone
Region = geograficzna lokalizacja (np. europe-west1). AZ (Strefa dostępności) = fizycznie odizolowane centrum danych w regionie. Wdrożenie w wielu AZ = wysoka dostępność (HA).
Chmura Publiczna / Prywatna / Hybrydowa
Publiczna: zasoby od zewnętrznego dostawcy (GCP/Azure/AWS). Prywatna: własne centrum danych. Hybrydowa: połączenie obu — wrażliwe dane on-premise, reszta w chmurze.
Skalowanie: Poziome vs Pionowe
Pionowe (scale up): więcej CPU/RAM dla jednej maszyny. Poziome (scale out): więcej instancji za load balancerem. Chmura preferuje skalowanie poziome — tańsze i bardziej niezawodne.
Kluczowe usługi — porównanie dostawców
Kategoria GCP Azure AWS
Maszyny wirtualneCompute EngineVirtual MachinesEC2
Kubernetes (zarządzany)GKEAKSEKS
Serverless (funkcje)Cloud Functions / Cloud RunAzure FunctionsAWS Lambda
Object StorageCloud Storage (GCS)Blob StorageS3
Relacyjna baza danychCloud SQL / AlloyDBAzure SQL / PostgreSQLRDS / Aurora
NoSQL baza danychFirestore / BigtableCosmos DBDynamoDB
Data WarehouseBigQuerySynapse AnalyticsRedshift
Load BalancerCloud Load BalancingAzure Load Balancer / App GatewayELB / ALB / NLB
CDNCloud CDNAzure CDN / Front DoorCloudFront
DNSCloud DNSAzure DNSRoute 53
Sieć prywatna (VPN)Cloud VPN / InterconnectVPN Gateway / ExpressRouteVPN Gateway / Direct Connect
IAM / UprawnieniaCloud IAMAzure AD / RBACAWS IAM
Monitoring / LogiCloud Monitoring / LoggingAzure Monitor / Log AnalyticsCloudWatch
ML / AIVertex AIAzure ML / AI ServicesSageMaker / Bedrock
CI/CDCloud Build / Artifact RegistryAzure DevOps / ACRCodePipeline / ECR
Bezpieczeństwo i dobre praktyki
🔒
Principle of Least Privilege Każda usługa i użytkownik powinni mieć tylko tyle uprawnień, ile faktycznie potrzebują. Nigdy nie dawaj uprawnień admin "na wszelki wypadek".
🗝️
Nie przechowuj sekretów w kodzie Używaj dedykowanych usług: Secret Manager (GCP), Key Vault (Azure), Secrets Manager (AWS). Sekrety w kodzie = naruszenie bezpieczeństwa.
🌐
Zawsze używaj VPC / sieci prywatnej Zasoby nie powinny być domyślnie publiczne. Bazy danych, serwery aplikacji — w sieciach prywatnych, dostęp przez load balancer lub VPN.
📋
Taggowanie zasobów Taguj wszystkie zasoby (środowisko, projekt, właściciel, koszt). Umożliwia rozliczanie kosztów, audyt i porządkowanie infrastruktury.
💰
Monitoruj koszty od dnia 1 Ustaw alerty budżetowe zanim poniesiesz koszty. Zapomniane zasoby (VM, dyski, stałe IP) kosztują pieniądze nawet gdy nie działają.
🔁
Infrastructure as Code (IaC) Zarządzaj infrastrukturą przez kod (Terraform, Pulumi). Ręczne klikanie w konsoli jest niepowtarzalne i trudne do audytu.
Google Cloud Platform — Wprowadzenie
Czym jest GCP?
Platforma chmurowa Google. Mocna strona: analizowanie danych (BigQuery), machine learning (Vertex AI), Kubernetes (Google wynalazło K8s). Popularna w data engineering i ML.
Organizacja zasobów
Organization → Folder → Project → Resources. Każdy zasób należy do projektu. Projekt = izolowana jednostka rozliczeniowa. Twórz osobny projekt per środowisko (dev/stage/prod).
Główne narzędzia
gcloud — CLI do zarządzania zasobami. gsutil — Cloud Storage. bq — BigQuery. kubectl — GKE. Zainstaluj Google Cloud SDK i pracuj z terminala.
IAM w GCP
Principal (kto) + Role (co może) + Resource (na czym). Role predefiniowane np. roles/storage.objectViewer. Service Account = tożsamość dla aplikacji/VM.
Kluczowe usługi GCP
BigQuery
Serverless data warehouse. Analizujesz terabajty danych SQL-em bez zarządzania klastrem. Bezpłatne 10 GB storage + 1 TB zapytań/miesiąc. Klucz do sukcesu: partycjonowanie i klastrowanie tabel.
Cloud Run
Uruchamiaj kontenery serverless. Skaluje się do zera (płacisz tylko za żądania). Idealny do API, webhooków, mikroserwisów. Prostszy niż GKE, potężniejszy niż Cloud Functions.
Cloud Storage (GCS)
Object storage. Klasy: Standard (częsty dostęp), Nearline (raz/miesiąc), Coldline (raz/kwartał), Archive (raz/rok). Używaj lifecycle rules do automatycznej zmiany klasy.
Cloud SQL / AlloyDB
Cloud SQL: zarządzany MySQL/PostgreSQL/SQL Server. AlloyDB: PostgreSQL-compatible, ~4x szybszy od standardowego PostgreSQL. Dla krytycznych workloadów OLTP.
Pub/Sub
Kolejkowanie wiadomości (messaging). Producent wysyła wiadomości do topic, konsumenci subskrybują. Globalny, skalowalny. Dobry do event-driven architecture i pipeline'ów danych.
Vertex AI
Platforma ML end-to-end: trenowanie, wdrażanie i monitorowanie modeli. Integracja z Gemini API. Zawiera AutoML (bez kodu) i Custom Training (własne modele TF/PyTorch/sklearn).
Konfiguracja — pierwsze kroki z gcloud CLI
1
Zainstaluj Google Cloud SDK ze strony cloud.google.com/sdk. Następnie uruchom: gcloud init
2
Zaloguj się: gcloud auth login — otworzy przeglądarkę z kontem Google.
3
Ustaw projekt domyślny: gcloud config set project PROJEKT_ID
4
Sprawdź konfigurację: gcloud config list
5
Dla Application Default Credentials (ADC) — używane przez SDK w kodzie: gcloud auth application-default login
6
Utwórz nowy projekt: gcloud projects create PROJEKT_ID --name="Mój Projekt"
GCP — Tipy i wskazówki
💡
BigQuery: partycjonuj po dacie Zawsze partycjonuj duże tabele po kolumnie daty (_PARTITIONTIME). Redukuje koszty zapytań o 90%+.
💡
Używaj Service Accounts dla aplikacji Nigdy nie używaj personalnego konta Google w kodzie. Utwórz Service Account z minimalnymi uprawnieniami i pobierz klucz JSON (lub lepiej: użyj Workload Identity).
💡
Cloud Run zamiast VM dla stateless API Dla prostych serwisów HTTP Cloud Run jest tańszy i prostszy niż Compute Engine. Zero zarządzania serwerami, automatyczne skalowanie do zera.
⚠️
Stałe adresy IP kosztują Zarezerwowane External IP, które nie jest przypisane do działającego zasobu = opłata. Zwolnij nieużywane adresy IP.
💡
Preemptible/Spot VM Do zadań które można przerwać (batch, ML training) używaj --preemptible lub --provisioning-model=SPOT. Nawet 80% taniej.
Microsoft Azure — Wprowadzenie
Czym jest Azure?
Platforma chmurowa Microsoft. Mocna strona: integracja z produktami Microsoft (Office 365, Active Directory, .NET), środowiska hybrydowe. Dominuje w przedsiębiorstwach z ekosystemem MS.
Organizacja zasobów
Management Group → Subscription → Resource Group → Resources. Resource Group = logiczny kontener dla zasobów. Zasoby w grupie dzielą region, lifecycle i uprawnienia.
Główne narzędzia
az — Azure CLI (cross-platform). Azure PowerShell — dla Windows/PS użytkowników. Azure Portal — GUI. ARM Templates / Bicep — IaC natywny dla Azure.
IAM w Azure
Azure Active Directory (Entra ID) — zarządzanie tożsamościami. RBAC — role na zasobach (Owner, Contributor, Reader + custom). Managed Identity = Service Account w Azure (bez kluczy).
Kluczowe usługi Azure
Azure Virtual Machines
IaaS. Serie VM: B (burstable, taniej), D (general purpose), E (memory-optimized), N (GPU). Używaj Availability Zones dla HA.
Azure App Service
PaaS do hostowania web apps (.NET, Node, Python, Java, PHP). Wbudowany CI/CD z GitHub/Azure DevOps. Prostszy niż VM — nie zarządzasz OS. Auto-scaling, custom domains, SSL.
Azure Blob Storage
Object storage. Tiers: Hot, Cool, Cold, Archive. Storage Account = kontener na Blob/Queue/Table/File. Lifecycle management automatyzuje przenoszenie między tierami.
Azure SQL Database
Zarządzany SQL Server w chmurze. Modele: DTU (uproszczony) i vCore (pełna kontrola). Serverless tier — skaluje do zera gdy nieużywany. Automatyczne backupy i HA.
Azure Kubernetes Service (AKS)
Zarządzany Kubernetes. Microsoft zarządza control plane (za darmo). Płacisz za worker nodes (VM). Integracja z Azure AD, Defender, Monitor. Upgrade klastra jedną komendą.
Azure DevOps / GitHub Actions
Azure DevOps: Boards (Jira-like), Repos (Git), Pipelines (CI/CD), Artifacts. GitHub Actions + OIDC = nowoczesny CI/CD bez Service Principal keys (Workload Identity Federation).
Konfiguracja — pierwsze kroki z Azure CLI
1
Zainstaluj Azure CLI: winget install Microsoft.AzureCLI lub pobierz z docs.microsoft.com/cli/azure.
2
Zaloguj się: az login — otworzy przeglądarkę z kontem Microsoft.
3
Wyświetl dostępne subskrypcje: az account list --output table
4
Ustaw aktywną subskrypcję: az account set --subscription "NAZWA_LUB_ID"
5
Utwórz Resource Group: az group create --name myRG --location westeurope
6
Sprawdź konfigurację: az configure --list-defaults
Azure — Tipy i wskazówki
💡
Używaj Managed Identity zamiast Service Principal z kluczem Managed Identity = tożsamość zarządzana przez Azure. Nie ma sekretów do rotowania. Przypisz ją do VM/App Service i uwierzytelniaj do innych usług Azure bez haseł.
💡
Resource Groups = lifecycle units Grupuj zasoby, które usuwasz razem. Jedno az group delete --name myRG usuwa wszystko w grupie. Idealnie jeden projekt = jeden RG per środowisko.
💡
Azure Cost Management + budgety Ustaw alert budżetowy w Azure Cost Management. Email gdy przekroczysz X% budżetu. Bezpłatna funkcja dostępna dla każdej subskrypcji.
⚠️
Regiony mają różne usługi i ceny Nie wszystkie usługi są dostępne we wszystkich regionach. Sprawdź products-available-by-region przed projektowaniem architektury.
💡
Bicep zamiast ARM Templates Bicep to DSL nadbudowany nad ARM — czytelniejszy, mniej verbose, w pełni wspierany przez Microsoft. Kompiluje się do ARM JSON.
Amazon Web Services — Wprowadzenie
Czym jest AWS?
Największa platforma chmurowa (~32% rynku). Najszerszy katalog usług (~200+). Mocna strona: dojrzałość, zasięg globalny, ekosystem. Startowy wybór dla większości startupów i enterprise.
Organizacja zasobów
AWS Organizations → Account → Region → VPC → Resources. Izolacja przez konta (Account per środowisko). IAM zarządza dostępem wewnątrz konta. SCP — polityki na poziomie Organization.
Główne narzędzia
aws — AWS CLI v2. CloudFormation — IaC natywny. CDK — Cloud Development Kit (Python/TypeScript → CloudFormation). SAM — Serverless Application Model.
IAM w AWS
Users, Groups, Roles, Policies. Policy = JSON dokument z uprawnieniami. Role = tożsamość do założenia (assume role). IAM Role zamiast Access Keys — dla EC2/Lambda zawsze używaj roli, nie kluczy.
Kluczowe usługi AWS
EC2 — Elastic Compute Cloud
Maszyny wirtualne. Typy: t3/t4g (burstable), m6i (general), c6i (compute), r6i (memory). Spot Instances — do 90% taniej, mogą być przerwane. Reserved — 1-3 lata, duże rabaty.
S3 — Simple Storage Service
Object storage — de facto standard. Klasy: Standard, IA, Glacier Instant/Flexible/Deep Archive. Lifecycle policies, versioning, replication. Globalnie unikalne nazwy bucketów. Publiczny dostęp domyślnie zablokowany.
Lambda
Serverless functions. Obsługuje Python, Node, Java, Go, .NET, Ruby. Maks. 15 minut, 10 GB RAM. Trigger: API Gateway, S3, DynamoDB, SQS, CloudWatch Events. Bezpłatne 1M wywołań/miesiąc.
RDS / Aurora
RDS: zarządzane MySQL, PostgreSQL, MariaDB, Oracle, SQL Server. Aurora: kompatybilne z MySQL/PostgreSQL, ~5x szybsze, auto-skalowanie storage. Aurora Serverless v2 — skaluje się płynnie do zera.
VPC — Virtual Private Cloud
Izolowana sieć w AWS. Zawiera subnets (publiczne/prywatne), Internet Gateway, NAT Gateway, Security Groups (stateful firewall), NACLs (stateless). Każde konto ma domyślny VPC.
CloudFormation / CDK
CloudFormation: IaC przez YAML/JSON szablony. CDK: definiuj infrastrukturę kodem (Python/TS/Java) kompilowanym do CloudFormation. CDK jest nowocześniejszy i wygodniejszy dla deweloperów.
Konfiguracja — pierwsze kroki z AWS CLI
1
Zainstaluj AWS CLI v2: pobierz ze strony docs.aws.amazon.com/cli lub: winget install Amazon.AWSCLI
2
Skonfiguruj dane dostępowe: aws configure — podaj Access Key ID, Secret, region (np. eu-west-1), format output (json).
3
Sprawdź połączenie: aws sts get-caller-identity — zwraca Account ID i ARN użytkownika.
4
Dla wielu profili: aws configure --profile dev i używaj --profile dev w kolejnych komendach lub ustaw AWS_PROFILE=dev.
5
Listuj bucket S3: aws s3 ls. Kopiuj plik: aws s3 cp plik.txt s3://moj-bucket/.
6
Dla EC2 / Lambda / inne: używaj SSO (aws sso configure) zamiast długoterminowych Access Keys — bezpieczniejsze.
AWS — Tipy i wskazówki
💡
Nigdy nie używaj root account na co dzień Root account ma nieograniczone uprawnienia. Utwórz IAM User lub korzystaj z SSO (IAM Identity Center). Root służy tylko do konfiguracji rozliczenia i odzyskiwania dostępu.
💡
Regions: us-east-1 jest najtańszy Wiele usług jest najtańszych lub najwcześniej dostępnych w us-east-1. Ale dla polskich użytkowników eu-central-1 (Frankfurt) lub eu-west-1 (Irlandia) mają mniejsze opóźnienia.
💡
AWS Free Tier Nowe konto ma 12 miesięcy darmowych zasobów: 750h EC2 t2.micro/miesiąc, 5 GB S3, 1M Lambda wywołań. Sprawdź Billing → Free Tier żeby nie przekroczyć limitu.
⚠️
NAT Gateway jest drogi NAT Gateway kosztuje ~$32/miesiąc + transfer. Dla małych projektów rozważ NAT Instance (EC2 t3.nano ~$3/mies.) lub umieść zasoby w publicznych subnetach z SG jako ochroną.
💡
AWS Cost Explorer + Budgets Włącz Cost Explorer od razu. Ustaw AWS Budget z alertem e-mail. Sprawdzaj Cost Anomaly Detection — wykrywa niespodziewane skoki kosztów automatycznie.