Tipos de Nube

Ahora que ya sabemos qué es computación en la nube y que existen diferentes tipos de servicio como IaaS o PaaS, es necesario hablar en este punto acerca de los tipos de nube que pueden existir. Dichos tipos son:

  1. Nube Privada
  2. Nube Pública
  3. Nube Híbrida

Hoy les voy a hablar de estos tres tipos de nube y de cuáles son sus características. No hay que olvidar que una nube siempre debe cumplir las premisas del NIST  (Ver post anterior Aquí).

Nube Privada. Es una nube que tiene como principal característica que se encuentra en un ambiente privado y dedicado a una compañía o grupo de compañías en particular. Este ambiente generalmente se encuentra en las instalaciones del cliente o en un Data center contratado a algún proveedor de servicios.

¿Qué es lo que la hace una nube privada? Primero que esté dedicada a un cliente o grupo de compañías relacionadas entre sí, además no debe estar con acceso público, es decir desde Internet.

Lo que define que una red sea privada es el tipo de direcciones IP que tiene dicha red. Como Internet se basa en estándares y protocolos como TCP/IP existe una directriz que indica cuáles direcciones IP se deben usar en una nube pública, estas directrices se denominan RFCs (Request For Comments) y son generadas por la IETF (Internet Engineering Task Force) que es una entidad que define los estándares en Internet.

El sitio web de la IETF es https://www.ietf.org/ allí se pueden encontrar los RFCs. Por citar algunos ejemplos para el protocolo de correo SMTP (Simple Mail Transfer Protocol) hay RFCs, para el famoso HTTP (Hypertext Transfer Protocol) o para el protocolo FTP (File Transfer Protocol) hay RFCs asociados que describen cómo funcionan y eso es lo que hace que independientemente de la plataforma que se use funcionen sin problema, de modo que desde una máquina Linux le puedo hacer FTP a una máquina Windows pues ambas usan el mismo protocolo y todo fue descrito en uno o varios RFCs.

Volviendo a nuestra definición de nube privada, existe un RFC que determina cuáles son las direcciones IP privadas que se deben usar en una organización, dicho RFC es el 1918 (Lo pueden encontrar en https://tools.ietf.org/html/rfc1918) y si lo consultan van a encontrar las IP’s que se deben usar en un ambiente de nube privada, no esperen eso sí un documento muy elaborado en su parte gráfica simplemente es un documento técnico.

Bien, allí dice que las direcciones IP que se pueden usar en un ambiente privado solamente son las siguientes:

Clase A                 10.0.0.0        –   10.255.255.255

Clase B                  172.16.0.0      –   172.31.255.255

Clase C                  192.168.0.0     –   192.168.255.255

Y punto. Lo que no esté en ese rango es considerado público y no se debería usar en un ambiente privado.

Vale recordar que este es el RFC o definición para IPv4, para IPv6 también existen RFCs como el 2460 (https://www.ietf.org/rfc/rfc2460.txt)

Si observan el gráfico notarán que todas las máquinas –servidores y el portátil- tienen IP’s privadas:

nube privada

Nube Pública. Es una nube que está en Internet. Recordemos que Internet es una red pública.

De igual manera, existen condiciones para que sea pública y la primera de ellas es que tenga direcciones IP públicas y esté expuesta en Internet.

Las direcciones IP Públicas en general son las que no están en la lista de direcciones que mencioné arriba, aunque en la definición de direcciones IP existe una serie de IP’s reservadas por la IANA (Internet Assigned Numbers Authority),  organismo responsable de administrar las direcciones IP en el mundo (www.iana.org). Como lo decía, la IANA tiene unas IP’s reservadas que se encuentran listadas en http://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml

Si la IP no está en la lista del RFC 1918 y en la lista de IP’s reservadas que acabo de mencionar es una IP pública.

200.31.19.126 es una IP pública, así como 190.216.157.221 también lo es. Ello implica que cualquier persona puede tener acceso a los servicios expuestos en esta IP, por ejemplo si es el sitio web de un banco. Y si lo ponemos en el contexto de una nube, una nube pública es la que está expuesta en Internet con direcciones IP públicas y que algún proveedor de servicios de Internet me entrega.

Ejemplos de nubes públicas son AWS (Amazon), SOFTLAYER (IBM) y AZURE (Microsoft). Ello quiere decir que desde un sitio con acceso a Internet puedo aprovisionar máquinas virtuales o físicas (Bare Metal) en un portal público como el de SOFTLAYER por citar un ejemplo. Yo decido si mi máquina o servicio queda expuesto –a través de una IP Pública- en Internet.

En realidad la cuestión es simple, pero con todas las tecnologías de hoy en día de encapsulamiento de paquetes y VPNs yo también podría tener una Nube Privada en un ambiente público, es decir en un proveedor de servicios públicos como SOFTLAYER puedo tener una nube privada a la que solamente yo tenga acceso. Mis servicios y cargas de trabajo están en Internet pero a través de VPNs y seguridad yo puedo hacer que solamente yo tenga acceso a este ambiente sin exponerlos públicamente.

Nube Híbrida.

Ahora bien, en términos sencillos podemos decir que una nube híbrida es una combinación de una privada y una nube pública, si bien esta es una definición muy simple, funciona.

Yo siempre hago énfasis en el hecho de que para tener una nube se deben cumplir las condiciones para tener una nube según el NIST (Auto aprovisionamiento, Elasticidad, Pago por Uso y uso de protocolos de Internet) y esta no es la excepción, por lo tanto una nube híbrida es un ambiente más complejo pues combina aplicaciones y soluciones de un ambiente privado con una nube pública.

Aquí surgen conceptos como el de Cloud Bursting, que  me permite crecer en mi capacidad cuando se desborda desde una nube privada hacia una nube pública.

Por ejemplo si en mi ambiente local tengo una VM (Máquina Virtual) que necesita mayor capacidad de cómputo en memoria y procesador y no tengo capacidad local para este crecimiento, puedo hacer que mi máquina vaya hacia la una nube pública de un proveedor en donde pueda tener rápidamente mayor capacidad de cómputo.

cloud burst

Aquí surgen nuevos términos que hay que explicar y que por costumbre las personas del medio los usamos en Inglés (No está bien, pero así lo hacemos casi todos):

On Premises. Ambiente local o privado.

Off Premises. Fuera del ambiente local o público.

VPN. Virtual Private Network, o red privada que se implementa sobre una red pública como Internet.

Disaster Recovery. Ambiente de recuperación de desastres, si hay un desastre en mi ambiente local puedo tener un ambiente de recuperación en otro ambiente público o privado.

Todo ese proceso de hacer Burst hacia una nube pública desde una nube privada implica tener un software que me permita orquestar bajo ciertos parámetros esta tarea, este software se denomina orquestador y existen muchos orquestadores de diferentes fabricantes, más adelante hablaré de ellos.

¿Qué motivó el nacimiento de las nubes híbridas? Básicamente el hecho de que muchas compañías ya tienen una importante inversión en hardware y software que usan en sus instalaciones (On Premises)  que quieren seguir usando en combinación con otras cargas de trabajo en la nube (Off Premises), además algunas compañías y organizaciones por la naturaleza y sensibilidad de los datos que manejan no pueden llevar todo a una nube pública, como los bancos, organizaciones gubernamentales o clínicas por sólo citar algunos ejemplos.

No en todos los casos se tiene un portal de auto aprovisionamiento de recursos para usar recursos en la nube privada o en la pública o elasticidad pero sí conectividad entre la nube privada y la nube pública. En estos casos yo prefiero llamar a este ambiente Ambiente Híbrido, pues no es una nube híbrida puramente dicha.

Una nube híbrida tiene como objetivo primario entregar IT como servicio, de modo que los usuarios de las organizaciones usen IT de acuerdo a sus necesidades y como un servicio ágil y dinámico.

Acá es donde van a estar moviéndose las compañías hoy en día, en una combinación de nubes privadas y nubes públicas pues no todos los escenarios están hechos para una nube pública, de modo que este es el presente y futuro y ahí es donde debemos todos estar bien preparados para los nuevos retos que se vienen.

Muchas gracias por haber estado conmigo y los espero en próximas entregas.

¿Qué es Computación en la Nube?

Bueno, ahora vamos a hablar de qué se trata esto de la Computación en la Nube o Cloud Computing en Inglés.

Ya explicamos por qué se le dice Nube y veamos ahora en qué consiste. Primero hay que decir que se deben cumplir ciertas condiciones básicas para que estemos hablando de una nube:

  1. Servicio por Demanda y Auto Aprovisionado
  2. Amplio acceso desde la red
  3. Agrupación de recursos
  4. Elasticidad
  5. Servicio medible

Estas características se encuentran el documento que el NIST (National Institute of Standards and Technology) definió en el año de 2011 y que ilustran a la perfección lo que es una nube. El documento es el “NIST SP 800-145, The NIST Definition of Cloud Computing” y lo pueden encontrar Aquí

Si no se cumplen estas condiciones no estamos hablando de Computación en la Nube propiamente dicha.

Empecemos por explicar cada una de estas condiciones:

  1. Servicio por Demanda y Auto Aprovisionado. Cualquier usuario puede aprovisionar por sí mismo sus propios recursos, por ejemplo un servidor Windows o Linux, un espacio de almacenamiento o un sitio web desde una plantilla sin intervención de un tercero. Cada vez que el usuario lo requiera simplemente aprovisiona los recursos que necesita.
  2. Amplio acceso desde la red. Como para complementar yo diría “acceso a través de protocolos de Internet estándar como HTTP y/o HTTPS”. Ello quiere decir que usando un navegador cualquiera podemos tener acceso a un portal para aprovisionar recursos. ¿Que sea acceso Público o Privado? Eso dependerá del tipo de Computación en la Nube que yo haya definido.
  3. Agrupación de recursos. Esta es una de las condiciones más importantes pues se trata del hecho de tener los recursos de cómputo agrupados para diferentes usuarios o compañías, que se encuentran lógicamente separados entre sí de modo que cada uno de ellos ve solamente sus propios recursos. ¿Qué es lo que permite tener esta agrupación? Tecnologías como la virtualización permiten tener una o varias máquinas físicas ofreciendo recursos virtuales como Máquinas virtuales, Red o Almacenamiento entre otros. En su forma más pura un usuario no sabe en qué máquina física están ejecutándose sus máquinas virtuales o recursos, pero sí podría saber en qué país se encuentran estas máquinas virtuales.
  4. Elasticidad. Un usuario de recursos de nube debe estar en la capacidad de crecer y decrecer sus recursos de acuerdo a sus necesidades y de nuevo sin intervención de un tercero. Si necesito aumentar la capacidad de memoria de una máquina virtual debo poder hacerlo más allá de que el Sistema Operativo me pida reiniciar en algunos casos para tomar los cambios.
  5. Servicio medible. Yo como usuario debo estar en la capacidad de medir el consumo de recursos sea cual sea el recurso que consuma en la nube, como cómputo (Máquinas Virtuales), Disco, Ancho de Banda, etc.

Ciertamente es un concepto que no es fácil de digerir, puesto que las compañías tradicionalmente han usado infraestructura de cómputo en sus propias instalaciones. Ello no es que sea malo ni bueno para efectos prácticos, y depende de las necesidades de la compañía.

Desde hace unos años también han usado Datacenters o Centros de Datos, que son sitios adecuados para alojar máquinas como servidores, almacenamiento, switches, routers, firewalls, balanceadores de carga, unidades de respaldo y cualquier otro dispositivo necesario para un ambiente de IT. Detrás de dicha capacidad de alojar equipos de cómputo está la necesidad de tener instalaciones físicas con sistemas de refrigeración, sistemas eléctricos complejos, sistemas de cableado de red y fibra óptica, y sistemas anti-incendios entre otros aspectos.

Todo ello con redundancia para estar preparados ante eventualidades de cualquier naturaleza. Toda esta infraestructura es costosa y requiere una inversión muy fuerte de capital, por eso es que solamente las compañías con un músculo financiero muy fuerte pueden tener esta infraestructura y las compañías cuyo negocio principal no es la tecnología prefieren alquilar servicios de un Datacenter para alojar su infraestructura de IT y aquí es donde tiene mucho sentido el concepto de nube.

Hoy en día todo se consume como servicio o “As a Service” como se diría en Inglés, por ello es que surgieron conceptos como: IaaS, PaaS y SaaS los cuales pasaré a explicar a continuación.

IaaS (Infrastructure As A Service). Infraestructura Como Servicio. En su más pura expresión consiste en en usar recursos de cómputo como servicio, es decir -y sin perder de vista las premisas que ya mencioné- consumir máquinas virtuales solamente cuando yo las necesite y pagando solamente por lo que se use de dichas máquinas. Vale decir en este punto que la virtualización es una tecnología fundamental en los aspectos relacionados con la computación en la nube, pues permite fraccionar una máquina física en varias máquinas virtuales con sistemas operativos Windows o Linux por ejemplo. (Recuerdan la premisa #3 “Agrupación de Recursos”?). Más adelante vamos a ver que hoy en día ciertos proveedores como IBM pueden proveer en una nube máquinas físicas.

PaaS (Platform As A Service). Plataforma Como Servicio. Es un nivel más allá de la infraestructura debido a que provee entornos para ejecución de aplicaciones o desarrollo de las mismas sin que el usuario final o consumidor tenga que preocuparse por mantener este entorno. Llevémoslo a un ejemplo: Para ejecutar una aplicación web hecha en PHP y con conexión a una Base de Datos MySQL debo preparar un servidor (Windows o Linux por ejemplo) con un servidor Web Apache o IIS con soporte a PHP y MySQL y ello implica un trabajo importante así como un monitoreo posterior y permanente del servidor en variables como el espacio en disco, por sólo citar un ejemplo. En el caso de PaaS el proveedor ya le provee al usuario este entorno listo para su uso sin preocuparse de la configuración de dicho entorno.

SaaS (Software As A Service). Software Como Servicio. Este es el mejor de los mundos, pues aquí yo sólo me preocupo por ejecutar mis aplicaciones como un servicio y ya. El mantener dichas aplicaciones es problema de otro y no mío. Cuando uso un ERP o un CRM en la nube tengo un ejemplo clásico de SaaS. Por supuesto los datos son míos.

En el siguiente gráfico se puede ver cómo es el esquema de cada una de las soluciones:

aaS

De izquierda a derecha es posible notar que el color azul muestra lo que administra el cliente, empezando por un modelo tradicional en donde el cliente es responsable de toda la gestión de recursos tanto de infraestructura como aplicaciones así como las bases de datos y los datos en sí.

Como ya lo dije anteriormente, no es un modelo que esté mal y aún tiene mucha validez en muchos escenarios que por ejemplo manejan datos sensibles como los bancos, una agencia de seguridad gubernamental o incluso un hospital con datos críticos de sus pacientes.

En la medida que se avanza hacia la derecha en este gráfico podemos notar que se le va entregando la responsabilidad de gestión de ciertos componentes a un tercero, como lo es un proveedor de servicios de nube. En el caso de IaaS me entregan un Sistema Operativo ya instalado y yo debo ser responsable de administrarlo pero no me preocupo por la infraestructura en donde se encuentra alojado y ejecutándose dicho sistema operativo.

Si voy al modelo PaaS, sólo me debo preocupar por mis datos y mis aplicaciones. Que si corren en un Sistema Operativo A o en un Sistema Operativo B es secundario, el proveedor debe garantizarme que la plataforma siempre esté disponible y de acuerdo a los acuerdos de niveles de servicio a los que se comprometió conmigo.

Y por último está SaaS que en la imagen está completamente en gris y en donde sólo me debo preocupar por usar el servicio, y por supuesto los datos son sólo míos.

¿Interesante verdad? Pues bien, resulta que como ahora la tendencia es tener muchas “cosas” como servicio o “As a Service”, entonces surgieron nuevas tendencias como:

BPaaS. Business Processes As a Service. Procesos de negocio como servicio.

DBaaS. Database As a Service. Bases de Datos como servicios

DaaS. Desktop As a Service. Escritorios como servicio, por ejemplo máquinas con Windows 10 como servicio.

Security-aaS. Security As a Service. Seguridad como servicio

CaaS. Communications As a Service. Comunicaciones como servicio.

MaaS. Monitoring As a Service. Monitoreo como servicio.

¿Es una locura cierto? Pero es la tendencia, ya casi nadie quiere firmar un contrato con un proveedor a 36 o 48 meses, o comprar hardware, mantenimiento y asumir la obsolescencia de dicho hardware.

Dejé para lo último XaaS, también conocido también como EaaS (Everything As a Service) o *aaS. En pocas palabras cualquier cosa como servicio en lo que tiene que ver con los recursos de IT, pues aún mi compañía de televisión por cable, telefonía e Internet no ha querido entrar en ese modelo…

Hay mucho camino por recorrer y a través de este blog voy a empezar a hablar de cada uno de estos elementos haciendo énfasis en los principales proveedores del mercado, y especialmente en la plataforma de nube de IBM.