Mastering the pipeline
-
Upload
jorrit-salverda -
Category
Documents
-
view
159 -
download
0
Transcript of Mastering the pipeline
![Page 1: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/1.jpg)
Mastering the pipeline
Jorrit SalverdaTechnical architect @ AKQA Amsterdam
![Page 2: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/2.jpg)
![Page 3: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/3.jpg)
![Page 4: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/4.jpg)
What they have in common
● Little time for project setup
● Many deployments near go-live
● Pipelines up to UAT/PROD
![Page 5: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/5.jpg)
![Page 6: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/6.jpg)
Goals
● Short feedback loop
● Rapid deployments
● Optimised for build grids
● Executable on any machine
● Easy to set up
![Page 7: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/7.jpg)
MSBuild by convention
● Convention over configuration
● Open sourced on Github (MIT license)
● Easy to upgrade
● Conventions can be overridden
![Page 8: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/8.jpg)
Conventions
● Source directory structure
● Javascript and css dirs
● Postfixes for project names
● *.Website
● *.Database
● *.UnitTests
● ... and more
![Page 9: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/9.jpg)
![Page 10: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/10.jpg)
/t:Build
● C# (versions the assemblies)
● ASP.NET views
● Javascript (JSHint)
![Page 11: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/11.jpg)
/t:RunUnitTests
● Compile only if needed
● NUnit
● Machine Specification
● MSTest
![Page 12: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/12.jpg)
/t:Release
● Minify (YUI Compressor)
● Version images, fonts, flash
● Create Azure packages
● Transform configs
● Zip artefacts
![Page 13: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/13.jpg)
/t:RunIntegrationTests
● Deploy database and website to INT
● Run integration tests
![Page 14: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/14.jpg)
/t:AnalyzeWithSonar
● Code quality (FxCop)
● Coverage (OpenCover)
● Sonar
![Page 15: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/15.jpg)
![Page 16: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/16.jpg)
/t:Deploy /p:DeployEnvironment=UAT
● To IIS (MSDeploy)
● To Azure (Powershell commandlets)
● Windows Services (Robocopy)
![Page 17: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/17.jpg)
![Page 18: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/18.jpg)
/t:Deploy /p:DeployEnvironment=PROD
● Untested configuration!
![Page 19: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/19.jpg)
What's next?
● Automated rollback if smoke test fails
● Hook into monitoring (Github)
● Cross-browser testing (The Guardian)
![Page 20: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/20.jpg)
// todo
● Copy those scripts...
![Page 21: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/21.jpg)
![Page 22: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/22.jpg)
![Page 23: Mastering the pipeline](https://reader033.fdocuments.us/reader033/viewer/2022052900/5563cc7ed8b42aa0588b4ee1/html5/thumbnails/23.jpg)
Thanks
msbuild by convention github repo: http://goo.gl/w9OcR
introductory blog post:http://goo.gl/Y0cNW
reach me at:[email protected]