Open Source For You

“There are very few roadblocks for developers who use Cloud Foundry”

In the list of available options to ease cloud developments for developers and DevOps, Cloud Foundry comes out on top. The platform helps organisations advance their presence without transforming their existing infrastructure. But what has influenced the community to form a non-profit organisational model called the Cloud Foundry Foundation, which includes members like Cisco, Dell EMC, IBM, Google and Microsoft, among various other IT giants? Jagmeet Singh of OSFY speaks with Chip Childers, co-founder, Cloud Foundry Foundation, to find an answer to this question. Childers is also the chief technology officer of the Cloud Foundry platform and is an active member of the Apache Software Foundation. Edited excerpts…

Q What is the ultimate aim of the Cloud Foundry Foundation?
The Cloud Foundry Foundation exists to steward the massive open source development efforts that have built up Cloud Foundry open source software, as well as to enable its adoption globally. We don’t do this for the sake of the software itself, but with the goal of helping organisations around the world become much more effective and strategic in their use of technology. The Cloud Foundry platform is the foundational technology upon which over half of the Fortune 500 firms are digitally transforming themselves.

Q How is the Cloud Foundry platform different from OpenStack?
Cloud Foundry and OpenStack solve completely different problems. OpenStack projects are primarily about infrastructure automation, while Cloud Foundry is an application platform that can deploy itself onto any infrastructure, including OpenStack itself. Other infrastructure options on top of which one can run Cloud Foundry include Amazon Web Services, IBM Cloud, Google Cloud Platform, Microsoft Azure, RackHD, VMware vSphere, VMware Photon Platform and other options supported by the community.

Cloud Foundry does not just assume that its underlying infrastructure can be provisioned and managed by an API. It actually relies on that fact, so that the Cloud Foundry development community can focus on what application developers need out of an application-centric, multi-cloud platform.

Q In what way does Cloud Foundry ease working with cloud applications for DevOps?
The Cloud Foundry architecture is actually two different ‘platforms’. At the lowest level is Cloud Foundry BOSH, which is responsible for infrastructure abstraction/automation, distributed system release management and platform health management. Above that is the Cloud Foundry Runtime, which is focused on serving the application developers’ needs. The two layers work together to provide a highly automated operational experience, very frequently achieving operator-to- application ratios of 1:1000.

Q How does the container-based platform make application development easy for developers?
The design and evolution of the Cloud Foundry Runtime platform is highly focused on the DX (developer experience). While the Cloud Foundry Runtime does make use of containers within the architecture (in fact, Cloud Foundry’s use of container technology predates Docker by years), these are not the focus of a developer’s experience with the platform. What makes the Cloud Foundry Runtime so powerful for a developer is its ease of use. Simply ‘cf push’ your code into the system and let it handle the details of creating, managing and maintaining containers. Similarly, the access to various backing services — like the database, message queues, cache clusters and legacy system APIs — is designed to be exceptionally easy for developers. Overall, Cloud Foundry makes application development easier by eliminating a massive amount of the friction that is typically generated when shipping the code to production.

Q What are the major roadblocks currently faced when developing container-based applications using Cloud Foundry?
There are very few roadblocks for developers who use Cloud Foundry, but there are certainly areas where developers need to adjust older ways of thinking about how to best design the architecture of an application. The best architecture for an application being deployed to Cloud Foundry can be described as ‘microservices’, including choices like each service being independently versioned and deployed. While the microservices architecture may be new for a developer, it is certainly not a roadblock. In fact, even without fully embracing the microservices architecture, a developer can get significant value from deploying to the Cloud Foundry Runtime.

Q Microsoft recently joined the Cloud Foundry Foundation, while Google has been on board since a long time. By when can you expect Amazon to become a key member of the community?
We think that the community and Amazon can benefit greatly by the latter becoming a part of Cloud Foundry. That said, it is important to note that Amazon Web Services (AWS) is already very well integrated into the Cloud Foundry platform, and is frequently being used as the underlying Infrastructure-as-a-Service (IaaS) that Cloud Foundry is deployed on.

Q How do you view Microsoft’s decision on joining the non-profit organisation?
Microsoft has long been a member of the Cloud Foundry community, so the decision to join the Cloud Foundry Foundation represents a formalisation of its corporate support for the project. We are very happy that the company has chosen to take this step, and we are already starting to see the impact of this move on the project through increased engagement.

Q Is there any specific plan to encourage IT decision makers at enterprises to deploy Microsoft’s Azure?
The Cloud Foundry Foundation is a vendor-neutral industry association. Therefore, we do not recommend any specific vendor over another. Our goal is to help all vendors integrate well into the Cloud Foundry software, community and market for the purpose of ensuring that the users and customers have a wide range of options for any particular service they may need, including infrastructure, databases, professional services and training.

Q As VMware originally conceived the Cloud Foundry platform back in 2009, how actively does the company now participate in the community?
Cloud Foundry was initially created at VMware, but the platform was transferred to Pivotal Software when it was spun out of VMware and EMC. When the Cloud Foundry Foundation was formed to support the expansion of the ecosystem and contributing community, VMware was a founding Platinum member. VMware remains heavily engaged in the Cloud Foundry Foundation in many ways, from providing engineering talent within the projects to supporting many of our other initiatives. It is a key member of the community.

Q What are the key points an enterprise needs to consider before opting for a cloud solution?
There are two key areas for consideration, based on how I categorise the various services offered by each of the leading cloud vendors, including AWS, Google Cloud and Microsoft. These are commodity infrastructure services and differentiating services.

The infrastructure services include virtual machines, storage volumes, network capabilities and even undifferentiated database services. These are the services that are relatively similar across cloud providers. Therefore, you should evaluate them on the basis of a straightforward price versus performance trade-off. Performance criteria are not limited to actual computational performance but also include geographic location (when it matters for latency or regulatory reasons), availability guarantees, billing granularity and other relevant attributes.
The harder decision is how, when and where to make use of the differentiating service capabilities. These are the services that are unique to each cloud provider, including differentiated machine learning, IoT (Internet of Things) device management, Big Data and other more specific functionality. Selecting to use these types of services can significantly speed up the development of your overall application architecture, but they come with the potential downside of forcing a long-term cloud provider selection based on capability.

Enterprise customers need to find the right balance between these considerations. But they first need to look at what their actual needs are—if you are deploying a modern application or container platform on top of the cloud providers’ infrastructure services, you are likely to want to focus on the price versus performance balance as a primary decision point. Then you can cautiously decide to use the differentiating services.

Also, it is not necessarily a decision of which single cloud provider you will use. If your organisation has either a sufficiently advanced operations team or a sufficiently complex set of requirements, you can choose to use multiple providers for what they are best fit for.

Q Do you believe a containerised solution like Cloud Foundry is vital for enterprises moving towards digital transformation?
I believe that digital transformation is fundamentally about changing the nature of an organisation to more readily embrace the use of software (and technology, in general) as a strategic asset. It’s a fundamental shift in thinking from IT as a ‘cost centre’ to IT as a business driver. What matters the most is how an organisation structures its efforts, and how it makes the shift to a product-centric mindset to manage its technology projects.

That said, Cloud Foundry is increasingly playing a major role as the platform on which organisations restructure their efforts. In many ways, it serves as a ‘forcing-function’ to help inspire the changes required in an organisation outside of the platform itself. When you take away the technical obstacles to delivering software quickly, it becomes very obvious where the more systemic issues are in your organisation. This is an opportunity.

Q What’s your opinion on the concept of serverless computing in the enterprise space?
I prefer the term ‘event driven’ or ‘functions-as-a-service’ because the notion of ‘serverless’ is either completely false or not descriptive enough. There is always a server, or more likely many servers, as a part of a compute service. Capabilities like AWS Lamba are better described as ‘event driven’ platforms.

We are early in the evolution and adoption of this developer abstraction. All the large-scale cloud providers are offering event-driven services, like AWS’s Lambda. Nevertheless, any new abstraction that is going to bloom in the market needs to have a very active period of discovery by early adopters to drive the creation of the programming frameworks and best practices that are necessary, before it can truly take off within the enterprise context. I believe we are in the early stages of that necessary ‘Cambrian explosion’.

Q Is there any plan to expand Cloud Foundry into that model of ‘event-driven’ computing?
It is quite likely. As with all community driven open source projects, our plans emerge from the collective ideas and actions of our technical community. This makes it impossible to say with certainty what will emerge, outside of the documented and agreed upon roadmaps. However, there have been several proof-of-concepts that have demonstrated how the Cloud Foundry Runtime is well prepared to extend itself into that abstraction type.

Q Lastly, how do you foresee the mix of containers and the cloud?
Containers are, without a doubt, growing in usage. They are being used locally on developer machines, within corporate data centres and within public cloud providers.

The public cloud, on the other hand, is undergoing a massive wave of adoption at the moment. This is not just ‘infrastructure services’. Public clouds are offering services that span infrastructure offerings, Platform-as-a-Service, Functions-as-a-Service and Software-as-a-Service.