Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Hosting Capabilities compared

Thorsten Hans
December 16, 2022

Cloud Hosting Capabilities compared

Cloud-Native-Anwendungen bestechen auch dadurch, dass Sie in unterschiedlichen Umgebungen betrieben werden können. Neben On-Premises-Umgebungen bieten Public-Cloud-Anbieter wie Microsoft mit Azure viele unterschiedliche Dienste für den Betrieb. Doch was sind die Charakteristiken und Diensteigenschaften, auf die Sie achten sollten? Und welchen Dienst sollten Sie denn nun wirklich nutzen? Diese und weitere Fragen beantwortet Cloud-Native-Enthusiast Thorsten Hans in seinem Webinar und hilft Ihnen dabei, die vielen Dienste korrekt einzusortieren und zu differenzieren.

Thorsten Hans

December 16, 2022
Tweet

More Decks by Thorsten Hans

Other Decks in Technology

Transcript

  1. What we won’t cover • Managing virtual machines • Both

    On-Premises and in some sort of cloud • This includes solutions like Hyper-V, vSphere, etc • Azure Functions • Opinionated serverless programming model that could be used as additive platform for dedicated workloads of a bigger system Non-Scope
  2. The goal of this talk is to provide you with

    enough information to choose the correct hosting platform for your (cloud-native) application.* * In this talk, public cloud means Azure Introduction – The Goal
  3. Developers and Architects should choose the desired application platform wisely,

    because altering the infrastructure and application platform later in the project lifecycle will become cumbersome, pricey, and time intense. Introduction
  4. Questions raised in the context of hosting cloud-native apps •

    Do I have to use the public cloud? • Should I use Containers, or am I good without Containers? • Cloud-Native means Kubernetes, right? Introduction
  5. How to digest through the vast amount of platforms, services,

    abstractions, and products especially those, offered by public cloud-vendors? Introduction
  6. • Every team / decision maker should implement a model

    to verify & compare potential hosting platforms to host their application(s) • Finding and selecting the best hosting platform is not a one-time- shot Implementing a decision model
  7. Ask yourself if your decision could be affected by regulatory

    compliance? • Regulatory Compliance may be introduced by: • Your actual application • Your domain (vertical) • Your organization • Your customers • Regulatory Compliance will impact / limit selection process Implementing a decision model
  8. Identify key criterias that drive your decision • Location (OnPrem|Cloud)

    • Expenditure Model (CapEx|OpEx) • Infrastructure Security Responsibility (User|Vendor) • Platform Upgrades (User|Vendor) Implementing a decision model
  9. Identify key criterias that drive your decision • Maintenance •

    Responsibility • Control • Deployment Model • Complexity • Vendor Lock-In • Scalability • Availability • Automation • Freshness Implementing a decision model
  10. Identitfy actual Hosting opportunities • Mixed-Mode (Containers & Binaries) •

    Docker-Compose • Self-Hosted Kubernetes • Managed-Kubernetes • Platform as a Service • Serverless Implementing a decision model
  11. Cloud-Native apps On-Premises • First of all, it is possible

    • Actually, your apps and/or components are not complicated to run/host, the dependencies are • Dependencies use different technology stacks which you may not want to maintain • E.g. Python, Go, Rust, Ruby, .NET, Scala, … • Leveraging Containers makes running those dependencies a easier • Your apps and/or components could still be hosted on metal (IIS | Self-Host | Service) Hosting Guidance
  12. Kubernetes On-Premises • You can install and run Kubernetes On-Premises

    (obviously) • You should do that only if you’ve an experienced Ops-Team • It is smart to use a managed Kubernetes distribution (like Tanzu, Rancher) if you really want to run Kubernetes on your metal • It is even smarter to rent Kubernetes in a private datacenter (check with your private cloud vendor, we see more and more managed Kubernetes offerings in private clouds) Hosting Guidance
  13. Hosting Cloud-Native apps in Azure Let’s digest through some Azure

    Services that we could use to run cloud-native applications • Azure App Services • Azure Web App • Azure Web App for Containers • Azure Kubernetes Service (AKS) • Azure Container Instance (ACI) • Azure Container Apps (ACA) Hosting Guidance
  14. Azure Services Compared: Azure App Services • Most mature Azure

    service to run cloud-native workloads • Windows and Linux workloads supported • Linux-based App Services always run behind a reverse proxy and always leverage containers • Windows-based Azure App Services are twice as expensive as Linux-based • Does not support things like Dapr Hosting Guidance
  15. Azure Services Compared: Azure App Services • Observability • Users

    typically intergrate workloads running in Azure App Services with Azure Application Insights and Azure Monitor (Azure Log Analytics Workspace) • Scalability • Users can configure custom scaling behavior ( using existing metrics exposed by Azure itself ) Hosting Guidance
  16. Azure Services Compared: Azure Kubernetes Service • Managed Kubernetes offering

    • Microsoft runs the Kubernetes Control Plane for you • Control Plane is free with an optional fee (~ $80 per Month) to get SLA • Fasted growing Azure Service ever • Integrations with AzureAD, Microsoft Defender for Cloud, Azure Policy etc are Azure-specific Hosting Guidance
  17. Azure Services Compared: Azure Kubernetes Service • Observability • AKS

    supports all popular observability stacks. • Altough your app runs in Azure, you don’t have to use Azure Monitor (Azure Log Analtytics integration) • Scalability • Horizontal Scaling on infrastructure level (AKS cluster itself) is configured on the level of the Node Pool • Actual scaling behavior can be customized • Horizontal Scaling of application components is achieved using standardized Kubernetes patterns e.g. HorizontalPodAutoscaler Hosting Guidance
  18. Azure Services Compared: Azure Container Instances • Serverless Container Platform

    • Good to run background-jobs that are not time-intense • ACI can run Windows and Linux Containers • Configuration Data, Storage etc is linked to the container upon deployment Hosting Guidance
  19. Azure Services Compared: Azure Container Instances • Observability • Users

    typically intergrate workloads running in Azure Container Instances with Azure Application Insights and Azure Monitor (Azure Log Analytics Workspace) • Scalability • Users can not scale containers in ACI • However multiple containers can be deployed at the same point in time Hosting Guidance
  20. Azure Services Compared: Azure Container Apps • Serverless Cotnainer Runtime

    • Based on top of Azure Kubernetes Service, KEDA, DAPR, and Envoy Proxy • Hides Kubernetes complexity from the user • Consumption based pricing model • Seamless integration with many other Azure Services Hosting Guidance
  21. Azure Services Compared: Azure Container Apps • Observability • Azure

    Container Apps stream service and application logs to Azure Log Analytics Workspace • Native Azure Monitor integration has just landed in public preview • Scalability • Users can configure individual scaling per container using KEDA scaling rules Hosting Guidance
  22. Categorize Azure Services by cloud layer • Platform as a

    Service • Azure App Services • Azure Web App • Azure Web App for Containers • Managed Kubernetes • Azure Kubernetes Service (AKS) • Serverless • Azure Container Instance (ACI) • Azure Container Apps (ACA) Hosting Guidance
  23. Categorize Azure Serivces by type of distributable • Compilation Artifacts

    • Azure App Services • Azure Web App • Container Images • Azure App Services • Azure Web App for Containers • Managed Kubernetes • Azure Kubernetes Service (AKS) • Serverless • Azure Container Instance (ACI) • Azure Container Apps (ACA) Hosting Guidance
  24. Cloud-Native apps in Azure • Use Kubernetes only if there

    is a actual need for it • For many applications Azure Container Apps is more than enough • Keep in mind, that non-Kubernetes opportunities lead to a cloud-vendor-lock-in • App Services with Containers (Azure Web App for Containers) may need some special treatment (sometimes) • There are quotas that constraint the number of container groups you can deploy to Azure Container Instances (ACI) per Hour (actually 300 -> could be increased by filing a support request) Hosting Guidance
  25. • Check Regulatory Compliance as early as possible because they

    will affect your decision • If you have to do multi-cloud use Kubernetes • Use Kubernetes only if you have to! • Consider running Kubernetes on your own only when you’ve a team that knows Kubernetes and takes care about it • Consider building you app as cloud-agnostic as possible • Ask the “run vs rent” question for every dependency Conclusion