SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Using GitHub Actions to Deploy Your
Workloads to Azure
Kasun Kodagoda
Technical Lead | 99X Technology
https://kasunkodagoda.com
♥
I am, Kasun Kodagoda
• In ♥ with Azure & Azure DevOps
• Active Blogger – https://kasunkodagoda.com
• Open Source Contributor - https://github.com/kasunkv
• Technical Lead
I Work For,
• Established in 2004
• Headquartered in Sri Lanka with offices in
Europe and Australia
• Providing high quality, high value Software
Product Engineering + R&D services
Agenda
• Basics of GitHub Actions
• Core Concepts
• GitHub Actions for Azure
• Demo
What are GitHub Actions
• Made up of individual tasks called Actions
• Collection of actions performs a certain
activity
• This collection is called a workflow
These Workflows helps you automate your software
development activities in the same place where you store
your source code
Core Concepts
Action
• Smallest building block of a workflow
• Individual task that performs a specific
activity in a workflow
• Two Types of Actions
• JavaScript Actions
- Hosted on a public repository
• Docker Actions
- Hosted on a public docker registry
Artifacts
• Output of a workflow
• Can include,
• A set of files (e.g. files of a web app)
• Test results
• Log files
• Screenshots etc.
• Can be shared with other jobs or be
deployed
Event
• Activity that can trigger a workflow run
• An event can have multiple activity types
• Could be any GitHub event
• push
• pull_request
• create
• delete
• issue_comment
• created
• edited
• deleted
https://help.github.com/en/actions/reference/events-that-trigger-workflows
Job
• Set of steps that gets executed on the
same runner.
• In a single workflow, there can be multiple
jobs
• Can have dependencies between jobs in a
workflow file
- job_1
- job_2
- job_3
job_2 can depend on job_1. job_3 can depend on jod_2
Job Strategy
• Creates a build matrix for the jobs
• Define different variations of the
environment
• Run the job on build matrix at the same
time.
strategy:
matrix:
node: [6, 8, 10]
steps:
- uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node }}
Workflow
• Configurable automated process
• Contained in the repository
• In .github/workflows directory
• Made up of one or more jobs
• Triggered by an event or a schedule
• Described in a YAML file
• Must contain at least one job
Workflow Run
• Instance of a workflow
• Runs when the trigger event occurs
• E.g. pull_request, push
• You can see;
• Execution logs
• Status and results
• Artifacts
Runners
• GitHub hosted virtual environments that
run workflows
• All 3 major OS platforms are supported
• Windows
- Runs Windows Server 2019
- windows-latest or windows-2019
• Linux
- Runs Ubuntu 16.04 and 18.04
- ubuntu-latest or ubuntu-18.04 and ubuntu-16.04
• MacOS
- Runs MacOS Catalina 10.15
- macos-latest or macos-10.15
Runners – ctd.
• Two types of runners available
• GitHub Hosted
• Automatically updated
• Managed and maintained by GitHub
• Clean instance for every job execution
• Free minutes/rates will be applied depending on the plan
• Self-Hosted
• Local or any cloud infrastructure you own
• You pay for your own infrastructure
• You can customize with hardware, software & tools you want
• No need to have a clean instance for each job execution
• No rates are applied, free to you.
• You need to maintain your environments
Runners – ctd.
• Linux and Windows VMs are hosted in
Azure
• Standard_DS2_v2 sku
• Based on the Azure Pipelines Agent
• MacOS VMs are hosted in MacStadium
https://help.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners
Usage Limits
• Job Execution Time
• GitHub Hosted – 6 hrs
• Self-Hosted – Unlimited
• Workflow Run Time
• GitHub Hosted, Self-Hosted – 72 hrs
• Job Queue Time
• GitHub Hosted – Not Applicable
• Self-Hosted – 24 hrs
• Job Matrix
• GitHub Hosted, Self Hosted – Max. 256 Jobs per
workflow
Usage Limits – ctd.
• API Requests
• 1000 Requests per Hour
• Across all actions for a single repository
• Both GitHub Hosted and Self-Hosted.
• Concurrent Jobs
Plan Total Concurrent Jobs Max. Concurrent macOS Jobs
Free 20 5
Pro 40 5
Team 60 5
Enterprise 180 50
GitHub Marketplace
• Central location to find GitHub Actions
• Created by official organizations and the
community
• Accessible through the workflow editor
GitHub Actions for Azure
GitHub Actions for Azure
• Set of actions to access Azure Services
• Azure cloud resources
• Azure Pipelines builds and releases
• Deploy workloads to Azure cloud from
workflows
• Some of the widely used Azure services
are accessible
• More on the way
Connecting to Azure
• Azure Login
• azure/login
• Authenticate to Azure using a service principle
• Azure CLI
• azure/cli
• Configures the runner with the latest or specified version
of the Azure CLI
• Run Azure CLI scripts to manage Azure Resources
Azure Web Apps
• Azure Web App
• azure/webapps-deploy
• Deploy your web site artifacts to Azure Web Apps
• Azure Web App for Containers
• azure/webapps-container-deploy
• Deploy your web app, packaged as a container to Azure
Web Apps.
• Azure App Service Settings
• azure/appservice-settings
• Configure App Settings and Connection string on Azure
App Service .
Azure Function Apps
• Azure Functions
• azure/functions-action
• Deploy your serverless code to an Azure Function App
• Azure Functions for Containers
• azure/functions-container-action
• Deploy your custom container image to Azure Functions
App.
Azure Kubernetes Services
• Kubectl Tools Installer
• azure/setup-kubectl
• Installs specific version of kubectl on the runner
• AKS Set Context
• azure/aks-set-context
• Set the Kubernetes cluster context on AKS
• Kubernetes Deploy
• azure/k8s-deploy
• Deploy manifests to the Kubernetes cluster
Azure Kubernetes Services – ctd.
• Setup Help
• azure/setup-helm
• Installs specific version of Helm on the runner
• Kubernetes Create Secret
• azure/k8s-create-secret
• Create secret on Kubernetes cluster
• More Actions…
• https://github.com/Azure/actions#deploy-to-
kubernetes
Azure Databases
• Azure SQL Databse
• azure/sql-action
• Deploy DACPAC and SQL Scripts to Azure SQL Database
• Uses a connection string to authenticate
• Azure MySQL Database
• azure/mysql-action
• Deploy MySQL databases using SQL Scripts
• Uses a connection string to authenticate
Few More…
• Azure Pipelines
• azure/pipelines
• Trigger Azure Pipeline run as part of the workflow
• Docker Login
• azure/docker-login
• Push containers to Docker Hub or Azure Container
Registry
• Get Secret from Azure Key Vault
• azure/get-keyvault-secret
• Fetch one or more Key Vault secrets.
https://github.com/Azure/actions
Let’s See it in Action
Thank You :)
Any Questions? ;)
Sample Code
https://github.com/kasunkv/
Slide Deck
https://www.slideshare.net/KasunKodagoda1
Blog Posts
https://kasunkodagoda.com/tag/azure/
Connect With Me
Twitter: https://twitter.com/kasun_kodagoda
Facebook: https://www.facebook.com/kasun.kodagoda
LinkedIn: https://www.linkedin.com/in/kasunkodagoda/
Blog: https://kasunkodagoda.com/
http://bit.ly/github-actions-sl-devops-community

Weitere ähnliche Inhalte

Was ist angesagt?

Intro to Github Actions @likecoin
Intro to Github Actions @likecoinIntro to Github Actions @likecoin
Intro to Github Actions @likecoinWilliam Chong
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsCasey Lee
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker ComposeAjeet Singh Raina
 
Gitlab ci, cncf.sk
Gitlab ci, cncf.skGitlab ci, cncf.sk
Gitlab ci, cncf.skJuraj Hantak
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeAmazon Web Services
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIDavid Hahn
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.jsStefan Stölzle
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD processHYS Enterprise
 
Using GitHub actions on AWS.pptx
Using GitHub actions on AWS.pptxUsing GitHub actions on AWS.pptx
Using GitHub actions on AWS.pptxDerek Bingham
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & DockerJoerg Henning
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionPeng Xiao
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CIOlinData
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 

Was ist angesagt? (20)

Intro to Github Actions @likecoin
Intro to Github Actions @likecoinIntro to Github Actions @likecoin
Intro to Github Actions @likecoin
 
Github in Action
Github in ActionGithub in Action
Github in Action
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub Actions
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker Compose
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
 
Gitlab ci, cncf.sk
Gitlab ci, cncf.skGitlab ci, cncf.sk
Gitlab ci, cncf.sk
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Power of Azure Devops
Power of Azure DevopsPower of Azure Devops
Power of Azure Devops
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.js
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
 
Using GitHub actions on AWS.pptx
Using GitHub actions on AWS.pptxUsing GitHub actions on AWS.pptx
Using GitHub actions on AWS.pptx
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
 
github-actions.pdf
github-actions.pdfgithub-actions.pdf
github-actions.pdf
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CI
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
CI CD Basics
CI CD BasicsCI CD Basics
CI CD Basics
 

Ähnlich wie Using GitHub Actions to Deploy your Workloads to Azure

AKS Azure Kubernetes Services - Azure Nights melbourne feb 2018
AKS Azure Kubernetes Services - Azure Nights melbourne feb 2018AKS Azure Kubernetes Services - Azure Nights melbourne feb 2018
AKS Azure Kubernetes Services - Azure Nights melbourne feb 2018Jorge Arteiro
 
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup
 
Kudu voodoo slideshare
Kudu voodoo   slideshareKudu voodoo   slideshare
Kudu voodoo slideshareAidan Casey
 
habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker budMandi Walls
 
Building API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsBuilding API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsAleksandar Bozinovski
 
Era of server less computing
Era of server less computingEra of server less computing
Era of server less computingBaskar rao Dsn
 
Play with azure functions
Play with azure functionsPlay with azure functions
Play with azure functionsBaskar rao Dsn
 
Develop Azure compute solutions Part - 2
Develop Azure compute solutions Part - 2Develop Azure compute solutions Part - 2
Develop Azure compute solutions Part - 2AzureEzy1
 
Era of server less computing final
Era of server less computing finalEra of server less computing final
Era of server less computing finalBaskar rao Dsn
 
DevNexus 2015: Kubernetes & Container Engine
DevNexus 2015: Kubernetes & Container EngineDevNexus 2015: Kubernetes & Container Engine
DevNexus 2015: Kubernetes & Container EngineKit Merker
 
A Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes ClusterA Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes ClusterJimmy Lu
 
Individual Serverless Development Environments for AWS
Individual Serverless Development Environments for AWSIndividual Serverless Development Environments for AWS
Individual Serverless Development Environments for AWSSøren Peter Nielsen
 
Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...All Things Open
 
Cocoapods in action
Cocoapods in actionCocoapods in action
Cocoapods in actionHan Qin
 
Continuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIContinuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIalexanderkiel
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAlberto Molina Coballes
 
Open service broker API with Azure Kubernetes Services
Open service broker API with Azure Kubernetes ServicesOpen service broker API with Azure Kubernetes Services
Open service broker API with Azure Kubernetes ServicesJorge Arteiro
 
Pro2516 10 things about oracle and k8s.pptx-final
Pro2516   10 things about oracle and k8s.pptx-finalPro2516   10 things about oracle and k8s.pptx-final
Pro2516 10 things about oracle and k8s.pptx-finalMichel Schildmeijer
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellEugene Fedorenko
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and dockerShapeBlue
 

Ähnlich wie Using GitHub Actions to Deploy your Workloads to Azure (20)

AKS Azure Kubernetes Services - Azure Nights melbourne feb 2018
AKS Azure Kubernetes Services - Azure Nights melbourne feb 2018AKS Azure Kubernetes Services - Azure Nights melbourne feb 2018
AKS Azure Kubernetes Services - Azure Nights melbourne feb 2018
 
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
 
Kudu voodoo slideshare
Kudu voodoo   slideshareKudu voodoo   slideshare
Kudu voodoo slideshare
 
habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker bud
 
Building API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsBuilding API in the cloud using Azure Functions
Building API in the cloud using Azure Functions
 
Era of server less computing
Era of server less computingEra of server less computing
Era of server less computing
 
Play with azure functions
Play with azure functionsPlay with azure functions
Play with azure functions
 
Develop Azure compute solutions Part - 2
Develop Azure compute solutions Part - 2Develop Azure compute solutions Part - 2
Develop Azure compute solutions Part - 2
 
Era of server less computing final
Era of server less computing finalEra of server less computing final
Era of server less computing final
 
DevNexus 2015: Kubernetes & Container Engine
DevNexus 2015: Kubernetes & Container EngineDevNexus 2015: Kubernetes & Container Engine
DevNexus 2015: Kubernetes & Container Engine
 
A Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes ClusterA Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes Cluster
 
Individual Serverless Development Environments for AWS
Individual Serverless Development Environments for AWSIndividual Serverless Development Environments for AWS
Individual Serverless Development Environments for AWS
 
Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...
 
Cocoapods in action
Cocoapods in actionCocoapods in action
Cocoapods in action
 
Continuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIContinuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CI
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. Ansible
 
Open service broker API with Azure Kubernetes Services
Open service broker API with Azure Kubernetes ServicesOpen service broker API with Azure Kubernetes Services
Open service broker API with Azure Kubernetes Services
 
Pro2516 10 things about oracle and k8s.pptx-final
Pro2516   10 things about oracle and k8s.pptx-finalPro2516   10 things about oracle and k8s.pptx-final
Pro2516 10 things about oracle and k8s.pptx-final
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and docker
 

Mehr von Kasun Kodagoda

Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Featu...
Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Featu...Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Featu...
Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Featu...Kasun Kodagoda
 
Get On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for AzureGet On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for AzureKasun Kodagoda
 
Centralized Configuration Management for the Cloud with Azure App Configuration
Centralized Configuration Management for the Cloud with Azure App ConfigurationCentralized Configuration Management for the Cloud with Azure App Configuration
Centralized Configuration Management for the Cloud with Azure App ConfigurationKasun Kodagoda
 
Serverless in the Azure World
Serverless in the Azure WorldServerless in the Azure World
Serverless in the Azure WorldKasun Kodagoda
 
Role of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery PipelinesRole of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery PipelinesKasun Kodagoda
 
Demystifying Azure Certifications
Demystifying Azure CertificationsDemystifying Azure Certifications
Demystifying Azure CertificationsKasun Kodagoda
 
Good Bye Credentials in Code, Welcome Azure Managed Identities
Good Bye Credentials in Code, Welcome Azure Managed IdentitiesGood Bye Credentials in Code, Welcome Azure Managed Identities
Good Bye Credentials in Code, Welcome Azure Managed IdentitiesKasun Kodagoda
 
DevOps: Why Should We Care?
DevOps: Why Should We Care?DevOps: Why Should We Care?
DevOps: Why Should We Care?Kasun Kodagoda
 
Introduction to Microsoft Azure
Introduction to Microsoft AzureIntroduction to Microsoft Azure
Introduction to Microsoft AzureKasun Kodagoda
 
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDK
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDKBuilding Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDK
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDKKasun Kodagoda
 
Building a Continuous Delivery Pipeline With Visual Studio
Building a Continuous Delivery Pipeline With Visual StudioBuilding a Continuous Delivery Pipeline With Visual Studio
Building a Continuous Delivery Pipeline With Visual StudioKasun Kodagoda
 
Going Serverless with Azure Functions #1 - Introduction to Azure Functions
Going Serverless with Azure Functions #1 - Introduction to Azure FunctionsGoing Serverless with Azure Functions #1 - Introduction to Azure Functions
Going Serverless with Azure Functions #1 - Introduction to Azure FunctionsKasun Kodagoda
 
Making Money with Technology
Making Money with TechnologyMaking Money with Technology
Making Money with TechnologyKasun Kodagoda
 
Better End-to-End Testing with Page Objects Model using Protractor
Better End-to-End Testing with Page Objects Model using ProtractorBetter End-to-End Testing with Page Objects Model using Protractor
Better End-to-End Testing with Page Objects Model using ProtractorKasun Kodagoda
 
Monetizing Windows Phone Apps
Monetizing Windows Phone AppsMonetizing Windows Phone Apps
Monetizing Windows Phone AppsKasun Kodagoda
 

Mehr von Kasun Kodagoda (15)

Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Featu...
Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Featu...Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Featu...
Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Featu...
 
Get On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for AzureGet On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for Azure
 
Centralized Configuration Management for the Cloud with Azure App Configuration
Centralized Configuration Management for the Cloud with Azure App ConfigurationCentralized Configuration Management for the Cloud with Azure App Configuration
Centralized Configuration Management for the Cloud with Azure App Configuration
 
Serverless in the Azure World
Serverless in the Azure WorldServerless in the Azure World
Serverless in the Azure World
 
Role of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery PipelinesRole of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery Pipelines
 
Demystifying Azure Certifications
Demystifying Azure CertificationsDemystifying Azure Certifications
Demystifying Azure Certifications
 
Good Bye Credentials in Code, Welcome Azure Managed Identities
Good Bye Credentials in Code, Welcome Azure Managed IdentitiesGood Bye Credentials in Code, Welcome Azure Managed Identities
Good Bye Credentials in Code, Welcome Azure Managed Identities
 
DevOps: Why Should We Care?
DevOps: Why Should We Care?DevOps: Why Should We Care?
DevOps: Why Should We Care?
 
Introduction to Microsoft Azure
Introduction to Microsoft AzureIntroduction to Microsoft Azure
Introduction to Microsoft Azure
 
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDK
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDKBuilding Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDK
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDK
 
Building a Continuous Delivery Pipeline With Visual Studio
Building a Continuous Delivery Pipeline With Visual StudioBuilding a Continuous Delivery Pipeline With Visual Studio
Building a Continuous Delivery Pipeline With Visual Studio
 
Going Serverless with Azure Functions #1 - Introduction to Azure Functions
Going Serverless with Azure Functions #1 - Introduction to Azure FunctionsGoing Serverless with Azure Functions #1 - Introduction to Azure Functions
Going Serverless with Azure Functions #1 - Introduction to Azure Functions
 
Making Money with Technology
Making Money with TechnologyMaking Money with Technology
Making Money with Technology
 
Better End-to-End Testing with Page Objects Model using Protractor
Better End-to-End Testing with Page Objects Model using ProtractorBetter End-to-End Testing with Page Objects Model using Protractor
Better End-to-End Testing with Page Objects Model using Protractor
 
Monetizing Windows Phone Apps
Monetizing Windows Phone AppsMonetizing Windows Phone Apps
Monetizing Windows Phone Apps
 

Kürzlich hochgeladen

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Kürzlich hochgeladen (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

Using GitHub Actions to Deploy your Workloads to Azure

  • 1. Using GitHub Actions to Deploy Your Workloads to Azure Kasun Kodagoda Technical Lead | 99X Technology https://kasunkodagoda.com ♥
  • 2. I am, Kasun Kodagoda • In ♥ with Azure & Azure DevOps • Active Blogger – https://kasunkodagoda.com • Open Source Contributor - https://github.com/kasunkv • Technical Lead I Work For, • Established in 2004 • Headquartered in Sri Lanka with offices in Europe and Australia • Providing high quality, high value Software Product Engineering + R&D services
  • 3. Agenda • Basics of GitHub Actions • Core Concepts • GitHub Actions for Azure • Demo
  • 4. What are GitHub Actions • Made up of individual tasks called Actions • Collection of actions performs a certain activity • This collection is called a workflow These Workflows helps you automate your software development activities in the same place where you store your source code
  • 6. Action • Smallest building block of a workflow • Individual task that performs a specific activity in a workflow • Two Types of Actions • JavaScript Actions - Hosted on a public repository • Docker Actions - Hosted on a public docker registry
  • 7. Artifacts • Output of a workflow • Can include, • A set of files (e.g. files of a web app) • Test results • Log files • Screenshots etc. • Can be shared with other jobs or be deployed
  • 8. Event • Activity that can trigger a workflow run • An event can have multiple activity types • Could be any GitHub event • push • pull_request • create • delete • issue_comment • created • edited • deleted https://help.github.com/en/actions/reference/events-that-trigger-workflows
  • 9. Job • Set of steps that gets executed on the same runner. • In a single workflow, there can be multiple jobs • Can have dependencies between jobs in a workflow file - job_1 - job_2 - job_3 job_2 can depend on job_1. job_3 can depend on jod_2
  • 10. Job Strategy • Creates a build matrix for the jobs • Define different variations of the environment • Run the job on build matrix at the same time. strategy: matrix: node: [6, 8, 10] steps: - uses: actions/setup-node@v1 with: node-version: ${{ matrix.node }}
  • 11. Workflow • Configurable automated process • Contained in the repository • In .github/workflows directory • Made up of one or more jobs • Triggered by an event or a schedule • Described in a YAML file • Must contain at least one job
  • 12. Workflow Run • Instance of a workflow • Runs when the trigger event occurs • E.g. pull_request, push • You can see; • Execution logs • Status and results • Artifacts
  • 13. Runners • GitHub hosted virtual environments that run workflows • All 3 major OS platforms are supported • Windows - Runs Windows Server 2019 - windows-latest or windows-2019 • Linux - Runs Ubuntu 16.04 and 18.04 - ubuntu-latest or ubuntu-18.04 and ubuntu-16.04 • MacOS - Runs MacOS Catalina 10.15 - macos-latest or macos-10.15
  • 14. Runners – ctd. • Two types of runners available • GitHub Hosted • Automatically updated • Managed and maintained by GitHub • Clean instance for every job execution • Free minutes/rates will be applied depending on the plan • Self-Hosted • Local or any cloud infrastructure you own • You pay for your own infrastructure • You can customize with hardware, software & tools you want • No need to have a clean instance for each job execution • No rates are applied, free to you. • You need to maintain your environments
  • 15. Runners – ctd. • Linux and Windows VMs are hosted in Azure • Standard_DS2_v2 sku • Based on the Azure Pipelines Agent • MacOS VMs are hosted in MacStadium https://help.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners
  • 16. Usage Limits • Job Execution Time • GitHub Hosted – 6 hrs • Self-Hosted – Unlimited • Workflow Run Time • GitHub Hosted, Self-Hosted – 72 hrs • Job Queue Time • GitHub Hosted – Not Applicable • Self-Hosted – 24 hrs • Job Matrix • GitHub Hosted, Self Hosted – Max. 256 Jobs per workflow
  • 17. Usage Limits – ctd. • API Requests • 1000 Requests per Hour • Across all actions for a single repository • Both GitHub Hosted and Self-Hosted. • Concurrent Jobs Plan Total Concurrent Jobs Max. Concurrent macOS Jobs Free 20 5 Pro 40 5 Team 60 5 Enterprise 180 50
  • 18. GitHub Marketplace • Central location to find GitHub Actions • Created by official organizations and the community • Accessible through the workflow editor
  • 20. GitHub Actions for Azure • Set of actions to access Azure Services • Azure cloud resources • Azure Pipelines builds and releases • Deploy workloads to Azure cloud from workflows • Some of the widely used Azure services are accessible • More on the way
  • 21. Connecting to Azure • Azure Login • azure/login • Authenticate to Azure using a service principle • Azure CLI • azure/cli • Configures the runner with the latest or specified version of the Azure CLI • Run Azure CLI scripts to manage Azure Resources
  • 22. Azure Web Apps • Azure Web App • azure/webapps-deploy • Deploy your web site artifacts to Azure Web Apps • Azure Web App for Containers • azure/webapps-container-deploy • Deploy your web app, packaged as a container to Azure Web Apps. • Azure App Service Settings • azure/appservice-settings • Configure App Settings and Connection string on Azure App Service .
  • 23. Azure Function Apps • Azure Functions • azure/functions-action • Deploy your serverless code to an Azure Function App • Azure Functions for Containers • azure/functions-container-action • Deploy your custom container image to Azure Functions App.
  • 24. Azure Kubernetes Services • Kubectl Tools Installer • azure/setup-kubectl • Installs specific version of kubectl on the runner • AKS Set Context • azure/aks-set-context • Set the Kubernetes cluster context on AKS • Kubernetes Deploy • azure/k8s-deploy • Deploy manifests to the Kubernetes cluster
  • 25. Azure Kubernetes Services – ctd. • Setup Help • azure/setup-helm • Installs specific version of Helm on the runner • Kubernetes Create Secret • azure/k8s-create-secret • Create secret on Kubernetes cluster • More Actions… • https://github.com/Azure/actions#deploy-to- kubernetes
  • 26. Azure Databases • Azure SQL Databse • azure/sql-action • Deploy DACPAC and SQL Scripts to Azure SQL Database • Uses a connection string to authenticate • Azure MySQL Database • azure/mysql-action • Deploy MySQL databases using SQL Scripts • Uses a connection string to authenticate
  • 27. Few More… • Azure Pipelines • azure/pipelines • Trigger Azure Pipeline run as part of the workflow • Docker Login • azure/docker-login • Push containers to Docker Hub or Azure Container Registry • Get Secret from Azure Key Vault • azure/get-keyvault-secret • Fetch one or more Key Vault secrets. https://github.com/Azure/actions
  • 28. Let’s See it in Action
  • 29. Thank You :) Any Questions? ;)
  • 30. Sample Code https://github.com/kasunkv/ Slide Deck https://www.slideshare.net/KasunKodagoda1 Blog Posts https://kasunkodagoda.com/tag/azure/ Connect With Me Twitter: https://twitter.com/kasun_kodagoda Facebook: https://www.facebook.com/kasun.kodagoda LinkedIn: https://www.linkedin.com/in/kasunkodagoda/ Blog: https://kasunkodagoda.com/ http://bit.ly/github-actions-sl-devops-community