Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

The World's Oldest Django Project

3.538 Aufrufe

Veröffentlicht am

A talk on the history of the Ellington CMS project, given at PyCon 2010.

Veröffentlicht in: Technologie
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

The World's Oldest Django Project

  1. The world’s oldest django project James Bennett • PyCon Atlanta • February 19, 2010
  2. In the beginning...
  3. A regional news company
  4. A regional news company A dozen or so newspapers
  5. A regional news company A dozen or so newspapers Two TV stations
  6. A regional news company A dozen or so newspapers Two TV stations Weekly magazines
  7. A regional news company A dozen or so newspapers Two TV stations Weekly magazines Cable TV/Internet/telephony
  8. Those responsible have been sacked
  9. “The CMS”
  10. “The CMS”
  11. “The CMS”
  12. “The CMS”
  13. “The CMS”
  14. Disentangling
  15. Disentangling Mostly done prior to open-sourcing Django
  16. Disentangling Mostly done prior to open-sourcing Django Though some bits survived
  17. Ellington the product
  18. Early customers
  19. Early customers Some technically inclined
  20. Early customers Some technically inclined Some… not
  21. Customization
  22. Customization Branch for each client? Bad idea
  23. Customization Branch for each client? Bad idea Unified codebase? Good idea
  24. What is the product?
  25. What is the product? Dogfooding is great for QA
  26. What is the product? Dogfooding is great for QA But how much of that code should you really sell?
  27. What is the product? Dogfooding is great for QA But how much of that code should you really sell? Do you treat your own company as a client?
  28. “Removing the Lawrence”
  29. Deployment headaches
  30. Deployment headaches Each client runs their own servers
  31. Deployment headaches Each client runs their own servers Wildly divergent setups
  32. Deployment headaches Each client runs their own servers Wildly divergent setups Initial solution: Ellington as a hosted service
  33. The port that ate Cleveland
  34. Django moves on
  35. Django moves on Django 0.95 and 0.96 released
  36. Django moves on Django 0.95 and 0.96 released Internal sites pinned to 2006 revision
  37. Django moves on Django 0.95 and 0.96 released Internal sites pinned to 2006 revision Hosted client sites pinned to 0.91 release tag
  38. http://code.djangoproject.com/wiki/RemovingTheMagic
  39. First porting attempt
  40. First porting attempt Automated tools
  41. First porting attempt Automated tools Built on early versions of Python’s 2to3
  42. First porting attempt Automated tools Built on early versions of Python’s 2to3 Takes more time than porting by hand!
  43. Second porting attempt
  44. Second porting attempt Targeting Django 1.0 (unreleased)
  45. Second porting attempt Targeting Django 1.0 (unreleased) Partially automated, partially manual
  46. The final push
  47. The final push All hands on deck!
  48. The final push All hands on deck! Testing, testing, testing
  49. The final push All hands on deck! Testing, testing, testing Finally relaunched internal sites November 2008
  50. What we’ve learned
  51. Preparation is important
  52. Preparation is important A real staging server
  53. Preparation is important A real staging server Internal review before deployment
  54. Testing is important
  55. Testing is important Unit tests saved us during the porting process
  56. Testing is important Unit tests saved us during the porting process Buildbot for continuous integration
  57. Testing is important Unit tests saved us during the porting process Buildbot for continuous integration Spidering tools for live testing
  58. Deployment is (still) hard
  59. Deployment is (still) hard But automated deployment is a lifesaver
  60. Deployment is (still) hard But automated deployment is a lifesaver Currently using Capistrano
  61. Deployment is (still) hard But automated deployment is a lifesaver Currently using Capistrano Isolated environments
  62. Hosting solves a lot of problems
  63. Change control
  64. Change control Completely unified codebase for Ellington
  65. Change control Completely unified codebase for Ellington Migration framework (South)
  66. Change control Completely unified codebase for Ellington Migration framework (South) Custom code isolated as client-specific applications
  67. Open source
  68. Open source Non-core functionality being released
  69. Open source Non-core functionality being released Internal code becomes external dependency
  70. Code savings
  71. Code savings Modern Django, open sourcing and jettisoning legacy code
  72. Code savings Modern Django, open sourcing and jettisoning legacy code Depending on measurements, up to 40k lines of code cut in porting
  73. Reorganization
  74. Reorganization In 2009, one dev team became two
  75. Reorganization In 2009, one dev team became two Commercial products team
  76. Reorganization In 2009, one dev team became two Commercial products team Internal sites team
  77. Questions?

×