security policies may dictate separation of dev/test/uat/prod

Where Dev meets Ops
Session Code
Paul Glavich / Chris Padgett
DevOps in brief – what we think it is
Component overview – the pieces
Component breakdown
Full stack – challenges and a few demos
Some jokes in between
Microsoft Ignite
DevOps == ?
Addition to the buzzword arsenal
Common goals
United effort + vision
Tooling
Environment
Continuous Integration ( CI )
Continuous Deployment ( CD )
Monitoring / Feedback
Microsoft Ignite
Component Breakdown - Environment
Where am I deploying to?
The case of immutable infrastructure
Configuration
Dev Experience
What is immutable infrastructure?
Completely eliminates infrastructure config drift
Everytime a new "build" is promoted to release, build an entirely new
"stack", then tear down the old "stack"
• Removes the need to maintain separate UAT/Staging environments, in
effect, the UAT/Staging environment becomes production*
•
•
*Image from Martin Fowler (https://martinfowler.com/bliki/ImmutableServer.html)
* Might not be applicable for enterprises – security policies may dictate separation of dev/test/uat/prod
Component Breakdown - Tooling
Visual Studio Team Services
Octopus
Jenkins
Puppet, Chef
Powershell
Package Management (Nuget, npm)….
Immutable Infra – Making it real in Azure
Component Breakdown - CI
Branching strategy
Master
Hotfix
Feature 1
Feature 1
Master
Master
Master
Feature 2
Feature 2
Feature 2
Component Breakdown - CI
Unit Tests
Component Breakdown - CI
Integration tests
Component Breakdown – CI
Static code analysis
https://marketplace.visualstudio.com/items?itemName=fortifyvsts.hpe-securityfortify-vsts
https://wiki.jenkins-ci.org/display/JENKINS/zap+plugin
Component Breakdown - CD
Configuration –
Tokenisation and CMDB (Azure KeyVault)
Manage config as code (flat files) with static references that are immutable
VSTS, Octopus and others provide variable substitution
Component Breakdown - CD
Environment progression
Infrastructure as code
Asset Promotion
Component Breakdown – CD
Ensuring quality
Component Breakdown – CD
Ensuring quality
https://www.gridlastic.com/
https://www.browserstack.com/
Infrastructure Code/Promotion Workflow (for enterprises)
•
•
•
•
A modified version of github flow
meant for enterprises who need to
segregate dev and prod
environments
PR early – not at the end of your
work!
PRs will act as gates for changes to
flow through environments
Introduce branches in the middle
as more environments are required
(adds overhead)
Promotion Workflow - Paas
•
Manual approval steps can be in
place for progression to new
environments.
•
As maturity improves, automated
progression steps can be used.
Component Breakdown - Monitoring
Performance metrics
Usage analytics
www.kissmetrics.com
Feedback
Wrapping up
Begin building your pipeline at project inception
Understand your environments
Continue to build your pipeline as you go
Revise – Iterate – Improve
Continue your Ignite learning path
Visit Channel 9 to access a wide range of Microsoft training
and event recordings https://channel9.msdn.com/
Head to the TechNet Eval Centre to download trials of the latest
Microsoft products http://Microsoft.com/en-us/evalcenter/
Visit Microsoft Virtual Academy for free online training visit
https://www.microsoftvirtualacademy.com
Microsoft Ignite