Penggunaan fungsi COMPARTIDA pada PHP

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.

Table of Contents

  • Máquinas Virtuales
  • Contenedores
  • Ventajas de la Computación en la Nube
  • Modelos de Implementación en la Nube
  • Nube Privada
  • Nube Pública
  • Nube Híbrida
  • Tipos de Servicios en la Nube
  • Infraestructura como Servicio (IaaS)
  • Plataforma como Servicio (PaaS)
  • AWS, Azure o GCP, ¿Cuál elegir?
  • Siguientes Pasos y Formación
  • Preguntas Frecuentes Cloud Computing – FAQ

Penggunaan fungsi COMPARTIDA pada PHP

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.

Esquema de componentes en Contenedores vs Máquina Virtual

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.

Comparativa Servicio IaaS PaaS y 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.

AWS, Azure o GCP, ¿Cuál elegir?

Si te estás preguntando cuál es el mejor proveedor de servicios cloud para empezar a trabajar como ingeniero de datos debes analizar varios aspectos de cada uno.

En cuanto a cuotas de mercado, claramente el vencedor es Amazon Web Services (AWS). Es el mayor proveedor de servicios cloud a escala mundial con casi el 50% del mercado total. Después de AWS se encuentra Microsoft Azure en la posición número dos. Por último, Google Cloud Platform (GCP) ocupa el tercer puesto.

Aunque los trees proveedores aportan herramientas y servicios muy parecidos que cubren casos de uso comunes, la elección depende de preferencias personales y del uso que se haga en tu organización. Por ejemplo, si ya se está usando uno de estos proveedores, en general se seguirán añadiendo servicios en vez de iniciar un proceso de migración. Si aún no te encuentras trabajando en ninguna organización, puedes analizar las ofertas de trabajo para ver qué plataforma es más demandada, y de esta forma orientarte para cubrir un mayor número de posibles empleos. Es posible que un proveedor sea más usado en alguna región o sector particular.

En España, por ejemplo, el uso de AWS y de Azure está muy extendido, y podrás encontrar una alta demanda para ambos perfiles. Sin embargo, aunque GCP está en crecimiento, aún no está presente como habilidad deseable o requerida en tantas ofertas de empleo.

Uno de los aspectos importantes en esta elección es la interfaz de usuario y de configuración y despliegue de servicios. Azure tiene una interfaz de usuario muy trabajada y no supondrá un gran esfuerzo aprender a usarla en profundidad si estás acostumbrado a configurar entornos onpremise.

En conclusión, si estás empezando, te recomiendo aprender AWS o Azure debido a su cuota de mercado y demanda.

Siguientes Pasos y Formación

Puedes acelerar tu aprendizaje con alguno de estos cursos recomendados en Udemy, y así preparar las certificaciones básicas en Azure o bien en AWS online:

También puedes seguir aprendiendo sobre tecnologías cloud y Microsoft Azure con estos artículos:

Si eres de libros, aquí tienes una buena referencia:

Preguntas Frecuentes Cloud Computing – FAQ

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.

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.

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.

A continuación, el vídeo-resumen. ¡No te lo pierdas!

Únete a la Comunidad Big Data

Tu conocimiento es la herramienta más potente. Suscríbete a la lista de correo para mantenerte al día con los artículos más útiles para tu carrera en Big Data y Cloud Computing. Sin spam, nunca.