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

Cloud-Native Apps: Standardized deployments for Azure with Porter

Cloud-Native Apps: Standardized deployments for Azure with Porter

Application deployment is complicated and error-prone. Especially when it comes to cloud-native apps. Numerous tools have to work seamlessly hand-in-hand to ensure deployments are successful. The Cloud Native Application Bundles (CNAB) specification defines how cloud-native apps are distributed, deployed, upgraded, and retracted, including their dependencies. Porter - an open-source implementation of CNAB - empowers users to bake everything into a distributable, atomic unit to guarantee frictionless deployments. Cloud infrastructure, container images, helm charts, configuration scripts, or even custom code, with Porter, you can tidy up and standardize all mission-critical processes in the application lifecycle.

Join this webinar with Azure-MVP Thorsten Hans and learn the fundamentals of CNAB and Porter. See how to master the journey to standardize your cloud-native app deployment.

6848c06ef647ab606c668cc5264c0fc9?s=128

Thorsten Hans

August 26, 2021
Tweet

Transcript

  1. Cloud-Native Apps: standardized deployments for Azure with 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 • Why should one use it • What is Porter • 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 • Why should one use it • What is Porter • 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 • Why should one use it • What is Porter • Adopting the Porter workflow Talking Points
  18. • Keep using the tools you know and love •

    Abstract away the complexities with a single command • 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 • Why should one use it • What is Porter • Adopting the Porter workflow Talking Points
  21. 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
  22. 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
  23. Porter mixins - Porter mixins are managed using the porter

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

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

    CNAB • Why should one use it • What is Porter • Adopting the Porter workflow Talking Points
  26. What was the outcome of the poll

  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