Musings on Architecture, Installment 1
There comes a time in the evolution of building a technology platform that you have to pause and look back where you’ve come from, before continuing on with the journey. As I think back to the formation of the Cisco Eos platform, it was a time of hard work and rapid growth.
The Cisco Media Solutions Group went from being a business unit with an idea, to truly taking form in 2007 when Cisco made three software acquisitions—Five Across, the assets of Tribe.net and the assets of Click.tv. From that day forward, we were charged with developing an innovative platform that could get media companies online in a simple, manageable way. That long journey started with the single though difficult step of uniting three independent companies and countless independent perspectives into a single team executing against a single vision.
As with any consolidation effort, tough decisions had to be made. One of the most important we faced was what development platform we were going to leverage. Our three teams had experience in just as many languages: Ruby on Rails, PHP, and Java – not to mention Adobe Flex and even a bit of C. After much debate, we chose to use Java for the back end, which includes the core Cisco Eos data and content components like blogs, discussions, and member profiles. And we chose PHP for the front end, the dynamic page-rendering environment that our users can customize for presentation to end consumers.
This decision didn’t come easy as we were tempted by the promise and fluidity of developing in Ruby on Rails. However, there were practical concerns that RoR could not scale. At the time, there was profound difficulty in simply finding developers with enough RoR experience to build the type of complex platform we were designing. We expected our future customers would want an extensible platform and would value the use of tried and true web technologies.
Since those early days, we have worked hard to build the platform and we officially launched at CES in 2009. In the past two years, we’ve had 25 releases, added more than 40 consumer-facing modules and more than 700 enhancement and feature updates, and never regretted our lack of RoR.
How have our “old school” languages scaled? Very well considering what we’ve accomplished. We were able to convert Eos to the Cisco Unified Computing System and Data Center 3.0 architecture, enabling us to increase computing power 10X, reduce power consumption by 30 percent, and reduce data center space by 75 percent. We were also able to simplify the process of connecting to public cloud capabilities when they become available. Further, we’ve enabled extensions of the Cisco Eos social entertainment experience to other devices, including set-top boxes, Google Android and Apple iOS devices and tablets.
Our efforts have been successful so far because of a solid platform at core, operational experience from Cisco’s proven networking solutions, aggregated reporting, and the enabling of flexible site customizations.
Moving forward, our focus will be on rethinking our approach while preserving everything that is great about Cisco Eos. Specifically, we will provide greater operational control and choice for developers by expanding upon the current customization options.
For starters, we are in the process of creating a new Cisco Eos core by cleaving off parts of the current software stack (for example, the PHP web hosting and customization features). We are also working to “platform-ize” the remaining Eos core with more API interfaces and new SDK and app interfaces. Additionally, we are reconnecting the PHP web engine to the new series of endpoints.
These efforts are being made with specific desired end results in mind:
- Build upon our operational and data aggregation leadership by further innovating our SaaS offering.
- Develop a platform that supports a myriad of content in-points and effectively delivers the content to an unlimited number of endpoints.
- Expand the number of modules, types and amounts of content and distribution channels we can support by empowering partners and third-party application developers to build atop the platform.
While we have built a solid platform, we aren’t done. We are continually expanding our development team with talented developers. We are continuing to work with our customers to help define the next generation of the solution. And we need to make Cisco synonymous with innovative cloud-based software, not just hardware and networking.
While it’s fun to look back and see all that we have accomplished in the last three years, it’s even more exciting to look forward. And there’s always the possibility, through our increasing expandability, that we may connect the Eos core to a Ruby web platform (or Python, or Clojure, or Fancy). An architect can dream…Tags: