Cuando nos referimos a desarrollar aplicaciones en la nube
tenemos que puntualizar de que manera lo vamos a hacer, ya que dentro
del concepto nube existen distintas formas de hacerlo que nos permiten
una mayor flexibilidad o sencillez a la hora de desplegar nuestras
aplicaciones o mantenerlas. Entre estas distintas formas que puede
adoptar la nube se encuentran: Software-as-a-Service (SaaS), Plataform-as-a-Service (PaaS) y Infraestructure-as-a-Service (IaaS).
Software-as-a-Service (SaaS)
El concepto de SaaS ha existido desde hace mucho
tiempo, pero quizás en estos últimos años hemos definido claramente a
que nos referimos. Básicamente se trata de cualquier servicio basado en
la web. Tenemos ejemplos claros como el Webmail de Gmail, los CRM
onlines. En este tipo de servicios nosotros accedemos normalmente a
través del navegador sin atender al software. Todo el desarrollo,
mantenimiento, actualizaciones, copias de seguridad es responsabilidad
del proveedor.
En este caso tenemos poco control, nosotros nos situamos en la parte
más arriba de la capa del servicio. Si el servicio se cae es
responsabilidad de proveedor hacer que vuelva a funcionar.
Ejemplos populares de Saas son Google Docs, Salesforce, Dropbox, Gmail…
Plataform-as-a-Service (PaaS)
PaaS es el punto donde los desarrolladores
empezamos a tocar y desarrollar nuestras propias aplicaciones que se
ejecutan en la nube. En este caso nuestra única preocupación es la
construcción de nuestra aplicación, ya que la infraestructura nos la da
la plataforma.
Es un modelo que reduce bastante la complejidad a la hora de
desplegar y mantener aplicaciones ya que las soluciones PaaS gestionan
automáticamente la escalabilidad usando más recursos si fuera necesario.
Los desarrolladores aun así tienen que preocuparse de que sus
aplicaciones estén lo mejor optimizadas posibles para consumir menos
recursos posibles (número de peticiones, escrituras en disco, espacio
requerido, tiempo de proceso, etc..) Pero todo ello sin entrar al nivel
de maquinas.
Ejemplos populares son Google App Engine
que permite desarrollar aplicaciones en Java o Python desplegándolas en
la infraestructura que provee Google, cosa que también hace Heroku con Rails y Django.
Para los desarrolladores que ignoran la infraestructura que deben
montar y sólo quieren preocuparse de escribir software, esta es la
alternativa a seguir.
Infraestructure-as-a-Service (IaaS)
En este caso con IaaS tendremos mucho más control que con PaaS, aunque a cambio de eso tendremos que encargarnos de la gestión de infraestructura,
El ejemplo perfecto es el proporcionado por Amazon Web Service (AWS)
que no provee una serie de servicios como EC2 que nos permite manejar
maquinas virtuales en la nube o S3 para usar como almacenamiento.
Nosotros podemos elegir qué tipo de instancias queremos usar LInux o
Windows, así como la capacidad de memoria o procesador de cada una de
nuestras maquinas. El hardware para nosotros es transparente, todo lo
que manejamos es de forma virtual.
La principal diferencia es que nosotros nos encargamos de escalar
nuestras aplicaciones según nuestras necesidades, además de preparar
todo el entorno en las maquinas (aunque existen imágenes de instancias
preparadas con las configuraciones más comunes).
Fuente | Genbetadev
No hay comentarios:
Publicar un comentario