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

Cloud-Native Apps: Standardisierte Deployments ...

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!

Thorsten Hans

July 07, 2021
Tweet

More Decks by Thorsten Hans

Other Decks in Technology

Transcript

  1. 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
  2. What we will cover today • Introduction • What is

    CNAB • What is Porter • Why should one use it • Adopting the Porter workflow Talking Points
  3. 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
  4. 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
  5. 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)
  6. What we will cover today • Introduction • What is

    CNAB • What is Porter • Why should one use it • Adopting the Porter workflow Talking Points
  7. 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
  8. Anatomy of a CNAB bundle What is CNAB Application Image(s)

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

    Container Image • Containerized applications are typical use-case • But not mandatory What is CNAB
  10. 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
  11. 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
  12. 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
  13. What we will cover today • Introduction • What is

    CNAB • What is Porter • Why should one use it • Adopting the Porter workflow Talking Points
  14. 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
  15. 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
  16. Porter mixins - Porter mixins are managed using the porter

    mixin commands - Available mixins - az, aws, gcloud - exec - terraform - Kubernetes, helm2, helm3 What is Porter
  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. • 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
  19. • Simplifies cloud-native application lifecycle • Everything becomes version-controlled •

    Installing, and upgrading cloud-native applications becomes • atomic • easy Why should one use it
  20. What we will cover today • Introduction • What is

    CNAB • What is Porter • Why should one use it • Adopting the Porter workflow Talking Points
  21. 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