Teoría sobre virtualización e computación na nube

De MediaWiki
Ir a la navegación Ir a la búsqueda
Computación na nube
Virtualización con hipervisor
Maquinas virtuais vs contedores

Introdución á virtualización e á computación na nube

Conceptos básicos

Virtualización fronte a emulación

A emulación consiste en reproducir mediante software o funcionamento dun hardware distinto ao real. Isto permite executar sistemas operativos ou aplicacións deseñadas para outra arquitectura, pero adoita implicar unha perda considerable de rendemento, xa que cada instrución debe ser traducida.

A virtualización, pola contra, aproveita os recursos de hardware reais (especialmente as extensións de virtualización presentes en procesadores modernos) para crear máquinas virtuais illadas. Cada máquina virtual (VM) pode executar o seu propio sistema operativo coma se fose un equipo independente, pero compartindo o mesmo hardware físico. A diferenza clave é que a virtualización é moito máis eficiente que a emulación.

Característica Emulación Virtualización
Rendemento Baixo Alto
Compatibilidade Alta (pódese emular outra arquitectura) Limitada á arquitectura do hardware
Uso típico Consolas antigas, probas de software en hardware diferente Centros de datos, servidores, nube privada

Virtualización fronte a contedores

A virtualización tradicional crea máquinas virtuais completas, cada unha co seu propio sistema operativo, kernel e aplicacións. Isto implica máis consumo de recursos, pero ofrece un maior illamento e compatibilidade.

Os contedores, pola súa parte, comparten o mesmo kernel do sistema operativo anfitrión e illan unicamente as aplicacións e as súas dependencias. Isto fai que sexan moito máis lixeiros e rápidos de despregar, aínda que ofrecen un illamento menor fronte ás VM.

Aspecto Máquinas virtuais (VMs) Contedores
Sistema operativo Cada VM ten o seu propio SO completo Comparten o kernel do SO anfitrión
Consumo de recursos Alto (cada VM precisa memoria e CPU propios) Baixo (só cargan aplicacións e dependencias)
Illamento Moi alto Medio
Velocidade de inicio Segundos ou minutos Milisegundos
Uso típico Aplicacións tradicionais, múltiples SOs nun mesmo hardware Microservizos, despregues masivos na nube
Que é a consolidación de servidores?
A consolidación de servidores é o proceso de migración de varias aplicaciones o cargas de trabajo de varios servidores físicos a menos o a un servidor físico, utilizando la tecnología de virtualización. 
A virtualización permite crear varias máquinas virtuais (Vms) nun único servidor físico; cada un deles executa un sistema operativo e unha aplicación diferentes. 
Con iso pode reducir a cantidad de servidores físicos que se precisa mercar, alimentar, enfriar e manter, e  consigue que aumente a eficiencia e a flexibilidade dos recursos do teu servidor.

Tipos de hipervisores (tipo 1 e tipo 2)

Un hipervisor é o software encargado de crear e xestionar máquinas virtuais. Existen dous tipos principais.

Hipervisor tipo 1 (bare-metal)
execútase directamente sobre o hardware físico, sen necesidade dun sistema operativo anfitrión. Ofrece maior rendemento e está pensado para contornas profesionais (ex. VMware ESXi, Microsoft Hyper-V Server, Proxmox, Xen).
Hipervisor tipo 2 (hosted)
execútase por riba dun sistema operativo anfitrión. É máis sinxelo de instalar e usar, aínda que menos eficiente (ex. VirtualBox, VMware Workstation).
Característica Hipervisor tipo 1 Hipervisor tipo 2
Onde se executa Directamente no hardware Sobre un sistema operativo anfitrión
Rendemento Alto Medio
Complexidade Maior, precisa configuración avanzada Menor, máis sinxelo de usar
Exemplos VMware ESXi, Xen, Proxmox, Hyper-V Server VirtualBox, VMware Workstation

Computación na nube: IaaS, PaaS, SaaS

Cloud Function: FaaS

A computación na nube baséase en ofrecer recursos e servizos a través de Internet. Distínguense varios modelos:

IaaS (Infrastructure as a Service)
o provedor ofrece infraestrutura virtualizada (máquinas virtuais, redes, almacenamento). O cliente ten control sobre o sistema operativo e o software.
Exemplo: Amazon EC2, Microsoft Azure VMs.
PaaS (Platform as a Service)
ademais da infraestrutura, ofrécese unha plataforma completa para desenvolver e despregar aplicacións sen preocuparse pola xestión do sistema operativo.
Exemplo: Google App Engine, Heroku.
SaaS (Software as a Service)
o servizo ofrécese directamente ao usuario final como unha aplicación dispoñible en liña. O cliente só usa a aplicación sen xestionar infraestrutura nin plataforma.
Exemplo: Gmail, Microsoft 365, Dropbox.
Modelo Que xestiona o provedor Que xestiona o cliente Exemplos
IaaS Hardware, rede, almacenamento SO, aplicacións Amazon EC2, Azure VMs
PaaS Infraestrutura + Sistema operativo + Middleware Aplicacións Google App Engine, Heroku
SaaS Todo (infraestrutura + plataforma + aplicación) Só o uso Gmail, Microsoft 365, Dropbox
A función como servizo (FaaS) é un tipo de servizo de computación na nube que permite que os desenvolvedores deseñen, executen e xestionen paquetes de aplicacións como funcións sen ter que ocuparen do mantemento da súa propia infraestrutura.
É un modelo de execución que se basea nos eventos e execútase en contedores sen estado. As funcións son as que xestionan a lóxica e o estado dos servidores mediante o uso dos servizos dun provedor de FaaS.
AWS Lambda de Amazon, Google Cloud Functions e Azure funcs son tres exemplos.

Escalabilidade, elasticidade e dispoñibilidade

Na contorna da nube, tres conceptos resultan fundamentais:

Escalabilidade
capacidade dun sistema para aumentar ou reducir recursos (CPU, memoria, nodos, etc.) en función da carga de traballo.
Elasticidade
capacidade de asignar e liberar automaticamente recursos segundo a demanda, de xeito dinámico e flexible.
Dispoñibilidade
capacidade dun sistema para permanecer operativo e accesible a pesar de fallos de hardware ou software. A alta dispoñibilidade conséguese mediante redundancia, replicación e balanceo de carga.

Esquema resumo:

  • Escalabilidade → Aumentar/reducir recursos.
  • Elasticidade → Adaptación automática en tempo real.
  • Dispoñibilidade → Manter o servizo activo e accesible.

Ferramentas de virtualización clásica

Hipervisores

A virtualización clásica baséase no uso de hipervisores para crear e xestionar máquinas virtuais. Estes permiten executar varios sistemas operativos nun mesmo hardware físico, compartindo recursos de forma eficiente e segura. A continuación preséntanse as principais ferramentas de virtualización empregadas tanto a nivel doméstico como profesional.

En virtualización, overcommitment refírese a situación na que se lle asigna máis memoria as máquinas virtuais da que está disponible no servidor físico. 
Isto pode ocurrir porque o sistema operativo ou o software de virtualización permite que se lle asigne memoria ás máquinas virtuais ainda que non esté disponible, asumindo que non todas as máquinas virtuais utilizarán toda a memoria asignada ao mesmo tiempo. 
Así pode aumentar a utilización xeneral dos recursos, pero tamén pode levar a problemas de rendemento se as máquinas virtuais comezan a utilizar máis memoria da que está disponible, o que pode causar intercambios de páxinas ao disco e unha degradación significativa do rendemento.

VirtualBox

VirtualBox Guest Additions Logo 2009-2010.png

VirtualBox é un hipervisor de tipo 2, desenvolvido inicialmente por Sun Microsystems e actualmente mantido por Oracle.

  • É multiplataforma: funciona en Windows, Linux e macOS.
  • Permite crear e executar máquinas virtuais con numerosos sistemas operativos convidados (Windows, Linux, BSD, Solaris, etc.).
  • Ofrece funcionalidades como instantáneas (snapshots), carpetas compartidas, soporte USB e integración do rato/teclado entre anfitrión e convidado.
  • Moi empregado en contornas educativas e para probas de software, pola súa sinxeleza de uso e ser de código aberto (licenza GPL).

QEMU

256px-Qemu logo.svg.png

QEMU (Quick Emulator) é unha ferramenta de emulación e virtualización multiplataforma de código aberto.

  • Pode funcionar coma emulador completo, permitindo executar sistemas operativos doutras arquitecturas (x86, ARM, PowerPC, RISC-V, etc.).
  • Combinado con KVM* en Linux, pode funcionar como hipervisor de alto rendemento, empregando directamente as extensións de virtualización do procesador.
  • Moi empregado en investigación, desenvolvemento de sistemas operativos e contornas onde se precisa probar software en diferentes arquitecturas.

KVM

256px-Kvmbanner-logo2 1.png

KVM (Kernel-based Virtual Machine) é unha tecnoloxía de virtualización integrada no kernel de Linux desde a versión 2.6.20.

  • Converte o kernel de Linux nun hipervisor de tipo 1, ao permitir crear máquinas virtuais que executan sistemas convidados illados.
  • Utiliza as extensións de virtualización dos procesadores (Intel VT-x ou AMD-V).
  • Escalable e eficiente, é moi usado en servidores e nubes privadas.
  • Xeralmente combínase con ferramentas coma QEMU (para emulación e xestión de hardware virtual) e libvirt (para administración).
  • É a base de moitas solucións de nube privada, coma OpenStack.

Hyper-V

Hyper-v.png

Hyper-V é a tecnoloxía de virtualización de Microsoft.

  • Está dispoñible en Windows Server e tamén en versións profesionais de Windows 10/11.
  • É un hipervisor de tipo 1 (execútase directamente sobre o hardware), aínda que integrado no sistema operativo.
  • Ofrece soporte para máquinas virtuais Windows e Linux.
  • Inclúe funcionalidades como snapshots, migración en quente (Live Migration) e integración coa nube de Microsoft Azure.
  • Moi empregado en empresas con infraestruturas baseadas en tecnoloxías Microsoft.

Proxmox VE (Virtual Environment)

Proxmox.png

Proxmox VE é unha plataforma de virtualización de código aberto que integra hipervisores e ferramentas de xestión.

  • Combina KVM (para máquinas virtuais) con LXC (para contedores lixeiros).
  • Inclúe unha interface web intuitiva que facilita a administración de máquinas virtuais, redes e almacenamento.
  • Soporta funcionalidades avanzadas como alta dispoñibilidade, clustering, copias de seguridade e replicación.
  • Está especialmente orientado a servidores e centros de datos que precisan unha solución completa e gratuíta de virtualización.

Resumo

  • VirtualBox: doado de usar, ideal para uso persoal e educativo.
  • QEMU: moi flexible, con emulación de arquitecturas e integración con KVM.
  • KVM: hipervisor nativo de Linux, moi empregado en servidores.
  • Hyper-V: solución de Microsoft, integrada en Windows e Azure.
  • Proxmox VE: plataforma completa, combina KVM e contedores, con xestión avanzada vía web.
Ferramenta Tipo de hipervisor Plataforma principal Puntos fortes Casos de uso típicos
VirtualBox Tipo 2 Windows, Linux, macOS Fácil de usar, multiplataforma, snapshots Educación, probas de software, uso persoal
QEMU Emulador + integración con KVM Linux, multiplataforma Emula múltiples arquitecturas, moi flexible Investigación, desenvolvemento de SO, probas en diferentes arquitecturas
KVM Tipo 1 (integrado en Linux) Linux Alto rendemento, nativo no kernel, escalable Servidores, nube privada, datacenters
Hyper-V Tipo 1 (integrado en Windows) Windows Server, Windows 10/11 Pro/Enterprise Integración con Azure, snapshots, Live Migration Empresas con ecosistema Microsoft
Proxmox VE Tipo 1 (baseado en KVM + LXC) Linux (Debian) Plataforma completa, interface web, soporte de clusters Centros de datos, servidores con alta dispoñibilidade

Virtualización baseada en contedores

Os contedores permiten executar aplicacións illadas, compartindo o kernel do sistema operativo anfitrión. Son máis lixeiros que as máquinas virtuais, polo que se usan masivamente en despregues modernos, especialmente no contexto de microservizos e DevOps.

As namespaces en Linux son unha das características clave do kernel que permiten a virtualización lixeira e o illamento de recursos. Estas estruturas son fundamentais para crear contornos como contedores onde os procesos se executan en contornos illados.
Os namespaces contribúen significativamente á seguridade ao proporcionar un contorno illado para procesos e aplicacións. Isto reduce o impacto de vulnerabilidades e ataques. 

Contedores lixeiros

Linux Containers (LXC)

Lxc-logo.png

Linux Containers (LXC) é unha das primeiras tecnoloxías de contedores dispoñibles en Linux.

  • Baseado en funcionalidades do kernel (cgroups e namespaces) que permiten illar procesos, recursos de CPU, memoria, rede e almacenamento.
  • Permite crear contedores que se asemellan a un sistema operativo lixeiro, cun espazo de usuarios propio.
  • É máis próximo á virtualización tradicional, pois cada contedor pode executar múltiples procesos como se fose un sistema completo.
  • Úsase para escenarios onde se precisa illamento lixeiro pero con flexibilidade semellante a unha máquina virtual.

Docker

Docker-logo.png

Docker é a tecnoloxía de contedores máis popular e estendida.

  • Introduciu un enfoque sinxelo para crear, distribuír e executar aplicacións en contedores.
  • Baseado en imaxes: cada contedor créase a partir dunha imaxe que define todo o necesario (aplicación + dependencias).
  • Dispón de Docker Hub, un rexistro público de imaxes preparado para compartir e reutilizar.
  • Mellor integrado con ferramentas DevOps, CI/CD e plataformas de orquestración como Kubernetes.
  • Moi empregado en desenvolvemento, probas e despregue en produción.

Podman

Podman-logo-orig.png

Podman é unha alternativa a Docker, desenvolvida pola comunidade de Red Hat.

  • Compatible co formato de imaxes de Docker (OCI), polo que pode usar as mesmas imaxes.
  • Non require un daemon en segundo plano como Docker, o que aumenta a seguridade e reduce a superficie de ataque.
  • Permite executar contedores en modo rootless, é dicir, sen permisos de administrador.
  • Inclúe tamén a ferramenta Buildah (para crear imaxes) e Skopeo (para xestionar rexistros).
  • Moi empregado en contornas empresariais que requiren estándares abertos e maior seguridade.

Nomad (HashiCorp)

Nomad-logo.png

Nomad é unha ferramenta de HashiCorp que vai máis alá da simple execución de contedores: é un orquestrador lixeiro de cargas de traballo.

  • Permite despregar e xestionar contedores (Docker, Podman, etc.), pero tamén aplicacións non conteinerizadas.
  • É máis sinxelo que Kubernetes, centrado na facilidade de uso e integración co resto do ecosistema HashiCorp (Consul, Vault, Terraform).
  • Moi útil en organizacións que precisan unha solución de orquestración máis lixeira que Kubernetes, con menor complexidade de instalación e mantemento.

Resumo

  • LXC: contedores máis próximos ás máquinas virtuais, flexibles e completos.
  • Docker: estándar de facto en contedores, fácil de usar e masivamente adoptado.
  • Podman: alternativa a Docker, máis segura e sen daemon central.
  • Nomad: solución de orquestración lixeira, soporta contedores e cargas tradicionais.

Orquestración e plataformas de contedores

A medida que o uso de contedores medrou, xurdiu a necesidade de ferramentas que xestionen a súa execución en gran escala. Estas ferramentas de orquestración permiten despregar centos ou milleiros de contedores, garantindo a súa dispoñibilidade, escalabilidade e comunicación entre eles.

Kubernetes

Kubernetes-logo.png

Kubernetes (K8s) é a plataforma de orquestración de contedores máis usada no mundo.

  • Desenvolvida inicialmente por Google e agora mantida pola Cloud Native Computing Foundation (CNCF).
  • Automatiza o despregue, a xestión e a escalabilidade de aplicacións en contedores.
  • Funciona mediante un clúster de nodos:
    • Nodo mestre: xestiona o estado global, planificación e control.
    • Nodos traballadores: executan os contedores.
  • Funcionalidades clave: escalado automático, balanceo de carga, actualizacións sen interrupción, autoxestión fronte a fallos.
  • Moi usado en contornas de produción e nubes públicas (Google Cloud, Azure, AWS).

MicroK8s

MicroK8s-logo.png

MicroK8s é unha versión lixeira de Kubernetes, desenvolvida por Canonical (empresa detrás de Ubuntu).

  • Pensada para instalacións sinxelas en equipos locais ou servidores pequenos.
  • Permite ter un clúster Kubernetes funcional cun só comando de instalación.
  • Moi útil para probas, contornas de desenvolvemento ou pequenas empresas que non precisan a complexidade de Kubernetes completo.
  • Soporta extensións opcionais (DNS, dashboard, storage, etc.) que se poden activar con facilidade.

k3s

K3s-logo.png

k3s é outra distribución lixeira de Kubernetes, desenvolvida por Rancher.

  • Está optimizada para dispositivos con poucos recursos (IoT, edge computing, clusters pequenos).
  • Requere menos memoria e CPU que Kubernetes estándar.
  • Fácil de instalar e manter, cun binario único.
  • Moi empregado en proxectos de computación na periferia (edge) ou en contornas educativas e experimentais.

OpenShift

Openshift-logo.png

OpenShift é unha plataforma empresarial baseada en Kubernetes, desenvolvida por Red Hat.

  • Inclúe Kubernetes como núcleo, pero engade ferramentas e servizos adicionais que facilitan o desenvolvemento e o ciclo de vida das aplicacións.
  • Ofrece un ecosistema completo: control de acceso, integración continua, rexistro de imaxes, monitorización, etc.
  • Pode despregarse en nubes privadas, híbridas ou públicas.
  • É unha solución máis enfocada a empresas que buscan unha plataforma lista para produción con soporte comercial.

Resumo

  • Kubernetes: estándar de orquestración, potente pero complexo.
  • MicroK8s: versión lixeira e sinxela de instalar, ideal para desenvolvemento.
  • k3s: Kubernetes ultralixeiro, optimizado para IoT e edge computing.
  • OpenShift: plataforma empresarial baseada en Kubernetes, con servizos adicionais e soporte comercial.
Lightweight-kubernetes-distribution-compared.png

Infraestrutura como código e automatización

A medida que as infraestruturas informáticas medraron en tamaño e complexidade, fíxose necesario contar con ferramentas que permitan **automatizar a súa creación, configuración e mantemento**. Aquí é onde entra o concepto de Infraestrutura como Código (IaC, Infrastructure as Code).

A idea principal é tratar a infraestrutura (servidores, redes, almacenamento, contedores) do mesmo xeito que se trata o código dunha aplicación. É dicir:

  • Defínese mediante ficheiros de configuración ou scripts.
  • Pódese versionar con sistemas como Git.
  • Pode executarse e repetirse de forma automática, reducindo erros humanos.
IaC.png

As vantaxes principais da IaC son:

  • Reproducibilidade: pódense crear contornas idénticas (produción, desenvolvemento, probas) con poucos comandos.
  • Escalabilidade: facilita engadir ou retirar recursos automaticamente.
  • Automatización: aforra tempo ao evitar configuracións manuais repetitivas.
  • Seguridade e control: todos os cambios quedan rexistrados en código, o que facilita auditorías e reversións.

Dentro deste ámbito existen diferentes ferramentas que cumpren papeis específicos, e que resumiremos a continuación.

Ansible

Ansible logo.svg.png
  • Ferramenta de automatización e xestión de configuración.
  • Usa ficheiros YAML (playbooks) para describir as accións a executar nos servidores.
  • Non require axente nos equipos, comunícase a través de SSH.
  • Moi usado para instalar software, configurar servizos e aplicar cambios en gran escala.

Vagrant

Vagrant-logo.png
  • Ferramenta pensada para crear contornas de desenvolvemento reproducibles.
  • Permite definir máquinas virtuais con configuracións predeterminadas mediante un ficheiro chamado Vagrantfile.
  • Integra con VirtualBox, VMware, Hyper-V ou mesmo contedores Docker.
  • Moi útil para desenvolvedores que precisan traballar en equipos idénticos ao de produción.

Packer

Packer-logo.png
  • Ferramenta especializada en crear imaxes de máquinas virtuais ou contedores de forma automatizada.
  • Permite xerar imaxes listas para diferentes plataformas (VirtualBox, VMware, AWS, Azure, Docker, etc.) a partires dunha única configuración.
  • Moi usada en combinación con Vagrant ou con sistemas de nube para despregar servidores con imaxes estándar.

Resumo

  • Ansible: automatización e configuración de sistemas.
  • Vagrant: creación de contornas de desenvolvemento reproducibles.
  • Packer: xeración automática de imaxes para máquinas virtuais e contedores.

Almacenamento e sistemas distribuídos

Coa expansión da virtualización e da computación na nube, o almacenamento converteuse nun dos piares fundamentais das infraestruturas modernas. Non abonda con ter discos locais nun servidor: cómpre dispoñer de solucións que permitan:

  • Escalar o espazo de almacenamento segundo as necesidades.
  • Replicar os datos para garantir a seguridade fronte a fallos.
  • Ofrecer alta dispoñibilidade, de xeito que os servizos sigan funcionando incluso se cae un nodo.

O almacenamento distribuído baséase en combinar múltiples servidores (ou nodos) que traballan conxuntamente para ofrecer un único sistema de almacenamento. Isto garante:

  • Redundancia: os datos gárdanse en varios nodos, polo que non se perden se un falla.
  • Escalabilidade horizontal: engadindo novos nodos increméntase a capacidade.
  • Rendemento: pódese mellorar ao distribuír a carga entre varios equipos.

Dúas solucións de código aberto moi empregadas neste ámbito son **Ceph** e **GlusterFS**.

Ceph

Ceph-logo.jpg
  • Sistema de almacenamento distribuído de alto rendemento.
  • Ofrece diferentes interfaces de acceso:
    • RADOS (obxectos)
    • CephFS (sistema de ficheiros)
    • RBD (discos en bloque, usado en proxectos como OpenStack).
  • Moi usado en contornas de nube e grandes centros de datos.
  • Destaca pola súa capacidade de escalar a centos ou milleiros de nodos.
  • Autoxestionado: reequilibra automaticamente os datos cando se engaden ou eliminan discos/nodos.

GlusterFS

  • Sistema de almacenamento en rede distribuído e escalable.
  • Permite montar múltiples servidores de almacenamento como se fosen un único sistema de ficheiros.
  • Moi sinxelo de configurar en comparación con Ceph.
  • Orientado a contornas que precisan alta dispoñibilidade e escalabilidade moderada.
  • Úsase en proxectos onde se require un sistema de ficheiros compartido por varias máquinas virtuais ou contedores.

Resumo

Ceph-vs-gluster.png
  • Ceph: máis complexo, pero moi potente e escalable; ideal para grandes nubes privadas e datacenters.
  • GlusterFS: máis sinxelo de despregar; ideal para proxectos medianos que precisan almacenamento compartido e redundante.

Plataformas de nube pública

GCP vs AWS vs Azure

As plataformas de nube pública son ofrecidas por grandes provedores que poñen a disposición de clientes de todo o mundo unha infraestrutura masiva de computación, almacenamento e servizos de alto nivel. O modelo base é o pago polo uso, o que permite ás empresas e particulares dispoñer de recursos sen ter que investir en hardware propio.

As nubes públicas destacan por:

  • Escalabilidade case ilimitada: adaptan os recursos segundo a demanda.
  • Servizos xestionados: o provedor encárgase da administración e mantemento.
  • Ámbito global: centros de datos distribuídos en diferentes rexións.
  • Variedade de servizos: desde máquinas virtuais ata servizos de IA, Big Data ou IoT.

AWS (Amazon Web Services)

Amazon Web Services (AWS) é unha plataforma de computación na nube desenvolvida por Amazon, considerada a pioneira e líder mundial en servizos de nube pública. Naceu en 2006 e ofrece actualmente unha inmensa gama de servizos que cobren desde infraestrutura básica ata ferramentas avanzadas de análise, intelixencia artificial e Internet das Cousas.

O obxectivo de AWS é permitir que empresas e particulares accedan a recursos de computación de xeito flexible, seguro e escalable, pagando unicamente polo uso realizado. Grazas á súa rede global de centros de datos, coñecidos como rexións e zonas de dispoñibilidade, AWS garante unha alta dispoñibilidade, redundancia e cumprimento estrito dos estándares internacionais de seguridade.

AWS baséase nunha infraestrutura distribuída a nivel global composta por centros de datos interconectados.

As súas principais características son:

  • Escalabilidade elástica: adaptación de recursos segundo a demanda.
  • Pago por uso: facturación baseada no consumo real.
  • Alta dispoñibilidade: replicación entre zonas de dispoñibilidade.
  • Acceso universal: portal web (AWS Management Console), APIs, CLI e SDKs para múltiples linguaxes.

Os modelos principais de servizo son:

  • IaaS (Infraestrutura como Servizo): máquinas virtuais (EC2), redes virtuais (VPC), almacenamento en bloque (EBS).
  • PaaS (Plataforma como Servizo): servizos de aplicacións xestionados como Elastic Beanstalk, Lambda ou RDS.
  • SaaS (Software como Servizo): acceso a aplicacións como Amazon Chime, WorkSpaces ou QuickSight.

Os Servizos e produtos principais son os que se indican.

Para Servizos de computación:

  • Amazon EC2 (Elastic Compute Cloud): creación e xestión de máquinas virtuais escalables.
  • AWS Lambda: execución de funcións sen servidor (“serverless”).
  • Elastic Beanstalk: despregue automatizado de aplicacións web.
  • Amazon ECS / EKS: orquestración de contedores con soporte para Docker e Kubernetes.

Para Almacenamento e bases de datos:

  • Amazon S3 (Simple Storage Service): almacenamento de obxectos masivo e escalable.
  • Amazon EBS: volumes en bloque para instancias EC2.
  • Amazon Glacier: almacenamento de baixo custo para arquivos e backups.
  • Amazon RDS: base de datos relacional xestionada (MySQL, PostgreSQL, Oracle, SQL Server).
  • Amazon DynamoDB: base de datos NoSQL totalmente xestionada.
  • Amazon Aurora: base de datos relacional optimizada para alto rendemento.

Para Redes e conectividade:

  • Amazon VPC (Virtual Private Cloud): creación de redes virtuais illadas na nube.
  • Elastic Load Balancing: balanceo automático de tráfico entre instancias.
  • AWS Direct Connect: conexións privadas de alta velocidade a AWS.
  • Route 53: servizo DNS xestionado globalmente.

Para Seguridade e identidade:

  • AWS IAM (Identity and Access Management): control de usuarios e permisos.
  • AWS KMS (Key Management Service): xestión de claves de cifrado.
  • AWS Shield e WAF: protección contra ataques DDoS e filtrado de tráfico malicioso.
  • CloudTrail: auditoría de actividades e rexistro de eventos.

Para Análise e Big Data

  • Amazon EMR: procesamento masivo de datos baseado en Hadoop e Spark.
  • Amazon Redshift: almacenamento de datos (data warehouse) para análise a gran escala.
  • Kinesis: análise en tempo real de fluxos de datos.
  • Athena: consultas SQL sobre datos en S3.

Para Intelixencia Artificial e Machine Learning:

  • Amazon SageMaker: creación, adestramento e despregue de modelos de machine learning.
  • Rekognition: recoñecemento de imaxes e vídeos.
  • Polly: conversión de texto a voz.
  • Lex: creación de chatbots e asistentes virtuais.

Para Internet das Cousas (IoT):

  • AWS IoT Core: conexión e xestión de dispositivos IoT a escala.
  • Greengrass: execución de procesos IoT en local con integración na nube.

Para Desenvolvemento e DevOps:

  • AWS CodeCommit: repositorio Git xestionado.
  • AWS CodeBuild / CodeDeploy / CodePipeline: integración e despregue continuo (CI/CD).
  • CloudFormation: infraestrutura como código (IaC).

E finalmente dispón de outras capacidades:

  • Amazon WorkSpaces: escritorios virtuais en nube.
  • Media Services: transmisión e procesamento de vídeo en tempo real.
  • GameLift: servizos específicos para despregar xogos multixogador.

A destacar:

  • Provedor líder en cota de mercado.
  • Enorme variedade de servizos: cómputo (EC2), almacenamento (S3, EBS), bases de datos, analítica, IA, IoT, etc.
  • Rede global de rexións e zonas de dispoñibilidade.
  • Forte aposta por innovación constante en IA, IoT e servizos serverless.

Azure (Microsoft)

Microsoft Azure é unha plataforma de computación na nube desenvolvida por Microsoft, deseñada para crear, despregar e xestionar aplicacións, servizos e solucións a través dunha rede global de centros de datos xestionados pola propia compañía.

O obxectivo principal da plataforma é ofrecer un espazo seguro, flexible e escalable onde as organizacións poidan aloxar as súas aplicacións, almacenar información, procesar grandes volumes de datos, crear solucións de intelixencia artificial, xestionar redes e infraestruturas virtuais e moito máis, todo baixo un modelo de pago por consumo. Esta filosofía elimina a necesidade de investir en equipos físicos custosos e permite ás empresas adaptarse rapidamente aos cambios na súa actividade.

Azure baséase no concepto de nube pública, o que significa que toda a infraestrutura é propiedade de Microsoft e está xestionada por ela, pero os clientes poden acceder aos seus servizos e recursos a través de Internet, desde calquera parte do mundo. Grazas a unha rede de centros de datos distribuídos globalmente, Azure proporciona alta dispoñibilidade, redundancia, rendemento e conformidade cos estándares internacionais de seguridade e privacidade.

O funcionamento de Microsoft Azure estrutúrase sobre unha infraestrutura altamente distribuída de centros de datos repartidos por todo o planeta. Estes centros interconectados forman a base para ofrecer unha plataforma robusta con recursos de almacenamento, procesamento e rede.

Os modelos principais de servizo son:

  • IaaS (Infraestrutura como Servizo):** despregue de máquinas virtuais, redes, balanceadores de carga e outros recursos de infraestrutura sen preocuparse do hardware físico.
  • PaaS (Plataforma como Servizo):** contorno xestionado para desenvolver, probar e despregar aplicacións con ferramentas integradas de análise, monitorización e automatización.
  • SaaS (Software como Servizo):** acceso a aplicacións listas para usar, como Microsoft 365 ou Dynamics, sen necesidade de instalación ou mantemento local.

Os servizos de Azure poden ser accedidos mediante:

  • Portal web seguro.
  • APIs.
  • Ferramentas de liña de comandos.
  • SDKs para diferentes linguaxes.

Isto permite a desenvolvedores e administradores xestionar recursos de maneira centralizada ou automatizada.

Os recursos poden ser escalados vertical ou horizontalmente segundo as necesidades, e a facturación realízase polo consumo real (**pago por uso**).

Os servizos e produtos principais son:

  • Máquinas virtuais (VM): creación e xestión de contornos virtualizados para Windows ou Linux, con personalización avanzada e facturación flexible.
  • Contedores: execución e orquestración mediante Kubernetes (AKS) ou Azure Container Instances.
  • App Service: despregue rápido de aplicacións web e móbiles sen xestionar infraestrutura subxacente.

No referente a almacenamento e xestión de datos

  • Azure Blob Storage: grandes volumes de datos non estruturados (multimedia, backups, rexistros).
  • Azure Files: compartición de ficheiros en nube similar a redes locais.
  • Azure SQL Database: base de datos relacional xestionada, compatible con SQL Server.
  • Azure Cosmos DB: base de datos NoSQL distribuída globalmente, baixa latencia e alta dispoñibilidade.
  • Azure Data Factory: integración de datos e orquestración de fluxos ETL.

Os servizos de análise e Big Data son:

  • Azure HDInsight: análise de grandes volumes de datos baseado en Hadoop.
  • Azure Databricks: análise avanzada e intelixencia artificial sobre Spark.

Para redes e conectividade:

  • Azure Virtual Network: redes privadas seguras e personalizadas, con integración híbrida.
  • Azure ExpressRoute: conexións privadas e de alta velocidade coa nube.
  • Balanceadores, firewalls e xestión de tráfico: seguridade e optimización da conectividade.

A seguridade e identidade xestionase con:

  • Azure Active Directory: xestión de identidades, MFA, single sign-on.
  • Azure Key Vault: xestión segura de claves e segredos.
  • Azure Security Center: supervisión centralizada de seguridade.

Para Intelixencia Artificial e Machine Learning:

  • Azure Machine Learning: creación, adestramento e despregue de modelos de IA.
  • Azure Cognitive Services: APIs para voz, visión, linguaxe natural e decisións.
  • Azure Databricks: soporte colaborativo para proxectos de ciencia de datos.

Salientar para Internet das Cousas (IoT)

  • Azure IoT Hub: conexión e xestión de dispositivos IoT a escala.
  • Azure IoT Central e IoT Edge: despregue e xestión en nube e local.

Finalmente, para desenvolvemento e DevOps:

  • Azure DevOps: suite para planificación, desenvolvemento, probas e despregue continuo.
  • Azure Functions: execución de código en resposta a eventos sen servidores.
  • Azure App Service: solución flexible para aplicacións web e APIs.

A destacar:

  • Forte integración co ecosistema Microsoft (Windows Server, Active Directory, Office 365).
  • Ampla gama de ferramentas para desenvolvemento, analítica e seguridade.
  • Popular en empresas que xa usan tecnoloxías Microsoft.

Google Cloud Platform (GCP)

Google Cloud Platform (GCP) é a plataforma de servizos en nube desenvolvida por Google. Está especialmente orientada ao rendemento, á análise de datos e ao uso intensivo de intelixencia artificial, beneficiándose da infraestrutura global que sustenta produtos como Gmail, YouTube ou o propio buscador de Google.

A filosofía de GCP céntrase en ofrecer ferramentas flexibles, con forte integración co ecosistema de Google, e en potenciar servizos avanzados de Big Data e Machine Learning. É unha opción moi empregada tanto por startups innovadoras como por grandes corporacións que buscan unha infraestrutura global e de alto rendemento.

GCP funciona a través dunha rede mundial de centros de datos interconectados, distribuídos en rexións e zonas.

As súas principais características son:

  • Infraestrutura global altamente optimizada: a mesma que empregan os servizos de Google.
  • Forte orientación ao dato: servizos potentes de almacenamento, análise e aprendizaxe automática.
  • Seguridade avanzada sistemas de cifrado end-to-end e control granular de identidades.
  • Modelo de pago por uso con opcións flexibles: facturación por segundo en moitos servizos.

Os modelos principais de servizo son:

  • IaaS: computación en máquinas virtuais (Compute Engine), redes privadas virtuais (VPC), almacenamento en bloque (Persistent Disk).
  • PaaS: despregue automático de aplicacións (App Engine), orquestración de contedores (GKE).
  • SaaS: ferramentas como BigQuery, Google Workspace (aínda que tecnicamente forma parte doutra liña de produtos de Google).

Os servizos e e produtos principais son os seguintes.

Comparativa AWS Azure GPC

Para Computación:

  • Google Compute Engine: creación de instancias de máquinas virtuais altamente configurables.
  • Google App Engine: plataforma PaaS para executar aplicacións web sen xestionar servidores.
  • Google Kubernetes Engine (GKE): servizo xestionado de Kubernetes, dos máis avanzados do mercado.
  • Cloud Functions: execución de código en modo serverless.
  • Cloud Run: execución de contedores en modo serverless.

Para Almacenamento e bases de datos:

  • Google Cloud Storage: almacenamento de obxectos escalable.
  • Persistent Disk: almacenamento en bloque asociado a instancias.
  • Filestore: almacenamento en rede tipo NFS.
  • Bigtable: base de datos NoSQL optimizada para grandes volumes.
  • Cloud SQL: bases de datos relacionais xestionadas (MySQL, PostgreSQL, SQL Server).
  • Spanner: base de datos relacional distribuída globalmente, única no mercado.
  • Firestore: base de datos NoSQL para aplicacións en tempo real.

Para Redes e conectividade

  • Virtual Private Cloud (VPC): redes privadas configurables.
  • Cloud Load Balancing: balanceo de tráfico global.
  • Cloud CDN: distribución de contido a baixa latencia.
  • Interconnect / VPN: conexión segura a GCP desde redes locais.
  • Cloud DNS: servizo de resolución de nomes xestionado.

Para Seguridade e identidade:

  • Cloud Identity & Access Management (IAM): control detallado de identidades e permisos.
  • Cloud KMS: servizo de xestión de claves de cifrado.
  • Security Command Center: supervisión de seguridade centralizada.
  • BeyondCorp: modelo de seguridade “zero trust” desenvolvido por Google.

Para Análise e Big Data:

  • BigQuery: almacenamento de datos e consultas SQL a gran escala.
  • Dataflow: procesamento de datos en fluxo e por lotes.
  • Dataproc: servizo xestionado para Hadoop e Spark.
  • Pub/Sub: mensaxería asíncrona para integración de sistemas.
  • Looker: plataforma de BI (Business Intelligence) adquirida por Google.

Para Intelixencia Artificial e Machine Learning:

  • AI Platform (Vertex AI): desenvolvemento, adestramento e despregue de modelos de aprendizaxe automática.
  • AutoML: creación automática de modelos de machine learning sen coñecementos avanzados.
  • Vision AI: recoñecemento de imaxes e vídeos.
  • Natural Language API: análise semántica de texto.
  • Translation API: tradución automática en tempo real.
  • Dialogflow: creación de chatbots e asistentes conversacionais.

Para Desenvolvemento e DevOps:

  • Cloud Build: integración continua (CI/CD).
  • Cloud Source Repositories: repositorios Git xestionados.
  • Deployment Manager: infraestrutura como código.
  • Operations Suite: monitorización, rexistro e trazabilidade.

A destacar:

  • Os servizos de análise de datos, intelixencia artificial e aprendizaxe automática.
  • Integración cos servizos de Google (BigQuery, TensorFlow, Kubernetes Engine).
  • Prezos competitivos e foco en contornas modernas baseadas en contedores.
  • Menor variedade de servizos que AWS, pero con innovacións únicas (Spanner, BigQuery).
  • Moi usado en proxectos de desenvolvemento e startups tecnolóxicas.

Resumo

  • AWS: o máis completo e estendido.
  • Azure: vantaxoso para contornas Microsoft.
  • GCP: forte en IA, Big Data e contedores.
Podes atopar interesantes e detalladas comparativas. [1][2][3]

Plataformas de nube privada e híbrida

Coa evolución da virtualización e a computación na nube, moitas organizacións precisan xestionar os seus propios recursos de xeito semellante ás grandes nubes públicas (AWS, Azure, Google Cloud). Para iso existen as plataformas de nube privada e nube híbrida.

Nube privada
os recursos de computación, rede e almacenamento pertencen a unha organización e xestiónanse de forma interna. Permite maior control e seguridade, aínda que require máis esforzo de administración.
Nube híbrida
combina unha nube privada con servizos dunha nube pública, permitindo mover cargas de traballo entre ambas segundo as necesidades (ex. picos de demanda).
Difference-between-public-cloud-and-private-cloud.png

Estas plataformas permiten ofrecer IaaS (Infrastructure as a Service) dentro dunha organización, con funcionalidades como:

  • Creación e xestión de máquinas virtuais baixo demanda.
  • Redes virtuais e balanceo de carga.
  • Almacenamento distribuído.
  • Autenticación e control de acceso.
  • Interfaces web e API para desenvolvedores e administradores.

A solución máis coñecida e empregada neste ámbito é OpenStack.

OpenStack

Openstack-cloud-software.png
Modulos-openstack.png
  • Proxecto de código aberto nacido en 2010 da colaboración entre Rackspace e NASA.
  • Permite construír nubes privadas e híbridas con servizos equivalentes aos de provedores comerciais.
  • Estrutura modular: cada compoñente encárgase dunha parte da infraestrutura. Exemplos:
    • Nova: xestión de máquinas virtuais (compute).
    • Neutron: xestión de redes virtuais.
    • Cinder: almacenamento en bloques.
    • Swift: almacenamento de obxectos.
    • Keystone: autenticación e autorización.
    • Horizon: panel web de administración.
  • Altamente escalable: pode funcionar en pequenos clusters ou en grandes centros de datos.
  • Amplamente usado por universidades, provedores de servizos e organizacións que precisan controlar a súa propia nube.
  • Conta cunha gran comunidade de desenvolvedores e empresas que ofrecen soporte comercial (Red Hat, Canonical, etc.).

Resumo

  • Nube privada: control interno, máis seguridade, máis responsabilidade de xestión.
  • Nube híbrida: combina nube privada con pública para flexibilidade e escalado.
  • OpenStack: plataforma de código aberto modular e escalable, estándar de facto en nubes privadas.

Tendencias actuais e conclusións

A virtualización e a computación na nube avanzaron de maneira extraordinaria na última década. Pasouse dun modelo baseado case exclusivamente en máquinas virtuais a un ecosistema moito máis diverso, onde os contedores, a automatización e a integración continua teñen un papel central.

Unha das grandes cuestións é a relación entre máquinas virtuais e contedores. As primeiras seguen sendo fundamentais cando se precisa illamento forte, compatibilidade con sistemas operativos completos ou cando existen cargas de traballo tradicionais que non se adaptan a contedores. Pola súa parte, os contedores gañaron protagonismo pola súa lixeireza, portabilidade e velocidade de despregue, converténdose na opción preferida para aplicacións modernas e microservizos.

Ademais, a aparición de ferramentas como Kubernetes, OpenShift, Nomad ou MicroK8s** trouxo consigo a necesidade de novos perfís profesionais capaces de xestionar clusters de contedores a grande escala, cunha visión tanto técnica como estratéxica.

No ámbito da automatización, proxectos coma Ansible, Packer ou Vagrant permiten reducir erros humanos, repetir despregues con consistencia e integrar a infraestrutura nos procesos de desenvolvemento. Isto conectouse de maneira natural cos paradigmas de DevOps e, máis recentemente, GitOps, nos que a infraestrutura é tratada como código, suxeita a revisión, control de versións e despregues automatizados.

O almacenamento tamén evolucionou: Ceph e GlusterFS son exemplos de como o almacenamento distribuído e replicado se converteu nun requisito básico das nubes privadas e dos datacenters. A tendencia é que o almacenamento estea cada vez máis ligado ao software e menos ao hardware específico.

En canto ao futuro, todo apunta a unha combinación flexible de tecnoloxías:

  • As máquinas virtuais seguirán tendo un papel central en servizos críticos e en escenarios onde se precisa forte seguridade ou compatibilidade.
  • Os contedores e as plataformas de orquestración dominarán no despregue de aplicacións nativas en nube.
  • A nube híbrida e multicloud consolidarase como modelo, permitindo ás organizacións escoller onde executar cada carga de traballo.
  • O uso de intelixencia artificial para optimizar a xestión de recursos e anticipar necesidades será cada vez máis habitual.

Resumo

Virtualización vs Contedores

Máquinas virtuais (VMs):

  • Illamento forte.
  • Compatibilidade con sistemas operativos completos.
  • Adecuadas para cargas de traballo tradicionais.

Contedores:

  • Lixeiros e rápidos de despregar.
  • Portables entre diferentes contornos.
  • Opción preferida para microservizos e aplicacións modernas.

Orquestración e plataformas

  • Kubernetes: estándar de facto.
  • OpenShift: solución empresarial baseada en Kubernetes.
  • Nomad: alternativa máis lixeira.
  • MicroK8s/k3s: opcións reducidas para laboratorio e IoT.

Automatización e Infraestrutura como Código

  • Ansible: automatización de configuracións.
  • Packer: creación de imaxes reproducibles.
  • Vagrant: contornas de desenvolvemento consistentes.
  • Paradigmas DevOps e GitOps: infraestrutura como código, integración continua.

Almacenamento

  • Ceph: altamente escalable, para grandes nubes privadas.
  • GlusterFS: máis sinxelo, ideal para proxectos medianos.
  • Tendencia: almacenamento definido por software.

Futuro próximo

  • Convivencia de VMs + contedores.
  • Consolidación da nube híbrida e multicloud.
  • Uso crecente de IA para xestión de recursos.
  • Perfil profesional: administradores con competencias en virtualización, contedores e automatización.

Conclusión

A virtualización e a computación na nube non son só tecnoloxías: son a base sobre a que se constrúe o presente e o futuro da informática. Comprender o seu funcionamento, as súas vantaxes e as súas limitacións é esencial para quen aspire a traballar en administración de sistemas, desenvolvemento de aplicacións ou deseño de infraestruturas modernas.