Benjamin Franklin's early cloud deployment experiments

Our last article of this series was focusing on the requirement to not only support the server side in a Content Management Platform. This article will focus on another requirement, certainly as important in today's IT landscape: having the ability to run on all environments, including the Cloud.

Running Anywhere, Including the Cloud

Traditional enterprise software was designed to run on premise, and still today, a large share of ECM solutions are running on premise, managed by internal IT operations. In this scenario, it is important to leverage standard middleware. For example, in terms of Java technology, it should be possible to install the entire solution on a standard Java Application Servers such as the lean Apache Tomcat servlet engine, JBoss application servers or other standard infrastructure without requesting additional specialized components to meet the requirements of the ECM or its supporting components. The same considerations are important regarding the underlying database. “Release where you want and how you want” should be the motto. This enables companies to achieve better ROI by allowing them to share and leverage their existing investments in a single uniform stack.

Traditional solutions and platforms often fail in this area. Many require specific setups, specific systems and in the end, almost dedicated maintenance and operational processes that result in additional costs for organizations.

Beyond traditional on-premise environments, cloud computing has brought a large range of opportunities and promises. Cloud computing has democratized technology for many organizations. Instead of hiring specialized staff and making large infrastructure and software investments, organizations can obtain the same capabilities for a low start-up fee and a monthly or usage-based subscription fee.

Cloud-based platforms allow architects to design sophisticated, reliable, and highly available enterprise content solutions without concern for:

  • Installation dependencies

  • Computing storage capacities

  • Upgrade paths

  • Software configurations

  • Hardware investments

  • Future scalability

that could constrain architecture and design decisions. Cloud computing is usually segmented into the following layers:

  • Infrastructure-as-a-Service (IaaS): IaaS is the lowest level of abstraction in the cloud technology stack. IaaS provides operating system support, storage and processing. Vendors in this sector include Windows Azure and Amazon EC2.

  • Platform-as-a-Service (PaaS): PaaS is essentially the middleware of the cloud. It is more abstract than the IaaS layer and provides components, an environment and frameworks for building higher-level applications. Vendors in this space include Heroku and CloudBees.

  • Software-as-a-Service (SaaS): SaaS is usually the highest level of the cloud stack and includes complete application solutions designed to be leveraged by end users such as web mail and Google Apps.

Forrester Research illustrates the cloud taxonomy as:

Cloud Computing Technology Cloud Computing Taxonomy (source: Forrester Research Inc.)

Although SaaS is currently the most prolific use for cloud computing, PaaS adoption is growing; it is estimated that the market will grow to 11.91 billion in the next decade (Reid & Kisker, 2011), driven by organizations seeking to reduce technology costs while simultaneously improving services.

ECM technology, like almost every other technology, has been impacted by cloud computing. However, it should not be assumed that ECM solutions can seamlessly transition to the cloud. Many ECM tools have a number of characteristics that make utilization in a cloud difficult, if not impossible. For example, many ECM vendors have built their solutions through acquisition or independent product development cycles that don’t share a common architecture and have not (and may never) standardize environmental requirements, resulting in a tool with a dizzying number of external dependencies that cannot be supported in most standardized cloud environments.

The first thoughts of ECM in the cloud may point to SaaS, While this is a valid option, the reality is that an ECM platform must enable use of all layers of the cloud stack:

  • IaaS: Allow organizations that are already taking advantage of hosted infrastructure to continue to use it without requiring specialized environment configurations that make cloud hosting impractical.

  • PaaS: Leverage the fantastic promises of the approach, as it’s all about delivering frameworks and components that can be customized, but abstracting from the complexity of the lower infrastructure level – a very good match for the modern ECM platform, as depicted before.

  • SaaS: A significant portion of users of the ECM platform will deliver their applications in this manner, asking for all the technical requirements that it implies:

    • Elastic resource allocation

    • Multi-tenancy

    • Security and privacy

    • Monitoring of large scale implementations.

Beyond allowing all three approaches to cloud-computing, a good technical platform should make it easy to move from one mode to another, and also to switch between deployment options without significant effort, high cost or lengthy time to market.

When considering a new ECM technology, it is important to consider more than just a = “supports the cloud” check-box on an RFP. Cloud support is not a simple YES/NO question; cloud requirements and capabilities vary and should be examined in detail. It is not sufficient to rely on the shiny “Cloud based” marketing collateral.

Enhanced by Zemanta