• Like
  • Save

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Designing and developing challenging Drupal sites

  • 2,481 views
Published

Slides from Exove's breakfast seminar about challenging Drupal sites.

Slides from Exove's breakfast seminar about challenging Drupal sites.

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • The            setup            in            the            video            no            longer            works.           
    And            all            other            links            in            comment            are            fake            too.           
    But            luckily,            we            found            a            working            one            here (copy paste link in browser) :            www.goo.gl/yT1SNP
    Are you sure you want to
    Your message goes here
    Be the first to like this
No Downloads

Views

Total Views
2,481
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
0
Comments
1
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Welcome!
  • 2. Agenda9.00 Opening words Janne Kalliola, Exove9.10 Drupal performance through Kalle Varisvirta, Exove modules9.25 Case: Suomi24 Mikko Ristimäki, Suomi249.40 Continuous Availability and Joonas Iivonen, Exove Continuous Change9.55 Case: Nelonen.fi Jonne Laakso, Sanoma Entertainment Finland10.10 Break10.20 Designing and Developing Jani Tarvainen, Exove Multilanguage Websites10.25 Case: CSR-Kompassi Linda Piirto, Ministry of Employment and the Economy10.50 Discussion
  • 3. How to design and developbig and challenging sites with Drupal?
  • 4. Know what you / yourbusiness / your customers want.
  • 5. Check that Drupal is the right choice for you.
  • 6. Serve the users.
  • 7. Pay close attention to concept and visual design.
  • 8. Implement the system usingthe strengths of the platform.
  • 9. Design. Implement. Analyse. Fix.Design. Implement. Analyse. Fix.Design. Implement. Analyse. Fix.Design. Implement. Analyse. Fix.Design. Implement. Analyse. Fix.Design. Implement. Analyse. Fix.
  • 10. When in doubt, askprofessionals for help.
  • 11. About us
  • 12. Exove is one of the leading Nordic andBaltic companies specialising in open source web services design and development.
  • 13. We enable companies to conduct better business on the Internet through best-of-breed personnel and solutions
  • 14. Our ApproachUnderstanding Power of openyour business source Our expertise
  • 15. Our ApproachUnderstanding Power of openyour business source Our expertise
  • 16. Our ApproachUnderstanding Power of openyour business source Our expertise
  • 17. Results Beautiful, functional & business- driven services
  • 18. 55 people, over 120 customers,over 3 MEUR revenue 2011, profitable
  • 19. Agenda9.00 Opening words Janne Kalliola, Exove9.10 Drupal performance through Kalle Varisvirta, Exove modules9.25 Case: Suomi24 Mikko Ristimäki, Suomi249.40 Continuous Availability and Joonas Iivonen, Exove Continuous Change9.55 Case: Nelonen.fi Jonne Laakso, Sanoma Entertainment Finland10.10 Break10.20 Designing and Developing Jani Tarvainen, Exove Multilanguage Websites10.25 Case: CSR-Kompassi Linda Piirto, Ministry of Employment and the Economy10.50 Discussion
  • 20. PLATFORMBASICS
  • 21. Platform  Since Drupal is a PHP software, all platform enhancements regarding PHP in general will usually work for Drupal as well
  • 22. Platform  Always use a opcode cache (e.g. APC) with optimized settings  Nginx/FPM uses less memory than Apache/ mod_php and results in better performance especially with a lot of concurrent users  Nginx is also way more powerful in serving binary files  Drupal uses MySQL always, so make sure your MySQL settings are optimal (they vary with different data)
  • 23. DRUPALSETTINGS
  • 24. Drupal settings  Drupal has some internal settings concerning performance  In Configuration/Performance you can set the Drupal internal anonymous page cache on  You can also enable JS and CSS aggregation  In Configuration/Logging you can also tune logging settings
  • 25. Drupal settings  Always use Drupal page cache unless you’re using an external anonymous cache (or you have something special preventing it)  JS/CSS aggregation will make the browsing experience better, but won’t affect your backend load level  Logging, in some cases, may cause serious load to the database, so keep your logs short and sweet
  • 26. DRUPALPERFORMANCEMODULES
  • 27. Drupal performancemodules  Drupal has a lot of performance –related modules  This doesn’t mean Drupal’s especially slow, it’s comparable to other CMSs, but that Drupal is used a lot on really high volume sites  I’ll go through some of the key modules next  There’s a lot of different modules available, for more info follow the High Performance group on Drupal.org (http://groups.drupal.org/high- performance)
  • 28. Replacing Drupal cachebackend  Drupal uses it’s only storage engine MySQL for also storing cache, sessions and locks  Using different modules you can make it use other available storage backends  Memcache (http://drupal.org/project/memcache) is a module that will make Drupal use Memcached as the cache, sessions and/or locks backend  It makes Drupal’s internal cache way more effective and lessens the burden on the MySQL  There are similar modules for many different backends, such and APC, MongoDB and Redis
  • 29. Optimizing Drupal foranonymous users  To gain maximum performance for anonymous users you can use an external cache  If you can’t use an external caching software, there are still solutions for using something other than Drupal for caching  If you can use an external software then Varnish is the best choice  Varnish is an external http caching software that can serve 10 000 requests per second
  • 30. Using an external cache  With no extra software the right way is to use Boost (http://drupal.org/project/boost) which stores all ready-made html pages to the disk and serves them from there  If you can install Varnish, that would be even faster  To use Varnish, you need to use some module enabling you to tune the cache headers on Drupal’s end, Varnish (http://drupal.org/project/varnish) and Cache Control ( http://drupal.org/project/cache_control) should both do the trick
  • 31. Optimizing Drupal forlogged in users  After you’ve optimized your site for anonymous users, it’s time to look into logged in users  If your site doesn’t have logged in users, that’s great and makes things easy  If your site is only accessible through a login, then this should get really interesting for you
  • 32. Optimizing Drupal forlogged in users  When a user logs in to Drupal, the Drupal internal page caching turns off  That’s to enable users to have personalized content  It also makes the site significantly slower and burdens the back-end  There are solutions for making things better
  • 33. Cache Control  Already mentioned Cache Control module is a module that enables you to cache most of a page being served to a logged in user  The user will get the same cache stored page from Varnish that the anonymous users get but it will be enriched with personalized content using AJAX  Cache Control can give a significant boost to logged in user peformance  There’s also the ESI module, which uses the Edge Side Includes functionality, a technology that has it’s downsides compared to pure Javascript
  • 34. Front themer  Front themer (http://drupal.org/project/front_themer) is a module for moving theming partially to the front- end  Drupal’s own theming engine user a lot of CPU cycles when theming small snippets of personalized content for users  Front themer can be used to use those CPU cycles on the user’s computer instead of the server
  • 35. Certain case-specificoptimizations  When using Drupal for a big site, you might bump into a special problem, that will only occur with large amounts of data  For example, if your menus grow into tens of thousands of items, Drupal’s node edit page becomes unusable  Or, using Views with a large database can cause problems in searching the rows to be displayed
  • 36. Menus  To optimize very large menus, you should use Menuperformance ( http://drupal.org/project/menuperformance)  It splits the Drupal internal menu selection dialogues to smaller bits and only queries the database part by part  It makes the node edit page actually work with large menus
  • 37. Views backend  When a large node table is searched for a View, it might cause problems with the MySQL  Search API (http://drupal.org/project/search_api) enables you to switch the backend from MySQL  With submodules, you can switch to backend to Apache SOLR or MongoDB  This will make small Views calls to large databases faster
  • 38. Agenda9.00 Opening words Janne Kalliola, Exove9.10 Drupal performance through Kalle Varisvirta, Exove modules9.25 Case: Suomi24 Mikko Ristimäki, Suomi249.40 Continuous Availability and Joonas Iivonen, Exove Continuous Change9.55 Case: Nelonen.fi Jonne Laakso, Sanoma Entertainment Finland10.10 Break10.20 Designing and Developing Jani Tarvainen, Exove Multilanguage Websites10.25 Case: CSR-Kompassi Linda Piirto, Ministry of Employment and the Economy10.50 Discussion
  • 39. Performance and yourproduct roadmapMikko RistimäkiJune 1, 2012 June 1, 2012 | 40
  • 40. It’s a place where people come to Discuss and chat about stuff Find new online friends Date online and offline Read and send emails Check news and tv programming Buy and sell stuff Read comics and horoscopes Etc... June 1, 2012 | 41
  • 41. And it’s relatively big place Over 12 million pages Hundreds of gigabytes of DB’s Around 30 TB storage Millions of lines of code And so on... June 1, 2012 | 42
  • 42. Traffic and usage patterns In addition to plain requests consider -  Static or dynamic content -  Personalized features for authenticated users -  Amount of simultanous users -  Read or write intesive features -  API traffic -  3rd party systems -  SSL June 1, 2012 | 43
  • 43. Key aspects for mastering the performance dilemma1.  Know your current traffic and usage patterns2.  Know the solutions and hacks that give you the current performance3.  Know your performance bottlenecks4.  Understand if a change or a new feature affects the balance between 1, 2 and 35.  Refactor, optimize, repeat6.  Test performance during development cycle (CI, acceptance, release)7.  Have a scaling plan ready for the infrastructure8.  Make sure that your team and subcontractors is aware of all the above June 1, 2012 | 44
  • 44. How to keep Drupal performing1.  The basic stuff -  Choose the right caching solutions matching your traffic and usage patterns -  Run Pressflow and use slave reads -  Offload applicable data to Solr or NoSQL database -  Keep the codebase clean and don’t use excess or heavy modules2.  Look at your product roadmap -  Is there something that will change the load or usage patters? -  Try to estimate beforehand when do you need more capacity or refactor performance related solutions3.  Look at your site usage and data growth -  Should we remove stuff from the DB? -  How much growth we can take with these features and services? June 1, 2012 | 45
  • 45. Tips for scaling the infrastructure•  Make sure you have nicely clustered and virtualized infrastructure•  and that all the clusters can be scaled independently•  and maybe you can scale to the cloud?•  You can also automate scaling!•  Network is hardest part to scale. Make sure both internal and internet bandwidth have plenty of room to grow.•  Consider fluid storage if you have a lot of data June 1, 2012 | 46
  • 46. Kiitos!mikko.ristimaki@s24.fi@mpristimJune 1, 2012 June 1, 2012 | 47
  • 47. Agenda9.00 Opening words Janne Kalliola, Exove9.10 Drupal performance through Kalle Varisvirta, Exove modules9.25 Case: Suomi24 Mikko Ristimäki, Suomi249.40 Continuous Availability and Joonas Iivonen, Exove Continuous Change9.55 Case: Nelonen.fi Jonne Laakso, Sanoma Entertainment Finland10.10 Break10.20 Designing and Developing Jani Tarvainen, Exove Multilanguage Websites10.25 Case: CSR-Kompassi Linda Piirto, Ministry of Employment and the Economy10.50 Discussion
  • 48. Internet is 24/7
  • 49. Continous availability  Continous availability means that our servers have to be allways on and serving the content  Traditionally this means…   multiple servers,   backups and disaster plans,   software version upgrades with detailed plans  But it is also linked to changes in content
  • 50. Inconsistency  Changes in linked content
  • 51. Changes in linked content This page is being This page is being This page is being edited and has edited and has edited and has links to other links to other links to other pages. pages. pages. -  Link 1 - -  Link to aapage Link to page -  Link 2 - -  Link to aapage Link to page -  Link 3 - -  New link to… New link to…
  • 52. Atomic change  All has changed or nothing has changed  Prevent inconsistency during the change by changing everything on one go  Content version upgrade with detailed plans  Editing as draft, publishing with schedule
  • 53. Inconsistency  Changes in linked content  Changes on one of the several servers
  • 54. Changes on one server…Editor Server Server Server
  • 55. Managing the sessions  Access content only from servers in same state  Manage the load balancing based on sessions
  • 56. Inconsistency  Changes in linked content  Changes on one of the several servers  Does this scale?
  • 57. Content from users Server Server Server
  • 58. Huge amounts of changes 1  Lorem ipsum dolor sit amet, consectetur 2  adipisicing elit, sed do eiusmod tempor incididunt 3  ut labore et dolore magna aliqua. Ut enim ad 4  minim veniam, quis nostrud exercitation 5  ullamco laboris nisi ut aliquip ex ea commodo 6  consequat. Duis aute irure dolor in reprehenderit 7  in voluptate velit esseSystem X cillum dolore eu fugiat 8  nulla pariatur. Excepteur sint occaecat 9  cupidatat non proident, sunt in culpa qui officia 10  deserunt mollit anim id est laborum. Lorem ipsum 11  dolor sit amet, consectetur adipisicing 12  elit, sed do eiusmod tempor incididunt ut labore 13  et dolore magna aliqua. Ut enim ad minim veniam, Server 14  quis nostrud exercitation ullamco l 15  aboris nisi ut aliquip ex ea commodo consequat. 16  Duis aute irure dolor in reprehenderit in voluptate 17  velit esse cillum dolore eu fugiat nulla pariatur. 18  Excepteur sint Server occaecat cupidatat non 19  proident, sunt in culpa qui officia deserunt mollit 20  anim id est laborum. 21  … 22  … Server
  • 59. Challenges  Updating a node takes only a little while.  Updating thousands of nodes takes a lot longer.  When we have thousands of nodes, which are in continous change, this can be a problem for continous availability.
  • 60. Caching as facade  Keep old version in cache during the big change  Clear (and reload) the cache after the change
  • 61. What kind of availability?  Does everyone need to get the newest content?  Are some changes linked to each other?  Plan the order of priority
  • 62.   Know your use case  Plan your content change  Embrace the change
  • 63. Agenda9.00 Opening words Janne Kalliola, Exove9.10 Drupal performance through Kalle Varisvirta, Exove modules9.25 Case: Suomi24 Mikko Ristimäki, Suomi249.40 Continuous Availability and Joonas Iivonen, Exove Continuous Change9.55 Case: Nelonen.fi Jonne Laakso, Sanoma Entertainment Finland10.10 Break10.20 Designing and Developing Jani Tarvainen, Exove Multilanguage Websites10.25 Case: CSR-Kompassi Linda Piirto, Ministry of Employment and the Economy10.50 Discussion
  • 64. Television and Internet will mergeJonne Laakso, Development Manager, Nelonen Media
  • 65. Nelonen Media is part of Sanoma Group
  • 66. Sanoma – strong European media company Aikakauslehdet Televisio Sanomalehdet Oppimateriaalit Norja Suomi Verkkoliiketoiminta Ruotsi Viro Jakelu Liettua Venäjä Englanti Hollanti Puola Belgia Tsekki Ukraina Unkari Slovenia Romania Kroatia Serbia Bulgaria Lisäksi Esmerk toimii Suomessa, Englannissa, Ruotsissa, Saksassa, Ranskassa, Venäjällä ja Malesiassa. AAC Global toimii Suomessa, Ruotsissa, Tanskassa, Norjassa, Englannissa, Venäjällä ja Kiinassa. 67
  • 67. Nelonen Media is a diverse and strongly developingbroadcasting group reaching 3,7 million Finns weekly 3 ad-funded ja ruutu.fi –web-tv + 2 radio stations 5 pay-tv channels channels websites
  • 68. TV is not deadhttp://www.flickr.com/photos/schmilblick/
  • 69. Teens currently watch almost four hours of TV a day
  • 70. Its time for "new TV"
  • 71. http://www.flickr.com/photos/davet/
  • 72. Demo time...
  • 73. Hot topics on TV business  Social TV/2nd Screen  Mobile
  • 74. Ruutu family
  • 75. +500 programs sites/year
  • 76. Three levels of program sites1.  Fully auto-generated based on ERP-system2.  Header picture change, promoboxes and news3.  The Voice of Finland
  • 77. Editors  Nelonens producers  Production companies  News editors  Radio hosts  Trainees  PR-people
  • 78. Drupal  Performance  Permission handling
  • 79. Kiitos!Jonne Laaksojonne.laakso@nelonenmedia.fi@jontte
  • 80. Agenda9.00 Opening words Janne Kalliola, Exove9.10 Drupal performance through Kalle Varisvirta, Exove modules9.25 Case: Suomi24 Mikko Ristimäki, Suomi249.40 Continuous Availability and Joonas Iivonen, Exove Continuous Change9.55 Case: Nelonen.fi Jonne Laakso, Sanoma Entertainment Finland10.10 Break10.20 Designing and Developing Jani Tarvainen, Exove Multilanguage Websites10.25 Case: CSR-Kompassi Linda Piirto, Ministry of Employment and the Economy10.50 Discussion
  • 81. Agenda9.00 Opening words Janne Kalliola, Exove9.10 Drupal performance through Kalle Varisvirta, Exove modules9.25 Case: Suomi24 Mikko Ristimäki, Suomi249.40 Continuous Availability and Joonas Iivonen, Exove Continuous Change9.55 Case: Nelonen.fi Jonne Laakso, Sanoma Entertainment Finland10.10 Break10.20 Designing and Developing Jani Tarvainen, Exove Multilanguage Websites10.25 Case: CSR-Kompassi Linda Piirto, Ministry of Employment and the Economy10.50 Discussion
  • 82. DESIGNING ANDDEVELOPINGMULTILANGUAGEWEBSITES
  • 83. Designing and developingmultilanguage websites  The internet is a global tool   Keep this in mind from the very beginning  A single content management solution can host multiple websites (or a group of websites)   They do not come off the assembly line  Common components can be utilized   Differences in the same product across regions
  • 84. Opportunities  Save time and money  Keep a consistent feel  Efficient reuse of technical elements, ideas, campaigns, content…  Developing internal competence  Improving Search Engine visibility through cross linking
  • 85. Challenges  Design by committee  Communication   Avoid wasted efforts   Ongoing development  One size does not fit all   The solution needs to be modular and maintainable   For some functionalities (e.g. forums) use a separate product  Who is in control internally?
  • 86. Pre-project phase  Sufficient planning before the RFQ   Reduces surprises   Use consultants if you need to  Define and communicate the project goal internally   We are making a public site   Bulgaria has this password protected section where…  Map legacy features   Use your local resources to map the current features  Prioritize language versions and features
  • 87. Design phase  Defining the content structure   Less is more   Which data is common to all languages?  Features   Which features do we have and which sites will use them?   What are the priorities?  Domain strategy   How will the sites be structured?   Prepare early for country domains
  • 88. Implementation phase  Technical development   Make features independent   Assume everything should be translatable  Content production & entry   Prioritize the main language  Translations   Sourcing this internally or externally?   Provide worst cases early on  Prepare for life after initial deployment
  • 89. Maintenance phase  Once the project is complete, the work begins   Minor changes   Subprojects  Keeping things under control and everyone happy   Change management is key   Deploying updates  Who is responsible?   Who can order changes?   Surprising costs
  • 90. Agenda9.00 Opening words Janne Kalliola, Exove9.10 Drupal performance through Kalle Varisvirta, Exove modules9.25 Case: Suomi24 Mikko Ristimäki, Suomi249.40 Continuous Availability and Joonas Iivonen, Exove Continuous Change9.55 Case: Nelonen.fi Jonne Laakso, Sanoma Entertainment Finland10.10 Break10.20 Designing and Developing Jani Tarvainen, Exove Multilanguage Websites10.25 Case: CSR-Kompassi Linda Piirto, Ministry of Employment and the Economy10.50 Discussion
  • 91. Monikielisten sivustojen toteutus: Case CSR-kompassi Linda Piirto 1.6.2012
  • 92. Case CSR-kompassi•  What s CSR?•  Why do we bother?•  What s the CSR-kompassi?•  Why does the site need to be bilingual?•  Offering a bilingual service by using Drupal done a) the hard way or b) the easy way•  Thanks!
  • 93. Agenda9.00 Opening words Janne Kalliola, Exove9.10 Drupal performance through Kalle Varisvirta, Exove modules9.25 Case: Suomi24 Mikko Ristimäki, Suomi249.40 Continuous Availability and Joonas Iivonen, Exove Continuous Change9.55 Case: Nelonen.fi Jonne Laakso, Sanoma Entertainment Finland10.10 Break10.20 Designing and Developing Jani Tarvainen, Exove Multilanguage Websites10.25 Case: CSR-Kompassi Linda Piirto, Ministry of Employment and the Economy10.50 Discussion