170 likes | 369 Views
PLONE SYMPOSIUM EAST 2010. PENN STATE MAY 27, 2010. Large-scale Knowledge Management Systems using Plone Technologies. Tom Moroz, Paul Everitt, Calvin Hendryx-Parker. OBJECTIVES OF TALK. Background Technical / Hosting Decisions Future. Open Society Institute.
E N D
PLONE SYMPOSIUM EAST 2010 PENN STATE MAY 27, 2010
Large-scale Knowledge Management Systems using Plone Technologies Tom Moroz, Paul Everitt, Calvin Hendryx-Parker
OBJECTIVES OF TALK • Background • Technical / Hosting Decisions • Future
Open Society Institute • 7 ‘core’ offices in U.S. and Europe • National Foundations in 32 countries • Program and grant giving activity in over 60 countries • >20 Program Areas / Initiatives
The Path to KARL 3.0: • August 2006 – Software development begins • May 2007 – KARL v1.0 beta release • January 2008 – official launch • November 2008 – KARL v2.0 release • June 2009 – KARL v3.0 release
Moving from Plone to BFG • Plone is great at what it does. Content management in a nice, general way. • What do you do when your project is outside of the sweet spot? • Further you need to extend Plone, the more you fight the framework. High developer frustration. • Using BFG, we were able to maintain programming paradigms familiar to Zope/Plone developers without using/fighting Plone.
The move from KARL 1 to KARL 2 • Entirely new UI built on top of Plone--very different from Plone's UI. • Much framework fighting. • Much integration with non-Plone technologies, aka Frankenplone. • Bad performance, poor reliability. • Difficult maintenance. • Difficult to provide something reasonable for non-OSI deployments.
Alternatives to Plone? • Zope2, primarily used by Plone, time tested. • Zope3, big, many dependencies, app developers encouraged to use CA. • Grok, an attempt to make Zope3 easier to use. • Django, nice, but full stack like Zope2. • Pylons/TG2, also nice but geared towards RDB/URL dispatch. • Several others, little traction, not Zope-like
BFG • In repoze namespace, but is not really repoze. • Like Zope, but much smaller, leaner. • Speed and simplicity: "Pay only for what you eat." If you don't need it, it's not there. If you do need it, it is easy to put in. • Documentation: An undocumented feature or API is a bug. • Testing: 100% test coverage. Untested code is broken code. • Collaborative culture: using and promoting non-Zope technologies when the are useful. • Easy to adopt for Zope developers. (Maybe non-Zope developers as well.)
BFG for KARL • BFG's goals aligned nearly perfectly with goals for KARL. • OSI wanted Plone, but not really. • Using BFG we were able to build the best KARL we could.
KARL Technology • Python • WSGI, WebOb, Paste Deploy, virtualenv, eggs, repoze.who, Supervisor, formish, TinyMCE, jQuery and jQuery UI, nose, twill, mod_wsgi • Zope • ZPT (Chameleon), traversal, views, security, ZODB/ZEO, catalog, component architecture (interfaces, adapters, utilities, ZCML), buildout
Lies, Damn Lies • 1,700+ unit tests, 8-10 seconds. • Startup time: <2 seconds • 50,000+ lines of code (including all tests) • 50-150 rps per core, fully dynamic and personalized, no caching • 1.4 Gb ZODB + 18 Gb blobs, 4,350 users, 903 communities, 100,500 documents • < 500MB RAM
KARL Project • 15 committers, 9 organizations • Launchpad: 708 total issues, 42 milestones • 20 open bugs • Hosting by Six Feet Up • Web Site: www.karlproject.org
Hosting • KARL 3 • Xen and CentOS • Fully Managed, Monitored
Recent & Future KARL Hosting • Moved to a new datacenter Q3 2009 • Hardware to improve search Q2 2010 • Disaster Recovery Support Q3 2010 • Online Realtime Backup Q3 2010
Partners • 3 partner organizations • Oxfam GB • Eurasia Foundation • Fahamu (Media NGO) • Ariadne (Human Rights Consortium) • Global Campaign for Education • Open Society Policy Center • Six Feet Up
The Path Forward..... • On-going software development • Development of a governance model to make available to both large and small organizations • The importance of ‘soft’ technology and methodologies