CloudPortalSpecs

Revision 6 as of 2010-08-03 14:29:15

Clear message

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

The Ubuntu Cloud Portal will feature the following main menu

  • Home: Lists all the latest news, blogs, articles. Pointers to newcomers. Latest tweets
  • Documentation:
    • UEC Book: Logical grouping of UEC information, providing a clear documentation path
    • FAQs: UEC FAQs
  • Community
    • Articles: Latest community contributions
    • Videos: Tutorials
    • Tools: Scripts, Puppet recipes, maybe custom AMIs
  • Support
    • Forum: Community Forum cloud sub-forum
    • Mailing Lists: Subscribe to mailing lists
    • IRC Chat: Starts a web chat to the Ubuntu cloud channel
  • Developer
    • Get Started: How to get involved with UEC
    • Projects: All developer projects related to UEC

A preview mockup of the front page

alt text

Design Details

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 Django, 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

  • 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.

    • 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
      • Side Bar - Twitter widget showing all the latest news relating to UEC, cloud computing and related technologies
      • Side Bar - Tag-Cloud quickly reaching content categorized by tags
  • Documentation
    • 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

  • Community

    • 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

    • 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.

Summary

The Ubuntu Cloud Portal will be created serving the following needs

  • Provide an aggregator service collecting all the latest news, buzz, blogs, tweets...etc around Cloud Computing especially UEC
  • Provide introductory material (tutorials, videos) for community members new to UEC
  • Provide detailed UEC product documentation leveraging the wiki content
  • Provide access to forums enabling users to ask questions. Ideally forums should reflect on the developers' mailing lists
  • 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 fully working
    • 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


CategorySpec