enterprise provisioning with chocolatey
DESCRIPTION
Deployment automation became so popular that you’ll unlikely work on the project without it. But when it comes to OS configuration, installing tools and supplementary frameworks, many people just setup everything manually because they’ll probably do it just once or twice. The same for goes for setting up development workstation or virtual machine for reproducing issues – it may take multiple hours to do it manually: find the required frameworks and tools, download the right versions, set corporate license details and import configuration files. One thing which is usually left without attention is that automation is not just about repeating stuff thousand times. Server deployment scripts can also replace some documentation, provide a very convenient way to create identical environment, and can be easily used to scale-out in future. This talk is about the ways to automate development environment setup as well as server provisioning. I’ll show the tools, typical use cases, tips & tricks learned during implementation. After this presentation you’ll bootstrap your next development machine in one click!TRANSCRIPT
Enterprise Provisioning with Chocolatey
About Me
Alexander Doroshenko
Sitecore Ukraine
@adoprog
http://sitecoresnippets.blogspot.com
http://github.com/adoprog
Why it matters
0
1
2
3
4
5
6
7
8
9
2011 2012 2013
Production Deployment Project Setup Developer's Desktop
Ho
urs
Developer's Desktop
Web Servers
• Hard to reproduce tricky issues
• Different configurations in a web farm
• Scaling web servers is complicated
• Test servers may be not exactly the same
Build Servers
• No identical environment for debug
• Scaling build servers is complicated
Solution?
USE
CHOCOLATEY
TO INSTALL
SOFTWARE
USE
BOXSTARTER
TO PROVISION
DESKTOP
Choco… what?
• Chocolatey is like apt-get a package manager for Windows
• Based on NuGet, uses the same package structure
• Type “cinst %whatever%” to install %whatever%
• Unattended install for simply anything
BoxStarter
• Start provisioning from console
• Chocolatey will be installed automatically
• Disables UAC and Windows Update
• Manages reboots
Create your own packages
• Do not rely on internet access speed
• Bundle configuration files (GhostDoc, StyleCop etc.)
• Set corporate license details
• Install programs without installers (nAnt, jMeter, etc.)
The New Desktop
1. Choose BoxStarter package from the library• Developer_General_Windows8
• Developer_%Project name%_Windows7
2. Provision from command line• \\Boxstarter\BoxStarter.bat Developer_General_Windows8
3. Start Hacking
The New Server
• Use Chocolatey or BoxStarter
• Always identical environments
• Simple and automated scaling
• Installation from trusted sources
• Simplifies reproducing issues
Hints
• MyGet / ProGet have useful “proxy” option
• Use dependencies to avoid duplicate code
• Use tokens & different feeds to support multiple locations
• Install and configure anything with PowerShell