SlideShare a Scribd company logo
1 of 15
Download to read offline
Kokki: Configuration
                  Management Framework
                           It means “cook” in Finnish

                                Samuel Stauffer


Thursday, March 17, 2011
What is it?
                    Infrastructure automation → configuration management
                    Part of provisioning
                    Library and simple command line tool
                           currently no client/server component
                           can use GitHub in place of client/server
                    Alternative to Puppet/Chef/CFengine
Thursday, March 17, 2011
Why not Puppet, Chef, or ...

                    Python
                    It’s a framework/library rather than a complete solution
                    Different needs



Thursday, March 17, 2011
What can I use it for?
                    Creating a template for configuring servers
                           Great for cloud based servers (EC2)
                           Mix in some ‘userscript’ and you have a new web instances in less
                           than 5 minutes.
                    Avoid having to log into servers except when absolutely necessary
                           Configuring servers by hand is tedious, not scalable, and more
                           prone to mistakes. (fine for 1 server, not for 10)

Thursday, March 17, 2011
Overview
                    Environment: execution environment
                           Resource: describes a file, service, package, etc..
                               Provider: knows how to execute a resource
                    Kitchen: container for cookbooks
                           Cookbook: container for recipes and libraries
                               Recipe: group of resource definitions
                               Library: utility methods, resources, and providers
Thursday, March 17, 2011
Environment

                    An environment holds and executes resources and actions.
                    config: attribute dictionary of configuration values
                    system: provides access to system information
                           machine architecture, os (linux, darwin, ...), flavor
                           (redhat, ubuntu, debian, ...)


Thursday, March 17, 2011
Resource
                    A resource is a description of a small part of a configuration
                    Examples: File, Mount, Package, Service, ...

                    File(“/etc/nginx/nginx.conf”,
                         owner = “root”,
                         mode = 0644,
                         content = Template(“nginx/nginx.conf.j2”),
                         notifies = [
                             (“restart” env.resources[“Service”][“nginx”]),
                           ])



Thursday, March 17, 2011
Provider
                    A provider is a concrete implementation of a resource.
                    Responsible for checking current state of the resource and
                    taking any steps necessary to make resource match. (e.g.
                    compare the contents of a file and overwrite if it doesn’t
                    match)
                    Each platform can have a provider (e.g. one provider knows
                    how to install packages using ‘apt’ on Ubuntu)

Thursday, March 17, 2011
Kitchen

                    A Kitchen:
                           is a subclass of an Environment
                           provides a higher level of abstraction for describing roles
                           and resources
                           contains cookbooks which contain recipes and libraries


Thursday, March 17, 2011
Cookbook
                    A cookbook groups recipes, libraries, and default configuration as a
                    unit. For instance a package like “apache2” could have a cookbook.
                    Each cookbook is required to contain a file metadata.py which holds a
                    dictionary of all configuration values and their defaults.
                    Subdirectories of a cookbook include: recipes, libraries, templates,
                    and files.
                    Multiple recipes can be used for different purposes: apache2.prefork,
                    apache2.worker, etc..

Thursday, March 17, 2011
Recipe
                    A recipe is a “script” that defines resources.
                    Each recipe receives a global ‘env’ which is the current
                    Environment/Kitchen.
                    A cookbook can have a ‘default.py’ recipe which is the one
                    used if no recipe specified.
                           env.include_recipe(“memcached”)
                           vs env.include_recipe(“munin.node”)
Thursday, March 17, 2011
Demo


                    http://github.com/samuel/kokki-pywebsf-demo




Thursday, March 17, 2011
Current Limitations

                    Currently only supports Debian/Ubuntu
                           easy to support other platforms, just isn’t done
                    No client/server
                    Small userbase
                    No documentations

Thursday, March 17, 2011
Roadmap

                    Better documentation
                    Client/server
                    Cloud tools (automate EC2 instances)
                    More platforms (though probably not Windows)
                    Pick a different theme? (enough with the cooking/chefs)

Thursday, March 17, 2011
Thanks! Questions?

                    http://github.com/samuel/kokki
                    http://github.com/samuel/kokki-pywebsf-demo
                    https://convore.com/kokki/
                    samuel@descolada.com


Thursday, March 17, 2011

More Related Content

What's hot

Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Anthony Dahanne
 
2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users GroupTodd Fritz
 
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor CommunityA Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor CommunityBob Killen
 
How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...Animesh Singh
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerPluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerBob Killen
 
Hadoop Cluster on Docker Containers
Hadoop Cluster on Docker ContainersHadoop Cluster on Docker Containers
Hadoop Cluster on Docker Containerspranav_joshi
 
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise GatewayStrata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise GatewayLuciano Resende
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...Oleg Shalygin
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...All Things Open
 
Finding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User GroupFinding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User GroupDaniel Krook
 
Building analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsBuilding analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsLuciano Resende
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSBamdad Dashtban
 
Optimizing Docker Images
Optimizing Docker ImagesOptimizing Docker Images
Optimizing Docker ImagesBrian DeHamer
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetesElad Hirsch
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Arun Gupta
 
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWS
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWSConfiguring Highly Scalable Compile Masters, Vasco Cardoso, AWS
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWSPuppet
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityLudovic Piot
 
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...Daniel Krook
 
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...Initcron Systems Private Limited
 

What's hot (20)

Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !
 
2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group
 
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor CommunityA Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
 
How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerPluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and Docker
 
Hadoop Cluster on Docker Containers
Hadoop Cluster on Docker ContainersHadoop Cluster on Docker Containers
Hadoop Cluster on Docker Containers
 
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise GatewayStrata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...
 
Finding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User GroupFinding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User Group
 
Building analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsBuilding analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernels
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Optimizing Docker Images
Optimizing Docker ImagesOptimizing Docker Images
Optimizing Docker Images
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
DevOps tools for winning agility
DevOps tools for winning agilityDevOps tools for winning agility
DevOps tools for winning agility
 
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWS
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWSConfiguring Highly Scalable Compile Masters, Vasco Cardoso, AWS
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWS
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperability
 
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
 
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
 

Viewers also liked

The life of an entrepreneur - by me
The life of an entrepreneur - by meThe life of an entrepreneur - by me
The life of an entrepreneur - by meJasper Goyvaerts
 
Bcn Cool Hunter 9 mayo
Bcn Cool Hunter 9 mayoBcn Cool Hunter 9 mayo
Bcn Cool Hunter 9 mayoDafne Patruno
 
The solar system of ainara
The solar system of ainaraThe solar system of ainara
The solar system of ainarafirstbilingual1
 
Am 6 the marketing mix
Am 6 the marketing mixAm 6 the marketing mix
Am 6 the marketing mixalka1522
 
Employers for Better Health
Employers for Better HealthEmployers for Better Health
Employers for Better HealthOttawa Kent
 
How PowerDirect Delivers Results
How PowerDirect Delivers ResultsHow PowerDirect Delivers Results
How PowerDirect Delivers Resultsbborneman
 
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»Yaroslav Birzool
 
Brick Streets in Homer Illinois
Brick Streets in Homer IllinoisBrick Streets in Homer Illinois
Brick Streets in Homer IllinoisRaymond Cunningham
 
Matthew millington is the fox and you can't catch the fox
Matthew millington is the fox and you can't catch the foxMatthew millington is the fox and you can't catch the fox
Matthew millington is the fox and you can't catch the foxtherussianbear
 
Pedro López de alda
Pedro López de aldaPedro López de alda
Pedro López de aldaStudent
 
2payementofbonus act-101120123359-phpapp01
2payementofbonus act-101120123359-phpapp012payementofbonus act-101120123359-phpapp01
2payementofbonus act-101120123359-phpapp01Robbart Prem
 
Lecture failure criteria
Lecture   failure criteriaLecture   failure criteria
Lecture failure criteriaHamdani Nurdin
 
Cloud Services for the BIO-ICT Project
Cloud Services for the BIO-ICT ProjectCloud Services for the BIO-ICT Project
Cloud Services for the BIO-ICT ProjectTomo Popovic
 

Viewers also liked (20)

The life of an entrepreneur - by me
The life of an entrepreneur - by meThe life of an entrepreneur - by me
The life of an entrepreneur - by me
 
Bcn Cool Hunter 9 mayo
Bcn Cool Hunter 9 mayoBcn Cool Hunter 9 mayo
Bcn Cool Hunter 9 mayo
 
Education 3.0
Education 3.0Education 3.0
Education 3.0
 
The solar system of ainara
The solar system of ainaraThe solar system of ainara
The solar system of ainara
 
Am 6 the marketing mix
Am 6 the marketing mixAm 6 the marketing mix
Am 6 the marketing mix
 
Employers for Better Health
Employers for Better HealthEmployers for Better Health
Employers for Better Health
 
How PowerDirect Delivers Results
How PowerDirect Delivers ResultsHow PowerDirect Delivers Results
How PowerDirect Delivers Results
 
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
 
Brick Streets in Homer Illinois
Brick Streets in Homer IllinoisBrick Streets in Homer Illinois
Brick Streets in Homer Illinois
 
Appril #appdesign
Appril #appdesignAppril #appdesign
Appril #appdesign
 
Matthew millington is the fox and you can't catch the fox
Matthew millington is the fox and you can't catch the foxMatthew millington is the fox and you can't catch the fox
Matthew millington is the fox and you can't catch the fox
 
Otoño y sus flores
Otoño y sus floresOtoño y sus flores
Otoño y sus flores
 
Pedro López de alda
Pedro López de aldaPedro López de alda
Pedro López de alda
 
2payementofbonus act-101120123359-phpapp01
2payementofbonus act-101120123359-phpapp012payementofbonus act-101120123359-phpapp01
2payementofbonus act-101120123359-phpapp01
 
Noč v knjižnici
Noč v knjižniciNoč v knjižnici
Noč v knjižnici
 
Lecture failure criteria
Lecture   failure criteriaLecture   failure criteria
Lecture failure criteria
 
Al mu min
Al mu minAl mu min
Al mu min
 
Cloud Services for the BIO-ICT Project
Cloud Services for the BIO-ICT ProjectCloud Services for the BIO-ICT Project
Cloud Services for the BIO-ICT Project
 
9fms pp18
9fms pp189fms pp18
9fms pp18
 
Embedded PowerPoint
Embedded PowerPointEmbedded PowerPoint
Embedded PowerPoint
 

Similar to Kokki: Configuration Management Framework

Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009marcelesser
 
Container orchestration on_aws
Container orchestration on_awsContainer orchestration on_aws
Container orchestration on_awsKasper Nissen
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to KubernetesPaul Czarkowski
 
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentationCorey Purcell
 
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...irbull
 
Velocity2011 chef-workshop
Velocity2011 chef-workshopVelocity2011 chef-workshop
Velocity2011 chef-workshopjtimberman
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationHoward Greenberg
 
Modern web dev_taxonomy
Modern web dev_taxonomyModern web dev_taxonomy
Modern web dev_taxonomykevin_donovan
 
Deployment with ExpressionEngine
Deployment with ExpressionEngineDeployment with ExpressionEngine
Deployment with ExpressionEngineGreen Egg Media
 
Updating Your Website to Drupal 7
Updating Your Website to Drupal 7Updating Your Website to Drupal 7
Updating Your Website to Drupal 7Acquia
 
Do's and Do not's about p2
Do's and Do not's about p2Do's and Do not's about p2
Do's and Do not's about p2Pascal Rapicault
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Henri Gomez
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with PuppetAlessandro Franceschi
 
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
 Build High-Performance, Scalable, Distributed Applications with Stacks of Co... Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...Yandex
 
Ansible top 10 - 2018
Ansible top 10 -  2018Ansible top 10 -  2018
Ansible top 10 - 2018Viresh Doshi
 
Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - IntroductionLuca D'Onofrio
 
Chef Tutorial for DEVOPS Newbies
Chef Tutorial for DEVOPS NewbiesChef Tutorial for DEVOPS Newbies
Chef Tutorial for DEVOPS NewbiesMamun Rashid, CCDH
 
CONTINUOUS INTEGRATION && DOCKER
CONTINUOUS INTEGRATION && DOCKERCONTINUOUS INTEGRATION && DOCKER
CONTINUOUS INTEGRATION && DOCKERStfalcon Meetups
 

Similar to Kokki: Configuration Management Framework (20)

Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009
 
Container orchestration on_aws
Container orchestration on_awsContainer orchestration on_aws
Container orchestration on_aws
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
 
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentation
 
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
 
Velocity2011 chef-workshop
Velocity2011 chef-workshopVelocity2011 chef-workshop
Velocity2011 chef-workshop
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting Replication
 
Modern web dev_taxonomy
Modern web dev_taxonomyModern web dev_taxonomy
Modern web dev_taxonomy
 
Deployment with ExpressionEngine
Deployment with ExpressionEngineDeployment with ExpressionEngine
Deployment with ExpressionEngine
 
Updating Your Website to Drupal 7
Updating Your Website to Drupal 7Updating Your Website to Drupal 7
Updating Your Website to Drupal 7
 
Do's and Do not's about p2
Do's and Do not's about p2Do's and Do not's about p2
Do's and Do not's about p2
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with Puppet
 
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
 Build High-Performance, Scalable, Distributed Applications with Stacks of Co... Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
 
Groke
GrokeGroke
Groke
 
Ansible top 10 - 2018
Ansible top 10 -  2018Ansible top 10 -  2018
Ansible top 10 - 2018
 
Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - Introduction
 
Chef Tutorial for DEVOPS Newbies
Chef Tutorial for DEVOPS NewbiesChef Tutorial for DEVOPS Newbies
Chef Tutorial for DEVOPS Newbies
 
CONTINUOUS INTEGRATION && DOCKER
CONTINUOUS INTEGRATION && DOCKERCONTINUOUS INTEGRATION && DOCKER
CONTINUOUS INTEGRATION && DOCKER
 
Puppet_training
Puppet_trainingPuppet_training
Puppet_training
 

Recently uploaded

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Kokki: Configuration Management Framework

  • 1. Kokki: Configuration Management Framework It means “cook” in Finnish Samuel Stauffer Thursday, March 17, 2011
  • 2. What is it? Infrastructure automation → configuration management Part of provisioning Library and simple command line tool currently no client/server component can use GitHub in place of client/server Alternative to Puppet/Chef/CFengine Thursday, March 17, 2011
  • 3. Why not Puppet, Chef, or ... Python It’s a framework/library rather than a complete solution Different needs Thursday, March 17, 2011
  • 4. What can I use it for? Creating a template for configuring servers Great for cloud based servers (EC2) Mix in some ‘userscript’ and you have a new web instances in less than 5 minutes. Avoid having to log into servers except when absolutely necessary Configuring servers by hand is tedious, not scalable, and more prone to mistakes. (fine for 1 server, not for 10) Thursday, March 17, 2011
  • 5. Overview Environment: execution environment Resource: describes a file, service, package, etc.. Provider: knows how to execute a resource Kitchen: container for cookbooks Cookbook: container for recipes and libraries Recipe: group of resource definitions Library: utility methods, resources, and providers Thursday, March 17, 2011
  • 6. Environment An environment holds and executes resources and actions. config: attribute dictionary of configuration values system: provides access to system information machine architecture, os (linux, darwin, ...), flavor (redhat, ubuntu, debian, ...) Thursday, March 17, 2011
  • 7. Resource A resource is a description of a small part of a configuration Examples: File, Mount, Package, Service, ... File(“/etc/nginx/nginx.conf”, owner = “root”, mode = 0644, content = Template(“nginx/nginx.conf.j2”), notifies = [ (“restart” env.resources[“Service”][“nginx”]), ]) Thursday, March 17, 2011
  • 8. Provider A provider is a concrete implementation of a resource. Responsible for checking current state of the resource and taking any steps necessary to make resource match. (e.g. compare the contents of a file and overwrite if it doesn’t match) Each platform can have a provider (e.g. one provider knows how to install packages using ‘apt’ on Ubuntu) Thursday, March 17, 2011
  • 9. Kitchen A Kitchen: is a subclass of an Environment provides a higher level of abstraction for describing roles and resources contains cookbooks which contain recipes and libraries Thursday, March 17, 2011
  • 10. Cookbook A cookbook groups recipes, libraries, and default configuration as a unit. For instance a package like “apache2” could have a cookbook. Each cookbook is required to contain a file metadata.py which holds a dictionary of all configuration values and their defaults. Subdirectories of a cookbook include: recipes, libraries, templates, and files. Multiple recipes can be used for different purposes: apache2.prefork, apache2.worker, etc.. Thursday, March 17, 2011
  • 11. Recipe A recipe is a “script” that defines resources. Each recipe receives a global ‘env’ which is the current Environment/Kitchen. A cookbook can have a ‘default.py’ recipe which is the one used if no recipe specified. env.include_recipe(“memcached”) vs env.include_recipe(“munin.node”) Thursday, March 17, 2011
  • 12. Demo http://github.com/samuel/kokki-pywebsf-demo Thursday, March 17, 2011
  • 13. Current Limitations Currently only supports Debian/Ubuntu easy to support other platforms, just isn’t done No client/server Small userbase No documentations Thursday, March 17, 2011
  • 14. Roadmap Better documentation Client/server Cloud tools (automate EC2 instances) More platforms (though probably not Windows) Pick a different theme? (enough with the cooking/chefs) Thursday, March 17, 2011
  • 15. Thanks! Questions? http://github.com/samuel/kokki http://github.com/samuel/kokki-pywebsf-demo https://convore.com/kokki/ samuel@descolada.com Thursday, March 17, 2011