SlideShare a Scribd company logo
1 of 30
Download to read offline
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

More Related Content

What's hot

GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.jsStefan Stölzle
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub ActionsBo-Yi Wu
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub ActionsKnoldus Inc.
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & DockerJoerg Henning
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CIColCh
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD processHYS Enterprise
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Noa Harel
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIDavid Hahn
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabFilipa Lacerda
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to GitlabJulien Pivotto
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucketMedhat Dawoud
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionAnwarul Islam
 
Introduction to Github Actions
Introduction to Github ActionsIntroduction to Github Actions
Introduction to Github ActionsKnoldus Inc.
 
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
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at FrosconKris Buytaert
 

What's hot (20)

GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.js
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to Gitlab
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
 
Github
GithubGithub
Github
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training Session
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
BitBucket presentation
BitBucket presentationBitBucket presentation
BitBucket presentation
 
Introduction to Github Actions
Introduction to Github ActionsIntroduction to Github Actions
Introduction to Github Actions
 
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
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 

Similar to 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
 

Similar to 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
 
Power of Azure Devops
Power of Azure DevopsPower of Azure Devops
Power of Azure Devops
 
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
 

More from 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
 

More from 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
 

Recently uploaded

Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxYounusS2
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.francesco barbera
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIUdaiappa Ramachandran
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 

Recently uploaded (20)

Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AI
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 

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