Cloud-Native Applications
Cloud-native applications are designed to exploit cloud advantages: scalability, resilience, manageability, and observability.
Microservices
Decompose into small, independent services communicating over APIs. Each owns its data, deploys independently. Benefits: independent scaling, fault isolation. Challenges: distributed complexity, data consistency.
API Gateway
Single entry point handling routing, authentication, rate limiting, load balancing. AWS API Gateway, Kong, Nginx.
Event-Driven Architecture
Events trigger and communicate between services. Message queues (SQS, RabbitMQ) for async. Event streaming (Kafka, Kinesis) for real-time. Loosely coupled and scalable.
12-Factor App
Best practices: one codebase, explicit dependencies, config in environment, stateless processes, port binding, concurrency, disposability, dev/prod parity, logs as event streams.
Service Mesh
Istio, Linkerd manage service-to-service communication: traffic management, mTLS security, observability, retries, circuit breakers.
Serverless Patterns
API backend (Lambda + API Gateway), event processing, scheduled tasks, stream processing, chatbots.
Summary
Cloud-native uses microservices, events, containers, and serverless to fully leverage cloud capabilities.