DevOps vs SDN

¿Qué es DevOps?

https://principiatechnologica.com/wp-content/uploads/2013/11/03/que-es-devops/

DevOps es traer las prácticas del desarrollo ágil a la administración de sistemas y el trabajo en conjunto entre desarrolladores y administradores de sistemas. DevOps no es una descripción del uso de herramientas, sino un método de trabajo enfocado a la coordinación de las labores de desarrollo y administración.

Entonces … ¿Qué relación tiene todo esto con el mundo de las redes?

Lo que ocurre es que han surgido herramientas informáticas bajo la filosofía DevOps que aportan al mundo de los sistemas funcionalidades similares a las que SDN aporta al mundo de las redes, es decir, centralización de la administración, automatización y programación. Y estas herramientas se están “exportando” al mundo de las redes, haciendo de alguna manera las funciones que haría el controlador SDN.

Entre las herramientas OpenSource que permiten construir una plataforma DevOps se encuentran Heroku, Cobbler, OpenStack, Juju, Puppet y Chef.

OpenStack

OpenStack es un sistema operativo OpenSource de Cloud Computing que proporciona la Infraestructura como Servicio (IaaS).

 ¿Qué hace en DevOps un sistema operativo de Cloud Computing?

El proyecto OpenStack se ha convertido en el proyecto de software libre más dinámico y con mayor apoyo por parte de la industria en los últimos años, lo que hace que las herramientas DevOps más importantes puedan desplegar instalaciones de OpenStack de manera centralizada y distribuida. Para dar una visión de conjunto de estas herramientas DevOps hemos visto necesario dar unas notas acerca de OpenStack.

El proyecto OpenStack fue fundado por Rackspace Hosting y la NASA en julio de 2010. Nació con el objetivo de crear una plataforma de cloud computing íntegramente open source (no open core), que asuma estándares abiertos y cubra las necesidades de los proveedores e integradores de nubes públicas y privadas, con independencia de su tamaño. La idea es que sea muy escalable y sin excesiva complejidad. Su concepción transparente y abierta (no solo en su código fuente, sino en su gobernanza a través de una Fundación) protege a los clientes del vendor lock-in.

Las herramientas DevOps que permiten el despliegue de configuraciones en OpenStack son:

  • Juju. Entre sus “hechizos” o charms encontramos algunos para OpenStack, como nova-compute, cinder, keystone o heat.
  • Puppet. Puppet Labs mantiene un repositorio de módulos Puppet para OpenStack en: puppetlabs/puppetlabs-openstack. Además, hay una herramienta dodai-deploy desarrollada en puppet que permite desplegar infraestructura OpenStack. Por otro lado, Red Hat ha creado RDO, un rpm que a través de packstack (basado en puppet) permite instalar OpenStack en apenas 15 minutos.
  • Chef. Opcode mantiene una serie de “Libros de cocina” o cookbooks para OpenStack en: opscode/openstack-chef-repo. Rackspace mantiene una serie de repositorios relacionados con OpenStack en rcbops/chef-cookbooks. Y Dell Crowbar hace lo mismo con las “Recetas de Chef” o receipes en  crowbar/crowbar.

Heroku

Heroku es una plataforma como servicio (PaaS) de computación multi-lenguaje en la nube. Es propiedad de salesforce.com.

Es una de las primeras plataformas de computación en la nube, que fue desarrollada desde junio de 2007, con el objetivo de soportar solamente el lenguaje de programación Ruby, pero posteriormente se ha extendido el soporte a Java, Node.js, Scala, Clojure y Python y (no documentado) PHP. La base del sistema operativo es Debian o, en la nueva plataforma, el sistema basado en Debian Ubuntu.

Actualmente Heroku soporta Cloudant, Couchbase Server, MongoDB y Redis, además de la conocida PostgreSQL, tanto como parte de la plataforma o como servicio independente.

 Las aplicaciones corren en local a través de Foreman o desde un servidor Heroku a través de un repositorio Git. A cada aplicación se le asigna un dyno, que es como llaman en Heroku a sus servidores ligeros donde ejecutan el comando indicado por el usuario. El uso de dynos permite una gran escalabilidad a nuestra aplicación, ya que en cualquier momento podemos contratar más o menos dynos según las necesidades que tengamos.

 Para publicar la aplicación usan Heroku DNS Server para apuntar al dominio de la aplicación (típicamente nombreaplicacion.herokuapp.com). El servidor Git de Heroku maneja los repositorios de las aplicaciones que son subidas por los usuarios. Una vez en la infraestructura de Heroku, según cuentan, disponen de un balanceador de carga que realiza el http routing hacia el dyno en que corre la aplicación.

 La investigación realizada acerca de esta herramienta revela que es una plataforma DevOps para independizar el desarrollo de la infraestructura puramente de sistemas. Para ello, en función del lenguaje elegido, Heroku genera un fichero de requerimientos en el que refleja las necesidades de la aplicación (procesos que requiere, definición de variables, logging configurado). Con esta información Heroku conforma una unidad de procesamiento en cloud, los dynos.

 La gran ventaja que ofrece Heroku, sobre todo para pequeñas aplicaciones que no requieran de muchos recursos, es su precio. Ofrecen un dyno gratuito por cada aplicación que creemos, así que se puede desplegar allí la aplicación para probarla, para mostrarla temporalmente o para ir tanteando las necesidades. Si la versión básica se queda algo corta, nos permite configurar la plataforma a nuestro antojo, para pagar solo lo que necesitemos. Se paga cuando se añaden dynos adicionales, si queremos dynos con más memoria, si queremos mejorar las bases de datos o si queremos algún addon especial.

Cobbler

Se ha decidido mencionar Cobbler porque puede ser configurado para realizar alguna de las funciones de red tradicionales de manera centralizada, pero no se trata de una herramienta que interactúe directamente con el equipamiento de red, y en este sentido no aporta absolutamente nada a la arquitectura SDN.

Cobbler es un servidor del aprovisionamiento Linux que centraliza y simplifica el control de ciertos servicios de red incluyendo DHCP, TFTP, y DNS. Puede ser utilizado con el propósito de realizar instalaciones basadas en red de sistemas operativos (PXE), reinstalaciones, y huéspedes virtualizados usando Xen, KVM o VMware. Cobbler interactúa con un programa llamado Koan para el soporte de la reinstalación y la virtualización. Koan y Cobbler usan libvirt para integrarse con diferente software de virtualización.

Cobbler está hecho sobre el mecanismo de Kickstart y ofrece perfiles de instalación que pueden ser aplicados a una o muchas máquinas. También ofrece la integración con Yum para ayudar en instalaciones de máquinas.

Aunque Cobbler está enfocado a instalaciones basadas en RPM vía Kickstart y  Anaconda, puede ser usado para configurar un servidor PXE para cargar varias imágenes tales como Knoppix u otras versiones de Debian.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *