Kentico CMS: A Case Study in Building for Today’s Web


Published on

Building software is a set of smart choices to meet the needs of your customers and the possibilities of technology. Today’s Web demands that customers have a choice in how they deploy their applications. With over 7,000 websites in 84 countries, Kentico CMS for ASP.Net is delivered as a single code base for use as a cloud, hosted, or on-premise solution. With over 34 out of the box modules and everything built on a SQL Server backend – How did we do it? What tradeoffs did we make? In this session we will answer that question and look at how to build a rich and compelling website using Windows Azure.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Kentico CMS: A Case Study in Building for Today’s Web

  1. 1. Kentico CMS: A Case Study in Building for Today’s Web<br />Thom Robbins, Chief Evangelist <br />
  2. 2. Agenda<br />What is a CMS?<br />Kentico CMS today<br />Meet our cast<br />Enter the time machine – July 2009<br />First Steps<br />We made it – Kentico CMS 5.5 R2<br />Business Perspective<br />T-2 Weeks: Kentico CMS 6<br />Lessons learned<br />
  3. 3. What is a CMS?<br />Website Expectations<br />Overloaded terms?<br /><ul><li>CMS
  4. 4. WCM
  5. 5. DM
  6. 6. ??</li></li></ul><li>Kentico CMS Today..<br />Kentico CMS is one of the most comprehensive content management systems on the planet. With over 7,000 active web sites in 84 countries, 34 modules, and a partner network of over 1,200 it is used for everything from simple web sites to complex applications. Kentico CMS is easy to install, simple to manage, scalable and reliable.<br />V6 is two weeks away!<br />
  7. 7. For Developers..<br />Delivered as a Visual Studio project<br />826,152 lines of code <br />2,000 specifically for Azure<br />
  8. 8. Meet our cast<br />Kentico has 75 employees worldwide<br />All development done in HQ Brno, CZ<br />Development team led by CTO<br />35+ developers<br />Broken into feature teams<br />Led by Technical Leader<br />Devs, Testers and Writers<br />
  9. 9. Enter the time machine – July 2009!<br />In 2009 <br /><ul><li>Kentico CMS 5.0 released and 5.5 R2 is being planned
  10. 10. Azure is just coming to market
  11. 11. Visual Studio 2008 and .NET 3.5 available</li></ul>Azure Guiding Development Principles<br /><ul><li>Customer’s make the choice on infrastructure (on-premise/hosted/cloud – Amazon/Azure/Rackspace)
  12. 12. Installation must be simple
  13. 13. Single code base.. architecture matters! </li></li></ul><li>First Steps<br />Assign 1 Dedicated Resource (sort of..)<br />Define the differences<br />Lots of hunting and pecking!<br />Azure vs On-premise vs mixed mode<br />Web Farm Options<br />Lack of durable NTFS<br />SQL vs SQL Azure<br />Team management<br />Consistent access layer!<br />Let the development begin!<br />
  14. 14. We Made it - Kentico CMS 5.5 R2<br /><ul><li>Welcome to December 2010!
  15. 15. Native support – no additional support needed (accelerators suck!)</li></ul>Used parts of Windows Azure<br />ASP.NET <br />Web role<br />Azure<br />storage<br />SQL Azure<br />
  16. 16. Windows Azure – Kentico CMS as an ASP.NET application<br /><ul><li> Kentico CMS = 1 web role
  17. 17. Windows Azure supports only Web applications
  18. 18. New type of project – Cloud service (Conversion or download)
  19. 19. Currently, Azure SDK 1.1 or newer is supported, including SDK 1.4</li></ul>Missing standard file system<br /><ul><li> Files must be stored in the DB
  20. 20. Media library, Web analytics, Smart search modules use Azure drive to store their data into blob storage, files aren‘t stored in the application directory, you must apply hotfix 5.5R2.4</li></ul>SQL Azure<br /><ul><li> Not an exact clone of On-Premise SQL
  21. 21. No backup/restore – a migration tool must be used to move a DB to the cloud, i.e. SQL Azure Migration wizard -</li></ul>Kentico CMS 5.5 R2 – technical details<br />
  22. 22. Kentico CMS 5.5 R2 - limitations<br />
  23. 23. Business Perspective<br />15 total sites running in Windows Azure, using SQL Azure<br />Stacked instances (2, each hosting 5+ sites)<br />Over ½ of production sites currently migrated to Windows Azure<br />Review of key applications<br />Postage Ink <br />Emerald Coast Autism Center<br />RDF Associates<br />CED Technical<br />
  24. 24. T-2 Weeks:Kentico CMS 6<br />Kentico CMS 6:<br />Azure 1.5 Support!<br />Multiple instance support<br />Storing files on Windows Azure blob storage<br />ASP NET <br />Web role<br />SQL Azure<br />App fabric<br />cache<br />Azure<br />storage<br />Smart search<br />Worker role<br />
  25. 25. Installation<br />
  26. 26. Handling multi VMs environment<br />Unknown number of servers<br />Dynamic changes<br />Round robin algorithm<br />Web farm modules<br />Inter-role communication<br />Instance 1<br />Instance 2<br />Load balancer<br />Instance 3<br />
  27. 27. Storing data<br /><ul><li> Durable NTFS is missing
  28. 28. Blob storage as a replacement
  29. 29. CMS.IO – storing data using Blob API
  30. 30. Direct links to Blob storage
  31. 31. Debug
  32. 32. MS SQL -> SQL Azure</li></ul>System.IO<br />Kentico CMS<br />business <br />layer<br />Azure blob API<br />CMS.IO<br />...<br />
  33. 33. Other features<br />Smart search:<br />Lucene.NET<br />Smart search worker role<br />Application settings and connection string:<br />Service configuration file<br />Windows Azure AppFabric cache<br />Session state provider<br />Hybrid scenarios<br />Use Azure blob as file storage <br />
  34. 34. Lessons Learned<br />Don’t Hurry <br />Think about things<br />Understand how it works<br />Little details matter – especially with Azure<br />Be careful with 3rd party components<br />Learn Azure<br />Keep up with news<br />Azure is stateless<br />Complex Web applications aren’t stateless<br />Azure goes against current web architecture<br />
  35. 35. Q&A<br />?<br />
  36. 36. Thank you!<br /> E-mail:<br /> Twitter: trobbins<br /> Blog:<br />