SlideShare a Scribd company logo
1 of 120
Download to read offline
Large-scale web service
           and operations
             with Ruby

2011   7   19
2011   7   19
I and
                RubyKaigi
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
Large-scale web service
         and operations with
                Ruby
2011   7   19
Large-scale web service
         and operations with
                Ruby
2011   7   19
Large-scale web service
         and operations with
                Ruby
2011   7   19
Large-scale web service
         and operations with
                Ruby
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
Bringing smiles to everyone by
           making every day cooking more
                     enjoyable.


2011   7   19
What is
                COOKPAD?

2011   7   19
2011   7   19
12,300,000 UU (pc only)
                1+ million Recipes
           Used by 1 in 2 women
                in their 30s
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
Architecture based on best practices




2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
http://d3921.image.cookpad.com/
            recipes/1237075/100x141c/
       0b9c3ad1cba65869058e17cf78988bcb.jpg



2011   7   19
http://d3921.image.cookpad.com/
          recipes/1237075/      100x141c
                                       /
       0b9c3ad1cba65869058e17cf78988bcb.jpg


2011   7   19
‘100’


                ‘100x100’


                ‘100x100c’


                ‘100x100c40_198_137_104_300’

2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
Easily customizable
                       search
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
Architecture based on best practices



2011   7   19
“Good enough” is not good enough.
                Always focus on what is best


2011   7   19
2011   7   19
•   Only add absolutely necessary features


                •   Avoid complexity




2011   7   19
•   Design for caching


                •   Avoid complex SQL queries




2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
Development



2011   7   19
2011   7   19
2011   7   19
Working with Rails within a large team



2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
Run specs remotely

2011   7   19
$	
  rake	
  cookpad:spec:remote
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
How did using a CI change our development flow?


                Only release successful CI builds

                Test coverage as a requirement



                Tests should be written so they can run on a CI




2011   7   19
2011   7   19
$	
  cap	
  production	
  deploy

                 Add a "deploy message" to every release

                 (ex: "Added feature x", "Fixed bug z" etc)

                 Skype notification

                 Mail sent to developer and support mailing lists

2011   7   19
2011   7   19
2011   7   19
2011   7   19
It is nearly impossible to reduce number of exceptions to 0


                Looking for spikes in number of exceptions is key


2011   7   19
2011   7   19
2011   7   19
2011   7   19
Expands upon Rails functionality

                 Selective release of new features

                  (ex: “Show feature X only to users A, B, C)

                Used for prototyping

                Specs not required

       If an exception occurs in an extension, it is turned off automatically

2011   7   19
2011   7   19
2011   7   19
new features


                stats for staff
2011   7   19
2011   7   19
How do we handle prototypes
                  we decide not to release?

2011   7   19
$	
  rm	
  app/extensions/
                  foobar_ext



2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
2011   7   19
Thank You

2011   7   19
2011   7   19

More Related Content

Similar to Ruby を利用した大規模ウェブサービスの開発・運用

JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
eug3n_cojocaru
 
Shinjo seminar 0721
Shinjo seminar 0721Shinjo seminar 0721
Shinjo seminar 0721
Koji Shinjo
 
20110718 you-must-unlearn-what-you-have-learned rivisited
20110718 you-must-unlearn-what-you-have-learned rivisited20110718 you-must-unlearn-what-you-have-learned rivisited
20110718 you-must-unlearn-what-you-have-learned rivisited
Koji SHIMADA
 
20110903 candycane
20110903 candycane20110903 candycane
20110903 candycane
Yusuke Ando
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Matteo Collina
 
OpentTansactって何?
OpentTansactって何?OpentTansactって何?
OpentTansactって何?
Nov Matake
 
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
Vũ Nguyễn
 
スマートフォンセミナー Genesis#01
スマートフォンセミナー Genesis#01スマートフォンセミナー Genesis#01
スマートフォンセミナー Genesis#01
tomo tsubota
 

Similar to Ruby を利用した大規模ウェブサービスの開発・運用 (20)

WebDBforum2011
WebDBforum2011WebDBforum2011
WebDBforum2011
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
 
Scrumdo Burst
Scrumdo BurstScrumdo Burst
Scrumdo Burst
 
Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!
 
Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!
 
Shinjo seminar 0721
Shinjo seminar 0721Shinjo seminar 0721
Shinjo seminar 0721
 
20110718 you-must-unlearn-what-you-have-learned rivisited
20110718 you-must-unlearn-what-you-have-learned rivisited20110718 you-must-unlearn-what-you-have-learned rivisited
20110718 you-must-unlearn-what-you-have-learned rivisited
 
First and Important thing in agile 20110704
First and Important thing in agile 20110704First and Important thing in agile 20110704
First and Important thing in agile 20110704
 
20110903 candycane
20110903 candycane20110903 candycane
20110903 candycane
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
 
Comparing JVM Web Frameworks - 33rd Degree
Comparing JVM Web Frameworks - 33rd DegreeComparing JVM Web Frameworks - 33rd Degree
Comparing JVM Web Frameworks - 33rd Degree
 
UI for UX_Aug2011
UI for UX_Aug2011 UI for UX_Aug2011
UI for UX_Aug2011
 
OpentTansactって何?
OpentTansactって何?OpentTansactって何?
OpentTansactって何?
 
GitHub Importを使ったfluxflexへのデプロイ例
GitHub Importを使ったfluxflexへのデプロイ例GitHub Importを使ったfluxflexへのデプロイ例
GitHub Importを使ったfluxflexへのデプロイ例
 
Clear and Present Scrum on Devlopers Summit 2011
Clear and Present Scrum on Devlopers Summit 2011Clear and Present Scrum on Devlopers Summit 2011
Clear and Present Scrum on Devlopers Summit 2011
 
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
 
Blending Collaboration and Training to Improve Performance
Blending Collaboration and Training to Improve PerformanceBlending Collaboration and Training to Improve Performance
Blending Collaboration and Training to Improve Performance
 
abc2011w-deb
abc2011w-debabc2011w-deb
abc2011w-deb
 
スマートフォンセミナー Genesis#01
スマートフォンセミナー Genesis#01スマートフォンセミナー Genesis#01
スマートフォンセミナー Genesis#01
 
Movable Type Smartphone Option
Movable Type Smartphone OptionMovable Type Smartphone Option
Movable Type Smartphone Option
 

More from Yuichi Tateno

fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギング
Yuichi Tateno
 
継続的インテグレーション - Ruby勉強会@札幌-18
継続的インテグレーション - Ruby勉強会@札幌-18継続的インテグレーション - Ruby勉強会@札幌-18
継続的インテグレーション - Ruby勉強会@札幌-18
Yuichi Tateno
 
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
Yuichi Tateno
 
さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料
さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料
さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料
Yuichi Tateno
 
デブサミ2009 はてなの開発戦略
デブサミ2009 はてなの開発戦略デブサミ2009 はてなの開発戦略
デブサミ2009 はてなの開発戦略
Yuichi Tateno
 

More from Yuichi Tateno (6)

fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギング
 
継続的インテグレーション - Ruby勉強会@札幌-18
継続的インテグレーション - Ruby勉強会@札幌-18継続的インテグレーション - Ruby勉強会@札幌-18
継続的インテグレーション - Ruby勉強会@札幌-18
 
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
 
さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料
さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料
さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料
 
Deb2009
Deb2009Deb2009
Deb2009
 
デブサミ2009 はてなの開発戦略
デブサミ2009 はてなの開発戦略デブサミ2009 はてなの開発戦略
デブサミ2009 はてなの開発戦略
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Ruby を利用した大規模ウェブサービスの開発・運用