Codigo Abierto Cloud Computing

Código abierto

El fácil acceso a la nube y las nuevas formas de desarrollar aplicaciones ha creado un movimiento TIC que se le conoce como el Código Abierto (Open Source).  El Código abierto está siendo determinante, tanto en esos procesos de digitalización empresarial como para potenciar y adoptar ágiles de diseño y desarrollo técnico. 

Para entender mejor qué es el Código abierto vamos a desarrollar cuales son sus componentes esenciales: Kubernetes y contenedores. 

Kubernetes

También conocido como "k8s" o "kube", es una plataforma de código abierto para automatizar la implementación, el escalado y la administración de aplicaciones en contenedores.
Kubernetes y el ecosistema de contenedores están madurando hacia una plataforma y ecosistema informático de propósito general que está superando al de las máquinas virtuales (VM) como los bloques de construcción básicos de la infraestructura y las aplicaciones modernas de la nube. Este ecosistema permite a las organizaciones ofrecer una Plataforma como servicio (PaaS) de alta productividad que aborda múltiples tareas y problemas relacionados con la infraestructura y las operaciones que rodean el desarrollo nativo de la nube para que los equipos de desarrollo puedan centrarse únicamente en la codificación y la innovación.
Kubernetes continúa su constante aumento en los entornos de contenedores a nivel mundial: más de la mitad de las organizaciones que utilizan tecnología de contenedores ejecutan una o más tecnologías de orquestación, y Kubernetes lidera el camino.

Contenedores

Un contenedor es una unidad de software ejecutable en la que se empaqueta el código de la aplicación, junto con bibliotecas y dependencias, de manera común para que pueda ejecutarse en cualquier lugar (en un ordenador de sobremesa, en una instalación TI tradicional o en la nube). 

Los contenedores resuelven un problema crítico en la vida del desarrollo de aplicaciones. Cuando los desarrolladores escriben código, trabajan en su propio entorno de desarrollo local. Cuando ese código se pasa a un entorno de producción, muchas veces no funciona adecuadamente. Las razones para esto son variadas; sistema operativo diferente, dependencias diferentes, bibliotecas diferentes. Los contenedores resuelven este problema crítico de portabilidad que le permite separar el código de la infraestructura subyacente en la que se está ejecutando. Los desarrolladores pueden empaquetar su aplicación, incluyendo todos los contenedores y bibliotecas que necesita para ejecutarse correctamente, en una pequeña imagen de contenedor. En producción, ese contenedor se puede ejecutar en cualquier computadora que tenga una plataforma de contenedores. Los contenedores aprovechan una forma de virtualización del sistema operativo (SO) que permite que múltiples aplicaciones compartan el SO aislando procesos y controlando la cantidad de CPU, memoria y disco a los que pueden acceder esos procesos.

Además de resolver el gran desafío de la portabilidad, los contenedores y las plataformas de contenedores ofrecen muchas ventajas sobre la virtualización tradicional. Los contenedores tienen una huella extremadamente pequeña. El contenedor solo necesita su aplicación y una definición de todos los contenedores y bibliotecas que necesita para ejecutarse. A diferencia de las máquinas virtuales que tienen una copia completa de un sistema operativo invitado, el aislamiento del contenedor se realiza a nivel del núcleo sin la necesidad de un sistema operativo.
En todo caso, la mejor noticia es que con los contenedores existen estándares, de manera que las empresas e instituciones no tienen que “casarse” con sus proveedores de Cloud Computing, pues la portabilidad se asegura a través de la Open Container Initiative..

¿Cómo se crean los contenedores?
Docker es la plataforma de software de código abierto más extendida para crear, probar e implementar aplicaciones con contenedores. Docker empaqueta software en unidades estandarizadas llamadas contenedores que incluyen todo lo necesario para que el software se ejecute, incluidas bibliotecas, herramientas de sistema, código y tiempo de ejecución. 
Por encima de Docker u otras plataformas similares, se posicionan Kubernetes y otras plataformas de “orquestación”, que permitan desplegar aplicaciones de manera escalable y masiva. Kubernetes es el estándar de facto en orquestación de contenedores. Esto significa que se encarga automáticamente de desplegar los contenedores, en una máquina local o en la nube, comunicando nodos entre sí, escalando automáticamente, monitorizando, tomando decisiones, vigilando la seguridad, gestionando los posibles problemas, etc.

Serveless 

Quizás es lo más novedoso dentro del mundo del Cloud Computing, y no hay que confundirlo con el universo de los contenedores. 
Serverless o FaaS (del inglés, Function as a Service) es una nueva herramienta que permite desplegar funcionalidad lista para producción sin invertir esfuerzo en infraestructura y pagar tan solo cuando sea ejecutada.

Es diferente de IaaS (Infraestructure as a Service) donde se paga por servidores independientemente de su uso y donde el cliente se encarga de configurarlos, administrarlos y mantenerlos, y también es diferente de PaaS (Platform as a Service) donde el cliente no administra los servidores, pero asume el costo de tener su código corriendo independientemente de que esté siendo usado.

Serverless es aún una tecnología muy nueva, que creemos que tiene mucho potencial para crear importantes innovaciones ya que permite desplegar funcionalidades pequeñas o aisladas y sirve para aquellas personas que no tienen conocimiento en infraestructura, pero quieren tener aplicaciones en producción.

Algunas de las soluciones Serverless más potentes son : Amazon, AWS LambdaGoogle, Cloud FunctionsMicrosoft, Azure Functions e IBM, IBM Cloud Functions 

Estándares: Para asegurar la máxima independencia de los proveedores y la mayor agilidad a la hora de poner servicios en producción, asegurando la privacidad y la seguridad ante ataques, existen iniciativas como la CNCF - Cloud Native Computing Foundation. La CNCF fue fundada en el año 2015 por GoogleCoreOSMesosphereRed HatTwitterHuaweiIntelCiscoIBMDockerUniva y VMware

  • Tipos de nubes
    Tipos de nubes

    Diferentes tipos de nubes del Cloud Computing

    Ver más
  • Servicios de Cloud Computing
    Servicios

    Servicios facilitados en el Cloud Computing

    Ver más
  • Codigo Abierto Cloud Computing
    Código Abierto

    Cloud computing facilita el desarrollo de aplicaciones

    Ver más