Roadmap tecnológico para entornos Devops
Una buena estrategia de negocio debe de ir acompañada por una planificación TIC para lograr los objetivos empresariales. Esto es posible siempre y cuando se abastezcan de arquitecturas e infraestructuras tecnológicas flexibles y ágiles que permitan a las compañías competir e innovar rápidamente, adaptándose a un mercado de constantes cambios.
La aparición de tecnologías emergentes (basadas en microservicios y contenedores) han impulsado un cambio en la forma de producir software, dando paso a lo que hoy conocemos como Devops. Se trata de un acrónimo formado a partir de las palabras (development y operations), es decir, (desarrollo y operaciones), y sirve para describir el concepto de una metodología de trabajo en la que equipos de desarrollos y sistemas se fusionan para responder a las necesidades actuales de crear software con despliegues rápidos, flujo de entrega continuo y reducción de los costes de producción.
Existen variedad de tecnologías Open Source que encuadraríamos dentro de este movimiento Devops. A continuación, hacemos un repaso de las aquellas que nos parecen más interesantes para abordar con éxito los retos tecnológicos de nuestra era digital.
Ventajas de las tecnologías Open Source en entornos Devops
Las tecnologías de código abierto nos aportan ventajas significativas respecto a las soluciones de software propietario para trabajar en entornos Devops por varias razones:
- Ofrecen opciones de implementación más flexibles, ya que los equipos de desarrollo tienen acceso al código fuente, permitiendo desarrollar nuevas funcionalidades o modificar las existentes.
- También permiten combinar diferentes soluciones software o remplazar algunos componentes, con el fin de ofrecer una solución a medida y personalizada.
- Además, están altamente probadas puesto que cuentan con el respaldo de toda una comunidad que se encarga de actualizarlas diariamente, supervisándolas, solucionando vulnerabilidades y evitando que queden obsoletas.
- Por otra parte, las tecnologías open source empresarial suelen estar libres de licencias, con lo cual los costes se reducen considerablemente. Sin embargo, es recomendable acogerse a un modelo basado en suscripciones para gozar de mayor protección y soporte por parte del fabricante.
Análisis de las principales tendencias tecnológicas
Hemos seleccionado las siguientes tendencias para analizarlas e incorporarlas en nuestra hoja de ruta tecnológica:
IAAS (infraestructura como servicio )
Es una forma de disponer de recursos informáticos en la nube como servidores, redes, almacenes de datos, conexiones, enrutadores, etc. La principal ventaja es la reducción de costes al no tener la necesidad de invertir en infraestructuras, ni servidores físicos, ya que se paga un alquiler por los recursos utilizados. Se gestiona a través de Internet y es el proveedor del sistema en la nube quien se encarga del mantenimiento de la infraestructura.
Un ejemplo de IaaS es Amazon Webservices. Se trata de una tecnología que puede dar solución a todas las necesidades de cualquier proyecto (IAAS, colas, BBDD, balanceadores, servicios de analítica, cloud watch, almacenamiento, etc.). Es la suite más completa a día de hoy, de calidad contrastada, tendencia creciente y de mayor influencia en el mercado español.
Otro ejemplo IaaS es OpenStack, tecnología Open Source que ofrece la posibilidad de crear nubes tanto públicas como privadas. Esta suite está compuesta con herramientas suficientes para dar solución a las necesidades de cualquier proyecto (networking, almacenamiento, hypervisor, consola de administración, gestión de identidades, etc.).
PAAS (plataformas como servicio)
Las plataformas como servicio (PaaS) proporcionan herramientas que permiten la creación de aplicaciones empresariales y variedad de servicios en cloud. En ese sentido, OpenStack y Amazon Webservices también nos ofrecen este servicio.
Por otro lado, OpenShift es compatible con las dos soluciones PAAS comentadas en el párrafo anterior, además de ser ofrecida por Red Hat como solución cloud completa, utilizando su propia infraestructura.
Cloud Foundry es otra de las soluciones propuestas, ya que además de ser compatible con (OpenStack y AWS), es ofrecida por terceros en soluciones cloud completas, como es el caso de Pivotal Web Services o IBM Bluemix.
Contenedores y orquestadores
Si bien la tecnología de contenedores lleva tiempo existiendo desde su soporte en el kernel de linux, no ha sido hasta la incorporación de cgroups y el nacimiento de docker, como método de abstracción, cuando esta tecnología ha comenzado a extenderse de manera exponencial. Aunque existan más sistemas de contenedores en el mercado (como el utilizado, por ejemplo, por Cloud Foundry de manera nativa), Docker se ha convertido en un estándar muy utilizado hoy en día. Una de las ventajas es su portabilidad lo que permite, por ejemplo, migrar desarrollos de una plataforma a otra de forma muy ágil. Además, puede ser desplegado en cualquier sistema operativo que tenga Docker instalado, sin necesidad de tener las versiones compatibles o lenguajes de programación, reduciéndose así los problemas derivados de los nuevos entornos. Funciona de forma autónoma e independiente, solo alberga en su interior las herramientas necesarias para implementar la aplicación en el nuevo sistema, eliminando así las dependencias de software. Otra característica es que estos contenedores son muy ligeros, de manera que un mismo sistema puede acoger varios, dado que ocupan menos que los sistemas de virtualización tradicionales.
Kubernetes es una infraestructura para desplegar y centralizar contenedores, y sus aplicaciones. A día de hoy, es la herramienta más extendida para la orquestación de contenedores, ya que viene avalada por años de experiencia de la mano de Google. No sólo es su flexibilidad y la adaptación a todo tipo de proyectos lo que la hace una herramienta destacada, sino que hace su función sin dar ningún tipo de problema.
Automatización de tareas
Como herramienta enfocada a la automatización de tareas, ansible es la que recomendamos por su propia filosofía de trabajo, ya que no requiere de ningún tipo de configuración compleja, ni el uso de agentes o cualquier otro software en las máquinas de destino. Por tanto, se presenta como la solución más flexible, práctica y compatible con casi cualquier tipo de proyecto.
Si las tareas a automatizar afectaran a una gran cantidad de servidores (cientos), probablemente se debería de optar por alguna otra alternativa que haría menos costosos estos procesos, como sería el caso de puppet.
Analísticas y explotación de datos
El auge de la explotación de datos, en los negocios actuales ha propiciado el desarrollo de tecnologías como Elasticsearch. No se trata de una simple herramienta de búsqueda, además, puede llevar a cabo extensos análisis de datos en tiempo real. Bajo el amparo de la compañía Elastic han salido diferentes tecnologías que ofrecen funcionalidades extras a Elasticsearch. Por ejemplo, Kibana (para visualización de datos), logstash y beats (para tratamiento y analítica de logs), Shield (para temas de seguridad), Watcher (para gestión de notificaciones y alarmas), Marvel (para monitorización), etc. Todas estas tecnologías han ido configurando lo que hoy se conoce como el Elastic Stack y que podemos utilizar para un montón de fines, como, por ejemplo, explotación y analítica de logs, soluciones de búsqueda empresarial, análisis de grandes volúmenes de datos, métricas y analíticas en tiempo real…
Otra de las tecnologías que recomendamos para el tratamiento de datos es Kafka. Se trata de una plataforma distribuida de “streaming”, que permite la retrasmisión continua y sin interrupciones de datos. Kafka procesa pequeños bloques de datos de forma secuencial, continua e inmediata en tiempo real.
Plataformas digitales
Este tipo de tecnologías permite la rápida integración de soluciones de digitalización de cualquier tipo de negocio, poniendo a disposición herramientas para crear y desarrollar aplicaciones de todo tipo, sitios y portales web, intranets… Por ejemplo, Liferay Digital Experience Platform es una de las plataformas empresariales cuya función principal es la creación de experiencias de usuario únicas y personalizadas, accesible a través de cualquier canal de comunicación y dispositivo, y ofrece contenido segmentado gracias a su función de análisis de datos de usuarios. Esta innovación (dotada de una arquitectura flexible y modular) permite crear soluciones empresariales de forma rápida, mediante el uso de microservicios. El despliegue de funciones a través de módulos OSGI, la construcción de sistemas modulares, módulos reutilizables y bibliotecas son algunas de sus funcionalidades.
Desde la propia experiencia de mimacom trabajando en entornos Devops, recomendamos las tecnologías mencionadas por su facilidad en la integración, configuración y actualización, y porque ofrecen alta disponibilidad, velocidad, escalabilidad, fiabilidad y seguridad.