Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby Toolbox for DevOps
Search
Richard Lee
December 08, 2012
Technology
22
1.2k
Ruby Toolbox for DevOps
Presented at RubyConf Taiwan 2012.
Richard Lee
December 08, 2012
Tweet
Share
More Decks by Richard Lee
See All by Richard Lee
LIFF SDK 的開發者體驗與實用秘訣
dlackty
0
100
Account Kit after 1 year
dlackty
0
69
【Modern Web 2015】愛料理如何打造產品及技術團隊
dlackty
0
58
Chef & Immutable Infrasturcture
dlackty
7
420
Ruby & Friends - Taking Go as an example
dlackty
3
630
軟體上線之後的營運管理
dlackty
8
640
Using CocoaPods for Objective-C Library Management
dlackty
1
370
Does OpsWorks work?
dlackty
10
510
打造愛料理開發及營運團隊
dlackty
79
7.8k
Other Decks in Technology
See All in Technology
Wasmで社内ツールを作って配布しよう
askua
0
160
「手を動かした者だけが世界を変える」ソフトウェア開発だけではない開発者人生
onishi
15
7.9k
Microsoft Learn MCP/Fabric データエージェント/Fabric MCP/Copilot Studio-簡単・便利なAIエージェント作ってみた -"Building Simple and Powerful AI Agents with Microsoft Learn MCP, Fabric Data Agent, Fabric MCP, and Copilot Studio"-
reireireijinjin6
1
190
Datasets for Critical Operations by Dataform
kimujun
0
130
【CEDEC2025】『ウマ娘 プリティーダービー』における映像制作のさらなる高品質化へ!~ 豊富な素材出力と制作フローの改善を実現するツールについて~
cygames
PRO
0
100
OpenTelemetry の Log を使いこなそう
biwashi
5
1.2k
ビジネス文書に特化した基盤モデル開発 / SaaSxML_Session_2
sansan_randd
0
180
AI によるドキュメント処理を加速するためのOCR 結果の永続化と再利用戦略
tomoaki25
0
240
Mambaで物体検出 完全に理解した
shirarei24
2
150
【CEDEC2025】『Shadowverse: Worlds Beyond』二度目のDCG開発でゲームをリデザインする~遊びやすさと競技性の両立~
cygames
PRO
1
160
AI時代の知識創造 ─GeminiとSECIモデルで読み解く “暗黙知”と創造の境界線
nyagasan
0
170
MCPに潜むセキュリティリスクを考えてみる
milix_m
1
930
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
The Pragmatic Product Professional
lauravandoore
35
6.8k
Git: the NoSQL Database
bkeepers
PRO
431
65k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
182
54k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Raft: Consensus for Rubyists
vanstee
140
7k
Embracing the Ebb and Flow
colly
86
4.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Transcript
Ruby Toolbox for DevOps Richard Lee (@dlakty)
self.intro do |richard|
6.years.ago
5.years.ago
2.years.ago
2.years.ago
1.year.ago
end
None
Huh? A Recipe Sharing Website?
Huh? A Recipe Sharing Website? Social Network
Website Operation API Mobile Products
Website Recipe Content Management Social Features Q&A for Cook
Website Operation
Operation Server Infrastructure Monitoring Analysis
Website Operation Mobile Products
Mobile Products iPhone / iPad Android Mobile Web! > 50%
Traffic!
Website Operation API Mobile Products
API RESTFul JSON API Multi Device Authentication Push Notification
Website Operation API Mobile Products
DevOps
What?
Website Operation API Mobile Products Developer
Website Operation API Mobile Products Operator
Website Operation API Mobile Products DevOp
DevOps Learning tools / techniques of Helps Your Startup
Development Continuous Integration Server Provisioning Deployment Monitoring polydice.workflow do |w|
Code Actually nothing special here. Current stack: Rails 3.2 Ruby
1.9.3 RSpec Redis MySQL memcached
Continuous Integration
Continuous Testing Document generation Code quality testing Deploy and more!
So, give me a Ruby CI Server!
Travis CI is not currently a good fit for closed
in-house installations
Do you really know what a CI server usually do?
Continuous Testing Document generation Code quality testing Deploy and more!
Not black magic Write your rake tasks!
CI Server Received push hooks Run some scripts Send notifications
& Show reports
Jenkins Everywhere
Janky for Help! A Sinatra app as JSON bridge Built
on Jenkins Controlled by Hubot Designed for / by GitHub
None
None
Tips: Your every project needs a scripts folder
scripts/ bootstrap cibuild
Sever Provisioning
chef + vargrant = awesome!
Why this is important? I can do that manually!
None
Save your time for fixing up problems.
Machines in Chef Client Node API client for provisioning and
management. Your any controlled servers.
Objects in Chef Cookbook Data bag Certain steps to install
/ configure resources on nodes Data storages for cookbook to configure resources. (Encrypted / Unencrypted)
Our Cookbook For Capistrano
Role The bridge between cookbooks & node. Define a run
list for node. Some example: Web role’s run list :[“nginx”, “rails”] Database role’s run list :[“mysql”]
Our Base Role
Provisioning EC2
Why ?
Chef v.s. Puppet Basically the same thing / idea Puppet
uses customized DSL for cookbook Chef just uses Ruby
Vagrant VirtualBox VM from command line Integration with Chef /
Puppet
Vagrantfile Configure which roles to run. Then, > vagrant up
Deployment
We use No surprise, right?
Lots of tweaks Git-based deployment Speed up Campfire notification
Git-based deployment
Campfire notification
Lots of details. Ask me if you’re interested.
Monitoring
Unit test => Developer Monitoring => Operator
god lograge
god Process monitoring Restart process for certain conditions Really important
for unicorn Integrated with Capistrano
Super easy Configuration
lograge Turn your multiline logs into one line Dec 08
13:18:11 web1 rails: method=GET path=/recipes/14628 format=html controller=recipes action=show status=200.00 duration=296.24 view=177.28 db=96.89 redis=1.38 tire=0.00 ip=111.250.xxx.xxx referer=http://icook.tw/ recipes/fulltext_search?query=%E7%B3%96%E9%86%8B%E6%8E%92%E9%AA%A8 Good for grep & analysis
lograge custom options Add as much things for monitoring as
possible!
Conclusion
Ruby is expressive.
Tons of DSLs for solving different problems.
Make developers happy.
Make operators happy.
Make your customers happy. boss investors
None
Email:
[email protected]
Twitter & GitHub & App.net: @dlackty Thank You!
We’re hiring!
Q & A?