HCL’s Viewpoint – DevOps on MS Cloud EP Service Line – Dec 2016
Table of Contents DevOps Philosophy DevOps in Microsoft Stack 01 DevOps Philosophy 02 DevOps in Microsoft Stack 03 DevOps on Office 365 & Azure/Azure stack 04 Sample DevOps scenarios on O365 & Azure
DevOps Philosophy What is DevOps Challenges of ALM “DevOps (a clipped compound of development and operations) is a term used to refer to a set of practices that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes.” Goal: Faster, better software release What is DevOps Different but interdependent IT worldviews Enterprise world vs Agile world Developers vs Operations staff Business demand is increasing Pace of Software change is increasing Issue with release process Slow, Painful, Manual, Buggy, Unverifiable, Inconsistent Challenges of ALM
How DevOps can be Implemented DevOps Philosophy DevOps practice help address those challenges by Improved communications and working culture between Developers & Operations Faster release process (TTM) Better Software Quality Predictable processes ensuring consistency Better Metrics and Insights Why DevOps DevOps is a culture or practice. It is a long transformation journey and not only adaption of tools for automation. It is a combination and collaboration of 3 P’s: People Processes & Products (Tools) Successful implementation of DevOps in an organization depends on right people and correct processes more than adopted tools. How DevOps can be Implemented
DevOps Philosophy People Process Product Right minded Developers and Operations people need to work side-by-side with great collaboration breaking the traditional barrier. Source Control Branches Continuous Integration Automated Testing Continuous Deployment Infrastructure as Code (IaC) Configuration Management Release Management Application Performance Monitoring. There are various tools available in the market to implement each and every processes mentioned.
Table of Contents DevOps Philosophy DevOps in Microsoft Stack 01 DevOps Philosophy 02 DevOps in Microsoft Stack 03 DevOps on Office 365 & Azure/Azure stack 04 Sample DevOps scenarios on O365 & Azure
DevOps in Microsoft Stack Microsoft is one of the leaders in Gartner’s magic quadrant for ADLM Visual Studio Team Services provides complete DevOps framework for implementing all the necessary processes. It uses both Microsoft products or can be integrated with various other Tools to implement those processes. Dev Ops Repository Development Test Build Team Foundation Server Release Management for Visual Studio Microsoft Test Manager Microsoft Monitoring Agent Automation Service PowerShell Azure Resource Groups WAML Environment DEV/UAT/PRODUCTION Monitor & Improve Microsoft System Center Application Insights Visual Studio Online The Microsoft Ecosystem
Table of Contents DevOps Philosophy DevOps in Microsoft Stack 01 DevOps Philosophy 02 DevOps in Microsoft Stack 03 DevOps on Office 365 & Azure/Azure stack 04 Sample DevOps scenarios on O365 & Azure
DevOps on O365 & Azure/Azure Stack DevOps on Azure/Azure Stack DevOps can be highly leveraged on O365 development While most part of infrastructure provisioning is part of Microsoft’s O365 subscription, maintaining consistent configuration can be achieved by setting up configuration management process and infrastructure as code. Continuous integration and continuous deployment along with automated testing (including Unit Testing, Coded UI Testing, Load Testing) will ensure fast, reliable continuous delivery of any feature. An app can be consistently deployed to different environment through release management process. A rapid roll out of a highly scalable application can be achieved using Azure IaaS/PaaS and setting up DevOps processes. Development and testing environments can be created on demand using Azure virtual machines and configure it using PowerShell DSC or other environment management tools. Configuring virtual machines, deploying the application on it and further testing can be fully automated and controlled through visual studio team services build and release management. Any Azure PaaS service like azure app service or azure SQL service can be integrated with visual studio team services to automate application deployment and release process. Continuous Delivery Continuous Integration Continuous Deployment Automated Testing Release Management
Table of Contents DevOps Philosophy DevOps in Microsoft Stack 01 DevOps Philosophy 02 DevOps in Microsoft Stack 03 DevOps on Office 365 & Azure/Azure stack 04 Sample DevOps scenarios on O365 & Azure
Scenario 1: DevOps on O365 (SP Hosted Add-Ins) VS: Visual Studio TFVC: Team Foundation Version Control VSTS: Visual Studio Team Services SPO: SharePoint Online MTM: Microsoft Test Manager 1. Developed code checked in to TFVC 1.a: User may pull the code from proper branch of TFVC 2. Based on build definition configured In VSTS, automated build will fire once code is checked in. 2a. Unit testing code is written In Visual Studio and QUnit. Automated Unit Testing will run during build. 3. App package is copied to configured drop location as part of build. 4. App package is deployed/installed to SIT /Testing environment (SharePoint Online) using PowerShell. 5. Automated testing (Coded UI test) is carried out using Visual studio/MTM and Selenium. 6. After testing, the app can be deployed to UAT or other environment based on the release definition as part of release management process. 6a. Optionally UAT approval and QA control approval can be configured before moving to next environment deployment. 7. & 8. Based on the release management process, the app can be deployed to other environments. Same PowerShell script can be used in VSTS for deployment. Release can be configured as automated or manual. Abbreviations Process Steps
Scenario 1: DevOps on O365 (SP Hosted Add-Ins) Sample Build definition for SharePoint Hosted Add-Ins
Scenario 1: DevOps on O365 (SP Hosted Add-Ins) Sample Release definition for SharePoint Hosted Add-Ins
Scenario 2: DevOps on O365 & Azure (Provider Hosted Add-Ins) VS: Visual Studio TFVC: Team Foundation Version Control VSTS: Visual Studio Team Services SPO: SharePoint Online MTM: Microsoft Test Manager 1. Developed code checked in to TFVC 1.a: User may pull the code from proper branch of TFVC 2. Based on build definition configured In VSTS, automated build will fire once code is checked in. 2a. Unit testing code is written In Visual Studio and QUnit. Automated Unit Testing will run during build. 3. App package is copied to configured drop location as part of build. 4. Replace Client Id, Client secrets and other tokens for a particular environment using PowerShell 5. Deploy remote web to Azure web app. 6. App package is deployed/installed to SIT /Testing environment (SharePoint Online) using PowerShell. 7. Automated testing (Coded UI test) is carried out using Visual studio/MTM and Selenium. 8. After testing, the app can be deployed to UAT or other environment based on the release definition as part of release management process. 8a. Optionally UAT approval and QA control approval can be configured before moving to next environment deployment. 9. & 10. Based on the release management process, the app can be deployed to other environments. Same PowerShell script can be used in VSTS for deployment. Release can be configured as automated or manual. Process Steps Abbreviations
Scenario 3: DevOps on ASP.Net Web Application VS: Visual Studio TFVC: Team Foundation Version Control VSTS: Visual Studio Team Services MTM: Microsoft Test Manager 1. Developed code checked in to TFVC 1.a: User may pull the code from proper branch of TFVC 2. Based on build definition configured In VSTS, automated build will fire once code is checked in. 2a. Unit testing code is written In Visual Studio Automated Unit Testing will run during build. 3. App package download the application artifacts into defined drop location. 4. Deploy remote web to Azure web app. 5. Deploy remote web to SIT/Testing environment. 6. Automated testing (Coded UI test) is carried out using Visual studio/MTM. 7. After testing, the app can be deployed to UAT or other environment based on the release definition as part of release management process. 7a. Optionally UAT approval and QA control approval can be configured before moving to next environment deployment. 8. & 9. Based on the release management process, the app can be deployed to other environments. Release can be configured as automated or manual. Process Steps Abbreviations
Scenario 3: DevOps on ASP.Net Web Application Sample Build definition for ASP.Net Web Application
Scenario 3: DevOps on ASP.Net Web Application Sample Release definition for ASP.Net Web Application
Scenario 4: DevOps on Coded UI Test - Selenium VS: Visual Studio TFVC: Team Foundation Version Control VSTS: Visual Studio Team Services 1. Developed code checked in to TFVC 1.a: User may pull the code from proper branch of TFVC 2. Based on build definition configured In VSTS, automated build will fire once code is checked in. 2a. Unit testing code is written In Visual Studio Automated Unit Testing will run during build. 3. Download Artifacts to drop location as part of build. 4.Web App is deployed to SIT. 5. Automated testing (Coded UI test) is carried out using Visual studio and Selenium. 6. After testing, the app can be deployed to UAT or other environment based on the release definition as part of release management process. 6a. Optionally UAT approval and QA control approval can be configured before moving to next environment deployment. 7. & 8. Based on the release management process, the app can be deployed to other environments. Release can be configured as automated or manual. Process Steps Abbreviations
Scenario 4: DevOps on Coded UI Test - Selenium Sample Build definition for Selenium Testing
Scenario 4: DevOps on Coded UI Test - Selenium Sample Release definition for Selenium Testing
Scenario 5: DevOps on JavaScript Unit Test - QUnit VS: Visual Studio TFVC: Team Foundation Version Control VSTS: Visual Studio Team Services MTM: Microsoft Test Manager 1. Developed code checked in to TFVC 1.a: User may pull the code from proper branch of TFVC 2. Based on build definition configured In VSTS, automated build will fire once code is checked in. 2a. Unit testing code is written In Qunit. Automated Unit Testing will run during build. 3. App package download the application artifacts into defined drop location. 4. Deploy remote web to Azure web app. 5. Deploy remote web to SIT/Testing environment. 6. Automated testing (Coded UI test) is carried out using Visual studio/MTM. 7. After testing, the app can be deployed to UAT or other environment based on the release definition as part of release management process. 7a. Optionally UAT approval and QA control approval can be configured before moving to next environment deployment. 8. & 9. Based on the release management process, the app can be deployed to other environments. Release can be configured as automated or manual. Process Steps Abbreviations
Scenario 5: DevOps on JavaScript Unit Test - QUnit Sample Build definition for QUnit Testing
Scenario 6: DevOps on Node JS application & Azure VS: Visual Studio TFVC: Team Foundation Version Control VSTS: Visual Studio Team Services 1. Developed code checked in to TFVC 1.a: User may pull the code from proper branch of TFVC 2. NPM will automatically install required packages 3. Based on build definition configured In VSTS, automated build will fire once code is checked in. 3a. Unit testing code is written In Mocha. Automated Unit Testing will run during build. 4. App package published to the defined drop location. 5. Deploy the package to Azure web app (SIT environment). 6. Run automated UI testing using Selenium. 7. Deploy the package to Azure web app (UAT environment). 7a. Optionally UAT approval and QA control approval can be configured before moving to next environment deployment 8. & 9. Based on the release management process, the app can be deployed to other environments. Release can be configured as automated or manual. Abbreviations Process Steps
Scenario 6: DevOps on Node JS application & Azure Sample Build definition for Node JS Application
Scenario 6: DevOps on Node JS application & Azure Sample Release definition for Node JS Application