SlideShare una empresa de Scribd logo
1 de 126
Descargar para leer sin conexión
SQUASHINGTHE HEISENBUGS
Trotter Cashion / Chariot CI Event 2010
http://www.flickr.com/photos/gliuoo/2539512435/sizes/z/in/photostream/
SQUASHINGTHE HEISENBUGS
Trotter Cashion / Chariot CI Event 2010
http://www.flickr.com/photos/gliuoo/2539512435/sizes/z/in/photostream/
BOHRBUGS
SQUASHINGTHE BOHRBUGS
Trotter Cashion / Chariot CI Event 2010
http://www.flickr.com/photos/gliuoo/2539512435/sizes/z/in/photostream/
THIS WILL BE ON THE INTERNET!
CO-FOUNDER
http://mashion.net
http://www.charlesheflin.com/wp-content/uploads/2010/06/fail-whale.jpg
@CASHION
http://gems.github.com/octocat.png
github.com/trotter
AGENDA
HEISENBUGS AND BOHRBUGS
THE MANUAL PROBLEM
CHEF
TYING CHEF INTO CI
QUESTIONS (AQAFT)
HEISENBUGS
http://upload.wikimedia.org/wikipedia/commons/8/84/Hindenburg_burning.jpg
OBSERVER EFFECT
EventYou
http://en.wikipedia.org/wiki/File:Bohr-atom-PAR.svg
BOHRBUGS
MANDELBUGS
SCHRÖDINBUGS
NOOBBUGS
THE MANUAL PROBLEM
http://www.dolphinsc.com/images/Dolphin.jpg
MYSQL
http://images.buycostumes.com/mgen/merchandiser/32494.jpg
POSTGRES
http://www.wallpapers-free.org/34/-/Apache_Longbow_Helicopter/
APACHE
http://www.allbestwallpapers.com/travel-kremlin_and_red_square_fireworks,_moscow,_russia_wallpapers.html
NGINX
Memcached
Memcached
Redis
Memcached
Redis
Mongodb
Memcached
Redis
Mongodb Riak
Memcached
Redis
Mongodb Riak
Cassandra
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Solaris
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Solaris
iptables
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Solaris
iptables
sshd
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Solaris
iptables
sshd
DNS Servers
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Solaris
iptables
sshd
DNS Servers
TCP/IP internals
We Idolize the Artisan Sysadmin
... but what do we end up with?
http://www.enviro-bc.ca/wp-content/uploads/2009/04/bowlake-aval_clair-israelson.jpg
SNOWFLAKES
... that become avalanches
http://upload.wikimedia.org/wikipedia/commons/6/6d/Niels_Bohr.jpg
BOHRBUGS
http://assets.troubledteenswizard.com/uploaded/WoW/nomoney1.jpg
NO MORE MONEY!
We’re really left with two choices
Automate... or die.
Automation is not hard!
BASH
http://hackedgadgets.com/wp-content/2/LEGO_V8_Engine_1.jpg
CFENGINE
http://www.flickr.com/photos/willemvelthoven/381608678/sizes/l/
PUPPET
http://www.flickr.com/photos/venndiagram/4891510333/sizes/l/
CHEF!
http://www.opscode.com/
WRITTEN BY
http://www.prestonlee.com/wp-content/uploads/2008/09/ruby.png
WRITTEN IN
Two Delicious Flavors
http://upload.wikimedia.org/wikipedia/commons/e/e0/Google%E2%80%99s_First_Production_Server.jpg
SERVER
HOW IT WORKS
HOW IT WORKS
Your
Computer
HOW IT WORKS
Your
Computer
Box to
Provision
HOW IT WORKS
Your
Computer
Chef Server
Box to
Provision
HOW IT WORKS
Your
Computer
Chef Server
Box to
Provision
Prepare
HOW IT WORKS
Your
Computer
Chef Server
Box to
Provision
Prepare
What now?
HOW IT WORKS
Your
Computer
Chef Server
Box to
Provision
Prepare
What now?
Cookbooks
HOW IT WORKS
Your
Computer
Chef Server
Box to
Provision
Prepare
What now?
Cookbooks
Run!
http://www.pbs.org/parents/supersisters/han_solo-thumb-454x654.jpg
SOLO
HOW IT WORKS
HOW IT WORKS
Your
Computer
HOW IT WORKS
Your
Computer
Box to
Provision
HOW IT WORKS
Your
Computer
Box to
Provision
Prepare
HOW IT WORKS
Your
Computer
Box to
Provision
Cookbooks
Prepare
HOW IT WORKS
Your
Computer
Box to
Provision
Cookbooks
Prepare
Go!
Chef Structure
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
ROLES ARE REUSABLE!
config/dev.json config/db.json
roles/db.rb
http://www.flickr.com/photos/seandreilinger/959864706/sizes/o/
GETTING
GOING
WHAT YOU NEED
WHAT YOU NEED
Ruby &
Rubygems
WHAT YOU NEED
Ruby &
Rubygems
`gem install chef` Chef Gem
WHAT YOU NEED
Ruby &
Rubygems
`gem install chef` Chef Gem
`git clone http://github.com/
opscode/chef-repo.git`
Chef Repo
http://cookbooks.opscode.com/
COOKBOOKS.OPSCODE.COM
TERMINAL JUNKIES
TERMINAL JUNKIES
•spatula search mysql
TERMINAL JUNKIES
•spatula search mysql
•spatula install mysql
TERMINAL JUNKIES
•spatula search mysql
•spatula install mysql
•spatula show mysql
TERMINAL JUNKIES
•spatula search mysql
•spatula install mysql
•spatula show mysql
•... knife has similar functionality
GET THE BOX READY
spatula prepare db-one.host
ssh db-one.host “install ruby”
ssh db-one.host “install chef”
=
GO GO GO!
spatula cook db-one.host db ssh db-one.host “sudo 
chef-solo -c config/solo.rb 
-j config/db.json”
rsync repo to db-one.host
=
WITH CHEF SERVER
install dependencies
turn on client
send cookbooks to client
http://media.photobucket.com/image/minecraft/bluekabal/roma/minesofroma.jpg
DIGGING DEEPER
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
// ./config/db_one.json
{ "run_list": ["role[db]"] }
A NODE
Recipes and Roles go here
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "apache2", "mysql::server" ]
A ROLE
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "apache2", "mysql::server" ]
A ROLE
Recipes to run
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "apache2", "mysql::server" ]
A ROLE
./cookbooks/apache2/recipes/default.rb
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "apache2", "mysql::server" ]
A ROLE
./cookbooks/mysql/recipes/server.rb
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
# ./cookbooks/mysql/attributes/server.rb
default[:mysql][:server_debian_password] = secure_password
default[:mysql][:server_root_password] = secure_password
default[:mysql][:server_repl_password] = secure_password
default[:mysql][:bind_address] = ipaddress
default[:mysql][:datadir] = "/var/lib/mysql"
# Tunables
default[:mysql][:tunable][:key_buffer] = "250M"
default[:mysql][:tunable][:max_connections] = "800"
default[:mysql][:tunable][:wait_timeout] = "180"
ATTRIBUTES
// ./config/db.json
{ "mysql": { "server_root_password": "beefcake" },
  "recipes": [ "mysql" ] }
OVERRIDING ATTRIBUTES
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "mysql::server" ]
default_attributes :mysql => { :server_root_password =>
"beefcake" }
Node
Role
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
# ./cookbooks/mysql/recipes/server.rb
include_recipe "mysql::client"
THE RECIPE... PART 1
package "mysql-server" do
action :install
end
THE RECIPE... PART 2
template "/etc/mysql/my.cnf" do
source "my.cnf.erb"
owner "root"
group "root"
mode "0644"
notifies :restart,
resources(:service => "mysql"),
:immediately
end
THE RECIPE... PART 3
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
A TEMPLATE SAMPLE
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
A TEMPLATE SAMPLE
OMG, ERB!!
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
A TEMPLATE SAMPLE
From Attributes
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
A TEMPLATE SAMPLE
FromTemplate
template "/etc/mysql/my.cnf" do
source "my.cnf.erb"
owner "root"
group "root"
mode "0644"
variables :datadir => “/var/lib/mysql”
end
ASSIGNING VARIABLES
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
define :apache_conf do
dir = node[:apache][:dir]
template "#{dir}/mods-available/#{params[:name]}.conf" do
source "mods/#{params[:name]}.conf.erb"
notifies :restart, resources(:service => "apache2")
end
end
# In your recipe
apache_conf "mod_ssl"
DEFINITIONS
TYING IT INTO CI
USE CHEFTO PROVISION CI
http://images.nationalgeographic.com/wpf/media-live/photos/000/148/custom/heart-ngk0207_14824_470x300.jpg
attribution
CHEF AS PART OF TEST SCRIPT
CONTINUOUS DEPLOYMENT
http://www.flickr.com/photos/andresthor/3946773501/sizes/l/in/photostream/
LET’S
WRAP
IT UP
http://www.flickr.com/photos/kenfagerdotcom/3409813881/
AUTOMATE EVERYTHING!!
Deploying == Provisioning
http://www.flickr.com/photos/martin_borjesson/4083726805/sizes/o/
USE CHEF!!!!!
ONTHE INTERNETS
ONTHE INTERNETS
•twitter - @cashion
ONTHE INTERNETS
•twitter - @cashion
•github - http://github.com/trotter
ONTHE INTERNETS
•twitter - @cashion
•github - http://github.com/trotter
•email - cashion on the gmailz
http://www.flickr.com/photos/dancoulter/21042744/sizes/o/
THANK YOU!
RESOURCES
RESOURCES
•http://wiki.opscode.com/display/chef/Resources
RESOURCES
•http://wiki.opscode.com/display/chef/Resources
•#chef on freenode
RESOURCES
•http://wiki.opscode.com/display/chef/Resources
•#chef on freenode
•cashion@gmail.com

Más contenido relacionado

La actualidad más candente

Rails Routes off the tracks
Rails Routes off the tracksRails Routes off the tracks
Rails Routes off the tracksSilvio Relli
 
Multisite Van Dyk Walkah
Multisite Van Dyk WalkahMultisite Van Dyk Walkah
Multisite Van Dyk Walkahjvandyk
 
Getting Started With Play Framework
Getting Started With Play FrameworkGetting Started With Play Framework
Getting Started With Play FrameworkTreasury user10
 
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」Yasuharu Nakano
 
Using Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsUsing Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsClayton Parker
 
Introduction to CouchDB
Introduction to CouchDBIntroduction to CouchDB
Introduction to CouchDBGavin Cooper
 
14 Ways to be Amazingly Productive!
14 Ways to be Amazingly Productive!14 Ways to be Amazingly Productive!
14 Ways to be Amazingly Productive!Harish
 
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrBeyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrJens-Christian Fischer
 
Data Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuseData Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuseHeather Piwowar
 
Discovering ElasticSearch
Discovering ElasticSearchDiscovering ElasticSearch
Discovering ElasticSearchBen Corlett
 
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...JillHollister
 
How to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrainHow to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrainCodemotion Tel Aviv
 
Continuous Integration Saves the Day
Continuous Integration Saves the DayContinuous Integration Saves the Day
Continuous Integration Saves the DayKurt Schrader
 
Default scopeの被害報告
Default scopeの被害報告Default scopeの被害報告
Default scopeの被害報告Ken Muryoi
 

La actualidad más candente (16)

Rails Routes off the tracks
Rails Routes off the tracksRails Routes off the tracks
Rails Routes off the tracks
 
Multisite Van Dyk Walkah
Multisite Van Dyk WalkahMultisite Van Dyk Walkah
Multisite Van Dyk Walkah
 
Getting Started With Play Framework
Getting Started With Play FrameworkGetting Started With Play Framework
Getting Started With Play Framework
 
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
 
Using Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsUsing Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python Projects
 
Introduction to CouchDB
Introduction to CouchDBIntroduction to CouchDB
Introduction to CouchDB
 
14 Ways to be Amazingly Productive!
14 Ways to be Amazingly Productive!14 Ways to be Amazingly Productive!
14 Ways to be Amazingly Productive!
 
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrBeyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
 
Data Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuseData Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuse
 
Discovering ElasticSearch
Discovering ElasticSearchDiscovering ElasticSearch
Discovering ElasticSearch
 
Ipad gump
Ipad gumpIpad gump
Ipad gump
 
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...
 
How to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrainHow to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrain
 
Find,Mix And Show
Find,Mix And ShowFind,Mix And Show
Find,Mix And Show
 
Continuous Integration Saves the Day
Continuous Integration Saves the DayContinuous Integration Saves the Day
Continuous Integration Saves the Day
 
Default scopeの被害報告
Default scopeの被害報告Default scopeの被害報告
Default scopeの被害報告
 

Destacado (6)

2012 03-27-scrum day-sweetrupture-v1.3a
2012 03-27-scrum day-sweetrupture-v1.3a2012 03-27-scrum day-sweetrupture-v1.3a
2012 03-27-scrum day-sweetrupture-v1.3a
 
Crmtalk12
Crmtalk12Crmtalk12
Crmtalk12
 
Healthcare6 04 03
Healthcare6 04 03Healthcare6 04 03
Healthcare6 04 03
 
Siliconslides
SiliconslidesSiliconslides
Siliconslides
 
Yncomp
YncompYncomp
Yncomp
 
Enron Aa12
Enron Aa12Enron Aa12
Enron Aa12
 

Similar a Squashing the Heisenbugs

Fisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com RubyFisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com RubyFabio Akita
 
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyConsegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyFabio Akita
 
Using ArcGIS Server with Ruby on Rails
Using ArcGIS Server with Ruby on RailsUsing ArcGIS Server with Ruby on Rails
Using ArcGIS Server with Ruby on RailsDave Bouwman
 
Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)True-Vision
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
 
So you want to build a Facebook app
So you want to build a Facebook appSo you want to build a Facebook app
So you want to build a Facebook appkamal.fariz
 
Lights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFeverLights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFeverbridgetkromhout
 
Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientLightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientAdam Wiggins
 
Twitter bootstrap on rails
Twitter bootstrap on railsTwitter bootstrap on rails
Twitter bootstrap on railsMasakuni Kato
 
Deploy Rails Application by Capistrano
Deploy Rails Application by CapistranoDeploy Rails Application by Capistrano
Deploy Rails Application by CapistranoTasawr Interactive
 
Reliability & Scale in AWS while letting you sleep through the night
Reliability & Scale in AWS while letting you sleep through the night Reliability & Scale in AWS while letting you sleep through the night
Reliability & Scale in AWS while letting you sleep through the night Jos Boumans
 
SINATRA + HAML + TWITTER
SINATRA + HAML + TWITTERSINATRA + HAML + TWITTER
SINATRA + HAML + TWITTERElber Ribeiro
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Alberto Perdomo
 
Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011Alistair McKinnell
 
Socket applications
Socket applicationsSocket applications
Socket applicationsJoão Moura
 
Integração contínua com Hudson CI
Integração contínua com Hudson CIIntegração contínua com Hudson CI
Integração contínua com Hudson CIAlmir Mendes
 

Similar a Squashing the Heisenbugs (20)

Automate or Die
Automate or DieAutomate or Die
Automate or Die
 
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com RubyFisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
 
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyConsegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
 
Using ArcGIS Server with Ruby on Rails
Using ArcGIS Server with Ruby on RailsUsing ArcGIS Server with Ruby on Rails
Using ArcGIS Server with Ruby on Rails
 
Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Sprockets
SprocketsSprockets
Sprockets
 
So you want to build a Facebook app
So you want to build a Facebook appSo you want to build a Facebook app
So you want to build a Facebook app
 
Lights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFeverLights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFever
 
Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientLightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClient
 
Twitter bootstrap on rails
Twitter bootstrap on railsTwitter bootstrap on rails
Twitter bootstrap on rails
 
Deploy Rails Application by Capistrano
Deploy Rails Application by CapistranoDeploy Rails Application by Capistrano
Deploy Rails Application by Capistrano
 
Reliability & Scale in AWS while letting you sleep through the night
Reliability & Scale in AWS while letting you sleep through the night Reliability & Scale in AWS while letting you sleep through the night
Reliability & Scale in AWS while letting you sleep through the night
 
Killer page load performance
Killer page load performanceKiller page load performance
Killer page load performance
 
SINATRA + HAML + TWITTER
SINATRA + HAML + TWITTERSINATRA + HAML + TWITTER
SINATRA + HAML + TWITTER
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
 
Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011
 
Road to Rails
Road to RailsRoad to Rails
Road to Rails
 
Socket applications
Socket applicationsSocket applications
Socket applications
 
Integração contínua com Hudson CI
Integração contínua com Hudson CIIntegração contínua com Hudson CI
Integração contínua com Hudson CI
 

Último

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
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
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
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
 
🐬 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
 

Último (20)

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
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
 
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...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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...
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
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...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Squashing the Heisenbugs