0
Big WebsitesDiana Montalion Dupuis : @dianadupuis previously: @mooncougarRobert Ristroph : @robgrDrupal powers many small-...
With a lot of cachingDallas Drupal Days 2011
Before big websites
Before big websites• Clients would come to me and ask me to buildthem a website.
Before big websites• Clients would come to me and ask me to buildthem a website.• I would build them a website.
I would . . .
I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.
I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and instal...
I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and instal...
I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and instal...
I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and instal...
I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and instal...
I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and instal...
I would . . .
I would . . .• sprinkle on (just enough) javascript.
I would . . .• sprinkle on (just enough) javascript.• log in as user 1 and click configuration buttons.
I would . . .• sprinkle on (just enough) javascript.• log in as user 1 and click configuration buttons.• teach the user how...
Afterwards,
Afterwards,• clients called me when they had a problem.
Afterwards,• clients called me when they had a problem.• I would fix it.
Simpler times
Simpler times• Caching was a browser issue. "Did you clear yourcache?"
Simpler times• Caching was a browser issue. "Did you clear yourcache?"• Version control was ensuring there was a backupor ...
Simpler times• Caching was a browser issue. "Did you clear yourcache?"• Version control was ensuring there was a backupor ...
Simpler times• Caching was a browser issue. "Did you clear yourcache?"• Version control was ensuring there was a backupor ...
Simpler times• Caching was a browser issue. "Did you clear yourcache?"• Version control was ensuring there was a backupor ...
Little Bobby Tables
Then, things changed.
Then, things changed.• I joined Four Kitchens, birthplace of Pressflow,and was surrounded by major league Big Websitefoo.
Then, things changed.• I joined Four Kitchens, birthplace of Pressflow,and was surrounded by major league Big Websitefoo.• ...
Then, things changed.• I joined Four Kitchens, birthplace of Pressflow,and was surrounded by major league Big Websitefoo.• ...
How The Economistchanged my (work) life
How The Economistchanged my (work) life• Most of the functionality I add is custom built or atleast customized.
How The Economistchanged my (work) life• Most of the functionality I add is custom built or atleast customized.• I often h...
How The Economistchanged my (work) life• Most of the functionality I add is custom built or atleast customized.• I often h...
How The Economistchanged my (work) life• Most of the functionality I add is custom built or atleast customized.• I often h...
How The Economistchanged my (work) life• Most of the functionality I add is custom built or atleast customized.• I often h...
• Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.
• Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.• I test everything in fou...
• Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.• I test everything in fou...
• Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.• I test everything in fou...
• Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.• I test everything in fou...
• Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.• I test everything in fou...
• The havoc I could wreak if I’m not careful keepsme up nights.
• The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.
• The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.• Perfo...
• The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.• Perfo...
• The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.• Perfo...
• The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.• Perfo...
• The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.• Perfo...
• I attend a lot more meetings.
• I attend a lot more meetings.• I read and answer a river of emails - every day.
• I attend a lot more meetings.• I read and answer a river of emails - every day.• I always know what time it is in London...
• I attend a lot more meetings.• I read and answer a river of emails - every day.• I always know what time it is in London...
Code-Review Velocci
Categories of differences
Categories of differences• Version control
Categories of differences• Version control• Workflow and development environments
Categories of differences• Version control• Workflow and development environments• Quality control
Categories of differences• Version control• Workflow and development environments• Quality control• Back-end processes
Categories of differences• Version control• Workflow and development environments• Quality control• Back-end processes• Per...
Categories of differences• Version control• Workflow and development environments• Quality control• Back-end processes• Per...
Categories of differences• Version control• Workflow and development environments• Quality control• Back-end processes• Per...
Version control
Version control• I <3 Bazaar (launchpad)
Version control• I <3 Bazaar (launchpad)• Drupal uses Git (github)
Version control• I <3 Bazaar (launchpad)• Drupal uses Git (github)• I !<3 SVN or CVS but they are better than nothing.
Version control• I <3 Bazaar (launchpad)• Drupal uses Git (github)• I !<3 SVN or CVS but they are better than nothing.• Br...
Version control• I <3 Bazaar (launchpad)• Drupal uses Git (github)• I !<3 SVN or CVS but they are better than nothing.• Br...
Workflow and devenvironments
Workflow and devenvironments• Sameness in local environments is good.
Workflow and devenvironments• Sameness in local environments is good.• Plan development well or die.
Workflow and devenvironments• Sameness in local environments is good.• Plan development well or die.• Establish version con...
Workflow and devenvironments• Sameness in local environments is good.• Plan development well or die.• Establish version con...
Quality control
Quality control• Code reviews
Quality control• Code reviews• Testing
Quality control• Code reviews• Testing• Definition of Done
Quality control• Code reviews• Testing• Definition of Done• Questions?
Back-end processes
Back-end processes• Cron tasks
Back-end processes• Cron tasks• Custom drush commands
Back-end processes• Cron tasks• Custom drush commands• Custom scripting
Back-end processes• Cron tasks• Custom drush commands• Custom scripting• Questions?
Performance andscalability
Performance andscalability• Caching: Varnish and memcache
Performance andscalability• Caching: Varnish and memcache• Multiple servers, load balancing, CDN
Performance andscalability• Caching: Varnish and memcache• Multiple servers, load balancing, CDN• Questions?
Project management
Project management• Absolutely, positively, essential to do this well.
Project management• Absolutely, positively, essential to do this well.• Scrum
Project management• Absolutely, positively, essential to do this well.• Scrum• Questions?
Relationship management
Relationship management• Relationship skills are as important (moreimportant?) as geek skills.
Relationship management• Relationship skills are as important (moreimportant?) as geek skills.• Questions?
Thank You!
Big Websites
Big Websites
Big Websites
Big Websites
Upcoming SlideShare
Loading in...5
×

Big Websites

468

Published on

Drupal powers many small-to-medium websites, from personal blogs to company intranets. Drupal also powers big sites like The Economist and The White House. How are the big sites different from the small ones? What are the main issues to consider when adopting Drupal for the enterprise? What skillset do developers need to build them?

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
468
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "Big Websites"

    1. 1. Big WebsitesDiana Montalion Dupuis : @dianadupuis previously: @mooncougarRobert Ristroph : @robgrDrupal powers many small-to-medium websites, from personalblogs to company intranets. Drupal also powers big sites likeThe Economist and The White House. How are the big sitesdifferent from the small ones?Four Kitchens : @fourkitchens
    2. 2. With a lot of cachingDallas Drupal Days 2011
    3. 3. Before big websites
    4. 4. Before big websites• Clients would come to me and ask me to buildthem a website.
    5. 5. Before big websites• Clients would come to me and ask me to buildthem a website.• I would build them a website.
    6. 6. I would . . .
    7. 7. I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.
    8. 8. I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and install a CMS (usually Drupal).
    9. 9. I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and install a CMS (usually Drupal).• download, install and configure modules or plug-ins.
    10. 10. I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and install a CMS (usually Drupal).• download, install and configure modules or plug-ins.• sometimes install and configure compatible appslike CiviCRM or a shopping cart.
    11. 11. I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and install a CMS (usually Drupal).• download, install and configure modules or plug-ins.• sometimes install and configure compatible appslike CiviCRM or a shopping cart.• merge some data, maybe.
    12. 12. I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and install a CMS (usually Drupal).• download, install and configure modules or plug-ins.• sometimes install and configure compatible appslike CiviCRM or a shopping cart.• merge some data, maybe.• build a theme, install it, and cross-browser test.
    13. 13. I would . . .• meet with a client, define their business goals andtechnical needs, create a site plan.• download and install a CMS (usually Drupal).• download, install and configure modules or plug-ins.• sometimes install and configure compatible appslike CiviCRM or a shopping cart.• merge some data, maybe.• build a theme, install it, and cross-browser test.• rebuild the theme for IE6.
    14. 14. I would . . .
    15. 15. I would . . .• sprinkle on (just enough) javascript.
    16. 16. I would . . .• sprinkle on (just enough) javascript.• log in as user 1 and click configuration buttons.
    17. 17. I would . . .• sprinkle on (just enough) javascript.• log in as user 1 and click configuration buttons.• teach the user how to use their site.
    18. 18. Afterwards,
    19. 19. Afterwards,• clients called me when they had a problem.
    20. 20. Afterwards,• clients called me when they had a problem.• I would fix it.
    21. 21. Simpler times
    22. 22. Simpler times• Caching was a browser issue. "Did you clear yourcache?"
    23. 23. Simpler times• Caching was a browser issue. "Did you clear yourcache?"• Version control was ensuring there was a backupor rollback ability.
    24. 24. Simpler times• Caching was a browser issue. "Did you clear yourcache?"• Version control was ensuring there was a backupor rollback ability.• Performance was not serving an automatically-playing video on the homepage.
    25. 25. Simpler times• Caching was a browser issue. "Did you clear yourcache?"• Version control was ensuring there was a backupor rollback ability.• Performance was not serving an automatically-playing video on the homepage.• Scalability was a functionality issue. "Can I add apicture gallery later?"
    26. 26. Simpler times• Caching was a browser issue. "Did you clear yourcache?"• Version control was ensuring there was a backupor rollback ability.• Performance was not serving an automatically-playing video on the homepage.• Scalability was a functionality issue. "Can I add apicture gallery later?"• I longed to write more code.
    27. 27. Little Bobby Tables
    28. 28. Then, things changed.
    29. 29. Then, things changed.• I joined Four Kitchens, birthplace of Pressflow,and was surrounded by major league Big Websitefoo.
    30. 30. Then, things changed.• I joined Four Kitchens, birthplace of Pressflow,and was surrounded by major league Big Websitefoo.• In time, I became the team lead for the Austin(aka Janus) team working on The Economist online.Rob is currently the team lead.
    31. 31. Then, things changed.• I joined Four Kitchens, birthplace of Pressflow,and was surrounded by major league Big Websitefoo.• In time, I became the team lead for the Austin(aka Janus) team working on The Economist online.Rob is currently the team lead.• I went from a one-woman expertise factory to adeveloper who *needs* her teammates to survivethe workday.
    32. 32. How The Economistchanged my (work) life
    33. 33. How The Economistchanged my (work) life• Most of the functionality I add is custom built or atleast customized.
    34. 34. How The Economistchanged my (work) life• Most of the functionality I add is custom built or atleast customized.• I often have to study more (custom) code than Iwrite when implementing new functionality.
    35. 35. How The Economistchanged my (work) life• Most of the functionality I add is custom built or atleast customized.• I often have to study more (custom) code than Iwrite when implementing new functionality.• I build a branch for every task and merge code intothe codebase when its done.
    36. 36. How The Economistchanged my (work) life• Most of the functionality I add is custom built or atleast customized.• I often have to study more (custom) code than Iwrite when implementing new functionality.• I build a branch for every task and merge code intothe codebase when its done.• I am rarely the only person working on thatbranch.
    37. 37. How The Economistchanged my (work) life• Most of the functionality I add is custom built or atleast customized.• I often have to study more (custom) code than Iwrite when implementing new functionality.• I build a branch for every task and merge code intothe codebase when its done.• I am rarely the only person working on thatbranch.• If I do use a contributed module, it has it’s ownvendor branch.
    38. 38. • Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.
    39. 39. • Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.• I test everything in four different environments(versions of the website) before it is "Done".
    40. 40. • Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.• I test everything in four different environments(versions of the website) before it is "Done".• I write a test (Selenium, currently) for any newfunctionality I create.
    41. 41. • Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.• I test everything in four different environments(versions of the website) before it is "Done".• I write a test (Selenium, currently) for any newfunctionality I create.• I work in the command line every day, not justduring install.
    42. 42. • Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.• I test everything in four different environments(versions of the website) before it is "Done".• I write a test (Selenium, currently) for any newfunctionality I create.• I work in the command line every day, not justduring install.• Local work is done using VMWare running a Centosenviroment (no MAMP) configured to match theproduction environment.
    43. 43. • Every bit of code I write (even in the theme) isreviewed (more than once) before it is merged.• I test everything in four different environments(versions of the website) before it is "Done".• I write a test (Selenium, currently) for any newfunctionality I create.• I work in the command line every day, not justduring install.• Local work is done using VMWare running a Centosenviroment (no MAMP) configured to match theproduction environment.• It takes hours to download a new database for mylocal environment.
    44. 44. • The havoc I could wreak if I’m not careful keepsme up nights.
    45. 45. • The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.
    46. 46. • The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.• Performance and scalability is a science involving.multiple servers, load balancers, CDN, Varnish, etcthat I need to understand.
    47. 47. • The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.• Performance and scalability is a science involving.multiple servers, load balancers, CDN, Varnish, etcthat I need to understand.• Complicated tasks running "in thebackground" (cron, drush/Hudson) are Chuck-Norris-level customizations.
    48. 48. • The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.• Performance and scalability is a science involving.multiple servers, load balancers, CDN, Varnish, etcthat I need to understand.• Complicated tasks running "in thebackground" (cron, drush/Hudson) are Chuck-Norris-level customizations.• I will never know enough Javascript.
    49. 49. • The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.• Performance and scalability is a science involving.multiple servers, load balancers, CDN, Varnish, etcthat I need to understand.• Complicated tasks running "in thebackground" (cron, drush/Hudson) are Chuck-Norris-level customizations.• I will never know enough Javascript.• Everything must be in code, even adminconfigurations. I never click a button.
    50. 50. • The havoc I could wreak if I’m not careful keepsme up nights.• I *always* have to think about caching, in layers.• Performance and scalability is a science involving.multiple servers, load balancers, CDN, Varnish, etcthat I need to understand.• Complicated tasks running "in thebackground" (cron, drush/Hudson) are Chuck-Norris-level customizations.• I will never know enough Javascript.• Everything must be in code, even adminconfigurations. I never click a button.• I apply relational skills as often as softwaredevelopment skills to problems or inventing
    51. 51. • I attend a lot more meetings.
    52. 52. • I attend a lot more meetings.• I read and answer a river of emails - every day.
    53. 53. • I attend a lot more meetings.• I read and answer a river of emails - every day.• I always know what time it is in London and NewYork and Seattle and Los Angeles.
    54. 54. • I attend a lot more meetings.• I read and answer a river of emails - every day.• I always know what time it is in London and NewYork and Seattle and Los Angeles.• Besides writing code together, the other devs and Ihave bowled, snowshoed, played with dry ice, seenWeird Al in person, pub crawled in London, drankawesomesauce in Copenhagen, watched Tron 3D atthe IMAX, and smoked hookah together.
    55. 55. Code-Review Velocci
    56. 56. Categories of differences
    57. 57. Categories of differences• Version control
    58. 58. Categories of differences• Version control• Workflow and development environments
    59. 59. Categories of differences• Version control• Workflow and development environments• Quality control
    60. 60. Categories of differences• Version control• Workflow and development environments• Quality control• Back-end processes
    61. 61. Categories of differences• Version control• Workflow and development environments• Quality control• Back-end processes• Performance and scalability
    62. 62. Categories of differences• Version control• Workflow and development environments• Quality control• Back-end processes• Performance and scalability• Project management (Scrum!)
    63. 63. Categories of differences• Version control• Workflow and development environments• Quality control• Back-end processes• Performance and scalability• Project management (Scrum!)• Group think and relationship management.
    64. 64. Version control
    65. 65. Version control• I <3 Bazaar (launchpad)
    66. 66. Version control• I <3 Bazaar (launchpad)• Drupal uses Git (github)
    67. 67. Version control• I <3 Bazaar (launchpad)• Drupal uses Git (github)• I !<3 SVN or CVS but they are better than nothing.
    68. 68. Version control• I <3 Bazaar (launchpad)• Drupal uses Git (github)• I !<3 SVN or CVS but they are better than nothing.• Branching
    69. 69. Version control• I <3 Bazaar (launchpad)• Drupal uses Git (github)• I !<3 SVN or CVS but they are better than nothing.• Branching• Questions?
    70. 70. Workflow and devenvironments
    71. 71. Workflow and devenvironments• Sameness in local environments is good.
    72. 72. Workflow and devenvironments• Sameness in local environments is good.• Plan development well or die.
    73. 73. Workflow and devenvironments• Sameness in local environments is good.• Plan development well or die.• Establish version control flow.
    74. 74. Workflow and devenvironments• Sameness in local environments is good.• Plan development well or die.• Establish version control flow.• Questions?
    75. 75. Quality control
    76. 76. Quality control• Code reviews
    77. 77. Quality control• Code reviews• Testing
    78. 78. Quality control• Code reviews• Testing• Definition of Done
    79. 79. Quality control• Code reviews• Testing• Definition of Done• Questions?
    80. 80. Back-end processes
    81. 81. Back-end processes• Cron tasks
    82. 82. Back-end processes• Cron tasks• Custom drush commands
    83. 83. Back-end processes• Cron tasks• Custom drush commands• Custom scripting
    84. 84. Back-end processes• Cron tasks• Custom drush commands• Custom scripting• Questions?
    85. 85. Performance andscalability
    86. 86. Performance andscalability• Caching: Varnish and memcache
    87. 87. Performance andscalability• Caching: Varnish and memcache• Multiple servers, load balancing, CDN
    88. 88. Performance andscalability• Caching: Varnish and memcache• Multiple servers, load balancing, CDN• Questions?
    89. 89. Project management
    90. 90. Project management• Absolutely, positively, essential to do this well.
    91. 91. Project management• Absolutely, positively, essential to do this well.• Scrum
    92. 92. Project management• Absolutely, positively, essential to do this well.• Scrum• Questions?
    93. 93. Relationship management
    94. 94. Relationship management• Relationship skills are as important (moreimportant?) as geek skills.
    95. 95. Relationship management• Relationship skills are as important (moreimportant?) as geek skills.• Questions?
    96. 96. Thank You!
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×