Cooking with Chef on Windows: 2015 EditionJulian Dunn
This document discusses using Chef to automate configuration on Windows systems. Key points include:
- ChefDK and Test Kitchen now support testing Chef code on Windows guests.
- Desired State Configuration (DSC) brings a standard declarative language to Windows automation that Chef code can interface with.
- Chef resources continue to improve support for Windows including the new windows_package and reboot resources in 2015.
This document discusses using Chef to automate configuration on Microsoft Windows systems. It provides a timeline of Chef's support for Windows since 2011. It also discusses resources available in Chef for Windows including the registry_key, powershell_script, and batch resources. The document demonstrates automating the installation of a .NET application on Windows using Chef resources. It provides an overview of using Chef to provision infrastructure on Windows via Azure and discusses testing Chef cookbooks on Windows systems.
Writing recipes for Windows typically involves taking a dependency on the platform-specific Windows cookbook, an artifact that has no real analog when authoring content for Unix-like systems. This requirement is changing starting with Chef 11, as more functionality and resources such as the registry resource formerly tied to the Windows cookbook are available in the core chef-client itself, thus reducing or eliminating the need to use the Windows cookbook. Additionally, the new implementations of the resources provide additional features that make recipes more predictable and robust on the Windows platform.
We’ll see some of this new capability in action, describe the motivation and what gets better, and look forward to additional Windows functionality that can be folded into chef-client.
Takeaways
All of us, Windows and non-Windows users alike, benefit when we rely less on the Windows cookbook
New resources for registry, powershell, and batch scripting are available without the Windows cookbook
These resources enable predictability for 32-bit / 64-bit (Wow64) difficulties
We should start changing our cookbooks to use the new resources
Chef-client as a Windows service is now robust and reliable, no Windows cookbook needed
This is just the beginning–let us know what should jump into core Chef next!
Slides from 08-27-2013 Opscode webinar on using Chef to automate your Microsoft Windows-based infrastructure, including a live demo of Windows automation and a review of the latest and greatest resources available for running Chef with Windows-based infrastructure.
Nordstrom has been using Chef to automate Windows environments. Come by this talk to get some tips and tricks for managing your Windows-based environment with Chef.
Tips such as:
Using Mixlib::Shellout and PowershellOut to execute Windows tools and scripts as a Domain user.
Windows cookbook improvements, including Printer LWRP
Diskpart cookbook
Chef-keypass for better one-way encryption of data-bag secrets, including certs and passwords
How to use Windows cookbook helpers
Using the new Windows Registry resource in Chef 11
Windows Sysnative for correctly locating Windows programs
Perf improvement numbers for Ruby 1.9.3 in Chef 11 for Windows
Recommended Ohai plugins to disable
Configuration Management in a Containerized WorldJulian Dunn
This document discusses configuration management in a containerized world. It provides an overview of Docker's success due to instant productivity, development resembling shipping, and portable artifacts. It then outlines the build, test, ship, and run phases for container management and discusses using tools like Chef to build containers from cookbooks. Lastly, it touches on fleet management across machines using tags and recipes to deploy MySQL and WordPress containers.
Chef and PowerShell Desired State ConfigurationJulian Dunn
This document discusses using Chef and PowerShell Desired State Configuration (DSC) together for infrastructure configuration and management. It describes how DSC resources can be included and used from Chef to configure Windows features and packages in a declarative way similar to DSC. It also discusses how Chef resources can be mixed with DSC resources for configuration, and how monitoring and run status can integrate between the tools.
What Makes a Good Chef Cookbook? (May 2014 Edition)Julian Dunn
This document provides tips for writing good Chef cookbooks. It recommends putting control flow in attributes, separating recipes by platform, avoiding repetition by using LWRPs, keeping recipes small, using community helpers, and testing code. It also advises being declarative, avoiding poking Chef internals, using native Ruby types, and learning from software developers' best practices.
Orchestration? You Don't Need Orchestration. What You Want is Choreography.Julian Dunn
This document discusses the differences between orchestration and choreography in configuration management. Orchestration involves a central orchestrator executing ordered operations on independent machines, while choreography involves autonomous actors that make and verify promises to each other to achieve a desired state. The document argues that choreography is preferable because it avoids single points of failure, enables more autonomy between systems, and allows for better coordination across a fleet with less reliance on external real-time state systems.
Drupal Continuous Integration with Jenkins - The BasicsJohn Smith
Please check out our new SlideShow of setting up and configuring a Jenkins Continuous Integration server for use within a Drupal development environment. We walk you through the steps of installing Ubuntu 10.04 LTS, Jenkins, Drush and several other PHP coding tools and Drupal Modules to help check your code against current Drupal standards. Then we walk you through creating a git post-receive script, and Jenkins job to pull it all together.
This presentation starts with an introduction to the rationale behind automated deployments in Continuous Delivery and DevOps. Then, I compare agent-based architectures, such as Chef and Puppet with the agentless architecture of the server orchestration engine Ansible. The presentation concludes with an automated deployment of Dynatrace into a simulated production environment.
Infrastructure Automation with Chef & Ansiblewajrcs
What is Infrastructure and why you should automate it?
Typical Infrastructure
Benefits
CMS/ Automation
Chef / Terminologies / Disadvantages
Ansible / Disadvantages
Demo
Summary
Author: Waqar Alamgir; Twitter @wajrcs
Ansible is tool for Configuration Management. The big difference to Chef and Puppet is, that Ansible doesn't need a Master and doesn't need a special client on the servers. It works completely via SSH and the configuration is done in Yaml.
These slides give a short introduction & motivation for Ansible.
Ansible is a popular choice for automating infrastructure provisioning, config management, deployments, etc. Shippable provides a perfect complement with native CI, release management functionality as well as the ability to create event-driven workflows across ansible playbooks and other DevOps tools and activities.
This talk was presented by Shippable's co-founder and VP Product Management Manisha Sahasrabudhe at AnsibleFest 2017.
Play Framework: Intro & High-Level OverviewJosh Padnick
This document provides an introduction to the Play Framework for Java web application development. It discusses the challenges of traditional Java web development, including long redeploy times, complex XML configurations, and impedance mismatch between HTTP and Java EE. It then introduces the concepts of reactive and modern web development. The document outlines the goals of the Play Framework to improve both performance and productivity. Key aspects of the Play Framework are discussed, including its focus on developer productivity, built-in support for RESTful APIs, and stateless and scalable architecture. The presentation concludes with a live coding demonstration of basic Play Framework features.
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
This DevOps Tutorial takes you through what is Configuration Management all about and basic concepts of Infrastructure as code. It also compares the four most widely used Configuration Management tools i.e. Chef, Puppet, Ansible and SaltStack.
Check our complete DevOps YouTube playlist here: http://goo.gl/O2vo13
DevOps Tutorial Blog Series here: https://goo.gl/P0zAfF
This document discusses the server configuration management tool Chef. It begins by outlining problems with manual system administration and explains that Chef allows for repeatable, version controlled configurations through recipes defined in Ruby. It then describes Chef's client-server architecture and its embrace of modern web technologies. The remainder of the document outlines Chef's components like nodes, attributes, cookbooks and resources and concludes with a link to a demo.
This document provides an overview of learning Chef infrastructure automation. It discusses that after taking the course, students will understand DevOps and Chef's role in infrastructure automation. The course teaches how to deploy and automate node configurations using recipes and cookbooks. It also covers the Chef workflow and how to use Chef to automate infrastructure deployment.
Ansible new paradigms for orchestrationPaolo Tonin
- Ansible provides a simple way to automate application deployment, server configuration management, and provisioning using SSH. It uses YAML files called playbooks to define tasks that are executed across multiple servers.
- Playbooks allow users to define infrastructure as code and configure servers in an idempotent way. They contain ordered lists of tasks that can install packages, copy files, start services, and more using simple YAML syntax.
- Ansible is agentless and communicates to servers over SSH, requiring only Python to be installed on managed nodes. It has a wide range of core modules and supports provisioning on cloud platforms like AWS.
This document provides an introduction and overview of Ansible, including:
- What Ansible is and its key features like being agentless and ensuring consistent environments.
- The basic architecture of Ansible including managed nodes, control machines, and inventories.
- How to set up a basic Ansible environment using Vagrant and getting started with tasks like pinging nodes.
- Additional Ansible concepts covered include facts, templates, conditionals, notifications, roles, and deployments. Real-world examples are provided throughout.
Automating Dev Environment - Introduction to Docker and Chefkamalikamj
Docker allows for the creation of lightweight Linux containers that provide portable environments on demand. Containers help address issues with local development environments like performance problems and inconsistencies with production. Docker images can be easily shared across teams using Docker registries. Chef is a tool for automated configuration management that ensures consistent configurations across environments and removes repetitive manual software installation tasks. It integrates well with cloud platforms. Using Docker and Chef together provides automated software configuration within portable Docker containers, addressing problems of local dev environments and speeding up the deployment cycle.
Docker and Puppet for Continuous IntegrationGiacomo Vacca
Today developers want to change the code, build and deploy often, even several times per day.
New versions of software may need to be tested on different distributions, and with different configurations.
Achieving this with Virtual Machines it’s possible, but it’s very resource and time consuming. Docker provides an incredibly good solution for this, in particular if combined with Continuous Integration tools like Jenkins and Configuration Management tools like Puppet.
This presentation focuses on the opportunities to configure automatically Docker images, use Docker containers as disposable workers during your tests, and even running your Continuous Integration system inside Docker.
Ansible has huge potential, also working with docker. These slides give an introduction to how Ansible works and can be used to automate and improve your infrastructure setup.
From Ansible's website: "Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs."
This introduction is based on ansible official docs, capturing most important information to make it easy to understand Ansible main concepts.
Chef is an infrastructure automation tool that allows users to define and maintain server configurations. It uses recipes, resources, cookbooks and roles to provision and configure servers. Chef works by installing a Chef client on nodes that runs recipes to configure the node according to cookbooks. The Chef server stores cookbooks and node data. Users can write recipes in Ruby syntax to define what configuration should be applied to nodes.
When most people talk about automating infrastructure, they focus on things like consistency, scalability, and flexibility. While fine goals, we recently converted several projects to Chef for both systems AND application deployment, and found that, with a little work, these tools could also help you enable better software quality assurance, load modeling, and even improve resource allocation.
By sharing cookbooks across projects, we were able to standardize practices and eliminate arbitrary differences, while using parameterization to perfectly isolate the special needs of each project. This allowed us to transfer knowledge among staff much more quickly. Pulling in and parameterizing application state – database contents, website assets, uploaded content – allowed us to spin up new environments with as much or as little state as needed. Integrating with Vagrant and Jenkins, we were then able to use chef to treat the entire image – system and application – as a test fixture. As each engineer (ops or dev) has visibility into the whole stack, we can more easily move people between dev and ops, or between projects.
Jonathan Weiss presented on infrastructure automation using the configuration management tool Chef. Chef uses Ruby scripts called cookbooks and recipes to configure and provision servers. It can configure multiple servers from a single definition file. Chef supports common infrastructure resources like packages, files, templates and services. It enforces best practices of infrastructure as code and makes deployment repeatable and automated through all environment stages.
The document announces the release of ChefDK 0.2.0 which now includes Windows support and tools like ChefSpec, Rubocop, and Foodcritic. It also announces the release of prototypes for Chef integration with PowerShell DSC and new support for Docker containers using Chef recipes instead of Dockerfiles. Finally, it discusses improvements to the Chef community site including replacing community.opscode.com with Supermarket and opening sourcing parts of Supermarket.
This document provides advice on writing good cookbooks in Chef. It recommends putting control flow in attributes to make cookbooks cross-platform, separating recipes by operating system, using community helpers, keeping recipes small and simple, hiding complexity using libraries and LWRPs, and following best practices from software development like information hiding, testing, and avoiding hardcoded strings. Good cookbooks are declarative, avoid poking Chef internals, have options for installation, and leverage built-in Chef resources.
Orchestration? You Don't Need Orchestration. What You Want is Choreography.Julian Dunn
This document discusses the differences between orchestration and choreography in configuration management. Orchestration involves a central orchestrator executing ordered operations on independent machines, while choreography involves autonomous actors that make and verify promises to each other to achieve a desired state. The document argues that choreography is preferable because it avoids single points of failure, enables more autonomy between systems, and allows for better coordination across a fleet with less reliance on external real-time state systems.
Drupal Continuous Integration with Jenkins - The BasicsJohn Smith
Please check out our new SlideShow of setting up and configuring a Jenkins Continuous Integration server for use within a Drupal development environment. We walk you through the steps of installing Ubuntu 10.04 LTS, Jenkins, Drush and several other PHP coding tools and Drupal Modules to help check your code against current Drupal standards. Then we walk you through creating a git post-receive script, and Jenkins job to pull it all together.
This presentation starts with an introduction to the rationale behind automated deployments in Continuous Delivery and DevOps. Then, I compare agent-based architectures, such as Chef and Puppet with the agentless architecture of the server orchestration engine Ansible. The presentation concludes with an automated deployment of Dynatrace into a simulated production environment.
Infrastructure Automation with Chef & Ansiblewajrcs
What is Infrastructure and why you should automate it?
Typical Infrastructure
Benefits
CMS/ Automation
Chef / Terminologies / Disadvantages
Ansible / Disadvantages
Demo
Summary
Author: Waqar Alamgir; Twitter @wajrcs
Ansible is tool for Configuration Management. The big difference to Chef and Puppet is, that Ansible doesn't need a Master and doesn't need a special client on the servers. It works completely via SSH and the configuration is done in Yaml.
These slides give a short introduction & motivation for Ansible.
Ansible is a popular choice for automating infrastructure provisioning, config management, deployments, etc. Shippable provides a perfect complement with native CI, release management functionality as well as the ability to create event-driven workflows across ansible playbooks and other DevOps tools and activities.
This talk was presented by Shippable's co-founder and VP Product Management Manisha Sahasrabudhe at AnsibleFest 2017.
Play Framework: Intro & High-Level OverviewJosh Padnick
This document provides an introduction to the Play Framework for Java web application development. It discusses the challenges of traditional Java web development, including long redeploy times, complex XML configurations, and impedance mismatch between HTTP and Java EE. It then introduces the concepts of reactive and modern web development. The document outlines the goals of the Play Framework to improve both performance and productivity. Key aspects of the Play Framework are discussed, including its focus on developer productivity, built-in support for RESTful APIs, and stateless and scalable architecture. The presentation concludes with a live coding demonstration of basic Play Framework features.
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
This DevOps Tutorial takes you through what is Configuration Management all about and basic concepts of Infrastructure as code. It also compares the four most widely used Configuration Management tools i.e. Chef, Puppet, Ansible and SaltStack.
Check our complete DevOps YouTube playlist here: http://goo.gl/O2vo13
DevOps Tutorial Blog Series here: https://goo.gl/P0zAfF
This document discusses the server configuration management tool Chef. It begins by outlining problems with manual system administration and explains that Chef allows for repeatable, version controlled configurations through recipes defined in Ruby. It then describes Chef's client-server architecture and its embrace of modern web technologies. The remainder of the document outlines Chef's components like nodes, attributes, cookbooks and resources and concludes with a link to a demo.
This document provides an overview of learning Chef infrastructure automation. It discusses that after taking the course, students will understand DevOps and Chef's role in infrastructure automation. The course teaches how to deploy and automate node configurations using recipes and cookbooks. It also covers the Chef workflow and how to use Chef to automate infrastructure deployment.
Ansible new paradigms for orchestrationPaolo Tonin
- Ansible provides a simple way to automate application deployment, server configuration management, and provisioning using SSH. It uses YAML files called playbooks to define tasks that are executed across multiple servers.
- Playbooks allow users to define infrastructure as code and configure servers in an idempotent way. They contain ordered lists of tasks that can install packages, copy files, start services, and more using simple YAML syntax.
- Ansible is agentless and communicates to servers over SSH, requiring only Python to be installed on managed nodes. It has a wide range of core modules and supports provisioning on cloud platforms like AWS.
This document provides an introduction and overview of Ansible, including:
- What Ansible is and its key features like being agentless and ensuring consistent environments.
- The basic architecture of Ansible including managed nodes, control machines, and inventories.
- How to set up a basic Ansible environment using Vagrant and getting started with tasks like pinging nodes.
- Additional Ansible concepts covered include facts, templates, conditionals, notifications, roles, and deployments. Real-world examples are provided throughout.
Automating Dev Environment - Introduction to Docker and Chefkamalikamj
Docker allows for the creation of lightweight Linux containers that provide portable environments on demand. Containers help address issues with local development environments like performance problems and inconsistencies with production. Docker images can be easily shared across teams using Docker registries. Chef is a tool for automated configuration management that ensures consistent configurations across environments and removes repetitive manual software installation tasks. It integrates well with cloud platforms. Using Docker and Chef together provides automated software configuration within portable Docker containers, addressing problems of local dev environments and speeding up the deployment cycle.
Docker and Puppet for Continuous IntegrationGiacomo Vacca
Today developers want to change the code, build and deploy often, even several times per day.
New versions of software may need to be tested on different distributions, and with different configurations.
Achieving this with Virtual Machines it’s possible, but it’s very resource and time consuming. Docker provides an incredibly good solution for this, in particular if combined with Continuous Integration tools like Jenkins and Configuration Management tools like Puppet.
This presentation focuses on the opportunities to configure automatically Docker images, use Docker containers as disposable workers during your tests, and even running your Continuous Integration system inside Docker.
Ansible has huge potential, also working with docker. These slides give an introduction to how Ansible works and can be used to automate and improve your infrastructure setup.
From Ansible's website: "Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs."
This introduction is based on ansible official docs, capturing most important information to make it easy to understand Ansible main concepts.
Chef is an infrastructure automation tool that allows users to define and maintain server configurations. It uses recipes, resources, cookbooks and roles to provision and configure servers. Chef works by installing a Chef client on nodes that runs recipes to configure the node according to cookbooks. The Chef server stores cookbooks and node data. Users can write recipes in Ruby syntax to define what configuration should be applied to nodes.
When most people talk about automating infrastructure, they focus on things like consistency, scalability, and flexibility. While fine goals, we recently converted several projects to Chef for both systems AND application deployment, and found that, with a little work, these tools could also help you enable better software quality assurance, load modeling, and even improve resource allocation.
By sharing cookbooks across projects, we were able to standardize practices and eliminate arbitrary differences, while using parameterization to perfectly isolate the special needs of each project. This allowed us to transfer knowledge among staff much more quickly. Pulling in and parameterizing application state – database contents, website assets, uploaded content – allowed us to spin up new environments with as much or as little state as needed. Integrating with Vagrant and Jenkins, we were then able to use chef to treat the entire image – system and application – as a test fixture. As each engineer (ops or dev) has visibility into the whole stack, we can more easily move people between dev and ops, or between projects.
Jonathan Weiss presented on infrastructure automation using the configuration management tool Chef. Chef uses Ruby scripts called cookbooks and recipes to configure and provision servers. It can configure multiple servers from a single definition file. Chef supports common infrastructure resources like packages, files, templates and services. It enforces best practices of infrastructure as code and makes deployment repeatable and automated through all environment stages.
The document announces the release of ChefDK 0.2.0 which now includes Windows support and tools like ChefSpec, Rubocop, and Foodcritic. It also announces the release of prototypes for Chef integration with PowerShell DSC and new support for Docker containers using Chef recipes instead of Dockerfiles. Finally, it discusses improvements to the Chef community site including replacing community.opscode.com with Supermarket and opening sourcing parts of Supermarket.
This document provides advice on writing good cookbooks in Chef. It recommends putting control flow in attributes to make cookbooks cross-platform, separating recipes by operating system, using community helpers, keeping recipes small and simple, hiding complexity using libraries and LWRPs, and following best practices from software development like information hiding, testing, and avoiding hardcoded strings. Good cookbooks are declarative, avoid poking Chef internals, have options for installation, and leverage built-in Chef resources.
Chef NYC Users' Group - Announcements for June 2014Julian Dunn
The document announces the availability of the Chef Development Kit for writing and testing Chef recipes on Mac and Linux as well as its alpha version for Windows. It notes that GitHub will now host issues for Chef, Ohai, and Mixlib projects instead of JIRA and that Curry will flag PRs that don't have a signed CLA. The community site Supermarket is introduced which will replace cookbooks.opscode.com and use 'knife supermarket' commands. Supermarket may also be installed internally and all users must resigh CLAs. Research on containers and Docker is mentioned across several GitHub projects.
Chef Cookbook Governance BoF at ChefConfJulian Dunn
The document discusses governance topics for software cookbooks including namespace squatting, rapidly evolving testing ecosystems, namespacing, maintainer responsibilities, quality metrics, how and where to codify things, the ArchLinux package repository process, trusted users, abandonment procedures, and Perl's CPAN repository which provides integrated test reports and some maintenance guidance but no namespacing.
Configuration Management Isn't EverythingJulian Dunn
This document discusses configuration management (CM) projects and what leads to their success and failure. It notes that while CM is important, revolutionizing IT requires more than just CM. Successful CM projects have realistic expectations, dedicate resources to own the CM process, conduct candid assessments of current processes, make incremental changes, and plan in advance. They focus on people, process, and products rather than just tools. Unsuccessful projects have unrealistic expectations, rely too much on consultants, take a big bang approach, and lack advance planning. The key is to focus on CM as a long-term investment that improves team collaboration and experimentation.
An Introduction to Shef, the Chef ShellJulian Dunn
Shef is a Chef shell that allows users to interact with Chef in a Ruby environment for tasks like quick prototyping, syntax checking, debugging recipes, and exploring the Chef server. It has three modes: standalone, solo, and client. The document demonstrates how Shef can be used to search nodes, step through recipes, set breakpoints, and help debug issues on production systems. However, it notes some limitations like not being able to modify the run list or have attribute changes propagate.
Chef provides automation capabilities for AIX systems. There were technical challenges in porting Chef to AIX due to differences from Linux like a proprietary compiler and two init systems. Core Chef resources work on AIX with some platform-specific resources in an AIX cookbook. The community has contributed resources to the AIX cookbook and improved Ohai data collection. Future work includes support for other Power platforms and Chef Server on Power. Resources were provided for learning more about automating AIX with Chef.
This document provides an overview of various productivity tools and shortcuts for the Mac operating system. It discusses global keyboard shortcuts in Mac, using the command line interface, learning basic command line commands, using the third-party terminal emulator iTerm2, useful Mac-specific functions and file system locations, the productivity application Alfred and its powerful features, the additional Alfred PowerPack functionality, and the offline documentation browser Dash.
Chef Workflow Strategies at SecondMarketJulian Dunn
The document discusses Chef Workflow at SecondMarket. It describes developing cookbooks locally using Vagrant and testing with ChefSpec, integrating changes using Git repos for each cookbook, deploying using Spork to upload stable versions and notify teams, and future goals like improving testing and code reviews. The workflow aims to allow independent development while coordinating changes and communicating deployments.
ChefConf 2013: Beginner Chef AntipatternsJulian Dunn
This document discusses common beginner mistakes or "antipatterns" when using Chef. It provides best practices for things like repository structure, cookbook structure, using environments and roles properly, planning data bags in advance, and utilizing tools like the Chef shell. Specific antipatterns called out include having one giant monolithic Git repo or cookbook, overloading environments, forking community cookbooks, putting run lists directly in roles, and not planning data bag structure. The document advocates for separating code into logical modules, using roles to define run lists indirectly, and taking advantage of tools like the Chef shell for development and debugging.
This document provides an overview and introduction to DevOps and Chef configuration management. It discusses how DevOps aims to align development and operations teams through automation, measurement, and sharing. Chef is presented as a tool that supports DevOps principles by allowing infrastructure to be coded and managed as code. The document uses examples to demonstrate how Chef can be used to declaratively define and manage server configurations, applying changes across multiple nodes. It highlights how this approach helps solve problems of manual configuration drift and complexity that arise in traditional infrastructure management.
Chef Cookbook Testing and Continuous IntegrationJulian Dunn
The document discusses tools and best practices for testing Chef cookbooks, including:
- Using ChefSpec for unit testing recipes by making assertions about resources added during a simulated Chef run. Each recipe should have its own test file.
- Using the Chef MiniTest handler and Minitest framework for acceptance testing by writing tests that are executed on nodes after a Chef client run.
- Leveraging Vagrant and Berkshelf to define virtual machines for testing and manage cookbook dependencies, allowing for rapid iteration of tests against a virtualized environment.
Deploying applications to Windows Server 2016 and Windows ContainersBen Hall
Deploying applications to Windows Server 2016 and Windows Containers.
Delivered at NDC London 2017 on 20th January.
Sponsored by Katacoda.com, interactive learning platform for Docker and Cloud Native platforms.
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...CodeMill digital skills
Details
Alexandra Carter - Callcredit, Numero and Microsoft: Containerisation Hack of a Legacy Software Solution
This is the story of how we took a legacy solution and pushed it into containers on windows in just three days. This was also a great chance to work with Microsoft at the cutting edge of their work on containerisation, VSTS and Azure. Moving on from our Hackathon, we have continued adding new components, experimenting with orchestration and showcasing our work. I’ll talk you through the prep work, the 3 day hack and the subsequent work; what it means for the product roadmap, the experimentation we have done and how stakeholders are responding. Finally, we’ll look ahead to next steps.
Case study: https://microsoft.github.io/techcasestudies/devops/2017/06/16/Callcredit_DevOps.html
Alex Carter
"I have worked in IT, Marketing, Software Support and Software Delivery before moving into my current System Build (DevOps) role within Callcredit. I live and breathe DevOps and am currently focussing on anything around containerisation in Windows. A day without Metal and motor racing is a dull one."
@smileandeliver (https://twitter.com/smileandeliver)
From CodeMill digital skills meetup https://www.meetup.com/CodeMill-Digital-Skills/events/243110732/
MS Cloud Day - Deploying and monitoring windows azure applicationsSpiffy
This document discusses how to deploy and monitor applications on Windows Azure. It covers deploying applications through the Azure portal, Visual Studio, and PowerShell cmdlets. It also discusses upgrading applications using in-place upgrades, VIP swaps, and deleting and recreating deployments. The document reviews monitoring applications using the diagnostic API and visualizing collected data. It also demonstrates installing programs and using startup tasks on Azure roles.
Sa106 – practical solutions for connections administratorsSharon James
This document provides an agenda and information for the MWLUG 2014 SA106 session on practical solutions for Connections administrators. The session will cover topics like installing and configuring IBM WebSphere and HTTP Server, performance tuning, setting security roles, configuring log files and JVM heap sizes, checking and syncing external user IDs, and working with files policies. Scripting solutions for automating many complex administrative tasks will be demonstrated. Attendees Sharon Bellamy and Christoph Stoettner are introduced, and disclaimers are provided about using scripts.
Deploying Windows Containers on Windows Server 2016Ben Hall
This document discusses deploying Docker containers on Windows Server 2016. It provides an introduction to Docker and containers, explains how containers work on Windows, and demonstrates how to deploy common applications like IIS and ASP.NET within Windows containers. It also covers building Windows-based Docker images, running containers in production, and the future of containers on Windows platforms.
This presentation provides an overview of virtualization and demonstrates how to set up a virtual environment. It discusses the benefits of virtualization for development and testing. The demonstration shows how to install Windows Server 2003 and Windows XP in virtual machines, configure the virtual network and domain, and test applications across the virtual environment. Optimizing virtual machine resources and migrating physical servers to virtual machines are also covered.
The document provides information about three Microsoft resources for technical training and software evaluation: the TechNet Evaluation Center, IT Camps, and Microsoft Virtual Academy. The TechNet Evaluation Center allows downloading free trials of Microsoft software. IT Camps are free, hands-on technical training events led by Microsoft experts. Microsoft Virtual Academy provides free online technical courses on Microsoft technologies.
Windows Server 2016 introduces several new features including software defined storage, Hyper-V improvements, automation enhancements, and Nano Server. Storage Spaces Direct enables hyper-converged infrastructure, Storage Replica allows for volume replication, and Resilient File System provides improved integrity and performance. Hyper-V gains features like cluster rolling upgrades and shielded VMs. Automation is focused on a graphical authoring experience and Linux/Azure support. Nano Server offers a headless deployment optimized for cloud workloads.
Scaling Docker Containers using Kubernetes and Azure Container ServiceBen Hall
This document discusses scaling Docker containers using Kubernetes and Azure Container Service. It begins with an introduction to containers and Docker, including how containers improve dependency and configuration management. It then demonstrates building and deploying containerized applications using Docker and discusses how to optimize Docker images. Finally, it introduces Kubernetes as a tool for orchestrating containers at scale and provides an example of deploying a containerized application on Kubernetes in Azure.
Deploying windows containers with kubernetesBen Hall
The document discusses deploying Windows containers with Kubernetes. It covers building Windows containers, deploying containers on Kubernetes, and operating Kubernetes. Specifically, it shows how to:
- Build a Windows container with SQL Server using Docker
- Deploy a .NET Core app container to Kubernetes and expose it using a load balancer
- Scale the deployment to multiple replicas and observe traffic distribution
- Perform rolling updates to deploy new versions of the application
The document describes setting up a virtual infrastructure including installing and configuring Windows Server 2012, Exchange 2013, Active Directory, and client virtual machines. Key steps included installing VMware Workstation on two physical machines, creating virtual machines for a domain controller, Windows Server, and Windows clients, installing DNS, DHCP and Active Directory on the domain controller to set up the domain, connecting the client VMs to the domain, and installing and configuring Exchange 2013 for email between VMs. The virtual infrastructure allowed hands-on experience with server technologies on one physical set of hardware.
How to Deploy WSO2 Enterprise Integrator in ContainersWSO2
This slide deck explores how WSO2 Enterprise Integrator can be deployed on a containerized deployment and the key configuration steps of successful production deployment and monitoring.
Watch webinar here: https://wso2.com/library/webinars/2018/10/how-to-deploy-wso2-enterprise-integrator-in-containers/
This document outlines deploying IBM Notes in VMware View and Microsoft RemoteApp environments. It discusses the benefits of each approach and provides an overview of the infrastructure required. It also provides guidance on installing Notes clients and tips for ensuring optimal performance on both platforms. VMware View allows full virtualized workstations on zero clients, while RemoteApp streams individual applications. The document aims to help administrators deliver the Notes client while reducing support overhead and infrastructure complexity.
This document provides an overview of VMware View POC Jumpstart Services. It includes sections on key VMware View features such as View Manager, View Composer, the View display protocol PCoIP, USB and clipboard redirection, location-based printing, and client support for Windows, Mac, Linux, iPad and Android devices. It also discusses VMware View licensing and components including View Connection Server, Security Server, Transfer Server, and View Client. The document provides details on how VMware View can improve VMware vSphere and deliver a user-centric desktop virtualization solution.
This topic introduces tools to automate the development and deployment workflow of a WordPress web application.
I am showing the main benefits of such a workflow and how it allows making the installation and update of the project fully automatic, predictable, versioned, and ready to be integrated into a continuous deployment system. Tools like Docker and WP-CLI, will be introduced to implement that process along with a simple tool that I have developed to automatically deploy the basic data that a project needs to be up and running.
My mantra? No manual clicks whatsoever in the web interface for configuring WordPress!
ChinaNetCloud - Cloud Operations for Gaming - Tencent July 2014ChinaNetCloud
The document discusses how cloud computing and DevOps technologies can be used to automate the provisioning and deployment of internet servers and game services. It describes a two-phase approach involving 1) automatically provisioning virtual machines and infrastructure using tools like Docker, Chef and cloud APIs and 2) deploying code and configurations using configuration management, deployment automation and version control. The approach aims to provide fast, flexible provisioning and deployment across development, test and production environments.
CCI2017 - Windows Server 2016 - Ready for the cloud - Giampiero Cosainzwalk2talk srl
I servizi di directory Microsoft sono l'unica piattaforma IT che permette un architettura completamente Hybrid on-premise/cloud.
Vedremo tutte le novità che Microsoft ci sta proponendo "on-premise" per prepararci al passaggio nel cloud.
Nuove soluzioni Storage, lo stesso Hypervisor utilizzato da Azure, multipli "layer" di protezione, un nuovo sistema di licensing e le "licenze cloud", nano server e container...
Per richiedere accesso al canale contenente le registrazioni audio/video delle sessioni tecniche di Cloud Conference Italia 2017 compila il seguente form:
https://goo.gl/Fq6DQE
This document provides a complete guide to Node.js, covering installation methods, checking installation, modules, NPM, events, streams, and persisting data. It discusses installing Node.js from nodejs.org, using a version manager like NVM, or compiling from source. It also covers creating a basic web server, reading and writing files, uploading files, and using Socket.IO for real-time applications.
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC
Joyce Chen, Senior Advisor, Strategic Engagement at APNIC, presented on 'APNIC Policy Development Process' at the Local APIGA Taiwan 2025 event held in Taipei from 19 to 20 April 2025.
Understanding the Tor Network and Exploring the Deep Webnabilajabin35
While the Tor network, Dark Web, and Deep Web can seem mysterious and daunting, they are simply parts of the internet that prioritize privacy and anonymity. Using tools like Ahmia and onionland search, users can explore these hidden spaces responsibly and securely. It’s essential to understand the technology behind these networks, as well as the risks involved, to navigate them safely. Visit https://torgol.com/
DNS Resolvers and Nameservers (in New Zealand)APNIC
Geoff Huston, Chief Scientist at APNIC, presented on 'DNS Resolvers and Nameservers in New Zealand' at NZNOG 2025 held in Napier, New Zealand from 9 to 11 April 2025.
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC
Terry Sweetser, Training Delivery Manager (South Asia & Oceania) at APNIC presented an APNIC update at NZNOG 2025 held in Napier, New Zealand from 9 to 11 April 2025.
Smart Mobile App Pitch Deck丨AI Travel App Presentation Templateyojeari421237
🚀 Smart Mobile App Pitch Deck – "Trip-A" | AI Travel App Presentation Template
This professional, visually engaging pitch deck is designed specifically for developers, startups, and tech students looking to present a smart travel mobile app concept with impact.
Whether you're building an AI-powered travel planner or showcasing a class project, Trip-A gives you the edge to impress investors, professors, or clients. Every slide is cleanly structured, fully editable, and tailored to highlight key aspects of a mobile travel app powered by artificial intelligence and real-time data.
💼 What’s Inside:
- Cover slide with sleek app UI preview
- AI/ML module implementation breakdown
- Key travel market trends analysis
- Competitor comparison slide
- Evaluation challenges & solutions
- Real-time data training model (AI/ML)
- “Live Demo” call-to-action slide
🎨 Why You'll Love It:
- Professional, modern layout with mobile app mockups
- Ideal for pitches, hackathons, university presentations, or MVP launches
- Easily customizable in PowerPoint or Google Slides
- High-resolution visuals and smooth gradients
📦 Format:
- PPTX / Google Slides compatible
- 16:9 widescreen
- Fully editable text, charts, and visuals
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingsteve198109
Vancouver in 2025 is more than scenic views, yoga studios, and oat milk lattes—it’s a thriving hub for eco-conscious entrepreneurs looking to make a real difference. If you’ve ever dreamed of launching a purpose-driven business, now is the time. Whether it’s urban mushroom farming, upcycled furniture sales, or vegan skincare sold online, your green idea deserves a strong digital foundation.
The 2025 Canadian eCommerce landscape is being shaped by trends like sustainability, local innovation, and consumer trust. To stay ahead, eco-startups need reliable hosting that aligns with their values. That’s where 4GoodHosting.com comes in—one of the top-rated Vancouver web hosting providers of 2025. Offering secure, sustainable, and Canadian-based hosting solutions, they help green entrepreneurs build their brand with confidence and conscience.
As eCommerce in Canada embraces localism and environmental responsibility, choosing a hosting provider that shares your vision is essential. 4GoodHosting goes beyond just hosting websites—they champion Canadian businesses, sustainable practices, and meaningful growth.
So go ahead—start that eco-friendly venture. With Vancouver web hosting from 4GoodHosting, your green business and your values are in perfect sync.
Best web hosting Vancouver 2025 for you businesssteve198109
Vancouver in 2025 is more than scenic views, yoga studios, and oat milk lattes—it’s a thriving hub for eco-conscious entrepreneurs looking to make a real difference. If you’ve ever dreamed of launching a purpose-driven business, now is the time. Whether it’s urban mushroom farming, upcycled furniture sales, or vegan skincare sold online, your green idea deserves a strong digital foundation.
The 2025 Canadian eCommerce landscape is being shaped by trends like sustainability, local innovation, and consumer trust. To stay ahead, eco-startups need reliable hosting that aligns with their values. That’s where 4GoodHosting.com comes in—one of the top-rated Vancouver web hosting providers of 2025. Offering secure, sustainable, and Canadian-based hosting solutions, they help green entrepreneurs build their brand with confidence and conscience.
As eCommerce in Canada embraces localism and environmental responsibility, choosing a hosting provider that shares your vision is essential. 4GoodHosting goes beyond just hosting websites—they champion Canadian businesses, sustainable practices, and meaningful growth.
So go ahead—start that eco-friendly venture. With Vancouver web hosting from 4GoodHosting, your green business and your values are in perfect sync.
Reliable Vancouver Web Hosting with Local Servers & 24/7 Supportsteve198109
Looking for powerful and affordable web hosting in Vancouver? 4GoodHosting offers premium Canadian web hosting solutions designed specifically for individuals, startups, and businesses across British Columbia. With local data centers in Vancouver and Toronto, we ensure blazing-fast website speeds, superior uptime, and enhanced data privacy—all critical for your business success in today’s competitive digital landscape.
Our Vancouver web hosting plans are packed with value—starting as low as $2.95/month—and include secure cPanel management, free domain transfer, one-click WordPress installs, and robust email support with anti-spam protection. Whether you're hosting a personal blog, business website, or eCommerce store, our scalable cloud hosting packages are built to grow with you.
Enjoy enterprise-grade features like daily backups, DDoS protection, free SSL certificates, and unlimited bandwidth on select plans. Plus, our expert Canadian support team is available 24/7 to help you every step of the way.
At 4GoodHosting, we understand the needs of local Vancouver businesses. That’s why we focus on speed, security, and service—all hosted on Canadian soil. Start your online journey today with a reliable hosting partner trusted by thousands across Canada.
Determining Glass is mechanical textileAzizul Hakim
Automating That "Other" OS
1. Automating That "Other" OS
Cooking with Chef on Windows
Julian Dunn <[email protected]>
Engineering Lead – Field Solutions
Chef Software, Inc.
CloudDevelop Conference
Columbus, OH
October 2014
9. Evolution of Automation on Windows
1996: WMI
2003:
Subsystem
for Unix
Applications
1999:
Services for UNIX
2008:
PowerShell 2.0
&
Server Core
2006:
PowerShell 1.0
2013:
PowerShell 4.0/
Desired State
Configuration
2012:
PowerShell 3.0
2014:
PowerShell 5.0
(Preview)
2002:
Monad
Manifesto
10. The GUI isn't dead, but it's dying on
the server OS. Don't be caught off-guard
when it's finally gone.
- Don Jones, Redmond Magazine, July 2011
http://redmondmag.com/articles/2011/07/01/the-gui-is-dead.aspx
14. Platform-Neutral Domain-Specific Language
package 'httpd'
template '/etc/httpd/conf/httpd.conf' do
owner 'root'
group 'root'
action :create
source 'httpd.conf.erb'
notifies :reload, 'service[httpd]'
End
service 'httpd' do
action [:start, :enable]
end
windows_feature 'IIS-WebServerRole'
template 'c:inetpubwwwrootindex.html' do
owner 'Administrator'
group 'IIS_IUSRS'
action :create
source 'index.html.erb'
notifies :reload, 'service[W3SVC]'
End
service 'W3SVC' do
action [:start, :enable]
end
15. Chef Mechanics
• Recipes go in cookbooks
• Cookbooks are uploaded to a Chef
server
• Nodes periodically check in and
get their recipes to run ("run list")
• If system state is already desired
state, Chef makes no changes
• "Convergence"
16. What's the Purpose of Declarative CM?
• Consistent, reproducible configurations
• Manage & deploy thousands of machines correctly
• Deploy applications correctly
• Keep them in compliance with declared policy
+ =
Infrastructure Applications Service
18. Microsoft System Center
• Advisor
• App Controller
• Configuration Manager (SCCM)
• Data Protection Manager
• Endpoint Protection
• Orchestrator/SMA
• Operations Manager
• Service Manager
• Virtual Machine Manager
19. System Center Configuration Manager
• Origin: Started as Systems
Management Server (1994), renamed
SCCM in ~2007
• Purpose: Manage large groups of
computers running Windows, Windows
Embedded, Mac OS X, and/or
Linux/UNIX
• Components:
• Remote control
• Patch management
• Software distribution
• OS deployment using MDT
• Hardware/software inventory
• System configuration
20. SCCM: The Good, Bad and the Ugly
• Good:
• Easy-to-use UI
• Lots of functionality
• Great for managing desktops
• Integrates with other System Center products
• Bad:
• Prescriptive workflow
• Point-and-click
• Needs Active Directory
• Hard to automate the automation
• No easily versionable artifacts
21. SCCM and Chef
• SCCM (Compliance Settings)
• Configuration settings set via UI
• Configuration item primitives
• WMI, registry, scripts, applications
• Shareable artifacts (baselines)
• Restrictive workflow
• Idempotence is up to you
• Agent-based
• Chef:
• Configuration settings via plain text files
• Resource primitives
• file, template, service, powershell_script, etc.
• Shareable & versionable artifacts
(cookbooks)
• Flexible workflow
• Built-in idempotence
• Agent-based
23. Provisioning with Chef on Microsoft Azure
1. Upload content (cookbooks, roles, etc.)
2. Request VM
4. Register with Chef server
5. Execute run_list
3. Create VM, install Azure
and Chef agents
24. Provisioning with Chef
$ knife azure server create
--azure-source-image a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201409.01-en.us-127GB.vhd
--bootstrap-protocol cloud-api
--winrm-user chef
--winrm-password DELETED
--azure-dns-name DELETED
-r "role[base-windows], role[fourthcoffee-classic]"
...........
Waiting for virtual machine to reach status 'provisioning'............vm state 'provisioning' reached after 2.6 minutes.
Waiting for virtual machine to reach status 'ready'..........................vm state 'ready' reached after 6.23 minutes.
.
DNS Name: DELETED.cloudapp.net
VM Name: DELETED
Size: Medium
Azure Source Image: a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201409.01-en.us-127GB.vhd
Azure Service Location: East US
Public Ip Address: XXXXXXXX
Private Ip Address: YYYYYYYY
WinRM Port: 5985
Environment: _default
25. Provisioning with Chef
Waiting for Resource Extension to reach status 'wagent provisioning'....
Resource extension state 'wagent provisioning' reached after 0.03 minutes.
Waiting for Resource Extension to reach status 'installing'....................
Resource extension state 'installing' reached after 2.17 minutes.
Waiting for Resource Extension to reach status 'provisioning'....................................
Resource extension state 'provisioning' reached after 4.33 minutes.
Waiting for Resource Extension to reach status 'ready'....................
Resource extension state 'ready' reached after 2.16 minutes.
.
DNS Name: DELETED.cloudapp.net
VM Name: DELETED
Size: Medium
Azure Source Image: a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201409.01-en.us-127GB.vhd
Azure Service Location: East US
Public Ip Address: XXXXXX
Private Ip Address: YYYYYY
WinRM Port: 5985
Environment: _default
Runlist: ["role[base-windows]", "role[fourthcoffee-classic]"]
27. Pay no attention to the man behind the curtain
windows_feature 'IIS-WebServerRole' do
action :install
end
# Pre-requisite features for IIS-ASPNET45 that need to be installed first, in this order.
%w{IIS-ISAPIFilter IIS-ISAPIExtensions NetFx3ServerFeatures NetFx4Extended-ASPNET45 IIS-NetFxExtensibility45}.
each do |f|
windows_feature f do
action :install
end
end
windows_feature 'IIS-ASPNET45' do
action :install
end
28. Pay no attention to the man behind the curtain
remote_directory node['fourthcoffee']['install_path'] do
source 'fourthcoffee'
action :create
end
iis_pool 'FourthCoffee' do
runtime_version '4.0'
action :add
end
iis_site 'FourthCoffee' do
protocol :http
port 80
path node['fourthcoffee']['install_path']
application_pool 'FourthCoffee'
action [:add,:start]
end
29. Challenges to Automation on Windows
• No real package manager
• Many COTS vendors don’t understand automation
• UAC (User Access Control)
• WinRM Quotas
• Win32 Redirector
• Not all preferences/state stored in registry
• Reboots!
• Other annoyances (KB2773898, KB2918614, KB2842230)
31. PowerShell DSC: The Future of Automation
"DSC represents a significant break in administration, because it
asks … administrators to not actually configure anything
themselves. Instead, DSC asks administrators to describe, in fairly
simple text files, how they would like a computer to be configured.
The computer, in turn, reads that text file, and configures itself
accordingly."
- The DSC Book, Don Jones & Steve Murawski
32. The Relationship between DSC and Chef
• As PerfMon is to Solarwinds, DSC is to Chef
• DSC provides automation primitives that Chef recipes can call
• It deliberately lacks the ecosystem:
• Content distribution
• Cross-platform support
• Monitoring/logging/analytics
• However, it brings a standard base for automation to Windows
• No MSFT product in the future may ship without DSC modules!
33. Example DSC Code
Configuration FourthCoffee
{
# Install the IIS role
WindowsFeature IIS
{
Ensure = "Present"
Name = "Web-Server"
}
# Install the ASP .NET 4.5 role
WindowsFeature AspNet45
{
Ensure = "Present"
Name = "Web-Asp-Net45"
}
...
}
34. DSC Invoked from Chef
Configuration FourthCoffee
{
# Install the IIS role
WindowsFeature IIS
{
Ensure = "Present"
Name = "Web-Server"
}
# Install the ASP .NET 4.5 role
WindowsFeature AspNet45
{
Ensure = "Present"
Name = "Web-Asp-Net45"
}
...
}
dsc_resource 'webserver' do
resource_name :windowsfeature
property :name, 'Web-Server'
property :ensure, 'Present'
end
dsc_resource 'dotnet45' do
resource_name :windowsfeature
property :name, 'Web-Asp-Net45'
property :ensure, 'Present'
end
36. DevOps is a Two-Way Street
• It's great when developers
care about:
• Uptime!
• Scaling!
• Deployment!
• Argh! Put them on call! That'll
teach them!
37. DevOps is a Two-Way Street
• Sysadmins/infracoders have a lot to learn
from developers as well!
• Good developers:
• Write unit tests
• Write acceptance tests
• Practice test-driven-development
• Build confidence that their program code works
correctly
• Avoid breaking their applications
• Good infracoders:
• Do all of the above
• Avoid breaking ALL THE THINGS
38. Testing on the desktop
• Chef Ecosystem Tools:
• Test Kitchen
• Acceptance testing (ServerSpec)
• Bring-your-own hypervisor (VirtualBox, VMWare
Fusion/Workstation, Hyper-V…) and/or middleware
(Vagrant)
• Demo
39. Example Test Suite
describe windows_feature('IIS-WebServer') do
it { should be_installed }
end
describe port(80) do
it { should be_listening }
end
describe file('C:inetpubFourthCoffeeDefault.cshtml') do
it { should be_file }
end
40. Test Kitchen Demo
fourthcoffee ~$ kitchen test default-windows-2012R2 --destroy=never
-----> Starting Kitchen (v1.3.0)
-----> Cleaning up any prior instances of <default-windows-2012R2>
-----> Testing <default-windows-2012R2>
-----> Creating <default-windows-2012R2>...
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'win2012r2-datacenter-chef11.16.2'...
Vagrant instance <default-windows-2012R2> created.
Finished creating <default-windows-2012R2> (2m57.54s).
-----> Converging <default-windows-2012R2>...
-----> Chef Omnibus installation detected (true)
Transferring files to <default-windows-2012R2>
Concurrent threads set to :max_threads => 2
[2014-10-13T19:16:36-07:00] INFO: Starting chef-zero on host localhost, port 8889 with repository at repository at
C:/tmp/kitchen
One version per cookbook
[2014-10-13T19:16:40-07:00] INFO: *** Chef 11.16.2 ***
[2014-10-13T19:16:40-07:00] INFO: Chef-client pid: 1656
41. Test Kitchen Demo
[2014-10-13T19:19:10-07:00] INFO: Chef Run complete in 142.572914 seconds
[2014-10-13T19:19:10-07:00] INFO: Running report handlers
[2014-10-13T19:19:10-07:00] INFO: Report handlers complete
Finished converging <default-windows-2012R2> (22m55.08s).
-----> Setting up <default-windows-2012R2>...
-----> Running postinstall for serverspec plugin
Finished setting up <default-windows-2012R2> (0m45.62s).
-----> Verifying <default-windows-2012R2>...
-----> Running serverspec test suite
Windows feature "IIS-WebServer" should be installed
Port "80" should be listening
File "C:inetpubFourthCoffeeDefault.cshtml" should be file
Finished in 13.41 seconds (files took 0.48432 seconds to load)
3 examples, 0 failures
Finished verifying <default-windows-2012R2> (0m22.73s).
Finished testing <default-windows-2012R2> (27m11.16s).
-----> Kitchen is finished. (27m12.60s)
42. Summary
• Don't point-and-click to administer your Windows servers
• Learn PowerShell!
• Learn declarative configuration management
• Test your infrastructure code
#6: This is how I used to manage Active Directory.
Point and click
#7: Also, this sort of thing. Microsoft has nice wizards.
#8: This is still extant in Windows Server Tech Preview (Windows Server 10).
#9: Anecdote about customer that employs people to sit around with dozens of RDP sessions on Patch Tuesday just to click 'Windows Update'
#10: To Microsoft's credit, they've recognized this early. Or at least Jeffrey Snover, the author of the "Monad Manifesto", did.
What the Monad Manifesto did is that it recognized the UNIX model – of a command line in which operators could string together operations – was fundamentally sound.
And it extended it to an object-based language, which makes Powershell even more powerful than Bourne Shell.
It took a while for concepts to bake out, but here we are!
Monad Shell – became PowerShell, an object-oriented shell
Monad Remote Scripting – became PowerShell Remoting (WinRM)
#11: Although this is obviously not to scale, you can see that MSFT is really speeding up the release cadence of automation features.
You can see that Jeffrey Snover learned a lot of lessons from the success and failure of things like WMI and SFU, wrote the Monad Manifesto and then has spent the last 12+ years building all the components to make it a reality.
#14: Change your model by changing your Chef code.
#16: So yes, Chef started out on the Unix/Linux platform, but as people saw the writing on the wall about Windows and the GUI, they wanted to extend the same automation primitives to this platform.
Most shops are not homogenous – they often have both Linux/Unix and Windows.
What we're looking at is a Chef recipe to install a webserver.
You can see that Chef tells the system what to do, not how.
Chef's job is to translate the what into the how, across a broad swath of Oses, infrastructure, applications
It is OS-neutral and deployment neutral. Use the same code to deploy on metal, cloud, VMs, whatever.
#20: A lot of these are product acquisitions. They are loosely-integrated, some better than others, but it's definitely a work in progress. Example: Often can be more than one agent on a box to do certain things. MSFT is making headway to try and make it a more seamless experience.
#21: "Manage" is a loaded term, which I'll get into in a second.
#22: Good:
Nice UI, easy to explore
OS deployment
Patch management
System inventory
MDM integration w/Intune
Great client management
Integration with other System Center products
Bad:
UI prescribes a workflow
Requires Active Directory
Not a great automation story (can't automate the automation)
No easily versionable artifacts
Changes require manual interaction with UI
#26: We can try this live but I'll have to come back to it while we run through some more slides
knife azure server create –azure-vm-size Small --azure-source-image a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201409.01-en.us-127GB.vhd --bootstrap-protocol cloud-api --winrm-user chef --winrm-password C00kingWithChef$ --azure-dns-name columbus1--tcp-endpoints 3389:3389,80:80 -r "role[base-windows],role[fourthcoffee-classic]"
#31: Chocolatey/NuGet will help with the package management problem. There is still a crapton of legacy stuff out there, and a variety of packaging formats. Not all of them can deal with inplace upgrades.
COTS vendors don't understand automation:
Some products can't be installed in Server Core
Some products can't be installed over PoSH remote sessions or unattended sessions
KB2773898 – you can't install MSUs over WinRM
KB2918614 – broken patches to Windows that prevent MSIs from installing
KB2842230 – WinRM quotas not respected on older operating systems
#34: So if MSFT provides a standard set of automation hooks in their own products and hammers ISVs to ship the same hooks, then the app space and OS space have a uniform automation framework now.
#35: NOTE: try to find something that maps closer to a piece of Chef code
#36: NOTE: try to find something that maps closer to a piece of Chef code
#40: Talk about the use cases here. I just used Chef on my desktop to spin up a VM and install exactly the same things I installed on my "real" VM, and ran some acceptance tests. How cool is that?
Have the demo prepared (started up) before going on-stage, because it might not work again. Just scrollback in the terminal buffer.