DEVOPS kickstarter van idee naar productie in Azure! 1 / 21
Welkom... bij de 2 de 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 2 / 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 3 / 21
Landscape App Lifecycle Self hosted (on-premise/dc) Provider hosted ( traditional IaaS) DNS Internet Router / Firewall Front End FTP / static content ARR DNS Back end switch Back End Containers AD SQL Files Webserver Webserver farm App 4 / 21
Dev / Deploy / Monitor Health Health checks checks (monitoring) (monitoring) Production Acceptance Test Development Front-end ASP.NET apps MVC WebApp Configuration IIS config Back-end Windows services Service executable Configuration App config 3th-party services Configuration Databases DACPAC Configuration Caching Configuration Containers Configuration Files Configuration... Configuration Infrastructure (on-premise/dc) (compute/storage/memory/network) DNS records DHCP Hyper-V Configuration (VLAN / ACLs) 5 / 21
Development & Operations (waarom) Move / Add / Change requests Performance feedback IT process Sprint Functioneel (TTM) - toevoegingen - aanpassingen - bug-fixes (inc. MTTR) Niet functioneel - schaalbaarheid - beschikbaarheid - performance 6 / 21
Development & Operations (hoe) Development Cloud Project Infrastructure-as-Code (IaC) Test automation Continuous Integration (CI) Deployment staging Continuous Delivery (CD) Infrastructure Work item management 7 / 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 8 / 21
1Scenario 9 / 21
Azure DevOps project - internals Azure subscription End user Web App WEST EUROPE Web front end App Service Plan Web App Data storage SQL Database Inkoop via: - Credit card - Cloud Service Provider (CSP) deploy deploy Development team Azure management portal (portal.azure.com) SOUTH CENTRAL US VSTS account Application Insights Hosted VS2017 Project Build pipeline Release pipeline Resource Group Resource Group VSTS Git project repository [project].visualstudio.com 10 / 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/ 11 / 21
Scenario 1 Resultaat 12 / 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 13 / 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 14 / 21
Next step... Reproduceerbaarheid? Traceerbaarheid? Resources met de hand aanmaken via het Azure portal Haalbaarheid? Meerdere omgevingen 15 / 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) 16 / 21
ARM template - indeling/syntax { "parameters": { "sitenameprefix": "resources": [ "$schema": { "...", "type": { "string", "defaultvalue": "name": "contentversion": "[p4c.uniquename(parameters('storagenameprefix'))]", "publicsite", "", "variables": "maxlength": "type": "Microsoft.Storage/storageAccounts", "parameters": { 11 { }, "metadata": "websitename": "apiversion": { "[concat(parameters('sitenameprefix'), "2016-01-01", uniquestring(resourcegroup().id))]", "description": "sku": "variables": { "The name { prefix }, of the web app that you wish }, to create." "name": "Standard_LRS" "functions": { }, } }, }, "kind": "resources": "Storage", [ ], }, "location": "South Central US", "outputs": { } "outputs": "tags": { { New-AzureRmResourceGroupDeployment }"newhostname": "Department": { "Finance",-Mode Complete -Name ExampleDeployment ` -ResourceGroupName "type": "Environment": "string", ExampleResourceGroup "Production" -TemplateFile c:\example.json ` -TemplateParameterFile "value": }, "[reference(variables('websitename')).defaulthostname]" c:\example.parameters.json ` -storagenameprefix } "properties": overriddenname {} } } } ] Dependencies (dependson) Linked templates (nesting) 17 / 21
2Scenario 18 / 21
Scenario 3? Combinatie scenario 1 (app) en scenario 2 (ARM) mogelijk Applicatie code en ARM templates in VS.sln 19 / 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 20 / 21
Als laatste... Vragen? Opmerkingen? Suggesties? Wensen? 21 / 21