SlideShare a Scribd company logo
1 of 23
Application Automation with Habitat
Simon Fisher / Fletcher Nichol
Errno::EACCES: Permission denied - /home/-----
/#####/-----/vendor/bundle/ruby/1.9.1/cache/bundler
/home/-----/.rvm/rubies/ruby-1.9.3-
p551/lib/ruby/1.9.1/fileutils.rb:247:in `mkdir'
/home/-----/.rvm/rubies/ruby-1.9.3-
p551/lib/ruby/1.9.1/fileutils.rb:247:in `fu_mkdir'
/home/-----/.rvm/rubies/ruby-1.9.3-
p551/lib/ruby/1.9.1/fileutils.rb:221:in `block (2
levels) in mkdir_p'
/home/-----/.rvm/rubies/ruby-1.9.3-
p551/lib/ruby/1.9.1/fileutils.rb:219:in
`reverse_each'
/home/-----/.rvm/rubies/ruby-1.9.3-
p551/lib/ruby/1.9.1/fileutils.rb:219:in `block in
mkdir_p'
include_recipe 'nginx::default’
template "#{node['dafne_online']['deploy_base']}/shared/config/nginx.conf" do
source 'nginx_conf.erb’
owner 'rails’
group 'admin’
mode '0644’
notifies :restart, 'service[nginx]’
end
deploy node['dafne_online']['deploy_base'] do
repository "https://#{node['dafne_online']['git_user']}:#{git_pw}@dafneonline.git.cloudforge.com/dafneonline.git" rollback_on_error true
environment rails_user_env
restart_command 'sudo -H -u rails bash -c "export PATH=/opt/rubies/2.2.3/bin:$PATH && /etc/init.d/unicorn_dafneonline restart"’
action :deploy symlinks shared_hash
user node['dafne_online']['deploy_user']
group 'admin’
before_symlink do
execute 'bundle install' do
command "bundle install --path #{node['dafne_online']['deploy_base']}/shared/bundle --without development test --deployment --quiet”
user node['dafne_online']['deploy_user']
environment rails_user_env
cwd release_path
action :run
end
end
before_restart do
link '/etc/init.d/unicorn_dafneonline' do
to '/home/rails/apps/dafneonline/current/config/unicorn_init.sh’
end
template "#{node['dafne_online']['deploy_base']}/current/config/unicorn.rb" do
source 'unicorn.rb.erb' owner node['dafne_online']['deploy_user']
group 'admin’
mode 00744
end
execute 'compile assets' do
command "RAILS_ENV=#{node['dafne_online']['rails_env']} bundle exec rake assets:precompile”
user node['dafne_online']['deploy_user']
environment rails_user_env
cwd release_path
action :run
end
end
after_restart do
execute 'notify Airbrake of deployment' do
command "RAILS_ENV=#{node['dafne_online']['rails_env']} bundle exec rake airbrake:deploy TO=#{node['dafne_online']['rails_env']} REVISION=
REPO=https://dafneonline.git.cloudforge.com/dafneonline.git USER=#{node['dafne_online']['deploy_user']}”
environment rails_user_env
user node['dafne_online']['deploy_user']
cwd release_path
action :run
end
end
end
9
Habitat Technology
Plan Artifact Depot
Build
Service
Supervis
or
Supervis
or
Supervis
or
Supervis
or
Ring
Bare Metal
Containers
AMI
VM
Depot
Build Service &
Workflow
Package Format Artifact Distribution
Server
Artifact Distribution
Server
Intelligent Run-Time Supervisor w/REST
API
Source
Code
Repo
Supervisor Supervisor
Stop!
Demo Time
What’s New?
Habitat features and updates post-launch 2016
Package Search from Command Line
$ hab pkg search hab-studio
core/hab-studio/0.10.0/20160929200453
core/hab-studio/0.10.0/20160929200924
core/hab-studio/0.10.1/20160929223112
core/hab-studio/0.10.2/20160930230930
core/hab-studio/0.6.0/20160612082608
core/hab-studio/0.6.0/20160613075329
core/hab-studio/0.7.0/20160614232531
core/hab-studio/0.8.0/20160708162421
core/hab-studio/0.8.0/20160729121901
core/hab-studio/0.8.0/20160729180228
core/hab-studio/0.8.0/20160729195909
core/hab-studio/0.9.0/20160815225526
core/hab-studio/0.9.1/20160901205418
core/hab-studio/0.9.3/20160916192516
core/hab-studio/0.9.3/20160922234920
core/hab-studio/0.9.3/20160926154214
Improved Proxy Support
• Supports $http_proxy, $https_proxy, $no_proxy environment
variables
• Basic authentication
• Propagate into Studios
Iterate Service Configurations Quicker
using
–config-from
• Faster iteration of configuration templates during plan
development
• $ hab start yourorigin/yourpackage --config-from /path/to/config
• Intended only for development
Improved Root/Non-Root Behavior via
sudo
• Drop the need to prefix most hab commands with sudo
• Entering a Studio with sudo detects user’s key cache (not
root’s)
• $ hab setup; sudo hab studio enter
• Future release will “auto-sudo” when using Studio
subcommands
Better Mac Docker/Studio Upgrading
• Mac uses a Docker image for Linux Studio
• Runs Docker image with same version as hab CLI
• On upgrading hab CLI, new Docker image automatically pulled
Process: Release Train Model
• Userland tooling: hab CLI, Supervisor, Director
• Every second Thursday, cut from master
• Typically a minor version revision
• Features ship when ready and early features will hide behind
feature flags
Process: (Upcoming) Continuous
Deployment
• Platform infrastructure: web site, Depot, Builder
• Packages built off master and published to Depot
• Platform upgrades when new packages publish
• Decoupled release from userland tooling
Builder: A Distributed Build Service
• Micro service architecture, built with Habitat in mind
• Habitat runs on Habitat
• Upcoming: early access to build a package on the platform via
feature flag/invite
• Upcoming: building packages on pushes to GitHub
• Upcoming: dependent package rebuilding
• More details: “Habitat 301: Building Habitats” ChefConf 2016
Talk by Jamie Winsor
Expanding Horizons: Windows
• Bring Mac Habitat experience to Windows
• Building hab CLI
• Upcoming: ship first hab packages for Windows
• Upcoming: native Windows Habitat packages
• Upcoming: Supervisor running on Windows
Contribute to “Habtoberfest”!
• Habitat participating in Digital Ocean’s Hacktoberfest event
• Runs October 1st through 31st
• Make 4 pull requests (on any FOSS project), earn a limited
edition Hacktoberfest T-shirt
• Habitat repo has “Hacktoberfest” tagged issues
• http://hacktoberfest.digitalocean.com
Help Shape the Direction of Habitat
• Try out Habitat https://www.habitat.sh/try/
• Build a package
• Try out use cases, contact us when: you win, you come up
short, (i.e. anytime)
• Join us in HabiChat http://slack.habitat.sh/
• We’re at a Community Summit—let’s talk!

More Related Content

What's hot

Deploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleDeploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleRoman Rodomansky
 
Automated deployments using envoy by John Blackmore
Automated deployments using envoy by John BlackmoreAutomated deployments using envoy by John Blackmore
Automated deployments using envoy by John BlackmoreTechExeter
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeSarah Z
 
Docker in development
Docker in developmentDocker in development
Docker in developmentsethvoltz
 
Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3kognate
 
Environment isolation with Docker (Alex Medvedev, Alpari)
Environment isolation with Docker (Alex Medvedev, Alpari)Environment isolation with Docker (Alex Medvedev, Alpari)
Environment isolation with Docker (Alex Medvedev, Alpari)Symfoniacs
 
More than Applications: (Ab)using Docker to Improve the Portability of Everyt...
More than Applications: (Ab)using Docker to Improve the Portability of Everyt...More than Applications: (Ab)using Docker to Improve the Portability of Everyt...
More than Applications: (Ab)using Docker to Improve the Portability of Everyt...Dexter Horthy
 
Building a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARMBuilding a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARMTeam Hypriot
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 
Infrastructure as code with Docker and fig
Infrastructure as code with Docker and figInfrastructure as code with Docker and fig
Infrastructure as code with Docker and figpranas_algoteq
 
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire dotCloud
 
Vagrant-Overview
Vagrant-OverviewVagrant-Overview
Vagrant-OverviewCrifkin
 
Conan a C/C++ Package Manager
Conan a C/C++ Package ManagerConan a C/C++ Package Manager
Conan a C/C++ Package ManagerUilian Ries
 
PHP Dependency Management with Composer
PHP Dependency Management with ComposerPHP Dependency Management with Composer
PHP Dependency Management with ComposerAdam Englander
 
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.Idan Tohami
 
Ruby on Rails and Docker - Why should I care?
Ruby on Rails and Docker - Why should I care?Ruby on Rails and Docker - Why should I care?
Ruby on Rails and Docker - Why should I care?Adam Hodowany
 

What's hot (20)

Deploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleDeploying Symfony2 app with Ansible
Deploying Symfony2 app with Ansible
 
Automated deployments using envoy by John Blackmore
Automated deployments using envoy by John BlackmoreAutomated deployments using envoy by John Blackmore
Automated deployments using envoy by John Blackmore
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
 
Docker in development
Docker in developmentDocker in development
Docker in development
 
Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3
 
Environment isolation with Docker (Alex Medvedev, Alpari)
Environment isolation with Docker (Alex Medvedev, Alpari)Environment isolation with Docker (Alex Medvedev, Alpari)
Environment isolation with Docker (Alex Medvedev, Alpari)
 
Getting Started With Aura
Getting Started With AuraGetting Started With Aura
Getting Started With Aura
 
More than Applications: (Ab)using Docker to Improve the Portability of Everyt...
More than Applications: (Ab)using Docker to Improve the Portability of Everyt...More than Applications: (Ab)using Docker to Improve the Portability of Everyt...
More than Applications: (Ab)using Docker to Improve the Portability of Everyt...
 
Building a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARMBuilding a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARM
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 
Infrastructure as code with Docker and fig
Infrastructure as code with Docker and figInfrastructure as code with Docker and fig
Infrastructure as code with Docker and fig
 
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
 
Vagrant-Overview
Vagrant-OverviewVagrant-Overview
Vagrant-Overview
 
Conan a C/C++ Package Manager
Conan a C/C++ Package ManagerConan a C/C++ Package Manager
Conan a C/C++ Package Manager
 
PHP Dependency Management with Composer
PHP Dependency Management with ComposerPHP Dependency Management with Composer
PHP Dependency Management with Composer
 
What is octohost?
What is octohost?What is octohost?
What is octohost?
 
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
 
Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017
 
Ruby on Rails and Docker - Why should I care?
Ruby on Rails and Docker - Why should I care?Ruby on Rails and Docker - Why should I care?
Ruby on Rails and Docker - Why should I care?
 
Homebrew atlrug
Homebrew atlrugHomebrew atlrug
Homebrew atlrug
 

Viewers also liked

London Community Summit 2016 - Habitat
London Community Summit 2016 -  HabitatLondon Community Summit 2016 -  Habitat
London Community Summit 2016 - HabitatChef
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryMandi Walls
 
Overview of ruby on rails 2016
Overview of ruby on rails 2016Overview of ruby on rails 2016
Overview of ruby on rails 2016Clustox
 
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Chef
 
London Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef StuffLondon Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef StuffChef
 
Phoenix for Rails Devs
Phoenix for Rails DevsPhoenix for Rails Devs
Phoenix for Rails DevsDiacode
 
Natural Disaster Insurance in China: Practice and Lessons Learned
Natural Disaster Insurance in China: Practice and Lessons LearnedNatural Disaster Insurance in China: Practice and Lessons Learned
Natural Disaster Insurance in China: Practice and Lessons LearnedGlobal Risk Forum GRFDavos
 
Measuring Social, Health and Economic Impacts of Disasters: Experiences from ...
Measuring Social, Health and Economic Impacts of Disasters: Experiences from ...Measuring Social, Health and Economic Impacts of Disasters: Experiences from ...
Measuring Social, Health and Economic Impacts of Disasters: Experiences from ...Global Risk Forum GRFDavos
 
Marche Flotant En Hollande
Marche Flotant En HollandeMarche Flotant En Hollande
Marche Flotant En Hollandemercury3969
 
คู่มืออบรม Google sites
คู่มืออบรม  Google sitesคู่มืออบรม  Google sites
คู่มืออบรม Google sitesฺBadBoy 20151963
 
The Geopolitics of Energy Interdependence: The Example of the European Union ...
The Geopolitics of Energy Interdependence: The Example of the European Union ...The Geopolitics of Energy Interdependence: The Example of the European Union ...
The Geopolitics of Energy Interdependence: The Example of the European Union ...Global Risk Forum GRFDavos
 

Viewers also liked (16)

London Community Summit 2016 - Habitat
London Community Summit 2016 -  HabitatLondon Community Summit 2016 -  Habitat
London Community Summit 2016 - Habitat
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous Delivery
 
Overview of ruby on rails 2016
Overview of ruby on rails 2016Overview of ruby on rails 2016
Overview of ruby on rails 2016
 
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4
 
London Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef StuffLondon Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef Stuff
 
Phoenix for Rails Devs
Phoenix for Rails DevsPhoenix for Rails Devs
Phoenix for Rails Devs
 
50 completely useful stats for social media & mobile marketing
50 completely useful stats for social media & mobile marketing50 completely useful stats for social media & mobile marketing
50 completely useful stats for social media & mobile marketing
 
Natural Disaster Insurance in China: Practice and Lessons Learned
Natural Disaster Insurance in China: Practice and Lessons LearnedNatural Disaster Insurance in China: Practice and Lessons Learned
Natural Disaster Insurance in China: Practice and Lessons Learned
 
Measuring Social, Health and Economic Impacts of Disasters: Experiences from ...
Measuring Social, Health and Economic Impacts of Disasters: Experiences from ...Measuring Social, Health and Economic Impacts of Disasters: Experiences from ...
Measuring Social, Health and Economic Impacts of Disasters: Experiences from ...
 
Marche Flotant En Hollande
Marche Flotant En HollandeMarche Flotant En Hollande
Marche Flotant En Hollande
 
It Smagic
It SmagicIt Smagic
It Smagic
 
Incitement in the Palestinian Authority
Incitement in the Palestinian AuthorityIncitement in the Palestinian Authority
Incitement in the Palestinian Authority
 
Resume
ResumeResume
Resume
 
คู่มืออบรม Google sites
คู่มืออบรม  Google sitesคู่มืออบรม  Google sites
คู่มืออบรม Google sites
 
The Geopolitics of Energy Interdependence: The Example of the European Union ...
The Geopolitics of Energy Interdependence: The Example of the European Union ...The Geopolitics of Energy Interdependence: The Example of the European Union ...
The Geopolitics of Energy Interdependence: The Example of the European Union ...
 
Godrej new projects
Godrej new projectsGodrej new projects
Godrej new projects
 

Similar to London Community Summit - Habitat 2016

Taking Control of Chaos with Docker and Puppet
Taking Control of Chaos with Docker and PuppetTaking Control of Chaos with Docker and Puppet
Taking Control of Chaos with Docker and PuppetPuppet
 
Docker puppetcamp london 2013
Docker puppetcamp london 2013Docker puppetcamp london 2013
Docker puppetcamp london 2013Tomas Doran
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)Soshi Nemoto
 
habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker budMandi Walls
 
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...Manuel Garcia
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionFabio Kung
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Joblinuxlab_conf
 
Mastering Docker on a Raspberry Pi
Mastering Docker on a Raspberry PiMastering Docker on a Raspberry Pi
Mastering Docker on a Raspberry PiTeam Hypriot
 
Ruby microservices with Docker - Sergii Koba
Ruby microservices with Docker -  Sergii KobaRuby microservices with Docker -  Sergii Koba
Ruby microservices with Docker - Sergii KobaRuby Meditation
 
ASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerJürgen Gutsch
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2Vincent Mercier
 
Using Minikube for Node.js development
Using Minikube for Node.js developmentUsing Minikube for Node.js development
Using Minikube for Node.js developmentTroy Connor
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerKuan Yen Heng
 
Jak se ^bonami\.(cz|pl|sk)$ vešlo do kontejneru
Jak se ^bonami\.(cz|pl|sk)$ vešlo do kontejneruJak se ^bonami\.(cz|pl|sk)$ vešlo do kontejneru
Jak se ^bonami\.(cz|pl|sk)$ vešlo do kontejneruVašek Boch
 
Breaking bad habits with GitLab CI
Breaking bad habits with GitLab CIBreaking bad habits with GitLab CI
Breaking bad habits with GitLab CIIvan Nemytchenko
 
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...linuxlab_conf
 
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini
 

Similar to London Community Summit - Habitat 2016 (20)

Taking Control of Chaos with Docker and Puppet
Taking Control of Chaos with Docker and PuppetTaking Control of Chaos with Docker and Puppet
Taking Control of Chaos with Docker and Puppet
 
Docker puppetcamp london 2013
Docker puppetcamp london 2013Docker puppetcamp london 2013
Docker puppetcamp london 2013
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)
 
habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker bud
 
Rexdockercon2017
Rexdockercon2017Rexdockercon2017
Rexdockercon2017
 
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
 
Mastering Docker on a Raspberry Pi
Mastering Docker on a Raspberry PiMastering Docker on a Raspberry Pi
Mastering Docker on a Raspberry Pi
 
Firebird on Linux
Firebird on LinuxFirebird on Linux
Firebird on Linux
 
Ruby microservices with Docker - Sergii Koba
Ruby microservices with Docker -  Sergii KobaRuby microservices with Docker -  Sergii Koba
Ruby microservices with Docker - Sergii Koba
 
ASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & docker
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2
 
CentOS at Facebook
CentOS at FacebookCentOS at Facebook
CentOS at Facebook
 
Using Minikube for Node.js development
Using Minikube for Node.js developmentUsing Minikube for Node.js development
Using Minikube for Node.js development
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Jak se ^bonami\.(cz|pl|sk)$ vešlo do kontejneru
Jak se ^bonami\.(cz|pl|sk)$ vešlo do kontejneruJak se ^bonami\.(cz|pl|sk)$ vešlo do kontejneru
Jak se ^bonami\.(cz|pl|sk)$ vešlo do kontejneru
 
Breaking bad habits with GitLab CI
Breaking bad habits with GitLab CIBreaking bad habits with GitLab CI
Breaking bad habits with GitLab CI
 
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
 
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
 

Recently uploaded

Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

London Community Summit - Habitat 2016

  • 1. Application Automation with Habitat Simon Fisher / Fletcher Nichol
  • 2.
  • 3.
  • 4. Errno::EACCES: Permission denied - /home/----- /#####/-----/vendor/bundle/ruby/1.9.1/cache/bundler /home/-----/.rvm/rubies/ruby-1.9.3- p551/lib/ruby/1.9.1/fileutils.rb:247:in `mkdir' /home/-----/.rvm/rubies/ruby-1.9.3- p551/lib/ruby/1.9.1/fileutils.rb:247:in `fu_mkdir' /home/-----/.rvm/rubies/ruby-1.9.3- p551/lib/ruby/1.9.1/fileutils.rb:221:in `block (2 levels) in mkdir_p' /home/-----/.rvm/rubies/ruby-1.9.3- p551/lib/ruby/1.9.1/fileutils.rb:219:in `reverse_each' /home/-----/.rvm/rubies/ruby-1.9.3- p551/lib/ruby/1.9.1/fileutils.rb:219:in `block in mkdir_p'
  • 5.
  • 6.
  • 7. include_recipe 'nginx::default’ template "#{node['dafne_online']['deploy_base']}/shared/config/nginx.conf" do source 'nginx_conf.erb’ owner 'rails’ group 'admin’ mode '0644’ notifies :restart, 'service[nginx]’ end
  • 8. deploy node['dafne_online']['deploy_base'] do repository "https://#{node['dafne_online']['git_user']}:#{git_pw}@dafneonline.git.cloudforge.com/dafneonline.git" rollback_on_error true environment rails_user_env restart_command 'sudo -H -u rails bash -c "export PATH=/opt/rubies/2.2.3/bin:$PATH && /etc/init.d/unicorn_dafneonline restart"’ action :deploy symlinks shared_hash user node['dafne_online']['deploy_user'] group 'admin’ before_symlink do execute 'bundle install' do command "bundle install --path #{node['dafne_online']['deploy_base']}/shared/bundle --without development test --deployment --quiet” user node['dafne_online']['deploy_user'] environment rails_user_env cwd release_path action :run end end before_restart do link '/etc/init.d/unicorn_dafneonline' do to '/home/rails/apps/dafneonline/current/config/unicorn_init.sh’ end template "#{node['dafne_online']['deploy_base']}/current/config/unicorn.rb" do source 'unicorn.rb.erb' owner node['dafne_online']['deploy_user'] group 'admin’ mode 00744 end execute 'compile assets' do command "RAILS_ENV=#{node['dafne_online']['rails_env']} bundle exec rake assets:precompile” user node['dafne_online']['deploy_user'] environment rails_user_env cwd release_path action :run end end after_restart do execute 'notify Airbrake of deployment' do command "RAILS_ENV=#{node['dafne_online']['rails_env']} bundle exec rake airbrake:deploy TO=#{node['dafne_online']['rails_env']} REVISION= REPO=https://dafneonline.git.cloudforge.com/dafneonline.git USER=#{node['dafne_online']['deploy_user']}” environment rails_user_env user node['dafne_online']['deploy_user'] cwd release_path action :run end end end
  • 9. 9
  • 10. Habitat Technology Plan Artifact Depot Build Service Supervis or Supervis or Supervis or Supervis or Ring Bare Metal Containers AMI VM Depot Build Service & Workflow Package Format Artifact Distribution Server Artifact Distribution Server Intelligent Run-Time Supervisor w/REST API Source Code Repo Supervisor Supervisor
  • 12. What’s New? Habitat features and updates post-launch 2016
  • 13. Package Search from Command Line $ hab pkg search hab-studio core/hab-studio/0.10.0/20160929200453 core/hab-studio/0.10.0/20160929200924 core/hab-studio/0.10.1/20160929223112 core/hab-studio/0.10.2/20160930230930 core/hab-studio/0.6.0/20160612082608 core/hab-studio/0.6.0/20160613075329 core/hab-studio/0.7.0/20160614232531 core/hab-studio/0.8.0/20160708162421 core/hab-studio/0.8.0/20160729121901 core/hab-studio/0.8.0/20160729180228 core/hab-studio/0.8.0/20160729195909 core/hab-studio/0.9.0/20160815225526 core/hab-studio/0.9.1/20160901205418 core/hab-studio/0.9.3/20160916192516 core/hab-studio/0.9.3/20160922234920 core/hab-studio/0.9.3/20160926154214
  • 14. Improved Proxy Support • Supports $http_proxy, $https_proxy, $no_proxy environment variables • Basic authentication • Propagate into Studios
  • 15. Iterate Service Configurations Quicker using –config-from • Faster iteration of configuration templates during plan development • $ hab start yourorigin/yourpackage --config-from /path/to/config • Intended only for development
  • 16. Improved Root/Non-Root Behavior via sudo • Drop the need to prefix most hab commands with sudo • Entering a Studio with sudo detects user’s key cache (not root’s) • $ hab setup; sudo hab studio enter • Future release will “auto-sudo” when using Studio subcommands
  • 17. Better Mac Docker/Studio Upgrading • Mac uses a Docker image for Linux Studio • Runs Docker image with same version as hab CLI • On upgrading hab CLI, new Docker image automatically pulled
  • 18. Process: Release Train Model • Userland tooling: hab CLI, Supervisor, Director • Every second Thursday, cut from master • Typically a minor version revision • Features ship when ready and early features will hide behind feature flags
  • 19. Process: (Upcoming) Continuous Deployment • Platform infrastructure: web site, Depot, Builder • Packages built off master and published to Depot • Platform upgrades when new packages publish • Decoupled release from userland tooling
  • 20. Builder: A Distributed Build Service • Micro service architecture, built with Habitat in mind • Habitat runs on Habitat • Upcoming: early access to build a package on the platform via feature flag/invite • Upcoming: building packages on pushes to GitHub • Upcoming: dependent package rebuilding • More details: “Habitat 301: Building Habitats” ChefConf 2016 Talk by Jamie Winsor
  • 21. Expanding Horizons: Windows • Bring Mac Habitat experience to Windows • Building hab CLI • Upcoming: ship first hab packages for Windows • Upcoming: native Windows Habitat packages • Upcoming: Supervisor running on Windows
  • 22. Contribute to “Habtoberfest”! • Habitat participating in Digital Ocean’s Hacktoberfest event • Runs October 1st through 31st • Make 4 pull requests (on any FOSS project), earn a limited edition Hacktoberfest T-shirt • Habitat repo has “Hacktoberfest” tagged issues • http://hacktoberfest.digitalocean.com
  • 23. Help Shape the Direction of Habitat • Try out Habitat https://www.habitat.sh/try/ • Build a package • Try out use cases, contact us when: you win, you come up short, (i.e. anytime) • Join us in HabiChat http://slack.habitat.sh/ • We’re at a Community Summit—let’s talk!

Editor's Notes

  1. And that’s basically how it comes together. You, as a user, make plans that get turned into artifacts that are accessible via a depot. Supervisors then pick up and run those artifacts on a variety of platforms and are equipped to make decisions about how they’re configured as they are starting up their child process (i.e. at runtime). Your applications can act autonomously and are equipped to make decisions about how they manage and update themselves. They intercommunicate securely and the supervisors all constantly watch, update, and share the status of the entire cluster with each other. Bam! That’s how Habitat works.