ProductsDesktop Server Red Hat Enterprise Linux OpenStack Platform For IBM POWER For IBM System z For SAP Business Applications Red Hat Satellite Management For Scientific ComputingExtended Update Support High Availability High Performance Network Load Balancer Resilient Storage Scalable File System Smart Management Extended Lifecycle SupportAccelerate Automate Integrate Red Hat JBoss Developer Studio Portfolio Edition Web Framework Kit Application Platform Web Server Data Grid Portal Fuse Red Hat JBoss A-MQ SOA Platform BRMS Data Services Platform JBoss Operations Network JBoss Community or JBoss enterprise
SolutionsWhy Red Hat Why open hybrid cloud? The new IT Public cloud Cloud resource library Private cloud Infrastructure-as-a-Service (IaaS) Platform-as-a-Service (PaaS) Cloud applications and workloadsSolaris to Red Hat Enterprise Linux Migration overview Migrate from your UNIX platform How to migrate to Red Hat Enterprise Linux Upgrade to the latest Red Hat Enterprise Linux release JBoss Enterprise Middleware Benefits of migrating to Red Hat Enterprise Linux Migration services Start a conversation with Red Hat
TrainingClassroom training Red Hat Online Learning Virtual training Remote classroom training On-site team training Online Learning LabsPopular and new courses Red Hat JBoss Administration curriculum Core System Administration curriculum Red Hat JBoss Middleware Development curriculum Advanced System Administration curriculum Linux Development curriculum Cloud Computing, Virtualization, and Storage curriculum
ConsultingSOA and integration Business process management Cloud and Virtualization Custom Software Development Enterprise Data and Storage Systems management Migrations
Open Clouds: Beyond Open Code
May 24, 2012
by: Cloud Computing Team
Open source is a key ingredient in open clouds. But openness in a cloud requires more than just code that's under an open source license. In this post, we examine three open characteristics that are closely related to open source but don't automatically flow from it.
Historically, there's probably been too much attention paid to the details of open source licenses as opposed to the communities associated with bringing the code into being and using it. Certainly, licenses are important for defending against legal threats and in determining how an open source project can be combined with other projects. But without a viable, independent community, it's hard for an open cloud to realize the collaborative potential of open source. Delivering maximum innovation means having the right structures and organization in place to fully leverage the open source development model.
There's no single approach to fostering communities. The best approach in any given case to engaging with and governing a community will depend on the nature of the project. Who is contributing? What are the project's goals? What business or licensing constraints are there? These and many other factors will affect governance structure, as well as copyright, trademark and licensing decisions.
Red Hat has a long history of engaging with, fostering and contributing to many different types of communities. It brings this experience to the wide variety of upstream cloud projects, both those in which it plays a significant management role and those in which its involvement is primarily limited to contributing code.
It's also important for an open cloud to be based on open standards, or protocols and formats that are moving toward standardization. This is not a statement about needing to have “official” standards blessed by standards organizations. It's reasonable to expect that those will come about over time with various degrees of success and acceptance. But the history of technology standardization is one of trailing innovation, not leading it.
More important, especially in the near term, are approaches to interoperability that aren't under the control of individual vendors and that aren't tied to specific platforms. This frees protocols and formats from the constraints and limitations that come from being tied to a single vendor's business approach and product roadmap—even if those protocols or formats are nominally standards. The office document format disputes of last decade provide an illustrative example.
An important side effect of this approach is that it allows the API specification to evolve beyond implementation constraints. This creates the opportunity for communities and organizations to develop variants that meet their individual technical and commercial requirements. Perhaps one community values a feature-rich implementation, while another wants something that is simple—but lightning fast. If an API is forced to be in lockstep with one specific implementation of that API, only one set of tradeoffs are possible. Even if those tradeoffs are made out in the open as part of a process in which all stakeholders have a say, a singular result has to be arrived at. (Or, worse, the implementation ends up catering to so many parties that it ultimately doesn't satisfy anyone.)
If the specification and implementation are independent, on the other hand, there's a lot more flexibility to tailor code to the needs of different constituencies. It also enables and even encourages competing implementations, helping to push forward innovation. A good example of separating specification and implementation is the AMQP messaging protocol, an open standard for high-performance messaging that was initially driven by end users in the financial industry. It has since become the de facto standard in that industry and is implemented in commercially supported products from Red Hat (Red Hat Enterprise MRG Messaging) and others.
Open clouds also have to give you the freedom to use IP. Permission to use intellectual property, like copyrights and patents, must be granted in ways that make the technology open and accessible to the user. So-called “de facto standards,” which are often “standards” only insofar as they are promoted by a large vendor, can fail this test.
An open cloud has to be open across multiple dimensions. It has to be open source and—as we've discussed here—it needs to be associated with a viable and independent community; it has to offer the freedom to use IP; and it must be based on open standards.
In our final post of this open cloud-focused series, we'll take a deeper look at the three remaining essential characteristics of an open cloud: deployable on the infrastructure of your choice, an open API that's pluggable and extensible and enables portability across heterogeneous clouds.