Feature Articles: R&D Efforts in Cloud Computing Platform Technologies through Open Innovation
PaaS Platform Based on Cloud Foundry
The NTT Software Innovation Center is working on the development and commercialization of Cloud Foundry, which is open source PaaS (Platform as a Service) platform software. This article introduces the latest trends with Cloud Foundry and our activities related to its expansion to cloud businesses.
Keywords: cloud, open source, PaaS
1. Overview of PaaS
The NTT Software Innovation Center is developing a Platform as a Service (PaaS) platform*1 using Cloud Foundry [1, 2] as part of efforts to build a cloud infrastructure using open source software.
The objective is to provide a platform for an application run-time environment, that is, a software stack that combines the various types of software needed to run applications such as the operating system (OS), various libraries, frameworks, and middleware such as web servers, databases, and load balancers on top of Infrastructure as a Service (IaaS) (Fig. 1). A PaaS provider provides PaaS users with a common run-time environment that can be shared among various types of applications, as well as services such as a health monitor for running applications.
The greatest advantage of using PaaS is that it eliminates some of the work involved in building the run-time environment for application development and operations. Application development can be accelerated because test environments can be obtained easily using PaaS. Applications can be operated efficiently because computing resources with a pre-built environment can be procured easily while scaling the applications to a large size.
The need for PaaS has increased recently, and as a result, many commercial PaaS services have appeared on the market, including the Cloudn PaaS  service introduced by NTT Communications in December, 2012, as well as Google App Engine, AWS (Amazon Web Services) Elastic Beanstalk, Microsoft Azure, Heroku, and IBM Bluemix (see Table 1).
2. Cloud Foundry: open source software project
Cloud Foundry is PaaS platform software being developed as open source. In contrast to services such as Microsoft Azure or Heroku, which are built with proprietary, closed-source software, Cloud Foundry uses published source code that anyone can use to build their own PaaS platforms.
The strengths of Cloud Foundry can be summarized in three main points, described below.
(1) No vendor lock-in
Because Cloud Foundry is open source, PaaS users can avoid dependence on a particular PaaS provider (vendor lock-in). Generally, the functions provided by each PaaS and how they are used differ, so there is no compatibility between them. Because of this, migrating an application developed for a particular PaaS to another PaaS requires rewriting the source code and revising operational procedures in most cases. This makes it difficult to handle conditions such as sudden increases in user fees or the shut-down of a service. These can pose a great risk, particularly for users who operate commercial applications. For PaaS services that use Cloud Foundry, compatibility is guaranteed and there is no vendor lock-in, so these sorts of migration problems are avoided. Users can select a PaaS provider according to conditions, or even build their own private PaaS.
(2) Flexible system configuration
To enable Cloud Foundry to satisfy varying PaaS requirements, the overall system is divided into loosely connected components able to operate in a multiple-active configuration (n-ACT) and designed to be variously combined as needed (Fig. 2). This makes it possible to build a PaaS according to the required scale and reliability, from a small-scale, private PaaS with all components running on a single machine, to a large-scale, public PaaS operating on several thousands of machines. Components can also be added or removed afterwards, so it is easy to start by building on a small scale and later scaling out as processing requirements increase.
(3) Diversity of development languages and frameworks
Besides Cloud Foundry, there is another open source PaaS platform called OpenShift Origin, developed mainly by Red Hat Inc. At this point, Cloud Foundry is a step ahead of OpenShift Origin in terms of the number of contributing technologists, the level of activity as an open source community, and adoption by PaaS providers.
3. NTT laboratories initiatives
NTT laboratories have taken the following initiatives concerning the use of PaaS platforms based on Cloud Foundry.
3.1 Feature expansion and verification
3.1.1 Increasing availability of applications running on the PaaS platform
When PaaS users want to ensure availability to run multiple applications, it is desirable to distribute application deployment locations as widely as possible. Therefore, we have extended Cloud Foundry application management features so that application placement can span multiple datacenters and servers.
3.1.2 Automating operations of the PaaS platform
BOSH is software for PaaS platform management. It deploys, launches, and monitors Cloud Foundry components on IaaS platforms. We have developed auto-scaling functions that cooperate with BOSH to automatically adjust the number of virtual machines on IaaS platforms when there are shortages or excesses of necessary resources such as the CPU (central processing unit), memory, and network bandwidth.
3.1.3 Building and operating a PaaS platform spanning multiple IaaS systems
BOSH, as mentioned above, provides a CPI (Cloud Provider Interface) that supports various IaaS platforms, so Cloud Foundry can be installed on various IaaS platforms. Cloud Foundry can also be used to build and operate a single PaaS platform spanning multiple IaaS platforms if IP (Internet protocol) communication is possible between the IaaS platforms. Thus, we have demonstrated the practicality of hybrid clouds built and operated using a PaaS platform that combines multiple public IaaS platforms, or combines a public IaaS platform with a private IaaS platform.
3.2 Improved efficiency of operation processes through link with NTT clouds Develop
NTT laboratories and NTT Innovation Institute, Inc. (NTT I3)  are conducting a collaborative experiment with NTT clouds Develop, a service that supports installation of Cloud Foundry and DevOps. NTT clouds Develop is a solution for implementing the service development and operations processes known as DevOps, which have attracted attention as a side effect of the recent spread of agile software development. By combining the improvements in development and operations processes due to DevOps with the operational efficiency of Cloud Foundry, we expect to see substantial improvements in the efficiency of development processes.
The use of DevOps to tightly integrate the development and operations processes, which have previously been separate, means that services can be updated dozens of times per day, much more quickly and frequently than before. Frequent service updates are essential for incorporating end-user needs in a service, so it is a strong competitive advantage in today’s market of rapidly changing needs. However, there are barriers to introducing DevOps. A wide range of tools must be mastered in order to implement DevOps effectively. The tools depend on the application, including source code version control and issue ticket tracking, and also continuous integration (CI) and server configuration management automation. However, gaining mastery of all of these tools and the know-how to combine them is not a simple matter. To overcome these difficulties, NTT clouds Develop has been designed to provide services with these various functions already integrated, so that anyone can easily start using DevOps.
Integrating Cloud Foundry into NTT clouds Develop should make service delivery even more efficient. It was already possible to build server environments automatically with NTT clouds Develop, but specialized know-how was necessary to configure features such as those for clustering and monitoring of servers. Also, setting up servers in each environment incurred costs in terms of both time and money, and managing settings in each different environment was a major operational burden.
Introducing NTT clouds Develop greatly improved efficiency in terms of development tasks such as source code and ticket management, although service delivery, which is the final step, still required a great deal of time and effort. Integrating Cloud Foundry as a service delivery platform improved these issues significantly. With Cloud Foundry, service delivery is simplified to just setting parameters and pushing out the source code. This enables not only the dedicated operations team to perform the final updates but the developers themselves to do it, too. The time required for the pushed code to actually run can also be reduced to minutes or even tens of seconds, so time costs are also reduced. Cloud Foundry can also provide multiple environments, namely development and production, so computing resources are used more efficiently, and moving from the development to the production environment is easier. When Cloud Foundry is combined with NTT clouds Develop in this way, the integration of development and operations, which is the key strength of DevOps, can be taken to a higher level.
3.3 Contribution to the community
Having an active open-source community is essential for stability when using an open source product such as Cloud Foundry. Thus, NTT laboratories will participate in the Cloud Foundry Foundation  representing the NTT Group, and will work to build the Cloud Foundry community and expand PaaS in Japan. With these two initiatives, we will also actively contribute to the community by sharing information such as publishing source code and making presentations at the Cloud Foundry Summit.
4. Future prospects
Cloud Foundry is excellent open source PaaS platform software with very attractive features. NTT laboratories will continue to contribute to the Cloud Foundry community and work to expand the PaaS market. In the future, in addition to our current initiatives, we will also work to enhance links between Cloud Foundry and OpenStack, which is an influential open source IaaS platform, and to expand the development of PaaS platforms to include private-cloud use.