Setting Up your Release Pipeline for SharePoint/Office 365 in Azure Vincent Biret, Products Team Tech Lead, Negotium @baywet Bit.ly/vince365
Thank you to our sponsors! Thank you to our sponsors!
(Based on participation) Join us for SharePint! When: Tonight, 4:00pm-6:00pm Where: 3rd Street Bar 4626 3rd Ave, Detroit, 48201 First 50 drinks on us! (Based on participation)
About Me Vincent BIRET Office Servers And Services MVP @baywet bit.ly/vince365 Products Team Tech Lead Montreal
Who’s that session for? Devs, devops, qa people, deciders Why should you care? ALM = time saved, happy devs, money saved and better products/services
High-level understanding of ALM Session’s Objectives High-level understanding of ALM Being able to set up builds for SP projects Being able to set up RM for Apps High-level understanding of testing/QA Technical Debt Management
Agenda Intro to Software lifecycle Intro to VSTS/Azure The build system High-level intro to deploy and tests for SP Intro to tech debt management Conclusion
Software Lifecycle WHERE IT ALL BEGINS
Software lifecycle : devops Plan Dev Test Production Idea/Need Business Plan Agile/CMMI/… Architecture Feedback Market Marketing Sales Might be a little bit different when doing consulting but same idea Source Control IDE Build xTests
Visual Studio Team Services and Azure LET’S TALK ABOUT TOOLING
Microsoft’s Cloud platform IaaS, PaaS, SaaS Literaly tons of services You’ve probably heard about it
Visual Studio Team Services https://www.visualstudio.com/get-started/overview-of-get-started-tasks-vs Unlimited storage, team projects, everything, 5 free users, free for users with msdn subscriptions, free for stakeholders Data Warehouse can be replaced by powerbi or dashboard being delivered RM currently in preview (since 5 days ago) http://blog-eng.dbtek.it/2014/03/visual-studio-online-vso-vs-team.html TFS as a service Everything except Updated more frequently SharePoint Integration Pay per user/build Process Template Customization** Data Warehouse
LET’S INCREASE THE QUALITY OF RELEASES Build LET’S INCREASE THE QUALITY OF RELEASES
Automated builds Predictable result Constant quality Time saving
Build Hard to debug Only editable with VS Requires Controller + Agent Updates not automated Third party tools hard to integrate
Lot of third parties integrations Tasks on github! (see notes) Build 2015 JSON definition Web edition Lot of third parties integrations Tasks on github! (see notes) Agent auto updates! New, hasn’t yet the build quality information and integration with RM + tests manager. Only on vsonline right now https://github.com/Microsoft/vso-agent-tasks
Agents Hosted Agents Installed Agents BaaS Azure, or anywhere else Build as a Service (billed by minutes building), Hosted agents have foundation edition of sharepoint installed. Installed agents only need internet access.
BUILD SECTION, BUILD AGENTS 2015 Demo Show build section, build agents ( + install), build settings for projects (oceanik grunt) BUILD SECTION, BUILD AGENTS 2015
AUTOMATE ALL THE THINGS! Deploy AUTOMATE ALL THE THINGS!
Available Options ** RM now available in preview!!! Game changer!!! Lab studio only works with XAML builds, hard to set up. (whole SC stack to set up) powershell + Tasks = quick win Tip: use –verbose everywhere!
FTC deployment Easy to automate PowerShell is your friend
Apps Deployment SharePoint Hosted Provider Hosted App file deployment is complicated but can be achieved via CSOM +PS App secret+id can be managed via settings + ps. Other components use traditional vs tools deployment, easy to CI https://social.msdn.microsoft.com/Forums/sharepoint/en-US/1f0cd45a-00e1-4452-bafe- 83c6ee3a59db/can-i-deploy-a-sharepointapp-to-office-365-using-powershell?forum=appsforsharepoint http://blogs.msdn.com/b/vesku/archive/2015/11/20/automating-add-in-app-installation-to-sharepoint- sites-using-csom.aspx
Targets On prem farms hard to maintain, especially when deploying lot of “buggy” components. On the fly farms take a lot of time to be up, and a lot of ps to finalize configuration Office 365 is ready to go, but only for apps
Should SPFarm be created on build machine? Pros Cons Deployment easier Heavier footprint Unit testing easier Can impact build
LAPRESSE AND OCEANIK DEPLOYMENT WITH RM Demo LAPRESSE AND OCEANIK DEPLOYMENT WITH RM
Test FINAL TOUCH TO QA
Functional/Acceptance testing Tests levels Unit testing Load testing Integration testing System testing Functional/Acceptance testing
Installation Security Compatibility L17N/I13N Regression A/B Tests types Installation Security Compatibility L17N/I13N Regression A/B Destructive ….. Goal of this section is not to cover everything, but more what we can achieve in the SharePoint world
Testing tools Mstest Nunit xUnit Grunt Gulp …
Testing in the SharePoint World Provisioning model Complex Closed OM hard to emulate/test against You don’t want to spend your time/money testing SharePoint’s API
Comes at great investments Tests with FTC Almost impossible Comes at great investments Unit testing => complicated to set up, must be well designed Load testing => sharepoint makes irrevelant Functional testing => great added value, but costly
Easy for everything out of SharePoint Harder for SP-Hosted Apps Tests with Apps Easy for everything out of SharePoint Harder for SP-Hosted Apps Any case it will highly depend on your app/solution’s architecture. The key work is abstract, abstract and abstract!
Demo UNIT TESTS OF LAPRESSE
Technical debt management OR HOW TO AVOID DIGGING YOUR OWN GRAVE
Code we’re not comfortable with Preventing us from innovating What is tech debt? Code we’re not comfortable with Preventing us from innovating Causing a lot of support Stressful for the team
Rewrite everything every 2 years Pair coding Static analysis Solutions? Rewrite everything every 2 years Pair coding Static analysis If the static analysis could be automated, wouldn’t be it great?
Demo SONARQUBE FOR OCEANIK http://sonarnegotium.eastus.cloudapp.azure.com:9000/ SONARQUBE FOR OCEANIK
Conclusion TIME TO SAY GOODBYE
Lot of time saved Consistent builds Automated tests Quality increased Conclusion Lot of time saved Consistent builds Automated tests Quality increased Money saved Money save = dev time saved, less support to provide, better product/service
Questions & Answers / Thanks Vincent Biret, @baywet, bit.ly/vince365 vbiret@outlook.com