Cloud Foundry
# Cloud Foundry

Cloud Foundry es una plataforma como servicio (PaaS) código abierto originalmente desarrollado por VMware y ahora poseído por Pivotal Software – un join venture entre EMC, VMware y General Electric. Cloud Foundry fue inicialmente diseñada y desarrollada por un equipo pequeño de Google dirigido por Derek Collison y era un proyecto llamado originalmente B29.

Cloud Foundry está escrita principalmente en los lenguajes Ruby y Go.

## Plataforma

Cloud Foundry es software de código abierto y por lo tanto disponible a cualquiera. Publicar Cloud Foundry implica hacer interfacing con la infraestructura subyacente que utiliza el lenguaje de publicación Cloud Foundry BOSH (bosh outer shell), otra herramienta de código abierto de Pivotal. El sitio web Baidu está implementado en OSS Cloud Foundry.

Otros servicios que utilizan la plataforma de Cloud Foundry incluye GE Predix, IBM Bluemix, CenturyLink Nube, ActiveState, HP Helion, anynines, y Swisscom.

## Uso

Cloud Foundry apoya el ciclo de vida completo, desde el desarrollo inicial a través de todas etapas de pruebas, hasta la publicación. Esto se ajusta a la estrategia de entrega continua. Los usuarios tienen acceso a uno o más espacios, el cual típicamente corresponde a una etapa del ciclo de vida. Por ejemplo, una aplicación a punto para QA el testeo podría ser desplegado (publicado) al espacio QA del proyecto. Los diferentes usuarios pueden ser restringidos a espacios diferentes con permisos de acceso diferentes en cada uno.

Los desarrolladores requieren una herramienta adicional, la consola CLI de Cloud Foundry cf que está escrita en Go. Existen disponibles instaladores para MS Windows, MacOS, y Linux.

Cuando una aplicación es publicada a Cloud Foundry una imagen es creada para ella y almacenada internamente. La imagen es entonces publicada a un contenedor de Warden para que se ejecute en ella.

Para casos múltiples, las imágenes múltiples están iniciadas en contenedores múltiples. En este punto es donde BOSH entra. El controlador interno de Cloud Foundry utiliza BOSH para hacer que la infraestructura subyacente genere máquinas virtuales para correr los contenedores de Warden encima. Cuando una aplicación es eliminada, todos sus contenedores son destruidos y sus recursos son liberados para que otras aplicaciones los puedan utilizar. Si una instancia de la aplicación se "cae", su contenedor es eliminado y un contenedor de Warden nuevo se inicia automáticamente. Un contenedor solo ejecuta una aplicación de forma simultánea asegurando aislamiento, seguridad y persistencia.

Un router balanceador de carga está delante de Cloud Foundry para enrutar las solicitudes a la aplicación correcta, esencialmente a uno de los contenedores donde la aplicación esté corriendo.

