Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

EpiHelsinki: Episerver_DevOps, Joona_Immonen, Solita

262 views

Published on

EpiServer and DevOps presentation from EpiHelsinki meetup. How to install development environment in Episerver project.
How to install hosting environment for Episerver.
How to build a build pipeline for Episerver with Jenkins

Published in: Technology
  • Be the first to comment

  • Be the first to like this

EpiHelsinki: Episerver_DevOps, Joona_Immonen, Solita

  1. 1. EPISERVER AND DEVOPS Joona Immonen Software architect @rinorragi
  2. 2. AGENDA › What is DevOps › How to setup development environment › How to setup CI/QA/Prod environment › How to build a build pipeline › Support tickets and version control › How to share your coolest code
  3. 3. DEVOPS
  4. 4. WHAT WIKI SAYS
  5. 5. WHAT I THINK: AUTOMATE ALL THE THINGS
  6. 6. DEVELOPMENT ENVIRONMENT
  7. 7. WHAT IF NEW GUY COMES TO YOUR PROJECT?
  8. 8. AT SOLITA WE DO TWO THINGS › Run chocolatey script for installing windows features and needed software • Visual Studio, .NET, IIS, Git client, etc… › Run project specific dev_init powershell script to create project specific configurations to your project • Create needed IIS stuff, install certificates, etc…
  9. 9. DEMO › Show chocolatey scripts… › https://github.com/solita/powershell- webdevelopertools/blob/master/install/workstation-install.ps1
  10. 10. HOSTING ENVIRONMENT
  11. 11. NEW SERVERS ARE WAITING FOR SETUP
  12. 12. WHICH WILL YOU CHOOSE › Multiple wizards › Scripted installation
  13. 13. AT SOLITA WE PREFER SCRIPTING
  14. 14. DEMO › Show server installation scripts… › https://github.com/solita/powershell- webdevelopertools/blob/master/scripts/solita_example_server_ins tall.ps1
  15. 15. BUILDING A BUILD PIPELINE
  16. 16. WE HEARD THAT YOU LIKE BUILDING SO WE BUILD YOUR BUILD PIPELINE
  17. 17. PIPELINE AS A CODE › As you automate more and more things you will soon be thinking following things: • Can I build cloud environment infrastructure like I build my code? • Should I have separeted pipeline for infrastructure? • If I will have more and more important build jobs should I take them under version control? • Should I version my build configurations? › Answer for all above is simple: YES
  18. 18. WE USE JENKINS JOB DSL PLUGIN FOR THIS › You will setup a groovy script › Then you use Jenkins Job DSL job for building other Jenkins jobs › And after that you can build your build components with generated Jobs
  19. 19. YOU GET NICE PIPELINE VIEW TOO
  20. 20. USED JENKINS PLUGINS MSBuild Plugin xUnit Plugin MSTest plugin MSTestRunner plugin PowerShell plugin Visual Studio Code Metrics Plugin HipChat Plugin Performance Plugin Sonarqube plugin OWASP-Dependency-Check Plugin ZAProxy Plugin New Relic Deployment Notifier Plugin Gravatar plugin Dynamic Parameter plugin Selenium HTML report Thinbackup Violations plugin Timestamper Delivery Pipeline Plugin Job DSL Build pipeline plugin Build Name Setter Plugin Git plugin Test stability history
  21. 21. DEMO › Show the groovy script › https://github.com/Rinorragi/pipeline- template/blob/master/dotnet/jobs/Main.groovy
  22. 22. SUPPORT TICKETS AND VERSION CONTROL
  23. 23. USING FEATURE BRANCHES SUPPORT-1 branch TEST QA PROD (master) Jira ticket is started to develop Pull request for code review Ready for customer testing Go live
  24. 24. TIPS & TRICKS › Use DIFF to see what tickets are on which environment › Query Jira to see if the ticket there is on correct status › Put everything on the screen • New tickets (no branch) • Under work tickets (status in jira under work, but no branch) • Waiting code review (pull request made for test) • Waiting for customer review (in QA but status not tested) • Customer accepted (in QA and status OK)
  25. 25. SUPPORT SITUATION TODO REVIEW QA PROD SUPPORT-1 SUPPORT-2 SUPPORT-5 SUPPORT-73 SUPPORT-28 SUPPORT-21 SUPPORT-13
  26. 26. BEING A HERO THAT YOUR PROJECT MANAGER LOVES
  27. 27. FEW WORDS ABOUT NUGETS
  28. 28. FEW IDEAS ABOUT NUGETS › NuGets are so good that we created few of our own › There are plenty of NuGets out there but you still might want to create specialized NuGets of your own › We are delivering specialized integrations, elasticsearch tools and scripts as NuGets to the projects
  29. 29. BUILDING A NUGET SERVER › Get a NuGet.Server Nuget and build it. › Choose were you host it › You just need to get your NuGets to specific folder to start hosting them
  30. 30. CREATING A NUGET LIBRARY › Always target your libraries as low as possible. • .NET 4.5, Episerver 7, etc.. › Give meaningful names › Plan ahead the consistency of the package › Make sure that each build of your NuGet has different version › Think through your API and extendability
  31. 31. TIPS & TRICKS › You can make your NuGet to run PowerShell scripts in package manager console › With PowerShell script you can for example manipulate project folder and add your something into solution › With NuSpec you can include source code and debug objects too › Make sure that your custom NuGet sources are configured into your solution
  32. 32. RELEASING NUGET INTO YOUR NUGET SERVER

×