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
Development Using Virtualization
Search
Nestor G Pestelos Jr
May 23, 2013
Programming
0
51
Development Using Virtualization
Lessons learned after using Vagrant and Chef to run a Rails 3.0 project at Aelogica.
Nestor G Pestelos Jr
May 23, 2013
Tweet
Share
More Decks by Nestor G Pestelos Jr
See All by Nestor G Pestelos Jr
How_to_Bring_Up_GitLab.pdf
ngpestelos
0
150
Refactoring_with_LightService.pdf
ngpestelos
0
79
Other Decks in Programming
See All in Programming
OpenTelemetry のサービスという概念について
azukiazusa1
2
1.1k
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
210
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
7
3.1k
Code Reviews
bkuhlmann
4
870
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
180
ONE WEDGE_company_guide
1wedge_one
0
340
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
180
本格ローグライク制作にEbitengineを選んでみた
nagainaganawa
0
290
チームでモデリングを育てるうえで 考えたこと・気づいたこと / Cultivating Modeling in Teams: Thoughts and Insights
mackey0225
7
4.1k
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
340
[SF Ruby, March 2024] Rails on Wasm
palkan
0
370
プールにゆこう
irof
2
120
Featured
See All Featured
Designing for Performance
lara
601
67k
Thoughts on Productivity
jonyablonski
57
3.8k
Building Your Own Lightsaber
phodgson
97
5.7k
Infographics Made Easy
chrislema
237
18k
Clear Off the Table
cherdarchuk
82
310k
Web development in the modern age
philhawksworth
201
10k
Optimising Largest Contentful Paint
csswizardry
7
2.3k
Scaling GitHub
holman
457
140k
How to Ace a Technical Interview
jacobian
272
22k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
How GitHub (no longer) Works
holman
304
140k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
8
8.3k
Transcript
Development Using Virtualization Nestor Pestelos, Jr. @ngpestelos
None
• Some context • Lessons learned using VMs for daily
work • What needs improvement A Retrospective
Context • running monolithic Rails 3.0 app • pre-VMs: use
a wiki doc as guide • introduced Vagrant on Feb 2013 • added Chef recipes on Apr 2013
Before Virtualization • install instructions written on a wiki page
• prone to gaps and document rot • half a working day to setup our environment
New Developers • new developers read the wiki to get
started • doesn't feel productive • half a working day to setup environment
New Machine • yak shave • doesn't feel productive •
half a working day to setup environment
Peculiar Dependencies • examples: PhantomJS and PrinceXML • remember which
version to install • uninstall when you leave the project
Enter Vagrant • programatically setup and teardown VMs • install
everything we need on a box and distribute to team members • downside: keeping track of changes made to the box (think binary diffs)
Enter Chef • run recipes for you, in the order
that you specify • recipe == what needs to be installed • started running manual chef-solo • Vagrant can kickstart a Chef run (!)
Running Self-Contained Boxes • Chef installs everything on Vagrant •
takes a long time to get the right setup • front-loaded VMs (e.g. baked-in keys) • you will miss your beloved $EDITOR settings • YAGNI
Code on the Host, Test on the VM • inspired
by the discourse project • companion project • application code as submodules • not all automated: e.g. ssh keys, rvm, and bundle • simple enough
Next steps / points for improvement • allow cap deploys
both on VM and Host • nginx host mapping (still done manually) • acceptance environments (how to run the same cookbooks on EC2) • bug reporting (broken window theory)