Application Development with Azure
Total Page:16
File Type:pdf, Size:1020Kb
Application Development with Azure Karim Vaes Specialist – Azure Application Development 0032 497 219577 @kvaes Agenda • Kubernetes Kubernetes Kubernetes momentum “By 2020, more than 50% of enterprises Larger companies will run mission-critical, containerized are leading the cloud-native applications in production.” adoption. 77% For the organizations running Kubernetes today, 77%1 of those with more than 1,000 developers are running it in production. 1Heptio: state of Kubernetes 2018 What’s behind the growth? Kubernetes: the leading orchestrator shaping the future app development and management It’s widely used It’s vendor-neutral It’s community-supported Kubernetes is in production for A variety of cloud providers There’s a huge community of active global companies across industries1 offer robust Kubernetes support contributors supporting Kubernetes3 24,000 1.1 million contributors contributions since 2016 since 2016 1Kubernetes.io. “Kubernetes User Case Studies.” 2CNCF. “Kubernetes Is First…” 3CNCF. Keynote address. Azure Kubernetes Service (AKS) Ship faster, operate easily, and scale confidently with managed Kubernetes on Azure Manage Kubernetes Accelerate Build on an Run anything, with ease containerized enterprise-grade, anywhere development secure foundation Top scenarios for Kubernetes on Azure Lift and shift Machine Microservices IoT Secure DevOps to containers learning Cost saving Agility Performance Portability Automation without refactoring Faster application Low latency Build once, Deliver code faster and your app development processing run anywhere securely at scale Azure Kubernetes momentum Trusted by thousands of customers 30x Azure Kubernetes Service usage grew 30x since it was made generally available in June 2018 Dated November 2018 How Kubernetes works Kubernetes control Worker node Internet kubelet kube-proxy 1. Kubernetes users communicate with API server and apply Docker desired state Master node Pod Pod API server 2. Master nodes actively enforce Containers Containers desired state on worker nodes 3. Worker nodes support -controller- manager -scheduler communication between Worker node containers Internet kubelet kube-proxy replication, namespace, 4. Worker nodes support serviceaccounts, etc. etcd communication from the Internet Docker Pod Pod Containers Containers Kubernetes on its own is not enough Save time from infrastructure management and roll out updates faster without compromising security Unlock the agility for containerized applications using: IDE container support Security Governance Identity • Infrastructure automation that simplifies provisioning, patching, and upgrading Source code <\> repository • Tools for containerized app development Registry and CI/CD workflows supporting Kubernetes Helm • Services that support security, governance, and identity and access management CI/CD Infrastructure automation Monitoring Virtual machines Networking Microservice debugging Storage Data Kubernetes on Azure Simplify the deployment, management, and operations of Kubernetes Portable Extensible Self-healing Manage and Accelerate Build on an Run any operate Kubernetes containerized app enterprise-grade, workload with ease development secure platform anywhere Microsoft among leaders in inaugural Forrester New Wave report Forrester finds Microsoft “leads the pack with the strongest developer experience and global reach” THE FORRESTER NEW WAVETM Public Cloud Enterprise Container Platforms Reference customers share Q3 2019 Strong Challengers Contenders Performers Leaders • “Azure has the best integration with our development Amazon Stronger Web Service tools and processes.” Current Offering Google Alibaba Cloud • “Azure manages the k8s control plane for us—we don’t even Microsoft • IBM have to think about it.” • HUAWEI • “Easy cluster setup, integration with database and other Azure services, the best developer experience, and rock-solid support keep them highly satisfied with Azure containers.” • Tencent Cloud Weaker Current Offering Weaker Strategy Stronger Strategy Market Presence The Forrester New Wave™ is copyrighted by Forrester Research, Inc. Forrester and Forrester Wave™ are trademarks of Forrester Research, Inc. The Forrester New Wave™ is a graphical representation of Forrester’s call on a market. Forrester does not endorse any vendor, product, or service depicted in the Forrester New Wave™. Information is based on best available resources. Opinions reflect judgment at the time and are subject to change. Manage Kubernetes with ease Focus on your containers and code, not the plumbing of them Managed Azure managed control plane DIY with Responsibilities Kubernetes Kubernetes on Azure Self-managed master node(s) App/ workload Kubernetes etcd Containerization User definition API endpoint API server Store Application iteration, debugging Controller Cloud CI/CD Scheduler Manager Controller Provisioning, upgrades, patches Reliability availability Schedule pods over private tunnel Customer VMs Scaling Docker Docker Docker Docker Docker Pods Pods Pods Pods Pods Monitoring and logging Customer Microsoft Azure Red Hat OpenShift Fully managed Red Hat OpenShift service Azure Red Hat OpenShift Simplify cluster operations with Azure Red Hat OpenShift Responsibilities Azure Active Azure Key App Directory Vault User definition User management OpenShift API/ administration console App 1 App 2 Project and quota management Azure DNS Application lifecycle Cluster creation Public IP Public IP Public IP Microsoft Red Hat Cluster management Azure Load Azure Load Balancer (Master) Balancer (Router) Virtual network Monitoring and logging OpenShift SDN Azure VMs (Master) Azure VMs (Infrastructure) Azure VMs (Application) Network configuration Scale sets Scale sets Scale sets Node 1 Node 2 Node 3 Node 1 Node 2 Node 3 Node 1 Node 2 Node 3 Node 4 Node N Software and security updates api-server • controller-manager • etcd registry • router application pods Platform support Azure Premium Azure Blob Azure Premium SSD Managed Disks SSD Managed Azure Premium SSD Managed Disks Storage Disks Customer Microsoft and Red Hat Azure Red Hat OpenShift Manage Kubernetes with ease Highly available, reliable service with serverless scaling Azure Monitor Azure Container AKS production cluster Instances (ACI) Microservices Pods Virtual node Availability Reliability Auto scaling Azure makes Kubernetes easier Manage and operate Kubernetes with ease Task The Old Way With Azure Create a cluster Provision network and VMs az aks create Install dozens of system components including etcd Create and install certificates Register agent nodes with control plane Upgrade a cluster Upgrade your master nodes az aks upgrade Cordon/drain and upgrade worker nodes individually Scale a cluster Provision new VMs az aks scale Install system components Register nodes with API server Accelerate containerized development Kubernetes and DevOps better together Develop Deliver Operate Develop • Native containers and Kubernetes support in IDE Azure AKS Inner loop • Remote debugging and iteration for multi- Container production GitHub repos Registry cluster containers Scale Azure AKS dev Azure • Effective code merge DevSpaces cluster Monitor • Automatic containerization Test Debug Container Deliver image • CI/CD pipeline with automated tasks in a few Boards clicks • Pre-configured canary deployment strategy • In depth build and delivery process review and integration testing CI/CD Pipelines • Private registry with Helm support Helm chart Terraform Operate • Out-of-box control plane telemetry, log aggregation, and container health • Declarative resource management • Auto scaling Azure makes Kubernetes easier Accelerate containerized application development Task The Old Way With Azure Inner loop development Set up a local dev environment using Minikube Use Dev Spaces to run and debug services locally while connected to Determine the transitive closure of your dependencies existing services and dependencies without having to mock them Identify behavior of dependencies for key test cases Stub out dependent services with expected behavior Make local changes, check-in, and hope things work Validate with application logs Set up a CI/CD pipeline and deploy Create Git repo Store source code on GitHub, then create a project on Azure Pipelines to Kubernetes Create a build pipeline with Kubernetes/AKS as a target Create a container registry Create a Kubernetes cluster Configure build pipeline to push to container registry Configure build pipeline to deploy to Kubernetes Define and set up deployment strategy Make container images available Create a container registry in every region Create an Azure Container Registry with geo-replication for deployment worldwide Configure build pipeline with multiple endpoints Push your image to a single endpoint Loop through all regions and push following build Track health with consolidated Choose a logging solution Checkbox enable monitoring with centralized tracking of logging and cluster and application logs Deploy log stack in your cluster or provision a service analytics Configure and deploy a logging agent onto all nodes Build on an enterprise-grade, secure platform Control Get runtime vulnerability Put guardrails in your Secure network Gain automated threat access through scanning and auditing development process with communications with VNET protection and best practice AAD and RBAC through Azure Security Center Azure Policy and network policy recommendations for Kubernetes clusters Identity Use familiar tools like AAD for fine-grained