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

Cloud-Native Apps: Standardisierte Deployments für Azure mit Porter

Cloud-Native Apps: Standardisierte Deployments für Azure mit Porter

Mit Cloud Native Application Bundle (CNAB) wurde ein Standard definiert, der besagt wie Cloud-Native-Anwendungen mitsamt der notwendigen Abhängigkeiten verteilt, aktualisiert und entfernt werden können. Porter ist eine - von Microsoft vorangetriebene - Open-Source Referenz-Implementierung von CNAB. Ein Paket, alles drin!
Ob Cloud-Infrastruktur, Helm Charts, Container Images, Konfiguration von PaaS-Diensten oder der eigene Code: mit Porter schaffen Sie endlich Ordnung und standardisieren die kritischen Prozesse im Lebenszyklus einer modernen Anwendung.

Azure-MVP Thorsten Hans zeigt in diesem Talk, wie Sie Porter einsetzen können um auch Ihre Anwendung sicher, standardisiert und kontrolliert in die gewünschte Zielumgebung zu bringen. Es wird Zeit Cloud-Native zu werden!

6848c06ef647ab606c668cc5264c0fc9?s=128

Thorsten Hans

July 07, 2021
Tweet

Transcript

  1. Cloud-Native Apps: Standardisierte Deployments in Azure mit Porter Thorsten Hans

    @ThorstenHans Consultant
  2. Consultant @ Thinktecture #Azure #Kubernetes #CloudNative #Terraform thorsten.hans@thinktecture.com thinktecture.com thorsten-hans.com

    @ThorstenHans Thorsten Hans
  3. What will you see today - We will ”install” a

    cloud-native application which consists of - Some cloud infrastructure automated with Terraform - Dependencies being deployed to Kubernetes using Helm - A containerized application, being deployed to Kubernetes as a helm chart Preview
  4. What we will cover today • Introduction • What is

    CNAB • What is Porter • Why should one use it • Adopting the Porter workflow Talking Points
  5. Why are we talking about that • Distributed (cloud-based or

    cloud-native) apps consist of many artifacts • Infrastructure • Application binaries (packages, containers, functions) • Related services • Configuration Data (sensitive and non-sensitive) • Rather complex toolchains are used to manage and interact with them Introduction
  6. Why are we talking about that Build & test the

    app Build and push Docker image(s) Provision cloud infrastructure Configure cloud infrastructure Deploy dependencies Deploy application Introduction P
  7. Why are we talking about that Introduction az (Azure CLI)

    Bash (Shell Scripts) PowerShell (PowerShell Scripts) terraform (Terraform CLI) tfenv (Terraform Version Manager) nvm (Node Version Manager) npm (Node Package Manager) dotnet (.NET CLI) docker (Docker CLI) kubectl (Kubernetes CLI) helm (Helm CLI) CMD (Batch Files) azcopy (Azure Storage Copy) bicep (Project Bicep CLI)
  8. Why are we talking about that Introduction Source: https://media.giphy.com/media/rnTXYK5dIKEtGdQAO2/source.gif

  9. There is hope Introduction Source: https://media.giphy.com/media/J1nr4o7oolWz6/source.gif

  10. What we will cover today • Introduction • What is

    CNAB • What is Porter • Why should one use it • Adopting the Porter workflow Talking Points
  11. https://cnab.io/ - Cloud-Native Application Bundles (CNAB) - Specifies how distributed

    apps are packaged, installed, mutated, and destroyed - CNAB is cloud agnostic - CNAB artifacts are - easy to share / consume - signed to verify integrity - consumed and stored in trusted locations What is CNAB
  12. Anatomy of a CNAB bundle What is CNAB Application Image(s)

    Invocation Image Bundle Descriptor Cloud Native Application Bundle
  13. Application Image(s) • Your good old application image • (Docker)

    Container Image • Containerized applications are typical use-case • But not mandatory What is CNAB
  14. Invocation Image • Technically it is a container image •

    The invocation image contains all required tools • Desired tool configuration applied • Desired version is installed • It contains all templates, manifests, metadata, and configuration • THIS IS THE CLOUD-INSTALLER What is CNAB Source https://media.giphy.com/media/mXnO9IiWWarkI/source.gif
  15. Bundle Descriptor • JSON document containing essential information about the

    CNAB bundle • Application image(s) with its/their digests • Invocation image with its digests • Definitions of inputs and outputs • Can be singed What is CNAB
  16. CNAB Distribution Channels • Bundles are OCI compliant aritfacts •

    The can be stored in OCI Registries • For example a Docker Registry such as Azure Container Registry (ACR) What is CNAB
  17. What we will cover today • Introduction • What is

    CNAB • What is Porter • Why should one use it • Adopting the Porter workflow Talking Points
  18. https://porter.sh/ - Open-source CNAB implementation - Establishes patterns to improve

    productivity - Parameters - Outputs - Credentials - Mixins - Makes authoring CNAB bundles easy and offers a single CLI What is Porter
  19. The Porter Manifest - Single YAML Manifest provides all capabilities

    - Porter creates a CNAB bundle from the manifest - Required tools (mixins) will be added to the invocation image by Porter - Dockerfile template can be fully customized - if required What is Porter
  20. Porter mixins - Porter mixins are managed using the porter

    mixin commands - Available mixins - az, aws, gcloud - exec - terraform - Kubernetes, helm2, helm3 What is Porter
  21. What happens where Porter Interactions local machine Invocation image destination

    Parameters and Credentials Actions and Steps
  22. What we will cover today • Introduction • What is

    CNAB • What is Porter • Why should one use it • Adopting the Porter workflow Talking Points
  23. • Keep using the tools you know and love •

    Abstract away the complexities with a single command (porter) • Eleminate truck factor • Establish trust • by signing bundles • by distributing your applications using trusted channels Why should one use it
  24. • Simplifies cloud-native application lifecycle • Everything becomes version-controlled •

    Installing, and upgrading cloud-native applications becomes • atomic • easy Why should one use it
  25. What was the outcome of the poll

  26. What we will cover today • Introduction • What is

    CNAB • What is Porter • Why should one use it • Adopting the Porter workflow Talking Points
  27. Demo Time § Provision Azure Resource to deal with Terraform

    state correctly § Use Terraform to spin-up the application platform (AKS) § Install 3rd party dependencies in the cluster (NGINX Ingress) § Deploy the application (containerized .NET API) in the cluster Adopting the Porter workflow
  28. Q&A If you have further questions: shoot me a mail

    at thorsten.hans@thinktecture.com / thorsten.hans@gmail.com or tweet at @ThorstenHans