If your next software development project is going to be successful, be it a simple Java EE deployment or a full-scale role out of a private cloud initiative based on OpenStack, a tremendous amount of code has to be written. The sad state of affairs enterprise organizations need to reckon with is that there is no way all that code can be written by the internal development team.
So what's an organization to do? According to Jim Zemlin, executive director of the Linux Foundation, successful organizations reach out to the open source community. "There is too much software to be written for any one organization to write this software on its own," Zemlin said. "Open source allows businesses to focus on only the most important aspects of their technology stacks; only the things that truly differentiate the organization."
Dr. Stephan Lenz, IT infrastructure manager at BMW Group, has firsthand experience with the benefits both virtualization and open source software can bring to an organization. BMW was far ahead of the curve in recognizing the benefits of a highly virtualized, containerized type of infrastructure. But by about 2011, because changes to traditional development and deployment processes were providing only marginal improvements, the company was looking for new ways to build efficiencies into its IT stack. "We could not become more cost efficient with conventional methods, and we would lose our competitive advantage if we did not do something new," Lenz said. "The new thing that we saw on the market was cloud."
The dangers of in-house development
In-house projects were developed to provide a virtualized, cloud-based system that made BMW's global data centers more productive. "In about 2011, we developed a piece of software internally and we called it our own internal cloud," Lenz said. "It worked perfectly. We got new efficiencies. Everything was great. And then we ran into trouble. Things wouldn't always go like we thought."
Of course, BMW is an automobile manufacturer and not in the business of data center development. It's more than understandable that their internally built systems simply couldn't deal with every single corner case that arose. And that's where OpenStack came in. After some due diligence and evaluation, BMW realized that this open source piece of software could perform many of the key virtualization and automation tasks they needed, while at the same time removing the need for every line of code to be developed, managed, tested and maintained in-house.
Dr. Stephan LenzIT infrastructure manager at BMW Group
The benefits of open source initiatives
The two big advantages OpenStack provided BMW? "First, we have an API and a data model to describe cloud and virtual instances that will become industry standards," Lenz said. This allows large organizations like BMW to go forward with confidence, so that development will be stable and tool chains and code will not have to change as the industry evolves.
And the second key benefit is the fact that OpenStack is open source and free. "Nobody earns money on the growth of our company. Nobody comes with unexpected license fees, and we have experienced that a lot."
The BMW experience underscores the reality that in many cases, turning to open source initiatives can provide significant benefits to an organization and help unburden IT departments from having to maintain internal software projects that can rival even the biggest Apache projects in terms of size and complexity. There is always a need for customization, but blending a good deal of open source software with a temperate mix of internal development is what most organizations are discovering to be the magic ratio.
Working toward the golden ratio
Jim Zemlin promotes an 80/20 rule, which suggests that the most successful organizations pull 80% of their software from open source projects, while customizing the last 20% to meet the specific needs of their business. Of course, if an organization is pulling 80% of its code from external sources like Apache, Red Hat, Linux or the Free Software Foundation, that organization needs to take an active role in managing, directing and steering those organizations. Google, HP and NEC all have full-time employees who manage the use and development of the open source software utilized within their organizations.
The vast array of projects, and the many different ways open source software can be integrated into an existing project or corporate roadmap, requires a new approach to developing and adopting software when compared to a time where the majority of software was developed in-house. "Now that open source software has become the dominant form of software development, it's important to understand how to pick the right projects, how to understand the IP frameworks that govern those projects, how to understand the social coding styles within those projects and how to understand integrating, collecting that code, improving it, making changes and giving those changes back to the central project," Zemlin said.
The fact is, organizations are learning to do more with less. That is, write less code and do more with open source initiatives. But that doesn't mean the companies consuming open source software should be users without giving back. By using, integrating and improving the code they use -- and subsequently giving those improvements back to the original project -- organizations can give and take, leveraging free software while being an integral part of the continuous improvement loop that ensures that projects like OpenStack will grow and evolve into better and increasingly more useful products.