Tengamos la cabeza en las nubes

Todos los días escuchamos términos relacionados con la computación en la nube (o Cloud), términos como PaaS, SaaS y otros. Pero, ¿qué significan? ¿Para qué sirven? Y lo más importante, ¿qué pueden significar para nosotros y nuestro negocio? Voy a intentar aclarar estos conceptos, pero para incrementar el interés voy a hacer un pequeño spoiler, vamos a poder pasar de CAPEX a OPEX, es decir pasar de gasto e inversiones por compra a gasto por operación y servicio. ¿Interesante no? Pues vamos a las explicaciones, pero mientras ¿Os apetecen unas pizzas?

Os presento a Daniel, un fan del deporte cuyo equipo favorito juega la final durante el próximo fin de semana y decide invitar a sus amigos a ver el partido en su casa, mientras cenan unas pizzas que va a hacer el propio Daniel. Buen plan ¿no?, eso sí, sus amigos traerán la bebida.

Por otro lado, os presento a Sara, que es la encargada de los sistemas de una empresa de productos de belleza y que nos irá descubriendo servicios de los proveedores cloud y cómo éstos pueden afectar a su día a día (y a la economía de su empresa).

Daniel escribe en el grupo del móvil la invitación y comienzan a llegar las respuestas, unos contestan que vendrán, otros que puede, otros que si pueden traer un amigo, y los hay que no responden. Pero esto no es lo peor, lo peor es cuando pregunta sobre qué tipo de pizzas quieren para cenar, cada pizza es distinta. Existe mucha indefinición, pero Daniel tiene que hacer las pizzas, comenzando con la masa, que necesita tiempo de fermentación y reposo. ¿Pero cuántas hace? Si no sabe los que vienen definitivamente ¿Y si prepara las justas y luego viene alguien más? ¿Pues qué debe hacer? Hará lo que hacemos todos, preparar más masas de la cuenta para no quedarse corto y que haya gente que no coma, lo que implica pagar todos los ingredientes y comenzar a cocinar sin ni siquiera saber cuánto necesita de cada cosa y con el riesgo más que cierto de hacer más masas de las necesarias.

A Sara le sucede algo parecido, tiene que dimensionar su datacenter y ha preguntado a sus compañeros qué sistemas necesitan para cubrir sus procesos y cuanta carga de trabajo tendrán estos sistemas para poder comprar nuevas máquinas, pero hay mucha incertidumbre y Sara no quiere comprar menos hardware del necesario y ante la posibilidad de quedarse corta y no poder dar servicio, pedirá más capacidad en los recursos de la que se espera utilizar, así pueden crecer sin problema y siendo consciente que pagará por adelantado capacidad de cálculo y almacenamiento que posiblemente no se use nunca. La opción de pedir nuevos sistemas adicionales cuando haya mucha carga no entra en sus planes, puesto que es un problema en gestión, en inversión y en tiempo, (como la masa de pizza, necesita tiempo y reposo).

Para evitar depender del tiempo de las masas, Daniel decide no hacer las masas de pizza el mismo, sino comprarlas ya preparadas y si necesita comprar más, puede hacerlo en el ultimo momento, cuando haya algo más de definición sobre las personas que vengan y sin necesidad de tener que esperar a la fermentación.

Sara por su parte, para no tener que esperar mucho tiempo en provisionar nuevas máquinas y ser más ágil, se va a decantar por el uso de un IaaS (Infrastructure as a Service). Las IaaS son un tipo de servicio de informática en la nube que ofrece recursos esenciales de proceso, almacenamiento y redes a petición del usuaio y que permiten su pago por uso. Gracias a las IaaS, Sara puede pedir en la nube los servidores que necesite, siendo mucho más rápido y sencillo el aprovisionamiento de los sistemas. Usando IaaS, podemos aprovisionar y decomisar servidores de una manera rápida, a la vez que escalar y reducir tanto vertical como horizontalmente en pocos segundos (incluso de manera automática), evitando así sobrecostes en las operaciones.

Daniel se dispone a realizar las pizzas, pero tiene que comprar por adelantado muchos ingredientes ya que sus amigos son muy exquisitos y cada uno quiere la pizza de un sabor (no voy a entrar en el debate, pero ninguno ha pedido la pizza con piña). Para evitar que pidan cosas demasiado extrañas o que haya mucha dispersión, Daniel opta por enviar una lista de ingredientes cerrada y que sus amigos decidan qué quieren poner en sus pizzas de esos ingredientes. Aún así, comprar los ingredientes por adelantado supone un desembolso, y que lo que no se use se perderá, o incluso ingredientes que tenga que comprar un paquete entero para usar sólo un poco de ello.

Daniel decide que mejor que comprar los ingredientes y hacer las pizzas en su casa, las va a encargar a una Pizzeria, ya que así será más cómodo y todos podrán elegir los ingredientes que más les convenga, pudiendo esperar casi hasta el último momento para decidir qué pizzas y los ingredientes de cada una.

En la empresa de Sara, tienen mucho interés en modernizar su portal de venta online así como otras aplicaciones web que disponen. Sara está revisando las licencias y sistemas que debe comprar para las soluciones que se pretenden desarrollar, dándose cuenta de la complejidad a la que se enfrentará con bases de datos, entornos de programación, middlewares, soluciones de análisis de datos y otras herramientas necesarias, sin olvidar la gestión posterior en el día a día, como son las actualizaciones, mantenimientos de seguridad y otros. Es por ello que Sara comienza a pensar en utilizar un PaaS (Platform as a Service). El PaaS es un entorno de desarrollo e implementación completo en la nube, con recursos que permiten entregar toda la solución, desde aplicaciones sencillas basadas en la nube hasta aplicaciones empresariales sofisticadas preparadas para trabajar con varias nubes. PaaS va un paso más allá de IaaS e incluye infraestructura (almacenamiento , servidores y redes), pero también incluye middleware, herramientas de desarrollo, servicios de inteligencia empresarial (BI), sistemas de administración de bases de datos, etc. PaaS está diseñado para ofrecer servicios para el ciclo de vida completo de las aplicaciones: compilación, pruebas, implementación, administración y actualización. Gracias a PaaS, podremos disponer de manera rápida de servicios y herramientas para el desarrollo de nuestras soluciones, pagando solo por aquellas que usemos.

Daniel cree que, ya que le van a cocinar las pizzas, porqué no ahorrarse también el desplazarse hasta la pizzeria, si ofrecen un servicio que te las traen a casa, por lo que finalmente pedirá las pizzas con servicio a domicilio; del horno a la mesa.

Sara cree que parte de las soluciones que se quieren desarrollar como el CRM, ya existen en el mercado y pueden ser utilizadas de una manera rápida y sin un coste elevado, por lo que, para ello, propone el uso de SaaS (Software as a Service). El SaaS permite a los usuarios conectarse a aplicaciones con funcionalidad completa basadas en la nube a través de Internet con todo el servicio ofrecido por los proveedores. Ejemplos de ello son los correos electrónicos, almacenamientos compartidos u otras aplicaciones de gestión como gestores de campaña, gestión de cursos etc (la verdad es que actualmente la lista de soluciones disponibles como SaaS es muy extensa, incluyendo soluciones verticales). Mediante el uso SaaS, podremos pagar sólo por aquello que consumamos, pudiendo escalar o reducir recursos en función de nuestras necesidades.

Bueno, parece todo ideal ¿no?. Pagamos por lo que consumimos, o casi. Vamos a entrar un poco en los modelos de pago de estos servicios.

Daniel ha llamado a la pizzeria unas horas antes del partido para que vayan preparando las pizzas y puedan estar a la hora que comience. Justo unos minutos antes del comienzo, ha llamado Luis, uno de los amigos de Daniel, diciendo que no irá a su casa y otra persona ha escrito que irá a ver el partido con una amiga. Ahora tenemos una pizza pedida por Luis que no comerá, y una nueva persona que no tiene pizza. La solución más rápida seria decir que esta nueva persona coma la pizza de Luis, pero a veces los gustos no concuerdan; por ejemplo, la pizza de Luis podría ser de carne y la nueva persona ser vegetariana, con lo que no es la opción ideal. Seguramente se pediría una nueva pizza y quedaría la de Luis sin comer.

En el mundo cloud, Sara va a poder gestionar este tipo de situaciones de una manera muy ágil. Aunque dependiendo del proveedor de servicios cloud, podemos encontrar más o menos formas de contrato de servicios, las mas comunes son por suscripción y pago por uso.

Pago por suscripción: Contratamos un servicio por un periodo de tiempo determinado, pagando por este periodo. Si no se usa el servicio, se debe pagar igualmente. Este tipo de contratos tiene mejores precios pero carece de la flexibilidad de dejar de pagar si no se utiliza.

Pago por uso: Se nos cobra por cada servicio utilizado por el tiempo utilizado. Podemos encontrar de varios tipos, algunos son:

Créditos: Pago por adelantado o compromiso de gastar una cantidad de dinero en diferentes servicios dentro de un tiempo determinado. Son como comprar unas fichas que gastamos en lo que queramos. Tenemos la flexibilidad de cambiar de servicios, pero el compromiso de gastar cierta cantidad de dinero (y en ocasiones con pago por adelantado).Son precios algo mayores que los pagos por subscripción, pero menores que la siguiente categoría.

«Pay as you go»: Se pueden usar todos los servicios, sin restricción de cuanto gastar en un periodo y lo que se factura al final es lo usado en el periodo. Cuando comenzamos a usar un servicio, va contando lo que consume y al final del periodo se nos factura por lo utilizado. No existen restricciones de uso ni compromisos de gasto.

En el caso de Daniel, las subscripciones serían como pedir las pizzas y pagarlas antes de comer, en caso de que no comas una, la habrás pagado ya. Los créditos sería como decir al pizzero “te pago 200€” y que los amigos vayan consumiendo de ese crédito, pidiendo lo que quieran, y sabiendo que si no consumen los 200€, yo pagaré los 200€ igualmente, pero en contraprestación, el pizzero me hace un 10% de descuento en todo lo que pidamos. Por último, el «pay as you go», sería ir consumiendo en la pizzeria y al acabar que nos cobre por lo consumido.

Hemos comentado que en el pago por uso en cloud, podemos detener un servicio cuando no lo usemos y usar otro en su lugar. En el mundo de Daniel, sería como poder pedir porciones de pizza. ¿Porque voy a tener que pagar un año de un servicio si sólo lo necesito 4 meses? ¿Por qué voy a pagar una pizza entera si solo quiero una porción?

Daniel ha visto una pizza de un nuevo sabor picante, pero no sabe si podrá acabarse una porción, ¿os imagináis que existiera una opción en las pizzerías que pagaras sólo por lo que comes realmente, si es un mordisco, que te cobren solo por un mordisco? (lo sé, no es muy higiénico y menos en estos tiempos). Pues en el mundo cloud la hay.

Las serverless funtions (conocidas también como lambda functions en Amazon) permiten a los desarrolladores crear aplicaciones más rápido, ya que no es necesario que administren la infraestructura. Con las funciones sin servidor, el proveedor de servicios en la nube aprovisiona, escala y administra automáticamente la infraestructura necesaria para ejecutar el código, pagando simplemente por el tiempo que se esté ejecutando esa función. De esta manera, podemos tener al equipo técnico centrado en desarrollar funcionalidad sin tener que pensar en la infraestructura y al equipo económico tranquilo porque sólo pagaremos por el tiempo que la función se esté ejecutando, si no hay ejecuciones, no hay gasto. ¿Interesante verdad?

Espero que este pequeño artículo haya servido para aclarar como el uso de servicios cloud puede ayudarnos en la agilidad de construcción de soluciones a la vez que nos ayuda a ahorrar en costes, y como no, espero también que el equipo de Daniel ganara la final y que todos comieran las pizzas que querían.