Microsoft's Cloud Foundry Efforts on Azure
Many large enterprises are modernizing their businesses with Cloud Foundry, a PaaS environment that's become popular for DevOps, multi-platform runtimes, back-end services and multi-cloud configurations. Here's how it works.
- By Michael Otey
Cloud Foundry is rapidly emerging as a popular application runtime container development and orchestration environment for deploying Platform-as-a-Service (PaaS)-based workloads. Because it's now an established open source environment, large organizations are building, orchestrating and managing their modern applications on Cloud Foundry because it's considered ideal for multi-cloud environments.
Microsoft, which first started supporting Cloud Foundry two years ago, has steadily increased its commitment by adding deeper integration with back-end data sources and its decision to join the foundation that oversees the open source project. The announcement in June that Microsoft has joined the Cloud Foundry Foundation (CFF) as a gold sponsor signaled the company's commitment to the platform. Many large enterprises, such as Ford, Manulife, and Merrill, have modernized their business processes using Cloud Foundry in multiple development and cloud environments, including Microsoft Azure.
Cloud Foundry is popular with large enterprises because it's designed to:
- Simplify the development and deployment of cloud-based applications.
- Enable a cross-platform operational model that provides logging and metrics across multiple environments.
- Provide a consistent API for connecting stateless applications to stateful back-end services, notably databases and middleware.
It can run in a single tenant form where you can have dedicated resources or in multi-tenant scenarios where the infrastructure is shared by multiple customers. Given its roots, most on-premises Cloud Foundry implementations are currently hosted on VMware vSphere virtual machines (VMs). While it supports a wide variety of programming environments, including the Microsoft .NET Framework, its early appeal has been for those looking to modernize Java microservices.
Multi-Cloud Portability Factor
The key reason customers are building their DevOps, cloud orchestration and application runtimes on Cloud Foundry is because of its cross-cloud portability. More than half, or 53 percent, of Cloud Foundry application runtimes now run in multi-cloud environments, according to the "Cloud Foundry Application Runtime User Survey," a report by the CFF, which was published last month. Among those, 54 percent run on Amazon Web Services (AWS), 40 percent in VMware vSphere, 30 percent on Azure, 22 percent on OpenStack and 19 percent on Google Cloud Platform, according the survey, which can be downloaded (after providing an e-mail address) here.
As such, it's no wonder Microsoft has accelerated its support for Cloud Foundry in recent months. While supporting open source runtimes such as Cloud Foundry promotes distributing workloads across multiple clouds, hence the risk that customers could more easily move away from Azure, Microsoft has made clear that it realizes not embracing that capability would lead many organizations to remove Azure from consideration when deploying cloud workloads today. It also offers the benefit of opening the door to bringing in workloads from other clouds that are typically difficult, and in many cases impossible, to seamlessly bring over to Azure from other clouds.
Cloud Foundry Roots
Cloud Foundry originated in 2009 as a PaaS platform created by VMware to build cloud applications. It supports the full application development lifecycle, from initial development through testing, deployment and application management. Cloud Foundry uses a container-based architecture to create applications in multiple programming languages and it can run on a variety of different infrastructures and cloud providers. Organizations can deploy Cloud Foundry on their own internal infrastructure or it can be deployed on a cloud provider's infrastructure. Cloud Foundry is based on the Apache 2.0 open source license and it supports many different programming languages and frameworks, including Java, Node.js, Go, PHP, Python, Ruby, .NET Core and Staticfile. While it's primarily used for open source development, Cloud Foundry also supports traditional .NET applications for Windows.
The most recent additions to Microsoft's Cloud Foundry integration story came in June, in concert with its joining the CFF. Microsoft added Azure SQL Database (PostgreSQL and MySQL) and cloud broker support for SQL Database, Service Bus and Cosmos DB. The Cloud Foundry CLI is also now available in the Cloud Shell tools, designed to simplify Cloud Foundry management.
Seeing huge potential for Cloud Foundry when it began as a project nearly a decade ago, VMware spun it off as Pivotal Software Inc. in 2013 as a joint venture that included VMware, its parent EMC Corp. and General Electric. Today, Cloud Foundry is offered through several prominent certified providers, including IBM Corp., SAP and Pivotal (which is now a separate business that's part of Dell Technologies). Pivotal also contributed to the open source community with the creation of the CFF in 2015, which now has more than 70-member companies.
Pivotal Cloud Foundry on Azure
Pivotal Cloud Foundry (PCF) is available from the Azure Marketplace and it provides a single tenant form of Cloud Foundry that organizations can run inside of their own Azure subscriptions. PCF provides a comprehensive continuous delivery platform that's designed to accelerate application development and simplify ongoing management.
Using PCF on Azure enables organizations to leverage Microsoft's global reach for their Cloud Foundry applications. Azure provides 40 different regions that span six continents across the globe, as well as several different types of clouds. In addition to the public cloud, Azure also provides dedicated environments for government clouds, as well as sovereign clouds for China and Germany.
Azure provides a number of different integration points between Cloud Foundry and several underlying services, including:
- Azure Service Broker, which allows you to connect your stateless cloud application processes to stateful back-end services, including Azure SQL Database, Cosmos DB and others.
- Azure AD for Cloud Foundry identity management.
- The Cloud Foundry CLI available in the Cloud Shell, which enables command-line management.
- The Cloud Foundry nozzle, which enables operational analytics by connecting Cloud Foundry logs and metrics to Microsoft Operations Management Suite (OMS).
Cloud Foundry sits on top of the infrastructure layer with other key service broker and runtime environments, including Azure Batch, Azure Service Fabric, the Azure Container Service and other API integration platforms such as Apprenda, Jelastic and OpenShift (an open source project championed by Red Hat).
At the bottom of Figure 1 you can see the basic Azure infrastructure services that companies use to run their IaaS VMs and other workloads that they may want to support in the cloud. At the top of the chart you can see the Azure PaaS offerings, which completely insulate the users from the underlying mechanics of the cloud infrastructure. Cloud Foundry fits right between these two layers. Like OpenShift and other open source platforms, Cloud Foundry runs on top of the Azure infrastructure that's owned by the Azure tenants. It provides a PaaS solution to the Cloud Foundry users. PCF on Azure has been popular with Java developers in part because Pivotal is also the developer of the Spring Java microservice framework.
Getting Started with PCF on Azure
Microsoft offers a free 90-day evaluation license for PCF on Azure (the Azure Marketplace page is shown in Figure 2).
Clicking the Get It Now button will send you to the Azure portal where a configuration wizard will step you through the process of creating a full Cloud Foundry environment. As Cloud Foundry is resource-intensive, this wizard takes some time to complete building all the required Azure resources—up to a couple of hours. When the deployment completes you'll have a complete Cloud Foundry environment with a couple of public IP addresses, as well as a number of VMs and managed virtual disks. The minimal deployment is about 25 VMs, along with roughly the same number of NICs and managed disks. A single instance of PCF will utilize 50-plus ARM cores.
PCF provides a Cloud Provider Interface abstraction layer on top of this infrastructure that enables you to have a cloud-platform-agnostic management experience. PCF supplies the Ops Manager Web-based interface that runs on top of the Cloud Foundry Cloud Provider Interface. The PCF Ops Manager runs as a Web appliance on one of the VMs in Azure Resource Group. You can see the PCF Ops Manager management portal in Figure 3.
You use the PCF Ops Manager to configure and manage the PCF environment. The PCF Ops Manager provides the same management experience if you're running on-premises or if you're running in a cloud environment. Most of the configuration is done using the Pivotal Elastic Runtime option that you can see near the top of Figure 3. The Pivotal Elastic Runtime works with many of the same resources like VMs that you can see directly in the Azure portal. You use Pivotal Elastic Runtime to configure Cloud Foundry resources like the number of instances, as well as the disk resources and the types of VMs that you want to use.
Developers can use the Azure Cloud Shell, a Web-based command shell, to work with and deploy applications using Cloud Foundry. An application and all its dependencies are bound together in a container object called a droplet. All Cloud Foundry applications are in containers and these applications can be Cloud Foundry droplets or they can be Docker images. All applications are isolated from all other applications that are running. Developers can deploy a single instance of their application or they can use the CLI to scale up multiple instances of an application. Cloud Foundry can automatically load balance between the different running instances. Cloud Foundry uses the Git system on GitHub for version control and it can be integrated with Visual Studio Team Services for project management, bug tracking and source control.
For day-to-day operations Cloud Foundry provides a component called the "loggregator" that pulls together log data and metrics from the applications and the system environment into a common stream that's known as the firehose. A nozzle can be applied to the firehose to direct the output of the log data. The nozzle takes the stream of log information and points it to a back-end store that you can later use to perform analytics or to surface the operations information for visualizations or dashboards. Microsoft provides a nozzle for the OMS that you can use for log analytics. The nozzle is available as a tile in the Pivotal Marketplace. Out of the box, the OMS dashboard lets you see a variety of system statics, including CPU, memory and disk utilization, as well as application traffic measurements. A built-in log search capability enables you to query specific application and system events. You can also use the log information to create custom alerts that can notify the administrator about various system or application events.
Microsoft has cross-trained a number of support engineers to help troubleshoot any issues you encounter running PCF on Azure. Plus, if you're using PCF, then there's a joint support arrangement between Microsoft and Pivotal where the two companies will work together to resolve customer support issues.
Forging the Cloud Foundry and Azure Connection
Microsoft support of PCF on Azure is another milestone in Microsoft's growing support of open source software solutions. PCF on Azure combines the Cloud Foundry PaaS cloud-based development and operations with Microsoft Azure's global scalability. You can ask more detailed questions at [email protected].
Michael Otey is president of TECA, a technical content production, consulting and software development company in Portland, Ore., and has written several books on SQL Server and .NET development. He's a former SQL Server MVP and was senior technical director for Windows IT Pro and SQL Server Pro. He covers key Microsoft infrastructure offerings including Windows PowerShell and .NET development, VMware virtualization, and is a presenter at numerous technical conferences and webcasts.