Puppet Application
Orchestration with Windows
Ethan Brown, Principal Engineer, Puppet
Iristyle
ethanjbrown
Puppet Application Orchestration with Windows
Core Agent / Types and Providers
Ecosystem Integrations – PS, DSC
Azure Extensions and Images
Puppet Application Orchestration with Windows
Agenda
(Really) Brief v1 Recap
2016.4 Orchestration Enhancements
Code Manager
Concept Application
Demo
3Puppet Application Orchestration with Windows
Orchestration v1 Recap
Initial 2015.3 Release
4
Orchestration v1 Recap
Language Additions Services / Tooling
Framework for describing applications
Tools for applying ordered configuration spanning nodes
5Puppet Application Orchestration with Windows
2016.4 Enhancements
It’s All About Control
6
2016.4 New Features
Direct Puppet PE Client Tools
OSX + Windows
Arbitrary Nodes
(PQL Support)
Manage Puppet without the PE console
Expressly Dictate Change
7Puppet Application Orchestration with Windows
Code Manager
Managing and Deploying Environments
8
Conceptual Code Promotion Workflow
Commit Code
Branch Per
Environment
Deploy / Sync Code Enforce Code
Deterministically
Or
Eventually
9Puppet Application Orchestration with Windows
A Bit of Advice
Let Code Manager manage code
10Puppet Application Orchestration with Windows
Puppetfile
Module dependencies
11
Let’s Talk About Apps
Yes, it’s an ASP.NET MVC app running under IIS.
Please bear with me.
12
Pushing the Envelope
8 VMS running under Vagrant 1.8.1 / VirtualBox 5.0.x on a 16GB MBP
Oscar plugin for managing PE installs
https://github.com/Iristyle/puppetconf2016
13Puppet Application Orchestration with Windows
Prep The 2016.4.0 Master
Enable Code
Manager
code_manager_auto_configure
Create RBAC user
rbac-api/v1/users
Point Code Manager
To Internal Git Repo
master::r10k_remote
Pointed to HTTP repo
Vagrant Setup
14Puppet Application Orchestration with Windows
Prep The Release Binaries
NuGet Packages
App asset packaging
format, parameterized
for Choco
ASP.NET MVC App
Typical MVC app built
with Visual Studio 15
Chocolatey Server
“Simple Server”
deployed with Puppet
Build Server
Not in demo, but
typically assets
produced by Jenkins /
TFS / TeamCity
A simulated release pipeline
15Puppet Application Orchestration with Windows
Choco Package Install Script
16Puppet Application Orchestration with Windows
Windows 10 Server
Generate token
Install PE tools
Config PE tools
puppet-access CLI
Host Control Repo Choco push
Stage app 0.0.1
Deploy Code
Puppet-code CLI
Standalone node not under Puppet control
17Puppet Application Orchestration with Windows
Puppet Job Run
No applications defined
Nodeset specified with –nodes
5 nodes updated over 2.5 minutes
18
Clustered Blue Green Deployment
19Puppet Application Orchestration with Windows
v1
v2
LB
Live Demo
The Main Event
20
Additional Resources
Orchestration Workflow Docs - https://docs.puppet.com/pe/latest/
app_orchestration_workflow.html
Wordpress App Demo - https://github.com/puppetlabs/puppetlabs-wordpress_app
App Modeling Module - https://forge.puppet.com/puppetlabs/app_modeling
Puppet Control Repo - https://github.com/puppetlabs/control-repo
RG Bank Demo – Docker + Orchestration -
https://github.com/puppetlabs/puppetlabs-rgbank
21Puppet Application Orchestration with Windows
Thanks!
(Special thanks to Charlie and Alex!)
22
PuppetConf 2016: Deploying Multi-Tier Windows Applications with Application Orchestrator – Ethan Brown, Puppet

PuppetConf 2016: Deploying Multi-Tier Windows Applications with Application Orchestrator – Ethan Brown, Puppet

  • 1.
    Puppet Application Orchestration withWindows Ethan Brown, Principal Engineer, Puppet Iristyle ethanjbrown Puppet Application Orchestration with Windows
  • 2.
    Core Agent /Types and Providers Ecosystem Integrations – PS, DSC Azure Extensions and Images Puppet Application Orchestration with Windows
  • 3.
    Agenda (Really) Brief v1Recap 2016.4 Orchestration Enhancements Code Manager Concept Application Demo 3Puppet Application Orchestration with Windows
  • 4.
  • 5.
    Orchestration v1 Recap LanguageAdditions Services / Tooling Framework for describing applications Tools for applying ordered configuration spanning nodes 5Puppet Application Orchestration with Windows
  • 6.
  • 7.
    2016.4 New Features DirectPuppet PE Client Tools OSX + Windows Arbitrary Nodes (PQL Support) Manage Puppet without the PE console Expressly Dictate Change 7Puppet Application Orchestration with Windows
  • 8.
    Code Manager Managing andDeploying Environments 8
  • 9.
    Conceptual Code PromotionWorkflow Commit Code Branch Per Environment Deploy / Sync Code Enforce Code Deterministically Or Eventually 9Puppet Application Orchestration with Windows
  • 10.
    A Bit ofAdvice Let Code Manager manage code 10Puppet Application Orchestration with Windows
  • 11.
  • 12.
    Let’s Talk AboutApps Yes, it’s an ASP.NET MVC app running under IIS. Please bear with me. 12
  • 13.
    Pushing the Envelope 8VMS running under Vagrant 1.8.1 / VirtualBox 5.0.x on a 16GB MBP Oscar plugin for managing PE installs https://github.com/Iristyle/puppetconf2016 13Puppet Application Orchestration with Windows
  • 14.
    Prep The 2016.4.0Master Enable Code Manager code_manager_auto_configure Create RBAC user rbac-api/v1/users Point Code Manager To Internal Git Repo master::r10k_remote Pointed to HTTP repo Vagrant Setup 14Puppet Application Orchestration with Windows
  • 15.
    Prep The ReleaseBinaries NuGet Packages App asset packaging format, parameterized for Choco ASP.NET MVC App Typical MVC app built with Visual Studio 15 Chocolatey Server “Simple Server” deployed with Puppet Build Server Not in demo, but typically assets produced by Jenkins / TFS / TeamCity A simulated release pipeline 15Puppet Application Orchestration with Windows
  • 16.
    Choco Package InstallScript 16Puppet Application Orchestration with Windows
  • 17.
    Windows 10 Server Generatetoken Install PE tools Config PE tools puppet-access CLI Host Control Repo Choco push Stage app 0.0.1 Deploy Code Puppet-code CLI Standalone node not under Puppet control 17Puppet Application Orchestration with Windows
  • 18.
    Puppet Job Run Noapplications defined Nodeset specified with –nodes 5 nodes updated over 2.5 minutes 18
  • 19.
    Clustered Blue GreenDeployment 19Puppet Application Orchestration with Windows v1 v2 LB
  • 20.
  • 21.
    Additional Resources Orchestration WorkflowDocs - https://docs.puppet.com/pe/latest/ app_orchestration_workflow.html Wordpress App Demo - https://github.com/puppetlabs/puppetlabs-wordpress_app App Modeling Module - https://forge.puppet.com/puppetlabs/app_modeling Puppet Control Repo - https://github.com/puppetlabs/control-repo RG Bank Demo – Docker + Orchestration - https://github.com/puppetlabs/puppetlabs-rgbank 21Puppet Application Orchestration with Windows
  • 22.
    Thanks! (Special thanks toCharlie and Alex!) 22