SlideShare a Scribd company logo
1 of 36
How to do DevOps with the
SharePoint Framework and why
it matters?
SharePoint Saturday Toronto 2019
By: Vincent Biret
PLATINUM
Thank You Sponsors!
SILVERGOLD
3
SharePint
SharePint
The Drake & Firkin
6982 Financial Dr, Mississauga, ON L5N 8J4
SharePoint Saturday
Toronto #SPSToronto
Passionate about technologies, development and community
Vincent Biret
@baywet
bit.ly/vince365
Microsoft Office Dev MVP
Azure and Office 365 developer @ 2toLead
Devs, Product Owners, Deciders, QA, Project Managers…
For whom this session is?
Agenda
Intro to Software lifecycle + DevOps
Intro to Azure DevOps
Azure Pipelines
Unit tests with SPFx
Intro to tech debt management
Conclusion
Ready?
Software lifecycle
Where it all begins
From the delivery team’s perspective, DevOps is about automating the process, releasing
frequently, and leveraging telemetry as well as feedback to improve solutions
DEVOPS BASICS
Idea/Need
Market
Azure DevOps
Let’s talk about tooling
Formerly Visual Studio Team Services
Azure DevOps
TFS as a service/modular
Updated more frequently
Pay per user/build
Everything except
SharePoint Integration
Process Template Customization**
Data Warehouse
Branch
management
Code as a team, not a guy in a cave
Git is great with branches and cross platform, it has become an industry standard
Gitflow is a great process for DevOps teams and allows them to scale seemlessly
Git + git flow
Git is a decentralized source control technology
Branches are cheap
Merging is not a nightmare
Cross platform
Lot of tools
Git flow is a process model for branch management
Focused work
Easy context switching
Standard and no thinking required
Semver…
Pull requests are a great way to help your team grow and to improve the quality of the
code
Peer reviews and quality
« Here are a bunch of changes in the code, please review it and make it
part of the main code »
Also check if changes:
Build
Pass unit tests
Pass static analysis gate (code quality)
Have associated work items (context/documentation)
And allows:
For discussion
The team to grow together
Build
Let’s increase the quality of releases
Implementing automated builds solves multiple concerns for a development team
Automated builds
Predictable result
Constant quality
Time saving
Avoid XAML builds (very old) and 2015/JSON builds (previous model)
Pipelines
YAML definition
Web edition
Lot of third-party integrations
Tasks on GitHub!
Agent auto updates!
Hosted agents are VM’s ready to use in the cloud with lots of pre-installed tools.
Agents
Hosted Agents
BaaS
Installed Agents
Azure, or anywhere else
Azure DevOps includes a wide eco-system or agents and tools by default
Hosted agents flavours
Windows
2019, 2016, 2012R2, core1803
Ubuntu
18.04, 16.04
MacOS
Mojave, High Sierra
Bring your own container
Build pipelines
Demo
Tests
The first thing to consider is how quick you want feedback vs how complex the test is.
Tests levels
Unit testing
Load testing
Integration testing
System testing
Functional/Acceptance testing
The second thing to consider is the aspect of the solution you want to test for.
Tests types
Installation
Compatibility
Regression
Destructive
Security
L17N/I13N
A/B
…..
Microsoft removed it’s original choices for unit testing from SPFx.
Test tooling – 2019 updated
Runners Assertion
libraries
Emulators -
Environments
Reporters Frameworks Stubing -
Mocking
Snaphosts
Karma Chai + as
promised
PhantomJS Junit Mocha Sinon Jest + Enzyme
MSTest MS.Test ns Node
(backend)
Coverage Casper Jest
Istanbul Jest Chrome Cobertura Jasmine
Jest Enzyme … Jest
Unit tests of demo webpart
Demo
Deploy
Automate all the things!
Both strategies are valid and you should choose the one that fits your team.
Different schools
Source promotion
Track and deploy a certain state of source code
Rebuild for each deployment
Build promotion
Source code is built once
Binaries are deployed to environments
The release pipelines allow you to capitalize on the skills developed for build pipelines
Pipelines (release)
Same technology as the build
+ Environments
+ Deployment strategies
+ Approvals
Release Pipelines
Demo
Technical debt
management
Or how to avoid digging your own grave
What is tech debt?
Code we’re not comfortable with
Preventing us from innovating
Causing a lot of support
Stressful for the team
Solutions?
Rewrite everything every 2 years
Pair coding
Static analysis + linting
SonarQube, linting for demo webpart
Demo
Conclusion
DevOps methodologies improve the overall productivity and reduce stress of the team.
Conclusion
Lot of time saved
Consistent builds
Automated tests
Quality increased
Money saved
Bit.ly/vince365 @baywet slideshare.net/VincentBIRET
Thanks!/Questions?
Vincent Biret
Office 365 and Azure
Developer, 2toLead
@baywet
Bit.ly/vince365
http://bit.ly/az-sq
http://bit.ly/spfx-devops

More Related Content

What's hot

Devops the Microsoft Way
Devops the Microsoft WayDevops the Microsoft Way
Devops the Microsoft Way
Patrick Chanezon
 

What's hot (20)

#MicrosoftGraph Community call - automating your digital workplace provisioni...
#MicrosoftGraph Community call - automating your digital workplace provisioni...#MicrosoftGraph Community call - automating your digital workplace provisioni...
#MicrosoftGraph Community call - automating your digital workplace provisioni...
 
Comment tirer partie de Visual Studio Online pour vos développements SharePoint
Comment tirer partie de Visual Studio Online pour vos développements SharePointComment tirer partie de Visual Studio Online pour vos développements SharePoint
Comment tirer partie de Visual Studio Online pour vos développements SharePoint
 
Leveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional TestsLeveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional Tests
 
CloudShare Dev and Test SPSTCDC
CloudShare Dev and Test SPSTCDCCloudShare Dev and Test SPSTCDC
CloudShare Dev and Test SPSTCDC
 
Microsoft Azure Cloud and DevOps
Microsoft Azure Cloud and DevOpsMicrosoft Azure Cloud and DevOps
Microsoft Azure Cloud and DevOps
 
Software Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsSoftware Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails Applications
 
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
 
InCycle's DevOps with Azure
InCycle's DevOps with AzureInCycle's DevOps with Azure
InCycle's DevOps with Azure
 
Putting the DOT in .NET - Dev/Ops/Test
Putting the DOT in .NET - Dev/Ops/TestPutting the DOT in .NET - Dev/Ops/Test
Putting the DOT in .NET - Dev/Ops/Test
 
Enterprise DevOps
Enterprise DevOpsEnterprise DevOps
Enterprise DevOps
 
Devops the Microsoft Way
Devops the Microsoft WayDevops the Microsoft Way
Devops the Microsoft Way
 
DevOps in Azure : Puppetize the Cloud
DevOps in Azure : Puppetize the CloudDevOps in Azure : Puppetize the Cloud
DevOps in Azure : Puppetize the Cloud
 
Building A DevOps Platform for Microservices
Building A DevOps Platform for MicroservicesBuilding A DevOps Platform for Microservices
Building A DevOps Platform for Microservices
 
Microsoft and DevOps - Presented by Atidan
Microsoft and DevOps - Presented by AtidanMicrosoft and DevOps - Presented by Atidan
Microsoft and DevOps - Presented by Atidan
 
Martin woodward - DevOps habits - part 4 of 4
Martin woodward - DevOps habits - part 4 of 4Martin woodward - DevOps habits - part 4 of 4
Martin woodward - DevOps habits - part 4 of 4
 
DevOps + Azure
DevOps + AzureDevOps + Azure
DevOps + Azure
 
Azure DevOps for Developers
Azure DevOps for DevelopersAzure DevOps for Developers
Azure DevOps for Developers
 
Chris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing work
 
Test Automation Architecture
Test Automation ArchitectureTest Automation Architecture
Test Automation Architecture
 
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
 

Similar to #SPSToronto How to do #DevOps with #SPFx and why it matters

Similar to #SPSToronto How to do #DevOps with #SPFx and why it matters (20)

Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
SPS vancouver is it possible to do devops with SharePoint Framework
SPS vancouver is it possible to do devops with SharePoint FrameworkSPS vancouver is it possible to do devops with SharePoint Framework
SPS vancouver is it possible to do devops with SharePoint Framework
 
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Sps monaco vincent biret spfx devops
Sps monaco vincent biret spfx devopsSps monaco vincent biret spfx devops
Sps monaco vincent biret spfx devops
 
T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...
T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...
T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Enterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseEnterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, Release
 
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Accelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAccelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and Microservices
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Let's banish "it works on my machine"
Let's banish "it works on my machine"Let's banish "it works on my machine"
Let's banish "it works on my machine"
 
Ibm innovate ci for system z
Ibm innovate ci for system zIbm innovate ci for system z
Ibm innovate ci for system z
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOps
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
DevOps CTO Masterclass | Webinar Oct. 2020
DevOps CTO Masterclass | Webinar Oct. 2020DevOps CTO Masterclass | Webinar Oct. 2020
DevOps CTO Masterclass | Webinar Oct. 2020
 

More from Vincent Biret

More from Vincent Biret (20)

#MSGraph introduction at #M365SaturdayOttawa
#MSGraph introduction at #M365SaturdayOttawa#MSGraph introduction at #M365SaturdayOttawa
#MSGraph introduction at #M365SaturdayOttawa
 
#MWCP19 atelier provisionnement #Office365 slides teams
#MWCP19 atelier provisionnement #Office365 slides teams#MWCP19 atelier provisionnement #Office365 slides teams
#MWCP19 atelier provisionnement #Office365 slides teams
 
#MWCP19 atelier provisionnement #Office365 slides introduction
#MWCP19 atelier provisionnement #Office365 slides introduction#MWCP19 atelier provisionnement #Office365 slides introduction
#MWCP19 atelier provisionnement #Office365 slides introduction
 
December #PnP #SPFx call #CLI exteranlize demo
December #PnP #SPFx call #CLI exteranlize demoDecember #PnP #SPFx call #CLI exteranlize demo
December #PnP #SPFx call #CLI exteranlize demo
 
MS365 dev bootcamp - day introduction slides
MS365 dev bootcamp - day introduction slidesMS365 dev bootcamp - day introduction slides
MS365 dev bootcamp - day introduction slides
 
MS365 Dev Bootcamp Montreal 2019 - Microsoft graph introduction
MS365 Dev Bootcamp Montreal 2019 - Microsoft graph introductionMS365 Dev Bootcamp Montreal 2019 - Microsoft graph introduction
MS365 Dev Bootcamp Montreal 2019 - Microsoft graph introduction
 
#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph
 
#SPFestSea Introduction to #Azure #Functions v2
#SPFestSea Introduction to #Azure #Functions v2#SPFestSea Introduction to #Azure #Functions v2
#SPFestSea Introduction to #Azure #Functions v2
 
#SPFestSEA Introduction to #MicrosoftGraph
#SPFestSEA Introduction to #MicrosoftGraph#SPFestSEA Introduction to #MicrosoftGraph
#SPFestSEA Introduction to #MicrosoftGraph
 
Groupe usagers SharePoint Quebec Juin 2019 - Nouveautés de dev et évènements
Groupe usagers SharePoint Quebec Juin 2019 - Nouveautés de dev et évènementsGroupe usagers SharePoint Quebec Juin 2019 - Nouveautés de dev et évènements
Groupe usagers SharePoint Quebec Juin 2019 - Nouveautés de dev et évènements
 
#MSBuild using #IoT to improve peoples's health and brain power
#MSBuild using #IoT to improve peoples's health and brain power#MSBuild using #IoT to improve peoples's health and brain power
#MSBuild using #IoT to improve peoples's health and brain power
 
#SPFestDC #Azure #Functions V2: What's new and getting started
#SPFestDC #Azure #Functions V2: What's new and getting started#SPFestDC #Azure #Functions V2: What's new and getting started
#SPFestDC #Azure #Functions V2: What's new and getting started
 
#SPFestDC Migrate your custom solutions to the modern stack
#SPFestDC Migrate your custom solutions to the modern stack#SPFestDC Migrate your custom solutions to the modern stack
#SPFestDC Migrate your custom solutions to the modern stack
 
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
 
Microsoft #ignite tour #toronto 2019 How to do #DevOps with the #SPFx and why...
Microsoft #ignite tour #toronto 2019 How to do #DevOps with the #SPFx and why...Microsoft #ignite tour #toronto 2019 How to do #DevOps with the #SPFx and why...
Microsoft #ignite tour #toronto 2019 How to do #DevOps with the #SPFx and why...
 
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
 
#ESPC18 how to migrate to the #SharePoint Framework?
#ESPC18 how to migrate to the #SharePoint Framework?#ESPC18 how to migrate to the #SharePoint Framework?
#ESPC18 how to migrate to the #SharePoint Framework?
 
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
 
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
 
Global Office Bootcamp Montreal 2018 Introduction au Microsoft Graph
Global Office Bootcamp Montreal 2018 Introduction au Microsoft GraphGlobal Office Bootcamp Montreal 2018 Introduction au Microsoft Graph
Global Office Bootcamp Montreal 2018 Introduction au Microsoft Graph
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 

#SPSToronto How to do #DevOps with #SPFx and why it matters

  • 1. How to do DevOps with the SharePoint Framework and why it matters? SharePoint Saturday Toronto 2019 By: Vincent Biret
  • 3. 3 SharePint SharePint The Drake & Firkin 6982 Financial Dr, Mississauga, ON L5N 8J4 SharePoint Saturday Toronto #SPSToronto
  • 4. Passionate about technologies, development and community Vincent Biret @baywet bit.ly/vince365 Microsoft Office Dev MVP Azure and Office 365 developer @ 2toLead
  • 5. Devs, Product Owners, Deciders, QA, Project Managers… For whom this session is?
  • 6. Agenda Intro to Software lifecycle + DevOps Intro to Azure DevOps Azure Pipelines Unit tests with SPFx Intro to tech debt management Conclusion
  • 9. From the delivery team’s perspective, DevOps is about automating the process, releasing frequently, and leveraging telemetry as well as feedback to improve solutions DEVOPS BASICS Idea/Need Market
  • 10. Azure DevOps Let’s talk about tooling
  • 11. Formerly Visual Studio Team Services Azure DevOps TFS as a service/modular Updated more frequently Pay per user/build Everything except SharePoint Integration Process Template Customization** Data Warehouse
  • 12. Branch management Code as a team, not a guy in a cave
  • 13. Git is great with branches and cross platform, it has become an industry standard Gitflow is a great process for DevOps teams and allows them to scale seemlessly Git + git flow Git is a decentralized source control technology Branches are cheap Merging is not a nightmare Cross platform Lot of tools Git flow is a process model for branch management Focused work Easy context switching Standard and no thinking required Semver…
  • 14. Pull requests are a great way to help your team grow and to improve the quality of the code Peer reviews and quality « Here are a bunch of changes in the code, please review it and make it part of the main code » Also check if changes: Build Pass unit tests Pass static analysis gate (code quality) Have associated work items (context/documentation) And allows: For discussion The team to grow together
  • 15. Build Let’s increase the quality of releases
  • 16. Implementing automated builds solves multiple concerns for a development team Automated builds Predictable result Constant quality Time saving
  • 17. Avoid XAML builds (very old) and 2015/JSON builds (previous model) Pipelines YAML definition Web edition Lot of third-party integrations Tasks on GitHub! Agent auto updates!
  • 18. Hosted agents are VM’s ready to use in the cloud with lots of pre-installed tools. Agents Hosted Agents BaaS Installed Agents Azure, or anywhere else
  • 19. Azure DevOps includes a wide eco-system or agents and tools by default Hosted agents flavours Windows 2019, 2016, 2012R2, core1803 Ubuntu 18.04, 16.04 MacOS Mojave, High Sierra Bring your own container
  • 21. Tests
  • 22. The first thing to consider is how quick you want feedback vs how complex the test is. Tests levels Unit testing Load testing Integration testing System testing Functional/Acceptance testing
  • 23. The second thing to consider is the aspect of the solution you want to test for. Tests types Installation Compatibility Regression Destructive Security L17N/I13N A/B …..
  • 24. Microsoft removed it’s original choices for unit testing from SPFx. Test tooling – 2019 updated Runners Assertion libraries Emulators - Environments Reporters Frameworks Stubing - Mocking Snaphosts Karma Chai + as promised PhantomJS Junit Mocha Sinon Jest + Enzyme MSTest MS.Test ns Node (backend) Coverage Casper Jest Istanbul Jest Chrome Cobertura Jasmine Jest Enzyme … Jest
  • 25. Unit tests of demo webpart Demo
  • 27. Both strategies are valid and you should choose the one that fits your team. Different schools Source promotion Track and deploy a certain state of source code Rebuild for each deployment Build promotion Source code is built once Binaries are deployed to environments
  • 28. The release pipelines allow you to capitalize on the skills developed for build pipelines Pipelines (release) Same technology as the build + Environments + Deployment strategies + Approvals
  • 30. Technical debt management Or how to avoid digging your own grave
  • 31. What is tech debt? Code we’re not comfortable with Preventing us from innovating Causing a lot of support Stressful for the team
  • 32. Solutions? Rewrite everything every 2 years Pair coding Static analysis + linting
  • 33. SonarQube, linting for demo webpart Demo
  • 35. DevOps methodologies improve the overall productivity and reduce stress of the team. Conclusion Lot of time saved Consistent builds Automated tests Quality increased Money saved
  • 36. Bit.ly/vince365 @baywet slideshare.net/VincentBIRET Thanks!/Questions? Vincent Biret Office 365 and Azure Developer, 2toLead @baywet Bit.ly/vince365 http://bit.ly/az-sq http://bit.ly/spfx-devops

Editor's Notes

  1. Devs, devops, qa people, deciders Why should you care? ALM = time saved, happy devs, money saved and better products/services
  2. Gestion des questions, interaction, ok avec ce programme?
  3. 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 http://blog-eng.dbtek.it/2014/03/visual-studio-online-vso-vs-team.html https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/
  4. New, hasn’t yet the build quality information and integration with RM + tests manager. https://github.com/Microsoft/vsts-agent-tasks Don’t use XAML builds! It’s old and difficult Don’t use the 2015/JSON model, Microsoft is transitioning away from that to align with industry
  5. Build as a Service (billed by minutes building), Hosted agents have foundation edition of sharepoint installed. Installed agents only need internet access. https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops
  6. Authentication and authorization is a whole session by itself and is advanced. For the interest of time, we’ll skip it today
  7. Goal of this section is not to cover everything, but more what we can achieve in the SharePoint world
  8. Runners: take care of running the tests and provide the infrastructure for (memory, processes…) Asseration libraries: « ways » to write your unit tests Emulators (or environments): context within the tests will run (server with node, browser, emulated browser…) Reporters: take care of writing down tests results in comprenhensive format Frameworks: provide a suite of functionnalities to help implement testing Stubing/Mocking-Faking/Spying: allows you to isolate the tested code and/or observe behavior
  9. Source promotion is generally more flexible
  10. powershell + Tasks = quick win Tip: use –verbose everywhere!
  11. If the static analysis could be automated, wouldn’t be it great?
  12. Money save = dev time saved, less support to provide, better product/service