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

DevOpsCon 2023 Munich - Common Cloud Migration Pain Points and how to overcome them

DevOpsCon 2023 Munich - Common Cloud Migration Pain Points and how to overcome them

My lecture at DevOpsCon 2023 in Munich.


There are different obstacles, respectively challenges that you’re facing when starting almost from scratch with the cloud migration of your application. They are related to architectural aspects: what about the structure, what about the components of the microservice, which has to be established in the cloud? Which services of the cloud provider should be used, e.g. Serverless services or a Kubernetes service? They are related to technical issues - probably common mistakes, as example: inappropriate deployment rules of workloads, scheduling problems of Kubernetes pods, wrong or missing policy settings for pulling container images, etc. They can be referred to financial aspects: what costs can be expected after implementing a minimum viable product or in future by hosting a productive environment for your customer? I’ve faced several of those issues and would like to reveal my approaches by providing explanations about real implementations.

Patrick Koch

December 07, 2023

More Decks by Patrick Koch

Other Decks in Technology


  1. Patrick Koch AVL List GmbH (Headquarters) Public Common Cloud Migration

    Pain Points and how to overcome them based on practical experience
  2. Today’s Agenda 3 What happened before the cloud? Once upon

    a time ... and it‘s still 1 Who is this guy? 2 Introduction Omg, what do we need to do? Why do we need to migrate to the cloud? Conclusion 5 The pain points Of course, we didn‘t avoid making embarrassing mistakes ;) 4 Q&A 6
  3. AVL List GmbH Founded 1948 More than 11,000 worldwide 4,000

    in Graz (headquarters) 45 affiliates worldwide Export quota of 97% AVL List GmbH (“AVL”) is the world’s largest independent company for development, simulation and testing in the automotive industry, and in other sectors. Drawing on its pioneering spirit, the company provides concepts, solutions and methodologies to shape future mobility trends.”
  4. Evolved to platform product Container, K8s Automation Framework Web components

    Started > 25 years ago Python support REST interface 2014 New Generation (unmanaged legacy (C++) and managed (C#) code). Windows® application (component & full integration in internal products) 2018 ~ 8200 files ~ 2,9 Mio LOC Linux components (data, Python) 2022 ... “A legacy system is outdated computing software and/or hardware that is still in use. ” ~ 800 customers ~ 23000 users The application to migrate in the cloud: AVL CONCERTO
  5. An evolution happens – why even more automation, and more

    data? 2021 .. Huge testbed for single unit under test (UUT) 1 Operator per testbed Very high costs Exchanging of unit is labour-intesive One testing unit for multiple UUTs (Battery Cells) 1 Operator for whole lab Costs per UUT are much lower UUT exchange works automated 2021 ..
  6. Cloud Migration Strategy Decide for a strategy before starting the

    implementation Lift & Shift (Rehost) Whole application is taken and pushed into container not possible / would cause to much costs Refactoring Rebuild
  7. Lift and shift to container using Azure Kubernetes Service Source:

    https://docs.microsoft.com/de-de/azure/architecture/solution-ideas/articles/migrate-existing-applications-with-aks “Easily migrate existing application to container(s) and run within the Azure managed Kubernetes service (AKS)”
  8. The goal of the first implementation Azure Container Registry Azure

    Kubernetes Service Azure Virtual Machine Azure File Share Container 1 2 3 4
  9. The faults 1. ACR not properly attached with AKS 2.

    Missing statements in Workload 3. Wrong Firewall Settings
  10. The faults 1. ACR not properly attached with AKS 2.

    Missing statements in Workload 3. Wrong Firewall Settings nodeSelector: kubernetes.io/os: windows tolerations: - key: "kubernetes.io/os" operator: "Equal" value: "windows" effect: "NoSchedule" restartPolicy: Never backoffLimit: 4
  11. The faults 1. ACR not properly attached with AKS 2.

    Missing statements in Workload 3. Wrong Firewall Settings
  12. Manual Provisioning of the resources e.g.: Creating a Kubernetes Cluster

    in Azure Can you reproduce your environment after the destruction?
  13. Use Infrastructure as Code resource "azurerm_resource_group" "example" { name =

    "example-resources" location = "West Europe" } resource "azurerm_kubernetes_cluster" "example" { name = "patricks-aks" location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name dns_prefix = "exampleaks1" default_node_pool { name = "default" node_count = 1 vm_size = "Standard_D2_v2" } Terraform Configuration Azure Kubernetes Service
  14. Automated Resource Provisioning in Azure with ADO Pipelines and Terraform

    Terraform Configurations Azure Azure DevOps Pipeline
  15. Conclusion Decide for a Cloud Migration Strategy Avoid to start

    with a too complex implementation – start lightweight Don‘t do manual provisioning – use Infrastructure as Code Monitoring of the costs, increase the automation
  16. https://pixabay.com/de/photos/geb%C 3%A4ude-kran-baustelle- ger%C3%BCstbau-1804030/ https://pixabay.com/photos/car- citroen-france-vintage-vehicle- 2184905/ Windows: https://commons.wikimedia.org/wiki/File:Windows_ Logo_(1992-2001).svg PCs:

    https://www.impulse.de/wp- content/uploads/2015/10/gebrauchte- hardware_fotolia620-620x340.jpg Python: https://www.python.org/ Linux: https://upload.wikimedia.org/wikipedia/commons/d /dd/Linux_logo.jpg Slide 6 Slide 7 Slide 10 Picture Sources www.avl.com Slide 8 Engine Test Bed: avl.com Battery Cell: https://www.avl.com/en/testing- solutions/e-mobility-testing/battery-testing/avl- battery-cell-ts Slide 11
  17. Picture Sources AKS Icon: https://learn.microsoft.com/en- us/azure/architecture/icons/ Azure Container Instance Icon:

    https://learn.microsoft.com/en- us/azure/architecture/icons/ Screenshot: Microsoft - Azure Portal https://portal.azure.com Azure VM Icon: https://learn.microsoft.com/en- us/azure/architecture/icons/ AKS Icon: https://learn.microsoft.com/en- us/azure/architecture/icons/ Azure Share Icon: https://learn.microsoft.com/en- us/azure/architecture/icons/ ACR Icon: https://learn.microsoft.com/en- us/azure/architecture/icons/ Container Icon: https://icons8.de/icons/set/container Screenshot: Microsoft - Azure Portal https://portal.azure.com Slide 17, 18, 19, 20 Slide 21 Slide 24 Screenhots: Microsoft - Azure Portal https://portal.azure.com Slide 23 and Slide 26 Screenhot: https://azure.microsoft.com/en- us/pricing/calculator/ Slide 27