2020-10

Semestre 2020-10

Nombre del curso: Desarrollo de soluciones cloud
Course Name:
Créditos: 4
Profesor: Harold Castro (hcastro@uniandes.edu.co)

Mario Villamizar (mj.villamizar24@uniandes.edu.co)

Versión PDF Click Aquí

Descripción

Cloud computing es el paradigma de computación de mayor impacto de los últimos años. Si bien al principio la natural resistencia al cambio no permitió un despliegue rápido de soluciones que aprovecharan sus múltiples ventajas, hoy en día es una realidad con la que toda organización debe contar para definir su estrategia de TI.  La rápida adopción que experimentamos hoy es fruto de un mayor conocimiento que desmitifica muchos de los riesgos que actuaron como barreras para su adopción, lo que ha causado que el desarrollo y migración a soluciones cloud computing sea cada vez más requerido e importante para las estrategias de TI de muchas organizaciones. 

Objetivos

Analizar y aplicar la pertinencia y la manera de aprovechar la nube para una solución de TI de una organización. El curso busca desarrollar las siguientes competencias: 

  • Adquirir conocimientos suficientes sobre los elementos que caracterizan el paradigma de computación en la nube   
  • Analizar las ventajas y desventajas de una solución en la nube con respecto a los objetivos de negocio de una organización 
  • Evaluar la conveniencia de tercerizar un aplicación o servicio utilizando proveedores de computación en la nube  
  • Portar aplicaciones a infraestructuras públicas, tomando ventaja de sus servicios para poder aprovechar los beneficios de la nube 
  • Identificar y aplicar consideraciones de diseño, arquitectura y patrones de aplicaciones que aprovechen todos los beneficios de la nube  
  • Aplicar procesos de desarrollo de nuevas aplicaciones altamente escalables sobre infraestructuras y plataformas en la nube de proveedores líderes de la industria   
  • Adquirir conocimientos sobre las complejidades, riesgos y consideraciones que deben ser tenidas en cuenta al momento de desarrollar aplicaciones en la nube   
  • Conocer los modelos de negocio, las oportunidades y retos que se pueden crear al desarrollar y comercializar aplicaciones bajo el modelo de SW como servicio.   
  • Identificar y aplicar conocimientos y consideraciones técnicas que deben ser tenidas en cuenta para desarrollar aplicaciones bajo el modelo de SW como servicio. 

Metodología

El curso gira alrededor de dos proyectos por medio de los cuales se aplican los conceptos trabajados, tanto en las sesiones virtuales como presenciales del curso, y los elementos (herramientas) tecnológicas propuestas para su desarrollo. 

El curso se desarrollará en modalidad blended learning. Tendremos sesiones presenciales cada tres semanas y sesiones virtuales entre las sesiones presenciales. En las sesiones presenciales: 

  • Se realizan talleres y discusiones sobre los temas estudiados en las sesiones virtuales. 
  • Se profundiza en aspectos temáticos abordados en las sesiones virtuales. 
  • Retroalimentación a los trabajos realizados en las actividades virtuales. 
  • Se realiza seguimiento al desarrollo de proyecto. 
  • Se desarrollan Evaluaciones.

 

En las sesiones virtuales:  

  • Se estudian los temas del curso, a través de lecturas, talleres, discusiones en foros, reuniones virtuales sincrónicas y no sincrónicas. 
  • Revisión de ejemplos y casos.  
  • Se realiza seguimiento al desarrollo de proyecto. 
  • Revisión de videos. 
  • Actividades individuales y colaborativas sincrónicas y no sincrónicos, con el fin de reforzar los conceptos vistos y fomentar el autoaprendizaje.  

 Se contará con un aula virtual en la cual se disponen todas las actividades y materiales para el desarrollo del curso 

Plan de temas

 

Este curso tienes dos partes: por un lado presenta desde una perspectiva objetiva tanto los beneficios como los riesgos, pasando por los diferentes modelos de oferta y de despliegue y considerando los pasos que deben tenerse en cuenta para la mejor integración de este paradigma en las organizaciones. Por otra parte, se concentra en el análisis de las complejidades asociadas al desarrollo de aplicaciones que puedan aprovechar todos los beneficios de este paradigma, mitigando sus riesgos. Para ello se estudian las plataformas y arquitecturas más exitosas así como los modelos de negocio y oportunidades que se crean.

En particular se verán los siguientes temas:

  • Evolución de los sistemas distribuidos
    • Del mainframe al cloud
    • Virtualización
    • Los datacenters
  • Cloud computing
    • Oferta y modelos
    • Tecnologías
      Seguridad
  • Infraestructura como Servicio (IaaS)
    • Servicios básicos de Amazon Web Services
    • Aprovechamiento de infraestructuras en la nube públicas
  • Arquitectura y diseño de aplicaciones escalables sobre IaaS
    • Servicios requeridos para escalar una aplicación Web
    • Servicios avanzados de Amazon Web Services
    • Costos, beneficios, SLAs, redundancias, integraciones y escalabilidad de los servicios
    • Patrones para aplicaciones escalables
  • Desarrollo de aplicaciones sobre plataformas en la nube (PaaS)
    • Aspectos y consideraciones para utilizar plataformas en la nube
    • Servicios de un plataforma en la nube
    • Categorización de plataformas cloud disponibles
    • Costos, beneficios, SLAs, redundancias, integraciones y escalabilidad de los servicios
  • Soluciones de software como servicio (SaaS)
    • Ejemplos de soluciones de software como servicio para diferentes áreas del negocio
    • Consideraciones a tener en cuenta al momento de adquirir un SaaS
  • Emprendimiento en soluciones de software como servicio (SaaS)
    • Modelos de negocio para soluciones de software como servicio
    • Consideraciones técnicas y del negocio al desarrollar soluciones de software como servicio
    • Desarrollo ágil enfocado en el cliente (lean startup y customer development)

Conocimientos previos

Desarrollo de aplicaciones J2EE

Condiciones de inscripción

Aprobar el nivelatorio de programación