Instructor: Hoy en día,
la computación en nube se puede encontrar en todas
partes, y es realmente porque hay tantos grandes beneficios para
el uso de la computación en nube.
Y en eso nos vamos a centrar en esta lección cuando
empecemos a hablar
de las diferentes características de la nube.
Cuando hablamos de computación en nube, hay
un puñado de beneficios o características que vemos
cuando elegimos usar la nube.
Entre ellas figuran la alta disponibilidad, la escalabilidad, la elasticidad,
la utilización medida, los
recursos compartidos y la sincronización de archivos.
Veámoslos.
En primer lugar, tenemos alta disponibilidad.
Ahora bien, la alta disponibilidad
se refiere al hecho de que los servicios
experimentan muy poco tiempo de inactividad cuando se utiliza la nube.
Esto se debe a que la mayoría de los servicios que se
construyen en la nube se construyen para ser altamente
fiables y muy tolerantes a fallos.
Esto significa que podemos garantizar un alto nivel de disponibilidad.
Cuando hablamos de disponibilidad,
solemos medirla en términos de porcentaje de
tiempo de actividad frente a tiempo de inactividad.
Así, por ejemplo, el patrón oro dentro
de las redes se conoce como cinco nueves.
Cinco nueves significa 99. 999% de tiempo de actividad o disponibilidad
según la experiencia de sus usuarios finales.
Esto significa que sólo podemos tener unos cinco
minutos y 15 segundos de inactividad al año.
Así es, sólo cinco minutos y 15
segundos en los 365 días del año.
Para ello, hay que disponer de
sistemas de alta fiabilidad y disponibilidad.
Así que si tienes un sitio web, en
realidad vas a tener al menos dos servidores web que
lo alojen.
Así, si uno se cae, el otro
sigue soportando la carga, y eso significa
que el usuario final no experimenta ningún tiempo de inactividad.
A eso nos referimos cuando
hablamos de alta disponibilidad.
Por ejemplo, con mi propio sitio web, diontraining. com, en realidad tenemos una configuración
de alta disponibilidad que se ha creado utilizando
servicios en la nube.
Así que, dependiendo del lugar del mundo de donde vengas, llegarás
a uno de nuestros múltiples
servidores situados en todo el mundo que esté más
cerca de ti para obtener una mejor experiencia.
Ahora, si tu servidor está caído por alguna razón,
serás redirigido automáticamente a otro que esté un poco más
lejos de ti, pero que siga funcionando.
Y así, sigues teniendo el servicio que buscas,
y es una forma de garantizar una alta disponibilidad.
La segunda característica de la nube de la que vamos
a hablar se conoce como escalabilidad.
Ahora, cuando hablamos de escalabilidad, nos
referimos al hecho de que podemos aumentar
el número de personas o el número
de cosas en nuestro sistema a un ritmo lineal o menos que lineal.
Supongamos
que 100 usuarios utilizan mi sistema y
me cuesta 10 dólares.
Bueno, si pongo 200 usuarios en mi sistema, debería
costarme 20 dólares o menos, y eso sería una escala lineal.
Ahora bien, si pasara de 100 a 200 usuarios y el
precio subiera de 10 a 100 dólares, eso sería
una escala exponencial, y no
queremos eso.
Por eso, cuando creamos nuestros sistemas
en la nube, siempre buscamos la escalabilidad,
y eso significa que aunque hoy solo tengamos 10 usuarios, mañana
podríamos tener 100".
Al día siguiente tenemos 1.000, al día
siguiente puede que tengamos 10.000, y así sucesivamente.
Si nos fijamos en
algunas de las grandes empresas como Facebook y Google,
LinkedIn y UNI, tienen millones de usuarios finales que acceden
a sus plataformas todos los días y son capaces de
escalar basándose en la escalabilidad de los servicios
en la nube, porque no tengo que ir y comprar
otro servidor de 10.000
dólares para ponerlo en mi centro de datos local,
porque en su lugar puedo usar
el de Amazon y utilizar una parte de su capacidad
según la necesite.
Ahora, cuando se trata de escalabilidad,
hay dos maneras de escalar.
Una es aumentar la escala, lo que se conoce como escala vertical.
Esto se consigue añadiendo más recursos
a un servidor o nodo concreto.
Por ejemplo, si utilizas un servidor
basado en la nube que tiene dos CPU
virtuales, puedes aumentarlas a cuatro.
Esta es la idea de la ampliación.
Estás añadiendo más recursos,
ya sean más procesadores, más RAM, más almacenamiento,
más ancho de banda o cosas por el estilo.
Ahora, por otro lado, también puedes escalar hacia
fuera, lo que se conoce como escalado horizontal.
Aquí se siguen utilizando máquinas más pequeñas, pero
se utilizan más de ellas
trabajando en tándem detrás de un equilibrador de carga.
Así, en lugar de tener un servidor que gestiona
toda la carga y escalar hacia arriba mediante el aumento
de las CPU y el aumento de la memoria, puede escalar hacia fuera y pasar
de un servidor a dos servidores o dos servidores a cuatro,
o cuatro a ocho, y puede seguir moviéndose hacia fuera, mediante la adición de
servidores adicionales detrás
de su equilibrador de carga con el que puede gestionar el tráfico
adicional.
Ahora, esto nos lleva a nuestra tercera
área, que se conoce como elasticidad rápida.
Cuando hablamos de elasticidad rápida, nos referimos al
hecho de que podemos aumentar
o reducir la escala muy rápidamente.
Ahora esto se hace porque usamos automatización y orquestación
con un montón de máquinas virtuales en estos servidores
físicos que son propiedad de Amazon,
Google, Microsoft y otras corporaciones que
nos permiten usar porciones o todos sus servicios según
necesitemos bajo demanda.
Y esto nos da esa rápida elasticidad.
Cuando oiga el término elasticidad rápida
o elasticidad en general, piense en ella como el hecho de la capacidad
del sistema para gestionar cambios en la demanda
en tiempo real.
Volvamos al ejemplo de utilizar
mi sitio web en diontraining. com.
Si ahora mismo consulto mi sitio web
y tengo 1.000 estudiantes registrados, y dentro
de cinco minutos hay 10.000 estudiantes
registrados, mis sistemas están diseñados
para poner en marcha recursos
adicionales en la nube y transferir parte de la carga de esos nuevos usuarios
a esos servicios adicionales.
Esa es la idea de la elasticidad rápida.
Generalmente, cuando se trabaja en la nube,
si se han diseñado correctamente los sistemas,
se tiene la capacidad de disponer rápidamente de elasticidad
y escalar muy rápido, y luego, del mismo modo, cuando
la demanda desaparece, se puede deshacer rápidamente
de esos servidores adicionales
y volver a reducirlos.
Y la razón por la que querrías hacer eso
es porque todos esos servidores extra te van a costar más dinero,
y si no tienes suficientes usuarios para tenerlos,
no quieres pagar por ello,
así que vas a liberarlos, devolvérselos a tu proveedor
de servicios para que
pueda alquilar ese servicio a alguien más.
En cambio, si estás haciendo un modelo on premise,
digamos que hoy tengo 1.000 alumnos.
Bueno, para 1.000 estudiantes, podría necesitar tres servidores web.
Pero si llego a 10.000 alumnos,
necesitaré otros 15 servidores web.
Pues para eso tendría que comprar 15 servidores más.
Tendría que atormentarlos.
Tendría que instalar todo el software,
tendría que configurarlos.
Todo eso lleva su tiempo,
y por eso no es muy rápido en medidas de elasticidad para
que podamos escalar y satisfacer esa demanda.
Si tienes un modelo de negocio de crecimiento muy lento, no pasa nada.
Pero si estás tratando con algo que es de alta velocidad
o cualquiera de estas plataformas de medios
sociales modernos, y algo que has hecho se ha vuelto
viral, y todo el mundo va a tu sitio web y comienza a inundarte,
si no tienes la capacidad de escalar rápidamente, vas a perder la capacidad
de capturar ese tráfico que viene de ese incidente
viral.
Y por eso quieres poder construir
tu material de forma rápida y elástica,
y eso es lo que nos permite la nube.
Lo cuarto que tenemos se conoce como utilización medida.
Esto nos remite al debate
sobre la elasticidad rápida que acabamos de mantener.
Ahora bien, cuando hablamos de utilización
medida, nos referimos al hecho
de que estamos pagando por un servicio en función de su uso.
Cuando utilizamos un servicio medido, como una base
de datos, pueden cobrarnos
en función del número de usuarios,
conexiones o datos almacenados.
Esencialmente, se nos cobra en
función del uso real del servicio que se consume.
Y lo hacemos por segundos, por
minutos, por horas, por días o incluso por meses.
Por ejemplo, yo uso AWS Lambda
para muchas de mis automatizaciones y funciones
de backend, y me cobran en función de mi uso.
Ahora, por cada millón de solicitudes que hago,
me cobran 20 céntimos.
Y así es una manera muy eficiente para
mí para conseguir mis automatizaciones
hecho porque es una cosa muy, muy bajo costo.
Puedo tener millones y millones de peticiones
y sólo me costaría un par de dólares, y esa
es la idea de un servicio medido.
A veces se distingue
entre servicio medido
y servicio medido.
Ahora bien, cuando hablamos de servicios medidos o con
contador, en realidad estamos hablando
de lo mismo y es nuestra capacidad
de pagar por algo en función del consumo.
Pero aquí hay una diferencia.
Cuando utilizas un servicio con
contador, pagas por
las cosas en función del uso real que has hecho.
Así que si piensas
en la factura del agua o de la luz de tu casa.
Si este mes has abierto la manguera
y has llenado la piscina, vas a pagar
mucho más por la factura
del agua porque has consumido mucha más agua.
En cambio, cuando se trata de un servicio medido,
es más parecido a un plan de telefonía móvil.
En la mayoría de los lugares, pagas una cuota mensual por una determinada
cantidad de uso de ese móvil, ya sea el número de mensajes
de texto, minutos o datos que puedes consumir.
Y una vez que llegues a ese límite,
te suspenderán el servicio y no te darán más hasta
que vuelvas a pagarles.
Así que cuando pienses en un servicio medido,
piensa en el hecho de que estás pagando por adelantado
una cantidad determinada, y tanto si la utilizas como si no, ya
has pagado por esa cantidad.
Pero cuando se trata de
un servicio con contador, pagas por la cantidad exacta
que consumes.
Y esta es realmente una de las ventajas de usar la nube,
que la mayoría de las cosas se hacen sobre una base
medida en la que sólo pagas por lo que usas.
Lo siguiente de lo que vamos a hablar es de los recursos compartidos.
Ahora, cuando hablamos de recursos compartidos, en realidad
estamos hablando de la capacidad de minimizar nuestros costes
porque podemos poner nuestras máquinas
virtuales en los servidores de otros.
Los servidores que utilizamos
para Amazon, Azure y Google Cloud cuestan
10.000, 20.000 o 30.000 dólares
cada uno por un servidor de buena calidad.
Y así, si necesitas comprar
uno de esos para poder alojar tu blog de WordPress, en realidad
no estás utilizando toda esa capacidad, porque
si sólo tienes un par de cientos de lectores,
no va a utilizar tanta carga.
En lugar de eso, tiene mucho más
sentido coger ese servidor tan caro, dividirlo
en trocitos y distribuirlo en
máquinas virtuales a todo
el que quiera usarlo.
Así que podríamos alojar 50 o 100 blogs de
WordPress en ese único servidor en lugar de alojar sólo uno.
Esa es la idea de utilizar recursos compartidos.
Cuando hablamos de recursos compartidos,
nos referimos a reunir todo el hardware que compone
el centro de datos del proveedor de la nube.
Y de esa manera no está dedicado a un solo individuo,
sino que todos podemos usarlo basándonos en una rápida elasticidad
porque, con suerte, lo que Amazon y Google y Azure están pensando
es que cuando hay periodos altos
de demanda para mi empresa, puede haber periodos
bajos para la tuya y viceversa.
Así, en lugar de tener que dedicar recursos de hardware
a cada una de nuestras empresas,
podemos compartir recursos de forma generalizada.
Y la última característica
de la nube es la posibilidad de sincronizar archivos.
Ahora bien, lo bueno de utilizar un recurso basado
en la nube es que puedes poner algo
en un sitio y luego puede extenderse a
otros lugares en función de cómo lo configures.
Por ejemplo, en mi empresa dependemos
mucho de la sincronización de archivos
porque la mayoría de nuestros empleados trabajan a distancia
en todo el mundo, no sólo en nuestras oficinas.
Así que mientras estoy
sentado aquí en mi oficina grabando esto ahora
mismo, necesito una manera de darle este archivo a mi diseñador gráfico
para que pueda crear todas las cosas diferentes que
estás viendo en la pantalla mientras estoy hablando.
Y luego irá a enviarlo
a otro país donde se encuentra mi editor de vídeo.
Y cuando terminen, lo enviarán a mis
oficinas, donde uno de mis empleados
hará los controles de calidad, y luego lo enviaremos
a otro país, que lo subirá al sitio final, donde lo
verán ustedes.
Y así, este vídeo ha viajado probablemente a cuatro o
cinco lugares diferentes para poder ser ese producto acabado
que estás viendo ahora mismo en la pantalla.
Esta es la idea de la
sincronización de archivos, porque cuando grabo esto, lo estoy
grabando en un servidor de archivos basado en la nube,
todos en mi equipo pueden acceder a ese archivo porque tenemos
esa copia sincronizada en todos sus dispositivos y en todos
nuestros servidores alrededor del mundo para que puedan acceder
a él y hacer lo que necesiten.
Y mientras lo hacen, no
se queda solo en su ordenador,
sino que se sincroniza en todos nuestros servidores en
la nube, de modo que todo lo demás que tiene que ocurrir
entre la grabación y la publicación,
y luego el visionado, puede
ocurrir en todos esos servidores de forma
muy racionalizada.
Y esa es una de las grandes ventajas
de la nube desde el punto de vista empresarial:
no tienes un servidor en tu oficina.
Ahora está en la nube,
en un centro de datos protegido, de alta disponibilidad,
escalable y elástico
para responder a periodos
de mayor o menor demanda.
Sólo tenemos que pagar por lo
que usamos y podemos compartir recursos con otras
personas que quizá ni conozcamos
porque todos estamos sentados en el mismo servidor físico.
Y estas son todas las cosas de las que
hablamos cuando empezamos a hablar de las características
de la nube y de por qué se ha producido esta gran migración
a la nube por parte de muchas empresas de todo el mundo