En el nivel más interno tendríamos la idea de "Infraestructure as a Service" (IaaS), de los que el ejemplo quizá más popular sea Amazon Web Services (aunque existen muchos más). Este tipo de servicios serían al equivalente a "comprarnos una máquina" con un determinado sistema operativo y diferentes cantidades de recursos básicos como memoria y espacio en disco. La diferencia reside en que, en vez de disponer de ella físicamente, es una reserva de recursos de los que disponemos "virtualmente" y a los que accedemos a través de la nube. En este caso tendremos que instalar los diferentes programas, lenguajes, entornos, etc. que compondrán la pila tecnológica sobre la que construiremos nuestra aplicación web. La gran ventaja de estos esquemas es la gran flexibilidad con la que uno puede aumentar la capacidad de su máquina o adquirir nuevas máquinas en función de la demanda de nuestra aplicación (todo ello de manera automatizable). Esta flexibilidad, por otro lado, también implica una mayor carga de trabajo de "fontanería TIC" para instalar y configurar todos los componentes de la pila tecnológica, así como la monitorización de la demanda de la aplicación y el consumo de recursos para organizar las políticas que determinen cuándo adquirir más capacidad de máquina (escalar) o lo contrario.
Por encima de este nivel tendríamos el "Platform as a Service" (PaaS), donde podríamos citar a Heroku como ejemplo (al igual que antes, con muchas alternativas más). Aquí disponemos de soluciones "preconfiguradas", con alternativas para diferentes lenguajes o frameworks de programación, de manera que partimos ya de una estructura ya en marcha y que nos da resueltas varias de las tareas que indicábamos en el nivel IaaS, lo que reduce el tiempo en que podemos disponer de nuestra aplicación web en servicio. Como contrapartida, obviamente, estos esquemas te fuerzan de alguna manera a construir tu aplicación dentro del modelo que ellos determinan y por tanto pierdes flexibilidad y capacidad de configuración.
La tendencia que se viene observando en este tipo de aproximaciones "as a Service" es a ofrecer soluciones que intentan combinar lo mejor estos dos últimos modelos, en concreto por parte de proveedores IaaS que tratan de aproximarse al PaaS añadiendo a su servicio funcionalidades que permitan a los desarrolladores una puesta en producción mucho más ágil y sin tener que ocuparse de todas las tareas de bajo nivel que habitualmente se requerían, por ejemplo incluyendo opciones adicionales para incluir componentes ya instalados, o facilitando la puesta en producción y monitorización. Con todo, la solución adecuada para cada aplicación dependerá sobre todo del grado de control que se exija en cada caso, en términos de rapidez requerida para la puesta en producción, necesidad de recursos a bajo nivel y flexibilidad para escalar ágilmente.
Por encima de este nivel tendríamos el "Platform as a Service" (PaaS), donde podríamos citar a Heroku como ejemplo (al igual que antes, con muchas alternativas más). Aquí disponemos de soluciones "preconfiguradas", con alternativas para diferentes lenguajes o frameworks de programación, de manera que partimos ya de una estructura ya en marcha y que nos da resueltas varias de las tareas que indicábamos en el nivel IaaS, lo que reduce el tiempo en que podemos disponer de nuestra aplicación web en servicio. Como contrapartida, obviamente, estos esquemas te fuerzan de alguna manera a construir tu aplicación dentro del modelo que ellos determinan y por tanto pierdes flexibilidad y capacidad de configuración.
La tendencia que se viene observando en este tipo de aproximaciones "as a Service" es a ofrecer soluciones que intentan combinar lo mejor estos dos últimos modelos, en concreto por parte de proveedores IaaS que tratan de aproximarse al PaaS añadiendo a su servicio funcionalidades que permitan a los desarrolladores una puesta en producción mucho más ágil y sin tener que ocuparse de todas las tareas de bajo nivel que habitualmente se requerían, por ejemplo incluyendo opciones adicionales para incluir componentes ya instalados, o facilitando la puesta en producción y monitorización. Con todo, la solución adecuada para cada aplicación dependerá sobre todo del grado de control que se exija en cada caso, en términos de rapidez requerida para la puesta en producción, necesidad de recursos a bajo nivel y flexibilidad para escalar ágilmente.
No hay comentarios:
Publicar un comentario