Slide 1

Slide 1 text

Cookpad Indonesia Technology Stack Didik Wicaksono https://github.com/firewalker06 https://twitter.com/did1k Informal discussion and sharing at Jogja Digital Valley Mar 12, 2015

Slide 2

Slide 2 text

Didik Wicaksono Github: firewalker06 Twitter: did1k ● 2008 => start as a web designer ● 2010 => learn PHP ● 2011 => created DapurMasak.com (not a co-founder) ● 2012 => won Sparxup and INAICTA ● 2014 => got acquired by Cookpad, learn Ruby

Slide 3

Slide 3 text

We are Cookpad

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Cookpad is Japan’s top recipe site allowing visitors to upload and search through original, user-created recipes. Currently being used by most Japanese women in their 20-30s, Cookpad has become an essential tool in enabling families to enjoy cooking across Japan. In 2014, Cookpad acquires Mis Recetas (Spanish), Allthecooks (English), and DapurMasak (Indonesian)

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Before acquired by Cookpad (2013) ● 500 K UU/month ● 5 K recipes ● PHP CodeIgniter ● deploy once in 2-3 weeks After acquired by Cookpad (2014) ● 1.4 M UU/month ● 12 K Recipes ● Ruby on Rails ● deploy once in 2 days

Slide 8

Slide 8 text

Cookpad Japan ● over 50 M UU/month ● over 1.9 M Recipes ● Ruby on Rails ● deploy 11+ times a day ● 80+ engineers ● created other products, web & mobile apps related to recipes ● most revenue comes from Premium Member Subscription ● founded in 1997 ● IPO in 2009 ● 3 Ruby Committers, 1 Rails Commiter

Slide 9

Slide 9 text

Technology Stack

Slide 10

Slide 10 text

Cookpad Indonesia ● Ruby on Rails ● NGINX ● Unicorn ● Elasticsearch ● Redis ● MySQL ● Fluentd Cookpad Japan ● Ruby on Rails ● NGINX ● Unicorn ● Solr ● Memcached ● Redis ● MySQL ● Fluentd ● ???

Slide 11

Slide 11 text

Development Lifecycle in Cookpad Indonesia ● Add stories in Pivotal Tracker ● Engineers pick a story to work on ● Create a pull request in Github ● Code reviews by team members ● LGTM! ● Merge pull request ● Test & Deploy ● Finish PT story

Slide 12

Slide 12 text

Awesome stuff that Cookpad engineers built ● tofu ○ scalable image (pictures) system ● mamiya ○ github.com/sorah/mamiya ○ deployment system, 150 hosts/m ● switch_point ○ github.com/eagletmt/switch_point ○ simple master / slave DB connection switch ● rrrspec ○ github.com/cookpad/rrrspec ○ distributed testing, highly fault-tolerant

Slide 13

Slide 13 text

continue... ● database_rewinder ○ github.com/amatsuda/database_rewinder ○ fast delete strategy for cleaning up tables after testing ● ridgepole ○ github.com/winebarrel/ridgepole ○ update database from SchemaFile without adding migration files ○ like chef/puppet ● chanko ○ github.com/cookpad/chanko ○ prototyping Rails app by creating “units” of MVC

Slide 14

Slide 14 text

continue... ● kage ○ github.com/cookpad/kage ○ duplicate HTTP requests to another server ● pt-flow ○ github.com/balvig/pt-flow ○ integrate workflow between PT and Github ● probably more, but I don’t know yet :(

Slide 15

Slide 15 text

Cookpad Engineer’s Blog http://techlife.cookpad.com/ http://static.cookpad.com/techlife/presentations.html

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Some Interesting English Presentations ● Continuous Delivery in Cookpad ○ https://speakerdeck.com/takai/continuous-delivery- in-cookpad ● Cookpad and Microservices ○ https://speakerdeck.com/taiki45/cookpad-and- microservices ● The Recipe for The World’s Largest Rails Monolith ○ https://speakerdeck.com/a_matsuda/the-recipe-for- the-worlds-largest-rails-monolith ● Scalable Deployment ○ https://speakerdeck.com/sorah/scalable- deployments-how-we-deploy-rails-app-to-150-plus- hosts-in-a-minute ● Tofu Cookpad’s Image System ○ http://www.slideshare.net/mirakui/20111102-rails-

Slide 18

Slide 18 text

Cookpad’s Github https://github.com/cookpad

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

● Cookpad founded in 1997, IPO in 2009, in 2014 start acquiring recipe sites around the world ● github.com/cookpad : open source contributions ● techlife.cookpad.com : engineer’s blog and talks Conclusion

Slide 21

Slide 21 text

Cookpad is open for new recruits! http://recruit.cookpad.com/

Slide 22

Slide 22 text

Thank you for listening!