ubuntu迁移到_为什么Ubuntu开发人员门户迁移到DjangoCMS

ubuntu迁移到

多年来,Canonical使用了各种内容管理系统,包括DrupalZope ,并且我们的许多网站都在WordPress上运行; 实际上,许多人仍然这样做。 我们的开发人员门户网站就是这些标准WordPress实例之一,它对于一个流量不大的简单网站来说已经足够好了,但是我们开始将其淘汰。 Ubuntu电话项目的启动以及用于应用程序开发的随附SDK,意味着该站点将开始引起更多关注(来自不同的受众),并且需要做的工作比现在更多。

过去,在WordPress上构建新功能一直很困难,因此我们大多坚持使用香草安装的软件。 这种方法已不再适用。 我们有太多我们想做的事情我们根本做不到。 当我们想添加API文档时,我们最终基于Django构建了一个全新的网站来完成此工作,并且完全绕开了WordPress网站。

此外,我们对网站的可用性提出了所有新要求。 高可用性(HA)我们知道该怎么做,但这意味着从单个服务器实例迁移到云中,尤其是迁移到我们的私有OpenStack云中。 为了有效地为中国用户提供服务,我们还必须在中国境内提供本地缓存服务器。 这两个方面都将需要对支持该站点的基础架构进行彻底的更改。

最后,在所有新技术要求中,有一项是社会要求。 我们正在与魅族在中国推出第二款手机,他们希望拥有针对和支持中国用户的应用。 为实现这一目标,我们将与中国移动合作举办应用程序开发人员竞赛和一系列研讨会。 这意味着我们必须使整个网站除中文之外还提供中文,这是WordPress无法做到的。 因此,我们开始寻找替代方案。

CMS选项

关于开源内容管理,有很多选择,并且我们研究了尽可能多的选择。 每个人都有其优点和缺点,并且介于简单性和功能之间。 我们考虑了所有内容,从静态网站生成器到重新编写新内容,然后再返回。 尽管没有完美的解决方案,但我们发现DjangoCMS在其他方面脱颖而出。

WordPress是我们进行功能比较的基准,而DjangoCMS提供了几乎所有相同的功能。 DjangoCMS可以轻松管理页面内容和导航,用户和组管理,WYSIWYG编辑器(使用djangocms_text_ckeditor时)和博客系统(与Zinnia配对)。 它还提供了WordPress没有的功能。 首先是国际化支持,DjangoCMS提供了开箱即用的页面内容和导航功能。 使用Django还意味着我们可以使用首选的数据库PostgreSQL代替MySQL 。 DjangoCMS甚至提供了更广泛的权限系统,访问控制将允许不同的组管理站点的不​​同部分。

决定基于Django的选项对我们来说特别合适,因为Canonical在使用Django和Python方面积累了大量的知识和经验,远远超过了使用WordPress和PHP的知识和经验。 我们甚至已有针对Django的模板系统的Web主题,以及django_openid_auth ,这使我们可以将Ubuntu SSO用于用户和组身份验证。 我们的系统管理员也非常熟悉将基于Django的网站部署到 OpenStack的。

尽管DjangoCMS具有许多优点,但它并不是开箱即用的完美解决方案,我们必须进行更改以使其按需要的方式工作。 例如,默认的文本插件将清除您的内容,因此,如果您尝试在WYSIWYG支持的范围之外添加原始HTML,则会将标签<>转换为&lt;。 &gt; 代替。 值得庆幸的是,DjangoCMS支持添加自定义插件,并创建RawHTML插件类型以在我们不需要太多工作时使用。 CMS还要求我们为编辑级用户设置一些其他权限,这些权限是从Ubuntu SSO登录时未设置的,因此我们必须向django_openid_auth添加一些回调以授予这些权限。

我们尚未克服的一件事是图片插件缺少调整大小的选项,但是到目前为止,这仅造成了较小的不便。 建立在Django管理基础之上的管理界面在可用性方面也有很多不足之处,尤其是对于那些习惯使用WordPress更加精细的管理页面的用户而言。 但是内联页面编辑功能意味着我们不必经常进入管理员。

事实证明,使用DjangoCMS正确完成高可用性要容易得多。 我们知道我们将在OpenStack云上运行它的多个实例,因此我们需要它们全部提供相同版本的媒体文件。 默认情况下,Django将静态文件和上载的媒体都存储在本地文件系统中,但这意味着为页面上载的图像仅存在于一个前端实例中。 幸运的是,Django具有可配置的文件存储后端,并且使用django-swiftstorage作为后盾,让我们对静态文件和上载文件使用OpenStack的Swift(OpenStack的分布式对象存储服务,类似于Amazon S3)。 最重要的是,DjangoCMS插件和Zinnia博客引擎都可以使用它,就像魔术一样。

在我们将所有部分组合在一起,调整配置并进行了一些代码更改之后,DjangoCMS替代了我们以前的WordPress系统。 部署和过渡顺利进行,没有任何重大问题,我们很快就能够转向使用新的自定义代码扩展站点的功能。 我们已经添加了一个webapp生成器表单,该表单可为Ubuntu手机构建现成的应用程序包。 最近,我们将单独的API文档网站合并回了主站点,这又将它们带回了一个屋顶,并且顺便说一句,通过利用Swift存储空间上传嵌入式图像,API文档变得更加有用。

事实证明,DjangoCMS是简单性,灵活性和强大功能的最佳平衡。 由于是开源的,高度可配置的,并且建立在精心设计的平台之上,因此DjangoCMS使我们易于采用和扩展。 DjangoCMS可以在传统服务器实例上本地运行以进行开发,也可以与OpenStack和Juju一起大规模部署。 最重要的是,整个网站(包括特定于developer.ubuntu.com的部分)都是开源的,可用于社区贡献。

公开赛
不育系

本文是Robin Muilwijk协调的“开放式CMS”专栏的一部分。 分享有关使用开源内容管理系统(CMS)和诸如Drupal,Joomla,Plone,WordPress等平台的故事。

翻译自: https://opensource.com/business/15/6/why-ubuntu-developer-portal-moved-djangocms

ubuntu迁移到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值