cooking perl with chef - david golden · 2018. 7. 20. · app = perl + cpan + your code chi...
TRANSCRIPT
![Page 1: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/1.jpg)
Cooking Perl with Chef
David Golden@xdg
![Page 2: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/2.jpg)
[cliff]
![Page 3: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/3.jpg)
A metaphoric cliff
![Page 4: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/4.jpg)
From cozy job ... to entrepreneur
![Page 5: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/5.jpg)
![Page 6: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/6.jpg)
Fear...
![Page 7: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/7.jpg)
Fear... am I crazy?
![Page 8: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/8.jpg)
Fear... am I too old for this?
![Page 9: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/9.jpg)
Startups are for college kids, right?
![Page 10: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/10.jpg)
[hoodie picture]
![Page 11: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/11.jpg)
Startup culture is a grind
![Page 12: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/12.jpg)
All night hackathons? WTF?
![Page 13: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/13.jpg)
[hackathon sleep pic(s)]
![Page 14: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/14.jpg)
I will never beat 20 year-olds on hours
![Page 15: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/15.jpg)
I don't want to for two big reasons
![Page 16: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/16.jpg)
I don't want to for two big reasonslittle
![Page 17: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/17.jpg)
![Page 18: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/18.jpg)
![Page 19: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/19.jpg)
I'm not afraid of running a business
![Page 20: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/20.jpg)
I'm not afraid of programming
![Page 21: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/21.jpg)
I'm afraid of operations
![Page 22: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/22.jpg)
I'm afraid of things going horribly wrong
![Page 23: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/23.jpg)
Fear... is motivating
![Page 24: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/24.jpg)
Memorial Day Weekend, 2012
![Page 25: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/25.jpg)
Got lucky!
![Page 26: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/26.jpg)
Side projects take time, too
![Page 27: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/27.jpg)
Work smarter, not harder
![Page 28: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/28.jpg)
Doing things by hand (more than once) sucks
![Page 29: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/29.jpg)
Infrastructure as code
![Page 30: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/30.jpg)
Automate deploying the whole stack
![Page 31: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/31.jpg)
Configuration management(Chef, Puppet, etc....)
![Page 32: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/32.jpg)
WAIT!What's wrong with this idea?
![Page 33: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/33.jpg)
Dependency hell
![Page 34: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/34.jpg)
Perl applications are complex
![Page 35: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/35.jpg)
App = perl + CPAN + your code
![Page 36: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/36.jpg)
App = perl + CPAN + your code
CHIDateTimeDBIJSONMoosePlackPOETry::Tiny...
![Page 37: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/37.jpg)
App = perl + CPAN + your code
CHIDateTimeDBIJSONMoosePlackPOETry::Tiny...
v1.0.0
![Page 38: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/38.jpg)
App = Perl + CPAN + your code
CHIDateTimeDBIJSONMoosePlackPOETry::Tiny...
v1.0.0 v5.14.2
![Page 39: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/39.jpg)
App = Perl + CPAN + your code
0.550.761.6222.532.06030.99891.3540.11...
v1.0.0 v5.14.2
![Page 40: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/40.jpg)
App = Perl + CPAN + your code
0.550.761.6222.532.06030.99891.3540.11...
v1.0.0 v5.14.2 v1.0
![Page 41: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/41.jpg)
App = Perl + CPAN + your code
0.550.761.6222.532.06030.99891.3540.11...
v1.0.0 v5.14.2 v1.0
![Page 42: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/42.jpg)
App = Perl + CPAN + your code
0.550.761.6222.532.06030.99891.3540.11...
v1.0.0 v5.16.0 v1.0
![Page 43: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/43.jpg)
App = Perl + CPAN + your code
0.550.761.6222.532.06030.99891.3540.11...
v1.0.1 v5.16.0 v1.0
![Page 44: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/44.jpg)
Repeatable deployment
![Page 45: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/45.jpg)
Repeatable deployment
... the same Perl
![Page 46: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/46.jpg)
Repeatable deployment
... the same Perl
... the same modules
![Page 47: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/47.jpg)
Repeatable deployment
... the same Perl
... the same modules
... the same code
![Page 48: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/48.jpg)
Repeatable deployment
... the same Perl
... the same modules
... the same code
... on demand
![Page 49: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/49.jpg)
Easy...
![Page 50: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/50.jpg)
If we have the right tools
![Page 51: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/51.jpg)
Distro packages (?!)
(how much do you like your system perl?!)
![Page 52: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/52.jpg)
We need something better
![Page 53: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/53.jpg)
Let's be inspired by Larry
![Page 54: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/54.jpg)
[larry hat pic]
![Page 55: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/55.jpg)
![Page 56: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/56.jpg)
YARRR!
![Page 57: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/57.jpg)
Great hackers steal!
![Page 58: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/58.jpg)
Great hackers steal ideas
![Page 59: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/59.jpg)
python has virtualenv + pipruby has rvm + Bundler
![Page 60: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/60.jpg)
We have Miyagawa
![Page 61: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/61.jpg)
We have Kang-min Liu
![Page 62: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/62.jpg)
We have Matt Trout
![Page 63: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/63.jpg)
We have a community helping them
![Page 64: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/64.jpg)
Repeatable deployment in five parts
![Page 65: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/65.jpg)
Repeatable deployment in five parts
application-specific Perl
application-specific @INC path
versioned application code
versioned module dependencies
automate the previous four
![Page 66: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/66.jpg)
Repeatable deployment in five parts
perlbrew
application-specific @INC path
versioned application code
versioned module dependencies
automate the previous four
![Page 67: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/67.jpg)
Repeatable deployment in five parts
perlbrew
local::lib
versioned application code
versioned module dependencies
automate the previous four
![Page 68: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/68.jpg)
Repeatable deployment in five parts
perlbrew
local::lib
git
versioned module dependencies
automate the previous four
![Page 69: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/69.jpg)
Repeatable deployment in five parts
perlbrew
local::lib
git
carton
automate the previous four
![Page 70: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/70.jpg)
Repeatable deployment in five parts
perlbrew
local::lib
git
carton
@&$%!
![Page 71: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/71.jpg)
@&$%!
![Page 72: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/72.jpg)
[swedish chef FAIL pic]
![Page 73: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/73.jpg)
So I implemented it
![Page 74: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/74.jpg)
In Ruby
![Page 75: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/75.jpg)
After I learned some Ruby
![Page 76: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/76.jpg)
Time for a demonstration
![Page 77: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/77.jpg)
Our goal: deploy a “Hello World” Plack app
![Page 78: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/78.jpg)
$ tree.├── Changes├── Makefile.PL├── app.psgi├── carton.lock├── cookbook│ └── hello-world│ ├── README.md│ ├── attributes│ │ └── default.rb│ ├── metadata.rb│ └── recipes│ └── default.rb└── lib └── ZZZ └── Hello └── World.pm
![Page 79: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/79.jpg)
$ tree.├── Changes├── Makefile.PL├── app.psgi├── carton.lock├── cookbook│ └── hello-world│ ├── README.md│ ├── attributes│ │ └── default.rb│ ├── metadata.rb│ └── recipes│ └── default.rb└── lib └── ZZZ └── Hello └── World.pm
![Page 80: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/80.jpg)
$ tree.├── Changes├── Makefile.PL├── app.psgi├── carton.lock├── cookbook│ └── hello-world│ ├── README.md│ ├── attributes│ │ └── default.rb│ ├── metadata.rb│ └── recipes│ └── default.rb└── lib └── ZZZ └── Hello └── World.pm
![Page 81: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/81.jpg)
$ tree.├── Changes├── Makefile.PL├── app.psgi├── carton.lock├── cookbook│ └── hello-world│ ├── README.md│ ├── attributes│ │ └── default.rb│ ├── metadata.rb│ └── recipes│ └── default.rb└── lib └── ZZZ └── Hello └── World.pm
![Page 82: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/82.jpg)
$ tree.├── Changes├── Makefile.PL├── app.psgi├── carton.lock├── cookbook│ └── hello-world│ ├── README.md│ ├── attributes│ │ └── default.rb│ ├── metadata.rb│ └── recipes│ └── default.rb└── lib └── ZZZ └── Hello └── World.pm
![Page 83: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/83.jpg)
include_recipe 'carton'
package 'git-core'
git node['hello-world']['deploy_dir'] do repository node['hello-world']['deploy_repo'] reference node['hello-world']['deploy_tag'] notifies :restart, "carton_app[hello-world]"end
carton_app "hello-world" do perlbrew node['hello-world']['perl_version'] command "starman -p #{node['hello-world']['port']} app.psgi" cwd node['hello-world']['deploy_dir'] user node['hello-world']['user'] group node['hello-world']['group']end
carton_app "hello-world" do action :startend
![Page 84: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/84.jpg)
include_recipe 'carton'
package 'git-core'
git node['hello-world']['deploy_dir'] do repository node['hello-world']['deploy_repo'] reference node['hello-world']['deploy_tag'] notifies :restart, "carton_app[hello-world]"end
carton_app "hello-world" do perlbrew node['hello-world']['perl_version'] command "starman -p #{node['hello-world']['port']} app.psgi" cwd node['hello-world']['deploy_dir'] user node['hello-world']['user'] group node['hello-world']['group']end
carton_app "hello-world" do action :startend
![Page 85: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/85.jpg)
include_recipe 'carton'
package 'git-core'
git node['hello-world']['deploy_dir'] do repository node['hello-world']['deploy_repo'] reference node['hello-world']['deploy_tag'] notifies :restart, "carton_app[hello-world]"end
carton_app "hello-world" do perlbrew node['hello-world']['perl_version'] command "starman -p #{node['hello-world']['port']} app.psgi" cwd node['hello-world']['deploy_dir'] user node['hello-world']['user'] group node['hello-world']['group']end
carton_app "hello-world" do action :startend
![Page 86: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/86.jpg)
include_recipe 'carton'
package 'git-core'
git node['hello-world']['deploy_dir'] do repository node['hello-world']['deploy_repo'] reference node['hello-world']['deploy_tag'] notifies :restart, "carton_app[hello-world]"end
carton_app "hello-world" do perlbrew node['hello-world']['perl_version'] command "starman -p #{node['hello-world']['port']} app.psgi" cwd node['hello-world']['deploy_dir'] user node['hello-world']['user'] group node['hello-world']['group']end
carton_app "hello-world" do action :startend
![Page 87: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/87.jpg)
include_recipe 'carton'
package 'git-core'
git node['hello-world']['deploy_dir'] do repository node['hello-world']['deploy_repo'] reference node['hello-world']['deploy_tag'] notifies :restart, "carton_app[hello-world]"end
carton_app "hello-world" do perlbrew node['hello-world']['perl_version'] command "starman -p #{node['hello-world']['port']} app.psgi" cwd node['hello-world']['deploy_dir'] user node['hello-world']['user'] group node['hello-world']['group']end
carton_app "hello-world" do action :startend
![Page 88: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/88.jpg)
Enough code... let's make it work
![Page 89: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/89.jpg)
1. Set up a Vagrant virtual machine
2. Prepare Pantry
3. Get Hello World cookbook anddependencies
4. Configure Chef for Hello World
5. Deploy
![Page 90: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/90.jpg)
1. Set up a Vagrant virtual machine
2. Prepare Pantry
3. Get Hello World cookbook anddependencies
4. Configure Chef for Hello World
5. Deploy
![Page 91: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/91.jpg)
Vagrant is a tool for managing virtual machines
![Page 92: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/92.jpg)
Vagrant is a tool for managing virtual machines
“Can I have a VirtualBox now, please?”
![Page 93: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/93.jpg)
Vagrant is a tool for managing virtual machines
$ vagrant box add base \ http://files.vagrantup.com/lucid32.box
$ vagrant init
$ vagrant up
![Page 94: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/94.jpg)
Chef brings a machine to a target state
![Page 95: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/95.jpg)
Chef does pull
Chef Solo does push
![Page 96: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/96.jpg)
![Page 97: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/97.jpg)
Pantry is a tool for driving Chef Solo
![Page 98: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/98.jpg)
Pantry is a tool for driving Chef Solo
$ pantry create node server.example.com
$ pantry apply node server.example.com \ --role web --recipe myapp
$ pantry sync node server.example.com
![Page 100: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/100.jpg)
You can do this, too
![Page 101: Cooking Perl with Chef - David Golden · 2018. 7. 20. · App = Perl + CPAN + your code CHI DateTime DBI JSON Moose Plack POE Try::Tiny... v1.0.0 v5.14.2](https://reader035.vdocuments.mx/reader035/viewer/2022070219/612966d6aa81cb6a573d4b89/html5/thumbnails/101.jpg)
Don't be afraid. Try it out. Get involved.