Interview with Mark Hinkle of Citrix
A cultural shift towards dynamic cloud environments
Mark Hinkle is on the forefront of all things open source and cloud. He is currently responsible for Citrix efforts around Apache CloudStack, Open Daylight, Xen Project, and XenServer. At the All Things Open Conference, Mark’s Crash Course In Cloud Computing will teach how to pragmatically adopt cloud practices and gain cloud value.
I grabbed a moment of Mark’s time to ask for his thoughts on cloud adoption, open source value, and cloud service maturity. Mark illuminates the seismic cultural shift towards dynamic cloud environments, lightweight container models, and re-usable service building blocks. He also describes how today’s IT environments and vendors strategies smartly incorporate open source goodness.
Your session, Crash Course In Cloud Computing, is tuned to help system administrators and IT generalists, who are "struggling with the benefits and migration path to a cloud computing environment." With the large amount of documentation resources, tools, and cloud services available, why do you think teams are struggling to understand a path into the cloud?
I think cloud (versus hosting) causes confusion because it’s a paradigm shift for the datacenter professional. To them it looks like the Wild West. Many of them were taught to value uptime above all else and to make changes in carefully planned maintenance windows, cloud culture is a bit different. We’ve hosted infrastructure forever but now that infrastructure can be much more dynamic and can be combined with services that are more innovative and easily consumable then in the past.
We used to strive for "five nines" uptime. Today the culture is shifting to agility and fast recovery from outages. This involves a higher degree of automation as well as expertise of the cloud operators in multiple disciplines including virtualization, storage, and networking. Also the benefits of greater agility are hard to measure. Some seem to dwell on the move from CAPEX to OPEX because those costs are easier to quantify. Though the real benefits in quicker time to value and the ability to adapt to changing needs.
Finally, I think the move to the cloud is proving to be a challenge for even the savviest specialists, as it often requires a greater understanding of the relationship of infrastructure. In contrast, the cloud generation seems to possess a wider (though not necessarily deeper) breadth of knowledge. This lack of expertise and cloud training is what I perceive to be the biggest inhibitor to cloud computing adoption.
You recently wrote an article entitled, No Longer Why Open Source, But How To Do Open Source. The article mostly targets how to be a part of the community and contribute. How many people using open source take the key tenant, "Adding more value than you capture" to heart? Are open source contributions healthily growing inline with usage?
The reality is that most users are just consumers of open source and do little to contribute. However, this tenant of "capture more value than you capture" is more applicable to those who chose to be participants. The ones that are more successful are developers who are trying to achieve some big goal other than to simply generate a profit. Great examples are Linus Torvalds wanting to run a Unix-like operating system on his PC or generous designers helping a 5-year old boy have a useful prosthesis for his birth abnormality.
Where I see open source failing is when the goal is only for companies to maximize profits and minimize costs without taking a broader view of their product. I am not naïve, companies exist to make a profit but they need to figure out how to maximize their leverage by participating in open source which involves creating a healthy project that extends farther than their own self interest. I often say those that miss the point are taking the Tom Sawyer, “Paint my fence” approach to opens source. The ones that benefit the most are those that take the Beautiful Mind/John
Nash (referring to his theories in game theory) where contributors act in both their own best self interest as well as the best interest of the community.
I can say that open source software development is definitely growing. According to Black Duck and North Bridge Partners Michael Skok who produced the 2014 Future of Open Source report the growth of open source is picking up. Black Duck tracked 400,000 open source projects in 2007, and now they are tracking close to one million projects. They forecast that by the end of 2015 they will be tracking over 2 million projects—that is an incredible growth curve.
A commercial open source pioneer recently told me that vendors can not make money with a straight open source strategy (except for maybe Red Hat), and that delivering cloud services is a viable monetization path. Should open source vendors be delivering cloud services powered by open source rather than directly delivering open source bits?
I flippantly like to say, "I make a living selling free software."
Historically there was thinking that there were open source business models. That’s wrong. Open source is a great software development model but not a business model. Many entrepreneurs (including myself), companies, and venture capitalists in my opinion have messed up trying to offer incremental features on top of open source, this business model is called open core.
I don't think the key is to sell something via the cloud. The key is to sell something that doesn't become contentious with the open source project. For example, IBM contributes greatly to open source and the Java ecosystem. They sell products that compliment open source projects but they make money on services and other clearly proprietary goods (e.g IBM WebSphere). Citrix does the same. We have a whole catalog of products that we would gladly sell that are complimentary to the open source projects we support like Apache CloudStack and Xen Project.
The value of open source is it provides leverage to the companies as it can reduce research and develop costs, OPEX and/or customer acquisition cost. IT doesn’t matter if these companies sell a complimentary product that’s cloud-based, hardware, services, proprietary, or something else. What matters is that they sell a product that has value to their customers. If they do open source “correctly” they get benefits on multiple levels. Extreme examples include Google and Netflix who use, contribute, and help create open source but sell something that is very valuable yet not in competition with the open source projects they contribute to.
Is open source mandatory for cloud solutions? How far up or down in the stack should open source reach?
I don’t think it’s mandatory, but I do think it’s important to have open source choices completely up and down the stack. Google and Amazon already use open heavily for two of the largest public clouds. Microsoft is unique as the owner of a popular server operating system and they offer a proprietary stack well tuned for their apps.
I think that the key is having choice. Linux Torvalds famously said, "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." He was being ironic... I think. What is important is that we have choice: open or proprietary. Open source especially in the infrastructure layer makes a lot of sense in virtualization, cloud orchestration, management tools, and even hardware (Open Compute for example). I also think we’ll see more and more open source up the stack in closer to the application in the upcoming years.
We’re starting to see cloud deployments rapidly shifting towards a lightweight container model. How do you see the tension and synergy between a hypervisor like the Xen Project and cloudy containers?
I believe that since Docker has gained popularity people think containers are the next big thing (I think they are), but that doesn’t mitigate the need for the last big thing (full virtualization). The idea isn’t that new BSD Jails and Solaris Zones have been around for a very long time. I think that there’s a role for full virtualization and containers. Containers are excellent solutions for Linux applications designed to scale out on the cloud. For example, you can’t run Windows in Linux containers, and there’s a huge Windows application ecosystem. Beyond that there are many use cases where containers are not the ideal and the hypervisor is a better choice and vice-versa. I think you’ll see people running containers on Xen and other hypervisors for various reasons from security, portability, and the desire to have infrastructure that’s consistent for virtualized guest operating systems and applications.
How does Xen fit into an OpenStack or CloudStack environment?
Xen Project is the foundation for the Citrix free and open source XenServer. I think that technology is an excellent choice for OpenStack or CloudStack. Virtualization forms the foundation for Microsoft, Google, and Amazon. I don’t think it’s a coincidence that the largest public cloud of the three runs on Xen technology.
Developers have been slow to use pre-built, opinionated, and prescriptive application platforms (e.g. Google AppEngine, dotCloud, or CloudBees). Will we ever convince the DevOps people to use standardized application platform services? How long before team adoption and usage of Platform as a Service (PaaS) reaches infrastructure as a service levels?
I think that the Platform-as-a-Service (PaaS) has a long way to go to delivery on the vision of abstracted infrastructure that appeals to vendors. I also think that PaaS is a lot better in theory than in practice. I think applications are getting more distributed and complex. The advent of Docker, Kubernetes, and distributed applications frameworks like Apache Mesos are making a big impact on the next generation of PaaS, and I think it will probably evolve from what we see in the pioneering PaaS platforms.
User clouds create phenomenal business benefit, but also complicate the IT environment. What open source cloud building blocks exist to simplify incorporating new user clouds (Software as a Service applications) into the IT portfolio?
I don’t think cloud necessary complicates the IT environment any more than it already is, but it does speed things up. Cloud computing can help IT consolidate their environment though I think building a cloud is somewhat different than maintaining tradition IT. There is a plethora of building blocks available to build cloud-computing infrastructure that makes sense for a wide range of needs. To many to mention here but you can see a number of my talks with the complete list on Slideshare. Though the industry moves fast and for All Things Open you’ll probably see a few new developments.
The problem isn’t scarcity of building blocks it’s sifting through all the potential building blocks to build a cloud solution that meets their needs. I think the biggest mistake is that most people who build a cloud think that they just want to duplicate Amazon. I think that’s where they go wrong. I think they have to understand what their use cases are and build a cloud that meets those use cases present and future. Amazon is building a mass-market cloud with an incredible feature set that appeals to a broad audience. The key is to zero in on the features that you need for your use cases e.g. reducing network latency, security specific to your network, location close to end-users than Amazon, Google or the like could provide.