Cloud Foundry

Cloud Foundry is an open platform as a service, providing a choice of clouds, developer frameworks and application services.

In cloud era, the application platform will be delivered as a service, often described as Platform as a Service (PaaS).Cloud Foundry is an open source project and is available through a variety of private cloud distributions and public cloud instances.

Cloud native stack , this is layered stack. Below diagram shows the cloud native stack of cloud foundry.

Cloud native stack

Its a stack, which provides your software  a environment to run. This layer provides a platform to run developer software. This is four layer stack.

Infrastructure layer [ IAAS]: This enables the complete stack. This layer provides resource. This layer can be aws,vmware vSphere,vCloud air or openstack or Microsoft azure. The kind of operation this layer provides :Provision a server, install vm on server, install os on the vm and operations on the vm [ start,stop]. This layer automate all the operation.Basically all the vendor provides the api to automate the complete IAAS layer operations. This API provide is cloud provide interface [CPI]

Infrastructure Automation: This layer takes care of CPI automation. In case of cloud foundry Bosh take care of automating Cloud provider interface. This will take care of provisioning of vm, creating of database vm,patching,upgrading or high availability etc, This layer will automate all the infrastructure operations task. In case of cloud foundry, BOSH automates all the infra task. If we package our software and provides to BOSH,  BOSH will take care of all the provisioning and configuration

RUNTIME Layer: This is cloud foundry layer. This layer is also called Elastic run time layer as well. This layer containerized the application. It takes care of Domain,routing and complete orchestration. This layer of take care of all the the orchestration task. All kind of scaling can be also orchestrated in this layer.

Application Layer: In this layer all the programming languages comes. This provides the environment for programming languages. This not only provides the environment also provide the supported library as well. It also contains lot of middleware,databases . As developer, need to take care of application rest of the stuff will be take are.

Just like aws lamda, it only provide the environment to developer. You need not to worry about which OS its running, what networking etc. Every thing is fully orchestrated. It has scaling , HA kind of features as well…

This link provides details :