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 forwardeug3n_cojocaru
 
Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Fukui Osamu
 
Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Fukui Osamu
 
Shinjo seminar 0721
Shinjo seminar 0721Shinjo seminar 0721
Shinjo seminar 0721Koji Shinjo
 
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 20110704Naoto Nishimura
 
20110903 candycane
20110903 candycane20110903 candycane
20110903 candycaneYusuke 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
 
Comparing JVM Web Frameworks - 33rd Degree
Comparing JVM Web Frameworks - 33rd DegreeComparing JVM Web Frameworks - 33rd Degree
Comparing JVM Web Frameworks - 33rd DegreeMatt Raible
 
OpentTansactって何?
OpentTansactって何?OpentTansactって何?
OpentTansactって何?Nov Matake
 
GitHub Importを使ったfluxflexへのデプロイ例
GitHub Importを使ったfluxflexへのデプロイ例GitHub Importを使ったfluxflexへのデプロイ例
GitHub Importを使ったfluxflexへのデプロイ例Yohei Yasukawa
 
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 2011Naoto Nishimura
 
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#01tomo tsubota
 
Movable Type Smartphone Option
Movable Type Smartphone OptionMovable Type Smartphone Option
Movable Type Smartphone OptionSix Apart KK
 
State of Drupal keynote, DrupalCon Austin
State of Drupal keynote, DrupalCon AustinState of Drupal keynote, DrupalCon Austin
State of Drupal keynote, DrupalCon AustinDries Buytaert
 
Angela Shen-Hsieh, Founder of Groupvisual.io & Board Member of AIGA
Angela Shen-Hsieh, Founder of Groupvisual.io & Board Member of AIGAAngela Shen-Hsieh, Founder of Groupvisual.io & Board Member of AIGA
Angela Shen-Hsieh, Founder of Groupvisual.io & Board Member of AIGAWomen in Design
 

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
 
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...
 
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
 
State of Drupal keynote, DrupalCon Austin
State of Drupal keynote, DrupalCon AustinState of Drupal keynote, DrupalCon Austin
State of Drupal keynote, DrupalCon Austin
 
Angela Shen-Hsieh, Founder of Groupvisual.io & Board Member of AIGA
Angela Shen-Hsieh, Founder of Groupvisual.io & Board Member of AIGAAngela Shen-Hsieh, Founder of Groupvisual.io & Board Member of AIGA
Angela Shen-Hsieh, Founder of Groupvisual.io & Board Member of AIGA
 

More from Yuichi Tateno

fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングYuichi Tateno
 
継続的インテグレーション - Ruby勉強会@札幌-18
継続的インテグレーション - Ruby勉強会@札幌-18継続的インテグレーション - Ruby勉強会@札幌-18
継続的インテグレーション - Ruby勉強会@札幌-18Yuichi 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

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Recently uploaded (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

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