SlideShare a Scribd company logo
Chef as a One-Stop Solution on Microsoft Azure
Chef as a One-Stop Solution
on Microsoft Azure
Karsten Mueller, IT-Architect
Some background
• Company LichtBlick SE
o LichtBlick is the leading provider of green electricity and green
gas in Germany. Over one million people - the LichtBlicker -
already rely on our forward-looking energy products.
o 460 Employees, $780 million revenue in 2017
• LichtBlick IT Department (80 Employees)
o „We strive to build the most automated and customer-focused
platform for the energy business in Germany“
o Custom .NET Applications & Standard Software
o Using Azure Cloud & On-Premises Datacenters
My part in the game
• „Most of what architects have done traditionally should be done by
developers, or by tools, or not at all.“
• “An architect’s value is inversely proportional to the number of
decisions he or she makes.”
[ Erik Doernenburg & Martin Fowler, Craft Conf 2016 ]
My part in the game
• „Most of what architects have done traditionally should be done by
developers, or by tools, or not at all.“
• “An architect’s value is inversely proportional to the number of
decisions he or she makes.”
[ Erik Doernenburg & Martin Fowler, Craft Conf 2016 ]
• Roughly resulting in
o Working in Teams to collaborate on
Infrastructure Code
o Providing some guidance
System Libraries
Packages
Middleware
Application
Operating System
Cloud Infrastructure
Cookbooks
Our Approach Delivering Applications
Profiles
Our Approach Delivering Applications
• Custom Cookbooks (reusing Community Cookbooks)
• Chef Server
• Configuration data and Cookbooks
• Custom InSpec Profiles
• Chef Automate
• Provides observability for all engineers
• Azure DevOps as CI/CD Pipeline
Cookbooks
• Deployment of Custom .NET Applications
• Windows OS Customization (AD join, Anti-Malware, …)
• Windows OS Hardening
• Azure Ressource Provisioning using azure_mgmt resources from
Azure SDK for Ruby
Compliance Checks
• Compliance Checks
• CIS profiles
• Custom profiles
• LichtBlick contributed to „dev-sec/windows-baseline“
• https://github.com/LichtBlick/windows-baseline
• Observability
Compliance Checks – windows-baseline
control 'windows-001' do
title 'Ensure 'Enforce password history' is set to '24 or more password(s)''
desc 'This policy setting determines the number of renewed, unique passwords that have to be associated with a user account before you can reuse an old password.
impact 1.0
tag 'windows': ['2012R2', '2016', '2019']
tag 'profile': ['Domain Controller', 'Member Server']
tag 'CIS Microsoft Windows Server 2012 R2 Benchmark v2.3.0 - 03-30-2018': '1.1.1'
tag 'CIS Microsoft Windows Server 2016 RTM (Release 1607) Benchmark v1.1.0 - 10-31-2018': '1.1.1'
tag 'level': '1'
tag 'bsi': ['SYS.1.2.2.M3', 'Sichere Administration']
ref 'IT-Grundschutz-Kompendium', url: 'https://www.bsi.bund.de/DE/Themen/ITGrundschutz/ITGrundschutzKompendium/itgrundschutzKompendium_node.html'
ref 'Umsetzungshinweise zum Baustein SYS.1.2.2: Windows Server 2012', url: 'https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-Grundschutz-
Modernisierung/UH_Windows_Server_2012.html'
ref 'Center for Internet Security', url: 'https://www.cisecurity.org/'
We added references to BSI* „IT-Grundschutz“
*BSI = German Federal Office for Information Security
Provisioning - the good, the bad und the ugly
Provisioning - the good, the bad und the uglyg
Provisioning - the good, the bad und the ugly
• Decision to provision Azure resources with Chef & Azure resource
manager (ARM)
• Used chef-provisioning-azurerm from Stuart Preston for a while
• Developed custom Library Cookbook „azure-chef-deployment“
• based on gems „azure_mgmt_*
Our „One Stop Solution“
• Separate Chef Roles are describing Azure resource provisioning and
Application Deployment
(in 2016)
(in 2018)
today
Provisioning Azure Resources with Chef
Code
Cookbooks
Build
Lint & Test
Release
Chef Zero
Azure DevOps
Azure Resources
Ressource Group
Network
Application
Virtual
Machine
Azure Keyvault
Azure Ressource Manager
Azure Active Directory
ARM Template
Secrets
Authentication
Chef Server
Provisioning
Role
&
Cookbook
Private Agent
Provisioning Cookbook – Azure Resources
Provisioning Role for Azure Resources
Default Attributes
default['tenant'] = 'a6238652-91a6-4d9a-90ga-3f16b12dc7c3'
default['subscription'] = 'a2d596e5-2671-463g-96bd-ff487gdb6269'
default['location'] = 'westeurope'
default['resource_tags'] = {}
default['arm_template_folder'] = Chef::Config[:file_cache_path]
default['skip_validation'] = false
Resources with specific attributes
• Network
• Network Security Group
• Virtual Machine
• Application Insights
• Availability Set
• Storage Account
• User Assigned Identity
• Key Vault
• Service Bus
• Azure Functions
• Scale Set
Provisioning Cookbook – Azure Network Resource
default['network'] = {
resource_group: 'rg-sharedenv-dev-net',
default_template_parameters: {},
subnets: []
}
Scheme
default_template_parameters: {
virtual_network_name: 'vnet-eu2-157_0_0-20',
virtual_network_address_prefix: '10.157.0.0/20',
dns_servers: ['10.144.2.4', '10.144.2.5']
}
subnets: [
{
name: 'subnet-eu2-157_0_0-24-gendev',
address_prefix: '10.157.0.0/24',
nsg_name: 'nsg-subnet-eu2-157_0_0-24-gendev'
}
]
Provisioning - Our Learnings so far
• Using Chef Roles for Provisioning & Deployment is easy
• Promoting changes over stages is still to be improved
• Even a thin abstraction layer brings in dependencies
• On ruby gems being the same version as in ChefDK
• Interested in using our Provisioning Cookbook as OpenSource?
• Just ping me: karsten.mueller@lichtblick.de, @karmueller
Provisioning – Q&A
• Your Questions?
• What kind of Cloud resources do you have to provision?
oIaaS (Virtual Machines, Networks, …), PaaS Services
oKubernetes as a Service
o…
• What approach are you using?
oManually using the Web UI
oProgrammatically using Provider specific API
oTerraform
o…
Collaborate on Code

More Related Content

PDF
GitOps with Amazon EKS Anywhere by Dan Budris
PPTX
Microsoft Azure News - 2018 September
PPTX
Microsoft Azure News - 2018 June
PPTX
Presentation Tier optimizations
PDF
Using Windows Azure with your on-premise infrastructure
PPTX
Sql Azure - Columbus SQL PASS
PDF
Mastering azure devOps - Dot Net Tricks
PDF
Azure DevOps Multistage YAML Pipelines – Top 10 Features
GitOps with Amazon EKS Anywhere by Dan Budris
Microsoft Azure News - 2018 September
Microsoft Azure News - 2018 June
Presentation Tier optimizations
Using Windows Azure with your on-premise infrastructure
Sql Azure - Columbus SQL PASS
Mastering azure devOps - Dot Net Tricks
Azure DevOps Multistage YAML Pipelines – Top 10 Features

What's hot (20)

PPT
Sql Azure Sql Saturday Nyc
PDF
How Microsoft learned to love Java
PPTX
Durable Azure Functions
PPTX
Azure Automation and Update Management
PPTX
AWS - Database Migration Service - Abdul Rasheed Feroz Khan
PDF
Experiences using CouchDB inside Microsoft's Azure team
PPTX
Azure AD Connect
PPT
Sql Azure - Sql Saturday Kansas City
PPTX
Microsoft Azure Veri Servisleri
PPTX
Get rid of credentials from your code: Using Managed identities for Azure res...
PPTX
Microsoft Azure News - 2019 April
PPTX
Azure Container Instance
PPTX
Windows Azure Virtual Machines
PDF
Develop Azure compute solutions Part - 2
PPTX
Automating Cloud Cluster Deployment: Beyond the Book
PPTX
Using Windows Azure for Solving Identity Management Challenges
PPTX
Azure fundamental -Introduction
PPTX
TugaIT 2016 - Docker and the world of “containerized" environments​
PDF
MongoDB World 2019: Mastering MongoDB in Kubernetes
PPTX
Codestrong 2012 breakout session using appcelerator cloud services in your ...
Sql Azure Sql Saturday Nyc
How Microsoft learned to love Java
Durable Azure Functions
Azure Automation and Update Management
AWS - Database Migration Service - Abdul Rasheed Feroz Khan
Experiences using CouchDB inside Microsoft's Azure team
Azure AD Connect
Sql Azure - Sql Saturday Kansas City
Microsoft Azure Veri Servisleri
Get rid of credentials from your code: Using Managed identities for Azure res...
Microsoft Azure News - 2019 April
Azure Container Instance
Windows Azure Virtual Machines
Develop Azure compute solutions Part - 2
Automating Cloud Cluster Deployment: Beyond the Book
Using Windows Azure for Solving Identity Management Challenges
Azure fundamental -Introduction
TugaIT 2016 - Docker and the world of “containerized" environments​
MongoDB World 2019: Mastering MongoDB in Kubernetes
Codestrong 2012 breakout session using appcelerator cloud services in your ...
Ad

Similar to Chef as a One-Stop Solution on Microsoft Azure (20)

PDF
Cooking Up Windows with Chef Automate
PDF
DOO-009_Powering High Velocity Development for your Infrastructure
PPTX
Cooking with Chef on Windows: 2015 Edition
PDF
Infrastructure as-code-guide-en-v6 299129
PPTX
Automating That "Other" OS
PDF
Chef Automate - Azure Sydney User Group
PPTX
Chef + Azure = Awesome
PDF
Azure Cookbook Recipes To Create And Maintain Cloud Solutions In Azure 1st Ed...
PPTX
Azure handsonlab
PDF
Dep012 azure の_dev_ops_力!azure_team_でも採
PPT
Cooking with Chef on Windows
PDF
SPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッション
PDF
Cookbook Reusability @ Chef Community summit 2014
PDF
2015 08-11-scdo-meetup
PDF
Microsoft certified-azure-solutions-architect-expert-skills-measured
PPTX
Opscode Webinar: Cooking with Chef on Microsoft Windows
PDF
DevOps With Chef and Azure
PPTX
The Chef Prince of Azure - ChefConf 2015
PDF
Philly security shell meetup
KEY
Using Nagios with Chef
Cooking Up Windows with Chef Automate
DOO-009_Powering High Velocity Development for your Infrastructure
Cooking with Chef on Windows: 2015 Edition
Infrastructure as-code-guide-en-v6 299129
Automating That "Other" OS
Chef Automate - Azure Sydney User Group
Chef + Azure = Awesome
Azure Cookbook Recipes To Create And Maintain Cloud Solutions In Azure 1st Ed...
Azure handsonlab
Dep012 azure の_dev_ops_力!azure_team_でも採
Cooking with Chef on Windows
SPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッション
Cookbook Reusability @ Chef Community summit 2014
2015 08-11-scdo-meetup
Microsoft certified-azure-solutions-architect-expert-skills-measured
Opscode Webinar: Cooking with Chef on Microsoft Windows
DevOps With Chef and Azure
The Chef Prince of Azure - ChefConf 2015
Philly security shell meetup
Using Nagios with Chef
Ad

Recently uploaded (20)

PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Encapsulation theory and applications.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Getting Started with Data Integration: FME Form 101
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Machine Learning_overview_presentation.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Approach and Philosophy of On baking technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
SOPHOS-XG Firewall Administrator PPT.pptx
Encapsulation theory and applications.pdf
A comparative analysis of optical character recognition models for extracting...
Digital-Transformation-Roadmap-for-Companies.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
MYSQL Presentation for SQL database connectivity
“AI and Expert System Decision Support & Business Intelligence Systems”
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Getting Started with Data Integration: FME Form 101
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Machine Learning_overview_presentation.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
NewMind AI Weekly Chronicles - August'25-Week II
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Approach and Philosophy of On baking technology
Machine learning based COVID-19 study performance prediction
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton

Chef as a One-Stop Solution on Microsoft Azure

  • 2. Chef as a One-Stop Solution on Microsoft Azure Karsten Mueller, IT-Architect
  • 3. Some background • Company LichtBlick SE o LichtBlick is the leading provider of green electricity and green gas in Germany. Over one million people - the LichtBlicker - already rely on our forward-looking energy products. o 460 Employees, $780 million revenue in 2017 • LichtBlick IT Department (80 Employees) o „We strive to build the most automated and customer-focused platform for the energy business in Germany“ o Custom .NET Applications & Standard Software o Using Azure Cloud & On-Premises Datacenters
  • 4. My part in the game • „Most of what architects have done traditionally should be done by developers, or by tools, or not at all.“ • “An architect’s value is inversely proportional to the number of decisions he or she makes.” [ Erik Doernenburg & Martin Fowler, Craft Conf 2016 ]
  • 5. My part in the game • „Most of what architects have done traditionally should be done by developers, or by tools, or not at all.“ • “An architect’s value is inversely proportional to the number of decisions he or she makes.” [ Erik Doernenburg & Martin Fowler, Craft Conf 2016 ] • Roughly resulting in o Working in Teams to collaborate on Infrastructure Code o Providing some guidance
  • 6. System Libraries Packages Middleware Application Operating System Cloud Infrastructure Cookbooks Our Approach Delivering Applications Profiles
  • 7. Our Approach Delivering Applications • Custom Cookbooks (reusing Community Cookbooks) • Chef Server • Configuration data and Cookbooks • Custom InSpec Profiles • Chef Automate • Provides observability for all engineers • Azure DevOps as CI/CD Pipeline
  • 8. Cookbooks • Deployment of Custom .NET Applications • Windows OS Customization (AD join, Anti-Malware, …) • Windows OS Hardening • Azure Ressource Provisioning using azure_mgmt resources from Azure SDK for Ruby
  • 9. Compliance Checks • Compliance Checks • CIS profiles • Custom profiles • LichtBlick contributed to „dev-sec/windows-baseline“ • https://github.com/LichtBlick/windows-baseline • Observability
  • 10. Compliance Checks – windows-baseline control 'windows-001' do title 'Ensure 'Enforce password history' is set to '24 or more password(s)'' desc 'This policy setting determines the number of renewed, unique passwords that have to be associated with a user account before you can reuse an old password. impact 1.0 tag 'windows': ['2012R2', '2016', '2019'] tag 'profile': ['Domain Controller', 'Member Server'] tag 'CIS Microsoft Windows Server 2012 R2 Benchmark v2.3.0 - 03-30-2018': '1.1.1' tag 'CIS Microsoft Windows Server 2016 RTM (Release 1607) Benchmark v1.1.0 - 10-31-2018': '1.1.1' tag 'level': '1' tag 'bsi': ['SYS.1.2.2.M3', 'Sichere Administration'] ref 'IT-Grundschutz-Kompendium', url: 'https://www.bsi.bund.de/DE/Themen/ITGrundschutz/ITGrundschutzKompendium/itgrundschutzKompendium_node.html' ref 'Umsetzungshinweise zum Baustein SYS.1.2.2: Windows Server 2012', url: 'https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-Grundschutz- Modernisierung/UH_Windows_Server_2012.html' ref 'Center for Internet Security', url: 'https://www.cisecurity.org/' We added references to BSI* „IT-Grundschutz“ *BSI = German Federal Office for Information Security
  • 11. Provisioning - the good, the bad und the ugly
  • 12. Provisioning - the good, the bad und the uglyg
  • 13. Provisioning - the good, the bad und the ugly • Decision to provision Azure resources with Chef & Azure resource manager (ARM) • Used chef-provisioning-azurerm from Stuart Preston for a while • Developed custom Library Cookbook „azure-chef-deployment“ • based on gems „azure_mgmt_* Our „One Stop Solution“ • Separate Chef Roles are describing Azure resource provisioning and Application Deployment (in 2016) (in 2018) today
  • 14. Provisioning Azure Resources with Chef Code Cookbooks Build Lint & Test Release Chef Zero Azure DevOps Azure Resources Ressource Group Network Application Virtual Machine Azure Keyvault Azure Ressource Manager Azure Active Directory ARM Template Secrets Authentication Chef Server Provisioning Role & Cookbook Private Agent
  • 15. Provisioning Cookbook – Azure Resources Provisioning Role for Azure Resources Default Attributes default['tenant'] = 'a6238652-91a6-4d9a-90ga-3f16b12dc7c3' default['subscription'] = 'a2d596e5-2671-463g-96bd-ff487gdb6269' default['location'] = 'westeurope' default['resource_tags'] = {} default['arm_template_folder'] = Chef::Config[:file_cache_path] default['skip_validation'] = false Resources with specific attributes • Network • Network Security Group • Virtual Machine • Application Insights • Availability Set • Storage Account • User Assigned Identity • Key Vault • Service Bus • Azure Functions • Scale Set
  • 16. Provisioning Cookbook – Azure Network Resource default['network'] = { resource_group: 'rg-sharedenv-dev-net', default_template_parameters: {}, subnets: [] } Scheme default_template_parameters: { virtual_network_name: 'vnet-eu2-157_0_0-20', virtual_network_address_prefix: '10.157.0.0/20', dns_servers: ['10.144.2.4', '10.144.2.5'] } subnets: [ { name: 'subnet-eu2-157_0_0-24-gendev', address_prefix: '10.157.0.0/24', nsg_name: 'nsg-subnet-eu2-157_0_0-24-gendev' } ]
  • 17. Provisioning - Our Learnings so far • Using Chef Roles for Provisioning & Deployment is easy • Promoting changes over stages is still to be improved • Even a thin abstraction layer brings in dependencies • On ruby gems being the same version as in ChefDK • Interested in using our Provisioning Cookbook as OpenSource? • Just ping me: karsten.mueller@lichtblick.de, @karmueller
  • 18. Provisioning – Q&A • Your Questions? • What kind of Cloud resources do you have to provision? oIaaS (Virtual Machines, Networks, …), PaaS Services oKubernetes as a Service o… • What approach are you using? oManually using the Web UI oProgrammatically using Provider specific API oTerraform o…

Editor's Notes

  • #3: Raise hands Actually using Public Cloud Provider? Like movies? Every time you spot a movie reference shout out lou
  • #4: LichtBlick ~ „ray of hope“
  • #5: The Matrix Reloaded (2003) Maybe: Drunken Master (1994)?
  • #6: The Matrix Reloaded (2003) Maybe: Drunken Master (1994)?
  • #12: Sergio Leone: The Good, the Bad and the Ugly (1967)
  • #13: Sergio Leone: The Good, the Bad and the Ugly (1967)
  • #14: ... pretty good;)
  • #19: Your Questions?