Construya su propia nube y ahorre millones

Hay tantas cosas de las que ocuparse, como el espacio del servidor, los entornos de desarrollo, la seguridad, las pilas de software, las actualizaciones de software y el mantenimiento del hardware, que los costes de mantenimiento de toda la plataforma tienden a ser abrumadores.

Las empresas que desarrollan y despliegan aplicaciones tienen que destinar muchos de sus recursos a mantener la plataforma en funcionamiento, recursos que de otro modo podrían aprovecharse para desarrollar software.

cloud-platform

Por eso surgió la necesidad de soluciones de plataforma en nube. Estas soluciones emplean un modelo de computación en nube para proporcionar todo lo que los desarrolladores necesitan para realizar su trabajo, desde entornos de desarrollo alojados y herramientas de bases de datos, hasta capacidades completas de gestión de aplicaciones.

Los desarrolladores que trabajan en una plataforma en nube tienen acceso a todos los recursos que necesitan para crear, desplegar y lanzar aplicaciones de software. Para las empresas, la plataforma en nube podría proporcionar una base escalable para nuevas aplicaciones que deban entregarse a corto plazo. Con un modelo de pago por crecimiento, no hay necesidad de inversiones a largo plazo en plataformas locales.

¿Por qué código abierto?

Why-Open-Source

Ahora que hemos expuesto las ventajas de la nube frente a las plataformas tradicionales in situ, la siguiente pregunta que debemos hacernos es por qué una plataforma en nube de código abierto es mejor opción que una plataforma en nube propietaria.

La respuesta más obvia es el coste: las licencias de las soluciones propietarias siempre conllevan etiquetas de precio más elevadas. Otra ventaja importante es la flexibilidad y la libertad de elegir entre una amplia variedad de marcos, nubes y servicios.

Las plataformas propietarias, por otro lado, pueden atarle a las herramientas y servicios que poseen. A cambio, ofrecen ciertas ventajas, como el compromiso con los SLA (acuerdos de nivel de servicio) y liberarle de obstáculos como las pruebas y la integración, pero esas ventajas apenas sobrepasan los beneficios de la apertura.

A continuación encontrará una selección de las plataformas en nube de código abierto para la empresa que dominan el mercado actual.

Cloud Foundry

Desarrollada originalmente por VMware (ahora propiedad de Pivotal Software), Cloud Foundry destaca por estar disponible como aplicación de software independiente y de código abierto, lo que la hace independiente de los proveedores de la nube. Puede implantarse en VMware vSphere o en otras infraestructuras de nube, como HP Helion, Azure o AWS. O incluso puede optar por alojarla usted mismo en su servidor OpenStack.

Cloud-Foundry

Mediante el uso de buildpacks, Cloud Foundry facilita el tiempo de ejecución y la compatibilidad con marcos de trabajo. Cada vez que impulsa una aplicación, el tiempo de ejecución de aplicaciones de Cloud Foundry elige el buildpack más conveniente para ella. A continuación, el buildpack se encarga de compilar la aplicación y prepararla para su lanzamiento.

Cloud Foundry está diseñado para ofrecer un rápido desarrollo y despliegue de aplicaciones mediante una arquitectura altamente escalable y flujos de trabajo favorables a DevOps. Su soporte de lenguajes incluye Python, Ruby, PHP, Java y Go, entre muchos otros.

Sin embargo, para encajar adecuadamente en Cloud Foundry es recomendable que su proyecto siga el estándar de aplicación de los Doce Factores: una metodología especialmente diseñada para desarrollar aplicaciones óptimas de software como servicio (SaaS).

Udemy tiene un buen curso sobre desarrollo para la nube con Cloud Foundry.

WSO2

Si trabaja intensamente en SOA, seguramente debe tratar con muchas API internas y externas. Ese es el escenario en el que brilla WSO2, gracias a su API Manager, que es capaz de gestionar el ciclo de vida completo de las API. WSO2 cumple con la mayoría de los requisitos que sus clientes podrían plantear, incluyendo el versionado, la documentación de API y la descarga SSL.

YouTube video

WSO2 utiliza un concepto de tienda en la que los desarrolladores pueden encontrar, probar y valorar las API. El despliegue es sencillo y directo, y ofrece muchas opciones para controlar el flujo de la API. También ofrece una función de autorrecuperación, en caso de que se produzca una suspensión del punto final.

Todas estas cualidades tienen como objetivo reducir el tiempo de comercialización, simplificar la gestión de costes y, en general, mejorar la agilidad de los procesos empresariales.

Una gran ventaja de WSO2 API Manager es su fácil integración con WSO2 Identity Server, una solución IAM (Identity and access manager) basada en API. Esta integración ofrece una plataforma amigable para la autenticación en entornos de nube.

Cloudify

Cloudify es un marco de orquestación diseñado para modelar aplicaciones y servicios a la vez que automatiza sus ciclos de vida.

Esto incluye la capacidad de desplegar en cualquier entorno de nube o centro de datos y realizar un mantenimiento continuo. También ofrece herramientas para supervisar todos los aspectos de las aplicaciones desplegadas, detectar las condiciones de fallo y solucionarlas, ya sea manual o automáticamente.

YouTube video

Una de las características más notables de Cloudify es el modelado de planos basado en TOSCA. Esta innovación permite a los desarrolladores utilizar YAML para crear planos de las topologías de la aplicación.

YAML es un lenguaje de serialización de datos legible por humanos, utilizado para escribir definiciones basadas en la especificación TOSCA, que ofrece a los desarrolladores una forma estandarizada de describir las interconexiones entre aplicaciones, sistemas y componentes de la infraestructura de la nube.

La orquestación de la nube Cloudify proporciona una base sólida para la gobernanza y la seguridad de TI, permitiendo a los usuarios aplicar restricciones de acceso con diferentes roles y niveles de permiso.

Para comunicarse con servicios externos, como contenedores Kubernetes, servicios en la nube (AWS, Azure, vSphere, OpenStack) y herramientas de gestión de la configuración (Puppet, Ansible, Chef), Cloudify utiliza su conjunto de plugins oficiales, mientras que muchos otros servicios son compatibles con plugins genéricos existentes.

OpenShift

OpenShift es una plataforma basada en Kubernetes, con un instalador flexible y muy rápido y un amplio soporte de API, que permite a los desarrolladores ampliar la plataforma según sus necesidades.

Está construida pensando en la seguridad, lo que se ilustra con un ejemplo: se espera que los contenedores se ejecuten como usuarios no root, y cuando no es así, OpenShift requiere una anulación explícita para ejecutar el contenedor.

Su uso de Kubernetes requiere un número considerable de servidores, y se necesita una cierta curva de aprendizaje para dominarlo. Por ello, esta plataforma no es adecuada para pequeños despliegues, a menos que puedan convertirse en un despliegue mayor en un futuro próximo.

Los usuarios de OpenShift destacan sus rápidos procedimientos de instalación y configuración, así como la facilidad de mantenimiento de sus módulos y engranajes. Otro punto a favor es el hecho de contar con su propio repositorio Git. Lo que no les gusta demasiado es la dificultad de leer e interpretar los logs. En particular, cuando se produce un fallo al cargar un proyecto, es difícil entender dónde está el problema.

Tsuru

Rede Globo, la segunda mayor cadena de televisión comercial del mundo, lanzó Tsuru como un producto PaaS (plataforma como servicio) basado en Docker capaz de orquestar y ejecutar aplicaciones en un entorno de producción. Se trata de una plataforma multiproveedor de código abierto que soporta sitios con millones de usuarios, desarrollada por Globo.com.

tsure

Los usuarios de Tsuru afirman que mejora sustancialmente el tiempo de comercialización sin renunciar a la sencillez, la alta disponibilidad, la seguridad o la estabilidad. Puede ejecutarse en diversas infraestructuras en la nube, ya sean públicas o privadas, siempre que sean compatibles con una máquina Docker.

También es compatible con casi todos los lenguajes de programación disponibles, lo que da a los desarrolladores la libertad de elegir según sus preferencias.

Con Tsuru, puede utilizar diversos almacenes de datos, incluyendo bases de datos SQL o NoSQL, o alternativas en memoria, como Memcached o Redis.

Sólo tiene que seleccionar el de su preferencia y conectarlo a su aplicación. Para gestionar la aplicación, puede elegir entre utilizar la línea de comandos o una interfaz web y desplegarla posteriormente a través de Git. La infraestructura de Tsuru se encargará de todos los detalles.

Stackato

Stackato es un producto PaaS políglota basado en Cloud Foundry y Docker que se ejecuta sobre su infraestructura en la nube y sirve como plataforma de lanzamiento para sus aplicaciones.

Los usuarios de Stackato afirman que proporciona una plataforma de aplicaciones ágil y robusta que ayuda a mejorar la productividad tanto de los administradores de la nube como de los desarrolladores.

Es muy adecuada para los despliegues empresariales en la nube, ya que combina la flexibilidad de acceder directamente a la máquina virtual de la infraestructura en la nube con la configuración automatizada que proporciona una PaaS con todas las funciones.

Las infraestructuras de nube compatibles incluyen HP Cloud Services, Citrix XenServer, AWS, OpenStack y VMware, entre otras.

En Stackato, cada aplicación dispone de su propio contenedor Linux (LXC), lo que garantiza una compartición eficaz y segura de los recursos. Su gama de servicios se compone de: Helion Control Plane, que Stackato utiliza para comunicarse con la nube subyacente y gestionar los ciclos de vida de los servicios.

Helion Service Manager, un repositorio de servicios complementarios a disposición de las aplicaciones; Helion Cloud Foundry, un tiempo de ejecución elástico diseñado para simplificar el alojamiento y el desarrollo de aplicaciones.

Helion Code Engine, un servicio de entrega continua integrado con repositorios Git, privados o públicos, y Helion Stackato Console, una interfaz web para gestionar todas las funciones de Helion Cloud.

Alibaba

Aunque apenas se menciona cuando se habla de plataformas en nube de código abierto y PaaS, el negocio de computación en nube de Alibaba ha crecido a un ritmo meteórico, habiendo conquistado ya el 50% del mercado chino de nubes públicas y aprendiendo concienzudamente a servir a mercados fuera de China.

Por ejemplo, están empezando a ofrecer soporte de facturación en dólares estadounidenses en 168 países y diseñando servicios especialmente adaptados a los mercados de ultramar.

Los servicios de la plataforma en nube incluidos en la oferta de Alibaba abarcan muchas funciones gratuitas, como los servicios de contenedores para Docker y Kubernetes, Container Registry, Auto Scaling y DataWorks, un entorno seguro para el desarrollo de datos sin conexión.

Sus servicios están bien documentados y van acompañados de todo lo que pueda necesitar para empezar a migrar sus aplicaciones a la nube de inmediato, como numerosos vídeos tutoriales. Siguiendo unos sencillos pasos y sin invertir un dólar, Alibaba le invita a empezar a construir en poco tiempo.

Por último…

Por suerte para todos los desarrolladores, la apertura reina en el mundo de la nube. Hace un par de años, la competencia por las tecnologías de contenedores (Docker, Kubernetes, Mesos, Nomad, ECS, por nombrar algunas) amenazaba con dividir el mercado en compartimentos estancos, generando riesgos considerables cada vez que había que elegir una plataforma.

Pero, aunque hoy en día hay más plataformas entre las que elegir, las diferencias entre las opciones de código abierto actuales están sólo en los detalles: diferentes esquemas de costes, diferentes herramientas de gestión y diferentes enfoques de la seguridad.

En otras palabras, si hoy elige una plataforma en nube de código abierto y no está satisfecho, mañana puede irse a otra y los costes no le matarán.

Con la información que le hemos dado aquí, es de esperar que pueda elegir la plataforma que mejor se adapte a sus necesidades y le permita olvidarse de quebraderos de cabeza como la capacidad del servidor, el middleware, los frameworks, las máquinas virtuales, los almacenes de datos, etc.

Una vez que se haya liberado de todo eso, podrá poner todos sus recursos y toda su atención en lo único que realmente le importa: entregar su aplicación kick-ass a sus usuarios lo más rápido posible, y mantenerlos contentos mientras la utilizan.

Aquí también podrá explorar algunos niveles o créditos gratuitos en plataformas en la nube.