Brian Jackson - Fotolia
Opciones de IaaS vs. PaaS en AWS, Azure y Google Cloud Platform
¿Desean cambiar sus cargas de trabajo a la nube? Comprendan y comparen las opciones de IaaS y PaaS en AWS, Azure y Google Cloud Platform.
IaaS y PaaS son dos de las categorías más antiguas y más utilizadas de servicios de computación en la nube, similares en algunos aspectos, pero fundamentalmente diferentes tipos de plataformas.
Las empresas deben comprender esas diferencias para elegir el tipo correcto de servicio en la nube para un caso de uso dado. Este artículo explica los beneficios y los inconvenientes de IaaS frente a PaaS, y analiza las principales ofertas de IaaS y PaaS disponibles de AWS, Microsoft Azure y Google Cloud Platform.
Definición de IaaS vs. PaaS
La infraestructura como servicio (IaaS) proporciona acceso sobre pedido a la infraestructura de TI virtualizada a través de internet. Por lo general, IaaS proporciona acceso solo a los componentes de la infraestructura central: computación, redes y almacenamiento. Los usuarios instalan y administran el software que desean ejecutar en su infraestructura basada en la nube.
Los proveedores de la nube mantienen y monitorean la infraestructura física para entregar IaaS, pero es responsabilidad de los usuarios asegurar y monitorear las cargas de trabajo que se ejecutan en esa plataforma. Por lo tanto, el valor principal de IaaS es que elimina la necesidad de que los usuarios compren, configuren y mantengan servidores físicos.
Originalmente, IaaS era la columna vertebral de las principales nubes públicas, como AWS, que lanzó servicios de alojamiento de bases de datos y máquinas virtuales a mediados de la década de 2000. Pero más tarde esos proveedores agregaron opciones de servicio que permitieron a las empresas centrarse más en el desarrollo que en la administración.
La plataforma como servicio (PaaS) proporciona infraestructura para alojar aplicaciones, así como herramientas de software para ayudar a los clientes a desarrollar e implementar esas aplicaciones. PaaS simplifica la configuración y administración de hardware y software.
PaaS es menos flexible que IaaS, y generalmente atiende a un conjunto limitado de enfoques para el desarrollo o implementación de aplicaciones. No son reemplazos de uso general para toda la infraestructura de TI y el flujo de trabajo de desarrollo de software de una organización.
Anunciado por ofertas de proveedores como Heroku, las ofertas de PaaS se hicieron populares a mediados de la década de 2000, al mismo tiempo que surgió IaaS, pero PaaS evolucionó independientemente de IaaS. En la mayoría de los casos, los principales proveedores de IaaS en ese momento no incluían PaaS entre sus servicios en la nube, mientras que los proveedores de PaaS no se ramificaron para proporcionar servicios independientes de IaaS junto con PaaS.
Dónde se difuminan las líneas entre IaaS vs. PaaS
Muchos de los primeros proveedores de PaaS restringieron qué tecnologías admitían, y sus herramientas de software solo eran compatibles con sus propias plataformas de alojamiento. Fue difícil migrar de una oferta de PaaS a otra, o adaptar una canalización de desarrollo basada en PaaS para ejecutarse en un IaaS genérico.
A medida que las empresas buscaban cada vez más liberarse del bloqueo de la nube, PaaS se volvió más independiente del software. Las opciones de código abierto, como los contenedores Docker orquestados por Kubernetes, reemplazaron algunas herramientas patentadas. Como resultado, los proveedores de computación en la nube que se especializaron originalmente en IaaS agregaron ofertas de PaaS y aumentaron la compatibilidad con sus respectivas ofertas de IaaS. Por ejemplo, algunas versiones de AWS CodePipeline, un servicio de entrega continua que forma parte de un marco PaaS en la nube de AWS, pueden implementar aplicaciones en máquinas virtuales o contenedores que se ejecutan en la IaaS de AWS.
Esta integración de PaaS e IaaS ha borrado de alguna manera las diferencias entre los dos. En pocas palabras, piensen en IaaS como cualquier servicio en la nube que se limita estrictamente a la infraestructura. Si el servicio combina herramientas de software con la infraestructura, entonces es un PaaS.
Sin embargo, las plataformas IaaS incluyen algunos entornos de software preconfigurados. Por ejemplo, una máquina virtual (VM) basada en la nube viene preinstalada con un sistema operativo. Pero estas pilas de software son genéricas y los usuarios deben dedicar más tiempo a la personalización para satisfacer sus necesidades. IaaS no proporciona un entorno completo para desarrollar o implementar aplicaciones como se haría en el caso de PaaS.
Cuándo usar IaaS o PaaS
Con una comprensión básica de los beneficios y las diferencias de IaaS frente a PaaS, ahora pueden considerar cuál es el adecuado para una carga de trabajo determinada.
IaaS suele ser la mejor opción para las empresas que tienen los recursos para desarrollar, implementar y administrar aplicaciones, sin la ayuda del proveedor. IaaS también es preferible si un usuario requiere componentes que no son proporcionados por una oferta de PaaS, como una herramienta de desarrollo específica o un sistema operativo personalizado.
El caso de uso más común para IaaS es cuando una organización ya tiene su aplicación, o tiene los recursos internos para desarrollarla, y simplemente necesita infraestructura para alojarla. Por ejemplo, un minorista que ha creado una tienda en línea podría recurrir a un proveedor de IaaS para alojar esa carga de trabajo. O bien, una empresa podría elegir un producto de alojamiento IaaS para migrar su sistema de nómina local a la nube.
PaaS es una mejor opción para las organizaciones que tienen menos recursos para desarrollar y administrar aplicaciones. PaaS no elimina totalmente la necesidad de desarrolladores, pero optimiza las operaciones de desarrollo e implementación y los agrupa con la infraestructura de alojamiento. Por esa razón, PaaS puede ser más atractivo para las pequeñas y medianas empresas que desean que las aplicaciones salgan más rápido.
En general, IaaS cuesta menos que PaaS para cargas de trabajo que tienen un consumo de recursos comparable, pero es posible que deban pagar por herramientas de software de otras fuentes con un modelo de IaaS, lo que puede ser más costoso que adquirirlas como parte de un PaaS. También hay otros factores de costo, incluida la sobrecarga potencial para el mantenimiento de la infraestructura.
Cómo se comparan los servicios de IaaS y PaaS en la nube
Hoy, los principales proveedores de computación en la nube (AWS, Microsoft y Google) ofrecen opciones de IaaS y PaaS. Sin embargo, varían en la forma en que organizan esos servicios en la nube relacionados con PaaS.
AWS no proporciona PaaS en el sentido tradicional, pero facilita a los clientes la integración de varios productos de AWS para crear un PaaS adaptado a sus necesidades. Por el contrario, Azure y Google Cloud Platform han agrupado colecciones de herramientas y servicios para proporcionar una opción PaaS de extremo a extremo, aunque proporcionan diferentes herramientas de software y opciones de alojamiento dentro de esas colecciones de servicios.
Ofertas de IaaS y PaaS en AWS
En AWS, la IaaS principal para alojar máquinas virtuales es Amazon EC2. AWS ofrece la gama más amplia de tipos de instancias entre los principales proveedores de la nube, con una gama de máquinas virtuales de propósito general, así como instancias adaptadas a la memoria, el cómputo y el almacenamiento.
Los usuarios a menudo combinan EC2 con uno o más de los servicios de almacenamiento de datos de AWS para alojar una aplicación y los datos que requieren para operar. AWS ofrece varias opciones de almacenamiento, que incluyen:
- Amazon S3
- Tienda Amazon Elastic Block
- Sistema de archivos Elastic de Amazon
Aunque ningún servicio en la nube de Amazon constituye un PaaS tradicional, AWS ofrece varios servicios que los clientes pueden integrar fácilmente para crear un PaaS. Por ejemplo:
- AWS Cloud9: este entorno de desarrollo integrado basado en la nube se utiliza para desarrollar aplicaciones.
- AWS CodePipeline: los desarrolladores pueden usar esta herramienta para compilar e implementar aplicaciones. Admite la implementación en una variedad de opciones de alojamiento de AWS, como máquinas virtuales EC2 o contenedores en Amazon Elastic Container Service.
- AWS CodeDeploy: este servicio de implementación permite a las empresas automatizar las implementaciones en varios servicios informáticos de AWS.
- AWS Elastic Beanstalk: los desarrolladores usan esta herramienta para cargar código para aplicaciones y servicios web. AWS maneja la implementación, el aprovisionamiento y el equilibrio de carga.
En comparación con los otros proveedores principales de la nube, AWS ofrece la menor integración entre sus diversos servicios relacionados con PaaS. Para proporcionar las funciones de PaaS, los usuarios deben conectar varios servicios para crear un desarrollo completo de la aplicación y canalizar la implementación. Este enfoque atrae a las organizaciones que prefieren elegir sus herramientas, pero deben familiarizarse con las múltiples ofertas de AWS y tomar medidas para integrarlas.
Ofertas de IaaS y PaaS en Microsoft
Azure Virtual Machines es la principal oferta informática de Microsoft para alojar máquinas virtuales en la nube. Hay tipos de VMs optimizadas para computación, memoria optimizada, burstable (de uso intensivo) y de uso general. Para el almacenamiento de datos, Azure proporciona Azure Storage y Azure Databases. Sus ofertas de almacenamiento se dividen en subcategorías, que incluyen:
- Azure Disc Storage
- Almacenamiento de archivos de Azure
- Azure Blob Storage
- Azure Queue Storage
Las ofertas de PaaS de Azure se agrupan en una categoría de servicios llamada Azure App Service, que proporciona alojamiento y herramientas para agilizar el desarrollo y la implementación de aplicaciones utilizando una variedad de idiomas y marcos. App Service también ofrece flexibilidad para las organizaciones que desean personalizar cómo se ejecuta su PaaS. Estas herramientas incorporadas en App Service incluyen:
- Aplicaciones web de Azure
- Aplicaciones web de Azure para contenedores
- Aplicaciones de API de Azure
Entre todos los proveedores de la nube, Azure podría decirse que se acerca más a una única solución PaaS llave en mano a través del servicio de aplicaciones. Por lo tanto, Azure es una buena opción para las empresas que buscan una vía de acceso fácil para configurar las herramientas para ejecutar un PaaS.
Ofertas de IaaS y PaaS en Google
Al igual que AWS y Azure, Google ofrece una oferta de cálculo IaaS, llamada Google Compute Engine, que ofrece tipos de máquina predefinidos y personalizados. Google también tiene servicios de almacenamiento como:
- Google Cloud Storage
- Google Cloud Filestore
- Disco persistente de Google
La plataforma PaaS de Google, App Engine, es similar al servicio de aplicaciones de Azure, ya que admite el desarrollo y la implementación de aplicaciones escritas en una variedad de idiomas y marcos. También presenta una variedad de herramientas y enfoques de implementación, que incluyen:
- Un entorno estándar para implementaciones de sandbox, ciertos códigos fuente específicos, aplicaciones de bajo costo y demandas de escalado rápido.
- Un entorno flexible para aplicaciones en contenedores que se ejecutan en Compute Engine o aplicaciones que dependen de la red de Compute Engine, aplicaciones con tráfico constante, tiempos de ejecución personalizados y aplicaciones que dependen de marcos con código nativo.
Los desarrolladores también pueden combinar los entornos estándar y flexibles en App Engine según sea necesario.
App Engine se orienta más hacia el desarrollo basado en Linux, mientras que Azure App Service está más orientado a los marcos y servicios basados en Windows. Una empresa que crea sus aplicaciones en .NET podría preferir App Service, mientras que App Engine atrae a las áreas de TI a las que les gustan las herramientas Unix y desean implementar aplicaciones utilizando contenedores Docker, que también se ejecutan en Windows, pero se sienten más en casa en ambientes Linux.