Última actualización: 22/02/2021
En esta entrada voy a introducir la computación en la nube o cloud computing. Es una guía básica con los conceptos fundamentales. También, vamos a explorar los servicios más comunes, las ventajas que aporta la nube pública y sus tres modelos de implementación.
Contenidos
¿Qué es la Computación en la Nube?
El cloud computing consiste en usar servicios y recursos informáticos de un proveedor como Microsoft Azure, Amazon Web Services (AWS) o Google Cloud Platform (GCP). Suelen tener un modelo de pago por uso y permiten alquilar servicios de almacenamiento, redes y máquinas virtuales.
Servicios
Máquinas Virtuales
Las máquinas virtuales emulan un servidor. Es un equipo informático aislado con un sistema operativo Linux o Windows y un hardware limitado.
Sobre una máquina virtual podremos instalar el software que necesitemos y configurarlo a nuestro gusto. Ofrecen un control total sobre el sistema operativo.
Las máquinas virtuales son una parte de un servidor compartido remoto. Esta virtualización se asegura de aislar y securizar cada máquina virtual para que sea un sistema independiente.
Además, aportan numerosas ventajas, ya que se pueden desplegar muy rápido, hacer copias de seguridad y redimensionar fácilmente.
Las máquinas virtuales también son una buena opción para migrar servidores a la nube (Lift-and-shift). De esta forma podremos tener una máquina con la misma configuración que nuestro entorno local.
En Azure existe otro servicio llamado conjunto de escalado de máquinas virtuales que nos permite administrar un conjunto de máquinas virtuales con la misma configuración y equilibrar la carga entre ellas. De esta forma se puede escalar el servicio fácilmente proporcionando más o menos máquinas virtuales cuando fuera necesario.
Contenedores
En los proveedores cloud también podemos desplegar contenedores. La plataforma más popular es Docker. Estos contenedores nos permiten ejecutar entornos sin sistema operativo integrado para ejecutar nuestras aplicaciones de forma portable o crear arquitecturas de microservicios. En Azure, el servicio PaaS llamado Azure Container Instances nos permite ejecutar de forma sencilla estos contenedores.
También ofrecen servicios de orquestación de contenedores como Kubernetes. Este servicio se denomina EKS o Elastic Kubernetes Service en AWS y AKS o Azure Kubernetes Service en Azure.
Serverless
Por último, la nube ofrece también la posibilidad de ejecutar código sin servidores (o mejor dicho abstrayendo estos componentes del usuario). Esta opción se denomina serverless. Debemos distribuir el código de nuestra aplicación en funciones que se pueden ejecutar bajo demanda pagando solamente el tiempo de procesamiento.
En este caso, el proveedor se encarga de proporcionar de forma transparente los recursos necesarios. Generalmente, estas funciones se ejecutan como respuesta a eventos como peticiones REST o temporizadores.
Las funciones no contienen estado, cada vez que se ejecutan lo hacen desde cero. En el caso de que queramos mantener algún estado o persistencia deberemos conectar servicios externos como bases de datos o cuentas de almacenamiento.
En AWS esta funcionalidad se denomina Lambda y en la plataforma de Azure se denominan Azure Functions. Por otro lado, Azure Logic Apps nos permite implementar flujos de trabajo de orquestación mediante una GUI de manera declarativa. En Azure también existe una extensión de las funciones llamada Durable Functions que sí nos permite mantener cierto estado.
Ventajas de la Computación en la Nube
La informática en la nube facilita las operaciones de administración y de mantenimiento de la infraestructura necesaria para proporcionar estos servicios.
De forma natural, proporciona servicios escalables y elásticos. En cuanto a la escalabilidad, es posible añadir fácilmente servidores a nuestros sistemas (escalabilidad horizontal) o bien incrementar los recursos de nuestros servidores (escalabilidad vertical). Este aumento y disminución de recursos también puede realizarse en función de la carga del sistema (elasticidad) para dar un servicio óptimo a los usuarios.
Los servicios cloud también reducen el coste de determinados aspectos frente a opciones on premises. Por ejemplo, no hay costes iniciales de infraestructura ni de localizaciones físicas para alojarla. También, cuando queremos dejar de usar un recurso simplemente se deja de pagar. Debemos tener en cuenta que estos proveedores tienen multitud de clientes, por lo que pueden aprovechar la economía de escala.
Otra gran ventaja es que las actualizaciones de software y de seguridad son constantes y a menudo transparentes. Los proveedores se hacen cargo de adaptar los sistemas a las nuevas versiones, por lo que se reduce considerablemente el impacto de estas en nuestro negocio.
Por último, los servicios cloud permiten distribuir geográficamente nuestros servicios de una manera muy sencilla. Debemos estudiar las ubicaciones de nuestro proveedor para seleccionar las que nos proporcionen las mejores experiencias para los usuarios.
Modelos de Implementación en la Nube
Hay 3 modelos de implementación en la nube que definen dónde se ejecutan y almacenan los datos del cliente.
Nube Privada
Una nube privada se despliega en el centro de datos del cliente. La empresa cliente sigue siendo responsable de la infraestructura y del software instalado para dar servicio a departamentos.
La ventaja más importante de una nube privada es la seguridad. La organización que la despliega puede establecer todas las medidas de seguridad que estén a su alcance y es la responsable.
Nube Pública
La nube pública consiste en contratar los servicios de un proveedor, que es el que administra estos recursos de forma remota. En este caso, no se puede administrar físicamente el hardware.
Nube Híbrida
La nube híbrida combina los dos modelos anteriores. Parte del software de una organización puede ejecutar en una nube privada y otra parte en la nube pública.
De esta forma, se pueden conseguir las ventajas de ambos modelos. Por un lado la escalabilidad y eficiencia de la nube pública para las aplicaciones en las que sea posible. Por otro lado, pueden existir datos o aplicaciones que no deben ejecutar en nube pública por motivos de seguridad o cumplimiento que ejecutarán en la nube privada.
Tipos de Servicios en la Nube
Existen 3 tipos de servicios en la nube, en función del control que tenga el usuario:
Infraestructura como Servicio (IaaS)
En esta categoría el usuario alquila la infraestructura informática que necesite y la administra a través de internet. Pueden ser servidores, almacenamiento y máquinas virtuales.
La responsabilidad de que el servicio funcione es compartida entre el usuario y el proveedor cloud.
Plataforma como Servicio (PaaS)
La plataforma como servicio proporciona un entorno en el que no es necesario administrar la infraestructura a tan bajo nivel como en IaaS.
Generalmente en un PaaS se ofrecen recursos de desarrollo e implementación de soluciones.
Software como Servicio (SaaS)
El software como servicio proporciona acceso a software ya instalado y administrado. Funciona con una licencia o suscripción periódica.
En esta categoría el usuario tiene la mínima responsabilidad, y solamente se limita a acceder y usar el servicio.
Preguntas Frecuentes Cloud Computing – FAQ
¿Qué es más económico, un servicio IaaS o PaaS?
Los servicios PaaS suelen ser más baratos, aunque no permiten un control tan fino como los servicios IaaS, sobre los que puedes gestionar más componentes.
¿Cuándo debería escalar horizontalmente una aplicación?
La escalabilidad horizontal consiste en añadir más máquinas virtuales al sistema para incrementar su rendimiento. En el caso de que la aplicación esté diseñada de forma adecuada, deberemos escalar horizontalmente cuando necesitemos un mayor rendimiento o velocidad.
¿Qué es la disponibilidad de un servicio?
La disponibilidad de un servicio o aplicación indica el tiempo total que se encuentra funcional. Si existen periodos de tiempo en el que el servicio no es accesible o bien no realiza su función, el servicio deja de estar disponible.
Siguientes Pasos
Puedes seguir aprendiendo sobre tecnologías cloud y Microsoft Azure con estos artículos:
- Servicios de Seguridad en Azure
- Big Data y Bases de Datos en Azure
- Servicios de Red en Azure
- Conceptos básicos y Big Data en AWS
- Introducción a Amazon S3
También, puedes acelerar tu aprendizaje con alguno de estos cursos recomendados en Udemy, y así preparar las certificaciones básicas en Azure o AWS en español:
Azure
- Implementación de soluciones en Microsoft Azure
- AZ-900:Microsoft Azure Fundamentals Certificación Enero-2021
AWS
- Amazon AWS. Curso básico de Amazon AWS. Aprende desde cero
- AWS Arquitecto de Soluciones Certificado – Asociado
Si eres de libros, aquí tienes una buena referencia:
- Examen AZ-900 Microsoft Azure Fundamentals (inglés)
- AWS Certified Solutions Architect Guía de estudio (inglés)
A continuación, el vídeo-resumen. ¡No te lo pierdas!
¡Echa un ojo a mis listas de reproducción de Big Data y suscríbete al canal de Youtube para no perderte ningún vídeo nuevo!
Si te ayuda el contenido del blog, ¡considera unirte a la lista de correo para reconocer el trabajo!