Para hablar bien sobre Bitnami: https://bitnami.com/ probablemente sean necesarios varios artículos, y es que esta startup (o no tan startup) ofrece mucho en el tema de computación: su lema actual “Loved by developers, trusted by ops” se queda corto, y es que objetivamente es imposible no enamorarse de su trabajo.
Además probablemente merezcan otro artículo extra dedicado a su historia, ya que hablamos de una empresa “chica” que nace en Sevilla, a través de la visión de un crack hecho a sí mismo (Daniel López), y que actualmente forma parte de los servicios de cloud computing de gigantes como Google, Microsoft o Amazon, y todo lo anterior con mucho “salero”, es decir, manteniendo sus orígenes andaluces aunque también cuente con oficinas en San Francisco.
Por resumir su actividad y principal objetivo, se puede decir que tratan de hacer posible que cualquiera pueda implementar rápidamente y de manera muy sencilla un software en general complejo, en cualquier tipo de plataforma (on-premise, en cloud, tipo infraestructura virtual, docker, etc…). Esto que suena bien, funciona aún mejor.
Personalmente he trasteado con productos de Bitnami desde hace mucho tiempo, hablo lo mismo de 10 años atrás, cuando empecé a descargar alguna de las aplicaciones de su catálogo con formato de máquina virtual, o instalador de linux. Pudiendo de una manera fácil y sencilla, levantar un servicio en pocos minutos.
Probablemente la comparación no sea la más correcta, pero digamos que Bitnami proporciona una facilidad de levantar servicios de una manera similar a Docker, aunque como veremos, Bitnami también ofrece aplicaciones con formato contenedor.
Cómo empezamos a trabajar con Bitnami? vamos al lío…
Lo primero es echar un vistazo al catálogo de aplicaciones de Bitnami: https://bitnami.com/stacks
Dónde encontraremos todos los recursos de Bitnami que podemos utilizar para nuestros proyectos, allí hay de todo: CMS como Drupal o WordPress, ERP como Odoo o ERPNext, sistemas orientados a Big Data como CKAN, bases de datos como PostgreSQL o MySQL, en fin… prácticamente todos los sistemas de referencia libres están contemplados… y además correctamente ordenados por categorías (Developer tools, Project Management, Chat, eLearning, Infraestructure, Analytics…etc…)
Una vez seleccionamos uno, por ejemplo wordpress, nos aparecerá las distintas implementaciones disponibles, es decir, para este ejemplo concreto, tenemos la posibilidad de obtener una imagen para desplegarla en:
- Equipos on-premise: a través de un instalador empaquetado para entorno Windows, Mac o Linux, o bien a través de un appliance de máquina virtual completa, que directamente podemos desplegar en nuestra infraestructura (formato VMDK).
- Infraestructura de contenedores, bien en un orquestador de Kubernetes (Bitnami ofrece también una integración de su catálogo en Kubernetes a través de Kubeapps: https://kubeapps.com/), bien directamente en un entorno Docker simple, en este segundo caso, disponemos de la imagen oficial de Bitnami en Dockerhub, y además del contenedor específico para Microsoft Azure .
- En la nube, ya sea de tipo estándar (single-tier) u orientado a alta disponibilidad (multi-tier), en ambos casos hay compatibilidad con los sistemas de referencia de cloud-computing: Google Cloud Platform, Microsoft Azure y Amazon AWS.
Imaginando el ejemplo anterior de WordPress, simplemente levantar un entorno para realizar pruebas con este CMS supone: la instalación de un OS, por ejemplo un linux, la puesta en marcha de un servicio de base de datos (MySQL), la instalación de un servidor web como Apache o Nginx, y dependencias relacionadas (PHP…), configurar el sitio, la BBDD, y por último descargar e instalar Worpress.
Todo lo anterior, básicamente es un click con cualquiera de los anteriores recursos de Bitnami.
Por último, añadir que Bitnami ofrece una buena documentación de todos los servicios que ofrece, así como respuesta a preguntas frecuentes relacionadas a un servicio cualquiera, desde cómo securizarlo con https por ejemplo, a cómo configurar cuestiones básicas de acceso o extensiones.
Además también facilita la actualización de los servicios desplegados de un modo sencillo.