8. Why serverless on Azure as app developer?
• Why cloud?
• Connectivity, Scalability, Security, Availability, …
• Necessary services out of the box: e.g. push notifications
• Why “serverless”?
• No server management/maintenance
• Only charged for use, very scalable
• Quick deployments
• Minimal IT intervention
• Downsides?
• Not best fit for all architectures
• Vendor lock-in possible
• Harder to debug (but we all write unit tests right )
9. Why use Docker?
• Lift and shift existing applications
• And then gradually move to micro-services
• Use less resources than virtual machines
• Standardization
• Repeatable dev / build / test / production cycle
• No more “works on my machine”
• Multi-cloud platform (Azure, AWS, Google Cloud, …)
• Scale easily
• If application is built for it
• Get started with new technology very fast
• Docker Hub has an image for ‘everything’
10. When not to use Docker?
• Run as fast as bare-metal
• Every containerization/virtualization method comes with overhead
• Provide cross-platform compatibility
• Can still be tied to Windows / Linux container
• Run applications with rich graphical user interfaces
• Solve all your security problems
• Added security through isolation
• Brings its own security challenges
• When you need state in your container
• When another technology is better for the task
11. Run docker images on Azure
Azure App Service
Azure Kubernetes Service (AKS)
Azure Container Instances
Service Fabric
Service Fabric Mesh
12. Where to get docker images from?
• Quickstart (Nginx or Python)
• Docker Hub
• Azure Container Registry
• Private Registry
14. What about storage?
Database (SQL, MySQL, MariaDB, PostgreSQL, …)
Storage account (Blob, Table, Queue, File)
CosmosDB (SQL, Table, NoSQL, Graph with # APIs)
Redis Cache
…
15. Storage in the picture: Blob storage
• Part of Azure Storage Accounts
• In most cases you will use General Purpose v2 SA
• Blob, File, Queue, Table, Disk, and Data Lake Gen2
• For storage / backup of unstructured data in any file type
• Cost-efficient tiers: Hot, Cold, Archive
• Multiple replication options: Local, Zone, Geo, Geo-zone
• Encrypted by default
• Secured through AAD, Shared Key or Shared Access Signature
16. Storage in the picture: CosmosDB
• Globally distributed, multi-model database service
• Guaranteed
• High availability (99.999% -> 5min15s per year)
• Low latency (<10ms)
• High througput (reserved RUs)
• Data is horizontally partitioned, prevent ‘hot spots’ (R and W)
• Automatically indexed
• Pick the API you want
18. Our solution is running, but what does it cost?
• Before your start: Azure Pricing Calculator
• Select all used services
• Estimate amount of data, transactions, …
• Rough first idea, but not very accurate in most cases
19. Our solution is running, but what does it cost?
• While running: Azure Cost Management
• Actual cost until today per resource type or resource group
• Forecast of the cost based on historical data
20. Cost: learn from the numbers
• Sometimes a certain service is a must
• But quite often the solution is flexible
• Choose cheaper options when available
• Looking at our Docker containers:
• Run all the time? Maybe switch to Container Instances
• Other options?
30. Pick the right tool for the right job!
• App Service
• Virtual Machine
• Docker Containers
• Azure Functions
• …
• And combine them to achieve your solution
• And keep an eye on the cost