Summary

This specification describes the Ubuntu cloud community portal

Rationale

Ubuntu Enterprise Cloud (UEC) is one of the leading open-source cloud computing software stacks. A lot of engineering effort is going into adding more features into UEC and innovating on top of it. The Ubuntu cloud community portal aims to be the central hub for all the community activities around UEC. The target is to create an easy path for the community to locate information related to UEC, as well as provide easy means for the community to be able to contribute back and engage in a developer path

Use Cases

Bob is following the media buzz around cloud computing. He wants to check out what Ubuntu has to offer. Google leads him to visit the Ubuntu cloud portal to locate introductory material and videos introducing what the Ubuntu Enterprise Cloud is all about

Kamal is a cloud expert. He installs UEC in his employer's data center. He faces error messages starting VMs. He would like to check the official documentation. He would also like to post to forums asking for help

Daniel works a lot with Ubuntu over EC2. He has written lots of scripts, puppet recipes and created custom AMIs to support easily launching a RoR site. He would like to share those scripts and AMIs with the community, along with a page describing how to use them. He visits the Ubnutu cloud portal, and creates a page describing his tools. He uploads his scripts and AMIs and links to them

Natacha is a developer who wants to create a GUI tool for controlling and interacting with UEC. She visits the Ubuntu Cloud Portal, reads the developer getting started section. Registers a new project and starts working. Her project shows up in the projects page on the portal

Design Details

Platform choice

This section will detail how each page is implemented and what data will be available on it. Regarding technology choice to build the portal, the competition was between wordpress as a CMS platform, versus a completely custom Django application. From one side, wordpress is top notch software that gets us 90% of where we want to be, very quickly. The community team has experience building wordpress sites, an Ubuntu theme exists, lots of plugins and a very large and active community exists around wordpress. All that makes wordpress a very good choice, however on the negative side, writing custom code in PHP is going to be problematic since the team's experience is with python. Django on the other hand is very attractive in that it provides a rapid development python based environment, perfect for our customization needs. However should we go with a pure Django solution, we would be reinventing lots of wheels, and the development effort would delay us significantly. As it stands the community team believes the best and fastest way to build this portal will be to use a mix of wordpress and custom django code working hand in hand. Most of the portal will leverage wordpress, while custom applications will be built using django. The following section will explain how each is implemented (especially true for custom applications) and what it should provide

Portal Page Details

Home
The home page is the landing page for the portal. It should be graphically rich and should deliver up to date information from around the web regarding UEC, cloud computing and related technologies. Here is a breakdown of contents

Contents

Main area - News Aggregator: Aggregating content from related "planet" style feeds. Presented as rolling news on the front page main area

Main area - Handpicked Content: The content editor for the portal is going to be able to publish certain handpicked content, blogs and articles from the web displaying on the front page's main area

Side Bar - Video Introductory to UEC will be placed in an eye catching location on the side bar. The target is to quickly engage newcomers into what this whole cloud thing is about, and what UEC can offer them

Side Bar - Featured articles: Quick links to top content (Articles, Videos ...etc) to quickly engage a newcomer

FAQ
A growing collection of Frequently Asked Questions about UEC, and related technologies at Ubuntu

UEC Book
The UEC Book aims to provide comprehensive documentation around the UEC product. While a lot of UEC documentation already exists on the Ubuntu wiki, it is not accessible with respect to newcomers. This is because of the existence of a large barrier for entry, that is newcomers who are new to the Ubuntu infrastructure will not know where to go to locate this information. Also, the current information needs to be organized in a logical book-like structure encompassing the tens of pages that provide complete coverage of UEC documentation. The Cloud Portal aims to provide a centralized location for the documentation needs in an easy to reach, central and eye pleasing manner. It is however crtically important that the documentation is not duplicated to avoid maintenance problems. The documentation should remain in the wiki where it's easy for the community and developers to update, yet it should be provided as well in the cloud portal. The proposal to acheive those two requirements is to write a custom django application on the main portal that connects to the Ubuntu wiki. Thus a user visiting the UEC Book page will hit the django code causing it to connect to the wiki requesting up-to-date information and rendering them back to the user using the cloud portal's theme. Connections to the wiki will potentially utilize the wiki's xml-rpc interface. Of course a caching layer will be implemented to avoid contacting the wiki too often. This mirroring approach will most likely be a phase-2 project. Initially, the content will be simply linked-to from the wiki

AMI Locator
AMI Locator is a custom tool that should help an end user running Ubuntu over EC2 locate the latest available AMIs according to criteria such as image architecture and availability region. This tool will be custom django code. It will consult the following files

Articles
This page includes technical articles and blog posts that have been written by the UEC community covering UEC or related technologies. The community will be able to comment on and rate these articles

Videos
The videos page links to various videos covering Cloud computing in general, UEC, Ubuntu over EC2. The videos will either be presentations/talks or screencasts demoing certain features or providing a tutorial

Tools
The tools page aims to be a place where UEC community members can share tools (scripts, puppet recipees, ensemble formulas, custom AMIs ...etc) along with documentation on how to use them. Community members will be able to upload, share, comment and rate content

Support

Forum
The Ubuntu forums are already a huge resource for community collaboration and support. Since we do not wish to reinvent Ubuntu forums, this page will redirect the user to the Ubuntu Cloud forums

Mailing Lists
Provide information on all mailing lists related to UEC, as well as how to subscribe to them. Lists to mention would include among others

Ubuntu-cloud: Mailing list concerned with building a cloud using the Ubuntu server and UEC technologies

IRC Chat
The IRC page embeds a web IRC widget that takes the user directly to an official Ubuntu Cloud channel. The name of the channel is yet to be decided

Developer

Get Started
The Get Started page aims to introduce to community members how to get involved with UEC from a developer prespective. How to help triage and fix bugs. How to register a new project that integrates with UEC and related technologies. Lists developer mailing lists and IRC rooms

Projects
The developer projects should list all developer oriented projects that focus on UEC and related technologies. This page will list APIs and development examples. Different SDKs as available. Any projects that have been started to integrate with, improve, or leverage UEC as well as how to contact and get involved with those projects.

Provide a way for community members to easily "Discuss" all topics aggregated from around the web. Threads will be created when users want to discuss an article/blog. The blog itself will receive a trackback

Provide a way for community to share their custom scripts, tools, puppet recipes and custom AMIs. Other community members should be able to label, rate, comment on those items

Rationale

This spec is being defined to

Attract, educate and engage community members who are new to UEC and cloud computing

Keep Ubuntu cloud community members up to date with all the latest information

Provide effective documentation and support for community members wanting to use UEC

Provide a path for community members to share scripts, tools and to be able to discuss the content made available through the portal

Implementation

Implementation Plan

The technology/tool to build the portal will be a mix of wordpress and django applications for any needed custom glue code

Implementation will be split into multiple phases. Phase one targetting maverick release will attempt to achieve the following items

Home page fully working

Documentation pages initial implementation. Content will be linked-to from the wiki. During phase-2, we may create the mirroring application as described above

Support pages fully working

Community pages limited implementation. It will be initially implemented as a page only the portal editor can edit. Community contributions will be sent to the editor in order to make it on that page

Developer pages limited implementation. It will be initially implemented as a page listing static data and pointers to already existing developer getting started information

Outstanding Issues

Investigate how to best integrate wordpress with custom django "applets"