Una de las frases que se encuentra de moda en la actualidad es Cloud, pero, realmente conocemos ¿Qué es? o ¿Cómo funciona? Bien, en esta ocasión estaremos hablando sobre Cloud, explicaremos en qué consiste y por que es tan importante que lo conozcamos.
Cloud
Cuando escuchamos la palabra Cloud, nube, en la mayoría de los casos asociamos el término al almacenamiento en servidores, Cloud Storage. Probablemente se nos vienen a la mente servicios tales como DropBox, Google Drive, Mega por mencionar algunos. Sin embargo, definir Cloud como únicamente almacenamiento en internet es quedarnos un poco cortos.
Para este artículo nos concentramos en Cloud Computing, computación en la nube, que es diferente a Cloud Storage.
Con Cloud Storage almacenaremos información (música, vídeos, archivos, entre otros) en internet y con Cloud Computing prodremos desarrollar proyecto. 😯😎
Cloud Computing podemos definirlo como la entrega de servicios informáticos a través de internet. Podemos verlo como un modelo de negocio.
Aquí lo importante es tener muy en claro ¿Qué es un servicio? principalmente porque en el tema de software siempre puede haber cierta confusión sobre ¿Exactamente, qué es lo que se está adquiriendo?. Como sabemos el software es algo que no es tangible, no es una libreta, un bolígrafo o algo por el estilo y si a esto le agregamos el termino servicio más de uno puede confundirse 😰. Pero no te preocupes, para eso estamos aquí. Vayamos paso a paso.
Cuando hablamos de Cloud Computing podemos dividirlo en tres tipos de servicios.
- SaaS
- IaaS
- PaaS
Expliquemos cada uno de ellos.
SaaS
En el modelo de cloud en lugar de pagar por comprar un programa, pagarías por una suscripción para usarlo. En el momento que dejes de pagar la subscripción dejarías de tener acceso al programa.
Un ejemplo de esto es la paquetería de office 365.
Nosotros podemos adquirir una suscripción, ya sea mensual o anual, y con esto hacer uso de las aplicaciones tales como excel, power point o word, algo que anteriormente no podíamos hacer. Hace un par de años nuestra "única" opción era comprar el software, adquirir una licencia y con esto adquirir toda la paquetería. (También podríamos utilizar keygen 😅).
Este modelo se conoce como SAAS, Software as a service. En lugar de pagar por el producto, por el software, lo estarías contratando como un servicio, vaya, alquilando. El programa nunca es tuyo, pagas por un servicio, no por una licencia.
El software como servicio tiene muchas ventajas para nosotros como usuarios finales, por ejemplo, podemos comenzar a utilizar el software sin la necesidad de realiza un pago por una monto alto de dinero, con poco dinero podemos comenzar a trabajar.
Otra ventaja es que si por algún motivo debemos de dejar de utilizar el software únicamente finalizamos la subscripción y con esto finalizan nuestros pagos. En lugar de adquirir una licencia de por vida sabiendo que solo usaremos el producto 4 meses, mejor optamos por una subscripción mensual.
Otra ventaja es que los gastos operativos también pueden verse reducido, algunos servicios se ofrecen a través de navegadores web, tal es el caso de google docs.
IaaS
Ya hace mucho tiempo las empresas dejaron de trabajar con papel al cien por ciento y comenzaron a digitalizar su información, documentos, presentaciones, hojas de cálculo, base de datos etc... Algo común que hacían las empresas serán almacenar toda esta información en servidores propios. Al hacer esto surgen ciertas cuestiones que deben de tratarse, por ejemplo, si el servidor por alguna razón dejar de funcionar prácticamente toda la empresa deja de operar, esto se traduce en pérdida de dinero.
Para que esto no suceda se necesita de un personal con el conocimiento necesario para asegurarse que los servidores operen correctamente, de igual forma se necesita un ambiente adecuado para el servidor; Buena refrigeración para evitar sobre calentamientos, se debe de poseer una fuente extra de energía, en caso se vaya la luz y de esta forma se pueda seguir operando por unos minutos más. Además de todo esto se necesita seguridad, así solo los empleados autorizados podrán tener acceso a los servidores.
Esto implica mucho dinero, personal, equipo de cómputo, infraestructura etc... algo que las pequeñas y medianas empresas no se pueden costear, sin embargo, existen empresas que nos ofrecen el servicio de renta servidores, donde podemos almacenar nuestra página web, documentos importantes, base de datos etc... Estas empresas se encargar de cubrir todos los aspectos para el correcto funcionamiento de los servidores, a estas empresas las conocemos como data center.
Al nosotros rentar un servidor literalmente estamos rentando un equipo de computo. Ahora, es importante mencionar que esto no es cloud, principalmente porque estamos rentando hardware.
En la mayoría de los casos al rentar un servidor los usuarios rara vez utilizan todos los recursos de la computadora, en la mayoría del tiempo el CPU está por el 5 o 10 por ciento de su capacidad. Esto es algo que notaron las empresas y algo a lo que le sacaron mucho provecho. 😛
Seguir con el modelo de renta de servidores es algo muy poco sostenible, entre más clientes, más computadoras, lo cual se traduce en más espacio y por supuesto más infraestructura. Lo que hicieron las empresas es Virtualizar. En un mismo servidor, con características de hardware muy buenas, ejecutan por lo menos dos sistemas operativos, los recursos se dividen. De esta forma es posible rentar un mismo servidor a dos usuarios, incluso más. A esto se le conocemos como servidores virtuales.
La virtualización avanzo tanto que ahora los usuarios podemos virtualizar equipos de cómputo con las características que necesitemos de una forma muy sencilla, más RAM, más Disco duros, más núcleos etc... todo a través de una página web y con un par de clic, además de esto podemos modificar las características de los servidores en tiempo real, sin la necesitas reiniciar absolutamente nada, y por si fuera poco, es posible hacerlo por lapsos de tiempo, vaya Servidores elastico que se adaptan a nuestras necesidades. 😃
Por ejemplo, por las mañanas rentar un servidor con 2GB de RAM, que lo unico que haga sea recolectar datos, y que por las noches, por un lapso de 2 horas el poder de computo aumente, digamos a 16GB de memoria RAM, esto con la finalidad de realizar mineria con los datos previamente obtenidos. En estos casos únicamente pagaremos lo que usemos.
Si solo usaremos los 16GB de RAM por un par de horas al día, no vale la pena pagar un servidor con esta caracteristicas, mejor adquirimos recursos computacionales bajo demanda, unicamente cuando los necesitemos.
A esto se le conoce como IaaS, Infrastructure as a Service. Aquí no rentamos una computadora (física o virtual), estamos rentando poder de cómputo, ¿Cuanto poder y cuando lo usaremos? dependen de nuestras necesidades.
PaaS
Llegamos al último concepto, quizás, el más difícil de explicar, hablamos de PaaS, Platform as a Service. Este es un servicio cloud en el cual se nos proporciona una plataforma de software previamente configurada y lista para comenzar a desarrollar aplicaciones y servicios que funciones a través de internet.
Con este tipo de plataformas los desarrolladores podemos construir aplicaciones web sin tener que instalar ningún tipo de software en nuestras computadoras, esto debido, a que podremos acceder a las plataformas de desarrollo mediante un navegador Web.
Comúnmente las plataformas nos ofrecen: un sistema operativo, lenguajes de programación previamente configurados, variables de entorno, base de datos y servidores web. Todo esto con la finalidad que nosotros como desarrolladores unicamente nos preocupemos por el desarrollo y no por la configuración ni mantenimiento.
Ejemplos de PaaS pudiesen ser: Heroku, Windows Azure, AWS Elastic Beanstalk y Google App Engine, por mencionar algunos.