<commit_before>Desplegando aplicaciones en la nube: Uso de PaaS 
==

<!--@
prev: Desarrollo_basado_en_pruebas
next: Contenedores
-->

<div class="objetivos" markdown="1">

##Objetivos 


### Cubre los siguientes objetivos de la asignatura

2. Conocer los conceptos relacionados con el proceso de virtualización
tanto de software como de hardware y ponerlos en práctica. 

4. Justificar la necesidad de procesamiento virtual frente a real en
   el contexto de una infraestructura TIC de una organización. 

### Objetivos específicos

1. Entender el concepto de PaaS, su diferencia con respecto a los IaaS
   y los productos específicos que hay en el mercado.
   
5. Comprender los conceptos necesarios para trabajar con diferentes
   plataformas PaaS.

6. Aplicar el concepto de *DevOps* a este tipo específico de plataforma.

7. Aplicar el sistema de control de fuentes `git` para despliegue de
   aplicaciones en la nube.

8. Entender la conexión entre repositorios y sistemas de producción y
   configurarlos para despliegues automáticos. 

</div>


Cuando uno quiere parte del trabajo de instalación ya hecho, o al menos preparado
para hacer con la pulsación de un botón, a la vez que tiene
flexibilidad para trabajar con marcos de aplicaciones más allá de lo
que ofrece programar *plugins* (como en el SaaS), necesita un
[Platform as a Service o PaaS](http://en.wikipedia.org/wiki/Platform_as_a_service). Un
PaaS proporciona una pila que incluye, generalmente, almacenamiento de
datos, un marco concreto para trabajar (tal como Django o Ruby on
Rails) y, adicionalmente, un servidor web. 

Esto conlleva una cierta falta de flexibilidad: se pueden usar las
pilas que proporciona en servicio y el usuario sólo puede subir su
aplicación que las use, no instalar elementos adicionales que necesiten permisos de
superusuario. Pero, por otro lado, ofrece la comodidad de tener que
concentrarse sólo en la aplicación en sí y no en la
infraestructura si se trata de una aplicación que use los marcos más
comunes. Es, por eso, menos *DevOps* que una solución *IaaS*, 
pero por otro lado también tiene una parte que es la configuración y
despliegue de la aplicación en sí y los tests que se vayan a usar. Y
los PaaS de hoy en día admiten tantas opciones de configuración que,
salvo en casos muy específicos multi-máquina, pueden cubrir las
necesidades de una organización pequeña o mediana. 

Usando un servicio PaaS
-----<commit_msg>Modificando formato<commit_after>Desplegando aplicaciones en la nube: Uso de PaaS 
==

<!--@
prev: Desarrollo_basado_en_pruebas
next: Contenedores
-->

<div class="objetivos" markdown="1">

##Objetivos 


### Cubre los siguientes objetivos de la asignatura

2. Conocer los conceptos relacionados con el proceso de virtualización
tanto de software como de hardware y ponerlos en práctica. 

4. Justificar la necesidad de procesamiento virtual frente a real en
   el contexto de una infraestructura TIC de una organización. 

### Objetivos específicos

1. Entender el concepto de PaaS, su diferencia con respecto a los IaaS
   y los productos específicos que hay en el mercado.
   
5. Comprender los conceptos necesarios para trabajar con diferentes
   plataformas PaaS.

6. Aplicar el concepto de *DevOps* a este tipo específico de plataforma.

7. Aplicar el sistema de control de fuentes `git` para despliegue de
   aplicaciones en la nube.

8. Entender la conexión entre repositorios y sistemas de producción y
   configurarlos para despliegues automáticos. 

</div>


Cuando uno quiere parte del trabajo de puesta a punto del servidor esté ya hecho, o al menos preparado
para hacer con la pulsación de un botón a la vez que tiene
flexibilidad para trabajar con marcos de aplicaciones más allá de lo
que ofrece programar *plugins* (como en el SaaS), necesita un
[Platform as a Service o PaaS](http://en.wikipedia.org/wiki/Platform_as_a_service). Un
PaaS proporciona una pila que incluye, generalmente, almacenamiento de
datos, un marco concreto para trabajar (tal como Django o Ruby on
Rails) y, adicionalmente, un servidor web. 

Esto conlleva una cierta falta de flexibilidad: se pueden usar las
pilas que proporciona en servicio y el usuario sólo puede subir una
aplicación que las use, no instalar elementos adicionales que necesiten permisos de
superusuario. Pero, por otro lado, ofrece la comodidad de tener que
concentrarse sólo en la aplicación en sí y no en la
infraestructura, siempre que se trate de una aplicación que use los marcos más
comunes. Es, por eso, menos *DevOps* que una solución *IaaS*, 
pero por otro lado también tiene una parte que es la configuración y
despliegue de la aplicación en sí y los tests que se vayan a
usar. Aparte de esto,
los PaaS de hoy en día admiten tantas opciones de configuración que,
salvo en casos muy específicos multi-máquina, pueden cubrir las
necesidades de una organización pequeña o mediana. 

Usando un servicio PaaS
-----
{'fraction_non_alphanumeric': 0.04257486249745366, 'fraction_numerical': 0.003259319617029945, 'mean_word_length': 4.407488986784141, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3915551', 'n_tokens_mistral': 1624, 'n_tokens_neox': 1574, 'n_words': 735}