DEVOPS kickstarter - Profit4Cloud10 / 21 Azure DevOps project - internalsWeb front end App Service...
Transcript of DEVOPS kickstarter - Profit4Cloud10 / 21 Azure DevOps project - internalsWeb front end App Service...
1 / 21
DEVOPS kickstarter
van idee naar productie in Azure!
2 / 21
Welkom...
… bij de 2de TechUpdate van 2018 !
Sessie:● Informeel● Hands-on (dus niet alleen sheets)● Vragen staat/is vrij● Mogelijkheid voor vragen na de sessie of op later
tijdstip
3 / 21
Scope
Focus op de DevOps ‘enablers’:● CI (Continuous Integration)● CD (Continuous Delivery)● IaC (Infrastructure-as-Code)
In context van online diensten:● VSTS (Visual Studio Team Services)● Microsoft Azure
4 / 21
Landscape – App Lifecycle● Self hosted
(on-premise/DC)● Provider hosted
(‘traditional’ IaaS)
Router /Firewall
Front End
Internet
Back End
Back end switch
ARRDNSFTP /
static content
Containers AD SQL Files App
Webserver farm
Webserver
DNS
5 / 21
Dev / Deploy / Monitor
Infrastructure (on-premise/DC)(compute/storage/memory/network)
Infrastructure (on-premise/DC)(compute/storage/memory/network)
Front-end appsFront-end apps
ConfigurationConfiguration
Back-end servicesBack-end services
ConfigurationConfiguration
Configuration(VLAN / ACLs)Configuration(VLAN / ACLs)
3th-party services3th-party services
ConfigurationConfiguration
DatabasesDatabases
ConfigurationConfiguration
CachingCaching
ConfigurationConfiguration
ContainersContainers
ConfigurationConfiguration
FilesFiles
ConfigurationConfiguration
......
ConfigurationConfiguration
DNSDNS
DHCPDHCP
Hyper-VHyper-V
ASP.NETMVC
WebApp IIS config
WindowsService
executable App config
Development
Test
Acceptance
Production
DACPAC
records
Health checks(monitoring)
Health checks(monitoring)
6 / 21
Development & Operations (waarom)
Move / Add / Change
requests
Sprint
Functioneel (TTM)- toevoegingen- aanpassingen- bug-fixes (inc. MTTR)
Niet functioneel- schaalbaarheid- beschikbaarheid- performance
Performance
feedback
IT process
7 / 21
Development & Operations (hoe)
Infrastructure
ProjectDevelopment
Infrastructure-as-Code (IaC)
Test automation
Deployment stagingContinuous Integration (CI)
Continuous Delivery (CD)
Continuous Integration (CI)
Infrastructure-as-Code (IaC)
Continuous Delivery (CD)
‘Work item management’‘Work item management’
Deployment staging
CloudCloud
8 / 21
Scenario’s
1) ‘van idee naar productie in Azure!’– End-to-end demo CI/CD– Gebaseerd op Azure DevOps project (WebApp)– Azure PaaS
2) IaC; ARM templates en CI/CD (ACC/PROD stages)– Azure IaaS/PaaS provisioning/confguration– Staging environments
9 / 21
1Scenario
10 / 21
Azure DevOps project - internals
Web front end
App ServicePlan
Web AppWE
ST
EU
RO
PE
ResourceGroup
SO
UT
H C
EN
TR
AL
US
Data storage
SQLDatabase
Application Insights
VSTS Gitproject
repositoryResource
Group
Azure subscription
VSTSaccount
HostedVS2017
Project
Build pipeline
Release pipeline
End userWeb App
Development team
de
plo
y
de
plo
y
Azure management
portal(portal.azure.com)
[project].visualstudio.com
Inkoop via:
- Credit card- Cloud Service Provider (CSP)
11 / 21
#Tips
● Proef abonnement beschikbaar (€170 of 12 mnd)● Hands-on labs (gratis):
https://www.microsoft.com/handsonlabs
● Azure binnen eigen DC (housing)/on-premise ?Azure Stack
● Pricing calculator: https://azure.microsoft.com/en-us/pricing/calculator/
12 / 21
Resultaat
Scenario 1
13 / 21
Azure DevOps – wat krijg je
● Project homepage en dashboard – samenwerken● Proces ondersteuning (backlog e.d.)
● Versiebeheer (TFVC / Git)
● Test automatisering (unit, load, ...)
● Hosted build (environment) pipelines (ook self hosted)
● Release pipelines● Monitoring/Health checks – applicatie laag,
services en kosten● RBAC voor Azure en VSTS
14 / 21
Azure DevOps – wat kan je
● Schaalbaarheid applicatie garanderen● Beschikbaarheid applicatie garanderen● Snel inspelen op functionele en kwaliteits
verbeteringen (application insights, services monitoring, health checks)
● DevOps ‘template’ gebruiken als startpunt (kickstarter ) en eventueel verder uitbouwen
15 / 21
Next step...
Resources met ‘de hand’ aanmakenvia het Azure portal
Reproduceerbaarheid ?Traceerbaarheid ?
Meerdere omgevingen
Haalbaarheid ?
16 / 21
ARM templates (IaC)● In DevOps voorbeeld; complete provisioning
services (web app, infra e.d.) door Azure
● IaC voorbeeld; provisioning services middels ARM templates naar acceptatie en productie omgeving
● ARM templates; declaratieve syntax om infrastructuur te beschrijven
● Op basis van dependencies, linked templates en parameters (json, resources en variables)
● Van toepassing op alle services (IaaS, PaaS)
17 / 21
ARM template - indeling/syntax{ "$schema": "...", "contentVersion": "", "parameters": { }, "variables": { }, "functions": { }, "resources": [ ], "outputs": { }}
"parameters": { "siteNamePrefix": { "type": "string", "defaultValue": "publicsite", "maxLength": 11 "metadata": { "description": "The name prefix of the web app that you wish to create." } },},
"variables": { "webSiteName": "[concat(parameters('siteNamePrefix'), uniqueString(resourceGroup().id))]",},
"resources": [ { "name": "[p4c.uniqueName(parameters('storageNamePrefix'))]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2016-01-01", "sku": { "name": "Standard_LRS" }, "kind": "Storage", "location": "South Central US", "tags": { "Department": "Finance", "Environment": "Production" }, "properties": {} }]
"outputs": { "newHostName": { "type": "string", "value": "[reference(variables('webSiteName')).defaultHostName]" }}
Dependencies (dependsOn) Linked templates (nesting)
New-AzureRmResourceGroupDeployment -Mode Complete -Name ExampleDeployment ` -ResourceGroupName ExampleResourceGroup -TemplateFile c:\example.json ` -TemplateParameterFile c:\example.parameters.json ` -storageNamePrefix overriddenName }}
18 / 21
2Scenario
19 / 21
Scenario 3 ?
● Combinatie scenario 1 (app) en scenario 2 (ARM) mogelijk
● Applicatie code en ARM templates in VS .sln
20 / 21
Azure ‘interactivity’
● Grafsche front-end– Azure portal (portal.azure.com)
● Windows Powershell (met modules)
● Azure CLI (cross platform)
● Azure Resource Manager (ARM) templates● Via code (bibliotheken)
● Maken allemaal gebruik van de Azure REST-API
21 / 21
Als laatste...
● Vragen ?● Opmerkingen ?● Suggesties ?● Wensen ?