Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DNNCon 2014 - Enterprise Deployment Patterns (Cleaned)

DNNCon 2014 - Enterprise Deployment Patterns (Cleaned)

Deck for DNNCon 2014 talking about the path that BlueBolt has taken to get higher quality deployments, with a side note to the BravoSquared Content Staging product.

James McKee

December 16, 2014
Tweet

More Decks by James McKee

Other Decks in Programming

Transcript

  1. @DNNCon Don’t forget to include #DNNCon in your tweets! ENTERPRISE

    DEPLOYMENT AND BEYOND FOR DNN James McKee / Solutions Developer @punkcoder
  2. @DNNCon Don’t forget to include #DNNCon in your tweets! Or…

    There’s no good way to microwave a website. ENTERPRISE DEPLOYMENT AND BEYOND FOR DNN
  3. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    I wear a lot of hats • Working a .NET developer for 12 years • Working in IT as an administrator 9 years • Working as an Enterprise Architect 3 years • Working as a Technology Security Consultant as needed • I’ve worked deploying sites like, Best Buy, Pantene, Pringles, Pampers, and a multitude of Enterprise Applications. About Me (@punkcoder)
  4. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    People who want to reduce their deployment headaches. • People who hate “war rooms” • People who hate 3am deployment. Who this is for:
  5. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    The evolutions of development with applications. • Applications as a product, deployment was simple (-ish) • Web Applications as products. • CMS (Self Service Applications) and how they fit into this space. Background
  6. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    Compliance and Control • Everyone gets a say • Off Hours Deployments • Everyone loves doing a 3am Deployment • Complex Rules • Owners can’t deploy their own work Why Enterprises Make This Worse
  7. @DNNCon Don’t forget to include #DNNCon in your tweets! Microwaving

    a website… … The Preparation and Cooking are already done! … Now we just have to reheat it so we can eat it. The Problem
  8. @DNNCon Don’t forget to include #DNNCon in your tweets! !!!

    BACKUPS !!! • Take one before you start! • Take one once you are done with your deployment! • NOTE: If you cannot put your hand physically on a backup… It Doesn’t Exist!! • Practice Roll Back, if possible automate the rollback. The #1 Key to Successful Deployment
  9. @DNNCon Don’t forget to include #DNNCon in your tweets! !!!

    Deploy Early and Often !!! • As with anything practice makes perfect • Try to eliminate yourself from the equation • Establish differences between environments early, and plan for them. The #1b Key to Successful Deployment
  10. @DNNCon Don’t forget to include #DNNCon in your tweets! !!!

    Take Notes !!! • It’s important to know ALL of steps that you went through. • If you do it more than once, script it. * The #1c Key to Successful Deployment
  11. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    Staging gives you a place to practice • Staging gives you a point to plan The Importance of Staging
  12. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    There are a multitude of issues with this, but it is possible to maintain this in a pinch. • One of the biggest issues is that complacence becomes common place. • Fixes to issues get buried with time. • Builds bad practices. • Avoid this at all costs. Solution 0 : Edit Production
  13. @DNNCon Don’t forget to include #DNNCon in your tweets! Cut…

    Copy… Paste… • This can work in some cases, as long as you have a site that doesn’t have customer interaction points. • Not terribly flexible, it’s really all or nothing. Solution 1 : XCopy Deployment
  14. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    Step 1 : Build delta scripts • Step 2: Build file delta list • Step 3: Take Deployment Notes. Solution 2 : Differential Scripts
  15. @DNNCon Don’t forget to include #DNNCon in your tweets! There

    are tons of great ways to automate deployments: • POWERSHELL! • Grunt / Rake (msbuild… meh!) • Octopus Deploy • Chef (yup works for windows too) • Puppet Solution 3 : Automated Scripts
  16. @DNNCon Don’t forget to include #DNNCon in your tweets! Is

    It Worth the Time (xkcd: http://xkcd.com/1205/)
  17. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    Powershell is the de-facto scripting language for Windows. • Chocolatey is very helpful • Version with Git or Mercurial POWERSHELL!!!!
  18. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    Multiplatform • Way more forgiving then powershell • Version with git or mercurial Grunt / Rake
  19. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    Uses nugget • Integrates directly with solution if there are developers. • Builds process around deployment and reproduction of the environment • SUPER STABLE Octopus Deploy
  20. @DNNCon Don’t forget to include #DNNCon in your tweets! •

    I can’t speak to these • But the products speak for themselves • Like Octopus deploy but way more complicated • Also support for multiplatform • Both support windows (but windows is still a 2nd class citizen) Chef / Puppet
  21. @DNNCon Don’t forget to include #DNNCon in your tweets! I’ve

    got ulterior motives… Solution 4 : The Future
  22. @DNNCon Don’t forget to include #DNNCon in your tweets! Currently

    • Migration of content from a staging environment to production • Push button content deployment for DNN. Bravo Staging Bridge
  23. @DNNCon Don’t forget to include #DNNCon in your tweets! Future

    • File System and Module Deployment • Better user tools • Better reporting • Branch Staging Bravo Staging Bridge
  24. @DNNCon Don’t forget to include #DNNCon in your tweets! DISCLAIMER

    • I’ve spent a LOT of time thinking about this issue. • This is the first public demo of the software • This is an early alpha build (v0.9.1) Bravo Staging Bridge