Hoy en día es imposible ir a ningún sitio sin escuchar la computación en la nube o cloud computing en su versión en ingles. Y si actualmente trabajas en el mundo de la tecnología, estoy seguro de que habrás estado en alguna reunión con familiares o amigos cuando alguien finalmente te pregunta eso de, entonces … ¿Qué es la nube (cloud computing?

Incluso para los más expertos técnicamente, es una pregunta difícil de responder. “Nube” se usa hoy en día muy a menudo y es una de las palabras de moda, que describe la infraestructura informática o el almacenamiento remoto al cual podemos acceder desde cualquier ubicación. Para proporcionarte el contexto correcto, tomemos un momento para hablar de una breve historia sobre la nube que estoy seguro te sonara mucho.

Históricamente cuando necesitábamos instalar una nueva aplicación lo normal era comprar un servidor físico con CPU, disco y memoria. Era muy probable que este servidor también necesitara acceso a Internet para poder llegar a mas usuarios. Después de pasar por el agotador proceso de sacar el servidor de la caja, enrracarlo y conectarlo, los ingenieros necesitaban entonces configurar el sistema operativo, instalar los programas y los drivers para asegurare de que todo funciona correctamente.

A medida que los usuarios accedían a esta aplicación, todo marchaba bien … hasta que la aplicación se caída por sobre-carga. De repente, el teléfono sonaba a la mitad de la noche. Los ingenieros del sistema necesitarían comprar e instalar servidores adicionales, cortafuegos y balanceadores de carga para proporcionar más recursos para absorber el tráfico adicional. ¿Ves donde esta el problema? Léete el siguiente párrafo donde te explicare como la virtualización de servidores nos hizo la vida mas fácil a todos …

La virtualización de servidores

El 10 de noviembre del 2003: un grupo de ejecutivos de IT estaban viendo una pantalla proyectando un video clip de Terminator II. En la parte inferior derecha de la pantalla, una pequeña ventana con algunos paneles de control de Microsoft Windows mostraba iconos que representaban servidores en ejecución. Estos servidores eran máquinas virtuales y el video clip que la sala estaba viendo se reproducía desde un servidor de archivos en una de estas máquinas virtuales. De repente, el ingeniero hizo un par de clics de raton sobre la máquina virtual y apareció una barra de progreso. El video continuó viéndose. La habitación estalló con gritos y vítores, y no fue por el Terminator. Esta fue la primera demostración de una tecnología de VMware llamada VMotion, que revolucionaría el mundo de las operaciones de IT en los próximos años.

Aunque la virtualización había existido desde la década de los 60, VMware ciertamente puede presumir de haber traído la virtualizacion de servidores estándar x86_64 a las masas con su lanzamiento oficial de VMware VirtualCenter con VMotion. VMotion permitió a los ingenieros del sistema convertir sus máquinas físicas existentes en hipervisores, lo que permite la ejecución de máquinas virtuales. También mantuvo esas máquinas virtuales activas migrándolos a otro hipervisor en caso de un problema de hardware subyacente. Esto se hizo transfiriendo la memoria activa de la máquina virtual y el estado de ejecución a través de la red.

Tanto los desarrolladores de software como los ingenieros de sistemas nos llenamos de alegría con esta tecnología, sabiendo que ahora dormiríamos mejor, sin importar los problemas de hardware.

Amazon y su primero anuncio de S3

En marzo de 2006, Michael Arrington – fundador del blog de noticias de Silicon Valley TechCrunch – hizo un anuncio emocionante: Amazon Web Service lanzara esta noche un nuevo servicio web llamado S3, que significa “Simple Storage Service”. Es un backend de servicios de almacenamiento para desarrolladores que ofrece una infraestructura de almacenamiento de datos altamente escalable, confiable y de baja latencia a muy bajo costo.

En ese momento, las empresas de hosting ofrecían servidores virtuales privados (VPS), lo que permitía alquilar un servidor y usarlo para realizar copias de seguridad o almacenar archivos. Los problemas con estas soluciones eran la limitación de espacio en un servidor en particular, sin mencionar la responsabilidad del cliente de mantener la salud y la seguridad del sistema operativo. Mientras que un servidor virtual privada se cobraba a los usuarios con tarifas fijas mensuales o anuales, Amazon S3 se cobraba al usuario por lo que usaba, al igual que una factura de electricidad en el hogar. El desarrollador de software ahora tenía el poder de evitar la compra de servidores físicos adicionales y cabinas de almacenamiento.

En 2006, AWS nos anuncio otra sorpresa. El 25 de agosto de 2006, Jeff Bar, arquitecto jefe de AWS, anunció el lanzamiento de Elastic Compute Cloud o (EC2):

“Amazon EC2 le da acceso a un entorno informático virtual. Sus aplicaciones se ejecutan en una CPU virtual, el equivalente a un procesador Xeon de 1.7 GHz, 2GB de memoria RAM, 160 GB de disco local y 250 Mb por segundo de ancho de banda de red. Usted paga solo 10 centimos de dólar por hora de reloj (facturados a su cuenta de Amazon Web Services), y puede obtener tantas cpus virtuales como necesites”

Ese anuncio fue todo un éxito en todo el mundo de operaciones de TI. El desarrollador de software no solo podía acceder al espacio de almacenamiento ilimitado con S3, sino que ahora podría crear tantas máquinas virtuales como quisieran. Un estudiante universitario en su dormitorio ahora tenía acceso a los centros de datos, el ancho de banda y el poder de cómputo de las empresas de gran escala.

Era la ventaja competitiva que necesitaban. Esto realmente brindó poder a los desarrolladores. Escalarían rápidamente su aplicación con unos pocos clics de ratón.

Los problemas de Amazon

Aunque Amazon estaba comenzando a ganar tracción como una forma increíble de implementar aplicaciones, había muchas preocupaciones: Una de ellas fue la seguridad: Aunque Amazon ha mejorado significativamente sus ofertas de seguridad a lo largo de los años, en el momento de su lanzamiento, Amazon solo ofrecía infraestructura alojada compartida. Es muy probable que la máquina física que aloja su máquina virtual haya servido a otros clientes, incluido algunos de sus competidores. Las empresas con estrictos requisitos de cumplimiento de seguridad consideran que esto era inaceptable.

Coste: No hay duda de que Amazon es mucho más barato que elegir comprar, implementar, administrar y respaldar la infraestructura usted mismo. ¿Pero qué pasa con toda esa nube de AWS con el tiempo, digamos a medio/largo plazo, es decir, 5 o 10 años? Este es un tema de mucho debate. Pero no siempre contratar una infraestructura en la nube puede ser más barato a medio-largo plazo.

Bloqueo de la arquitectura: A medida que las empresas comenzaron a migrar cada vez más cargas de trabajo de producción en AWS, esto requirió que los empleados invirtieran horas y días de su tiempo aprendiendo los pormenores del ecosistema único de AWS. Imagina la molestia que implica tratar de migrar cargas de trabajo de AWS a otro proveedor de nube.

NASA y Rackspace se unen a Openstack

En el año 2008, la NASA estaba interesada en utilizar AWS EC2 para realizar cálculos científicos, pero tenía algunas preocupaciones sobre su seguridad. Debido a estas preocupaciones, decidieron construir su propia plataforma de nube con código abierto llamada Nebula.

Nebula era un motor de aprovisionamiento de cómputo escalable. Por la misma época, Rackspace, una empresa de hosting basada en San Antonio, Texas, y estaba trabajando en un proyecto de código abierto llamado Swift. Swift era (y sigue siendo) un sistema de almacenamiento de objetos distribuidos similar a AWS S3, que se convirtió en parte de la oferta de Archivos en la nube de Rackspace.

No fue sino hasta julio de 2010 que la NASA y Rackspace anunciaron oficialmente el plan de combinar activamente los proyectos Nebula y Swift, invitando al mundo a comenzar a contribuir con código a un nuevo proyecto de nube de código abierto conocido como OpenStack.

El desarrollo de OpenStack comenzó inmediatamente, y más de 100 arquitectos y desarrolladores de más de 25 compañías diferentes viajaron a Austin para asistir a la primera conferencia OpenStack. Con la misma rapidez, cientos de desarrolladores, fabricantes de hardware y compañías de software de TI comenzaron a contribuir con código, inspirado en la misión OpenStack:  Producir una plataforma Open Source de Cloud Computing que satisfará las necesidades de las nubes públicas y privadas independientemente del tamaño, siendo simple de implementar y masivamente escalable.