Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cookpad Indonesia Technology Stack

Cookpad Indonesia Technology Stack

Informal discussion and sharing session at Jogja Digital Valley. Presenting technology stack of Cookpad Indonesia and some of Cookpad Japan. Also discussion and sharing awesome libraries and resources that Cookpad Engineers have created.

Didik Wicaksono

March 12, 2015
Tweet

More Decks by Didik Wicaksono

Other Decks in Technology

Transcript

  1. 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
  2. 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)
  3. 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
  4. 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
  5. Cookpad Indonesia • Ruby on Rails • NGINX • Unicorn

    • Elasticsearch • Redis • MySQL • Fluentd Cookpad Japan • Ruby on Rails • NGINX • Unicorn • Solr • Memcached • Redis • MySQL • Fluentd • ???
  6. 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
  7. 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
  8. 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
  9. 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 :(
  10. 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-
  11. • 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