Nivel Innovador

Bootcamp

Programación

Programación

Este entrenamiento te proporcionará los conocimientos y habilidades para implementación de estrategias de seguridad en el código, esenciales para mitigar vulnerabilidades y proteger aplicaciones de amenazas potenciales, con el fin de diseñar aplicaciones web robustas.

Perfil de ingreso

  • Dominio de Html, Python, JavaScript, CSS.
  • Experiencia en la utilización de frameworsk en desarrollo con backend y frontend.
  • Comprensión y manejo de programación orientada a objetos.
  • Comprensión y manejo de conceptos avanzados de programación y arquitectura de software.
  • Habilidades básicas de comprensión de lectura, matemáticas, razonamiento abstracto, lectura en inglés.

¿Por qué hacer este entrenamiento?

  • Utilizarás y aplicarás las estrategias de seguridaden código para mitigar vulnerabilidades.
  • Implementarás el diseño de una aplicación WEB, incluyendo la habilidad de leer e interpretar artefactos como la arquitectura de software, la especificación de las APIs, los diagramas de despliegue, el plan de implementación, entre otros.
  • Implementarás servicios web y microservicios utilizando prácticas actuales y tecnologías de vanguardia.

Qué aprenderás

Qué aprenderás

Your Title Goes Here

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Misión 1. Fundamentos de Seguridad en el Desarrollo de Software, Programación Orientada a Objetos (POO) Avanzada con Java
  • Introducción a la ciberseguridad:
    Conceptos básicos de seguridad informática
    Importancia de la seguridad en el desarrollo de software
    Principales amenazas y vulnerabilidades
  • Seguridad en aplicaciones web:
    Principios de codificación segura
    Evitar vulnerabilidades comunes (inyecciones SQL, XSS, CSRF)
  • Seguridad en Base de Datos:
    Control de acceso
    Encriptación
    Auditoría
    Inyecciones SQL
  • Seguridad en la Nube:
    Generalidades
    Seguridad en la infraestructura
  • Ética, tratamientos de datos y seguridad
  • Revisión de Conceptos de POO:
    Clases, objetos, herencia, polimorfismo, encapsulación
  • Patrones de Diseño:
    Principios SOLID
    Patrones de diseño creacionales, estructurales y de comportamiento
  • Gestión de Dependencias y Librerías:
    Uso de Maven/Gradle
    Integración y gestión de librerías externas
Misión 2. Introducción a la Arquitectura de Software, Especificaciones de APIs y Diseño, Diagramas de Despliegue y DEVOPS y Gestión de Infraestructura y Costos
  • Fundamentos de Arquitectura de Software:
    Definición y principios de arquitectura de software
    Arquitecturas monolíticas vs. microservicios
    Patrones de diseño arquitectónico (capas, hexagonal, cliente-servidor)
  • Documentación de Arquitectura:
    Creación y uso de diagramas de arquitectura
    Documentación de decisiones arquitectónicas
    Uso de herramientas para la documentación de arquitectura (e.g., ArchiMate, C4 Model)
  • Casos de Uso y Requisitos:
    Recopilación y análisis de requisitos
    Traducción de requisitos en decisiones arquitectónicas
  • Diseño de APIs RESTful:
    Principios y mejores prácticas para el diseño de APIs RESTful
    Estructura y formato de endpoints
    Gestión de versiones de APIs
  • Documentación de APIs:
    Uso de herramientas como Swagger/OpenAPI para la documentación
    Creación de documentación clara y útil
    Ejemplos y especificaciones de APIs
  • Seguridad en APIs:
    Autenticación y autorización (OAuth, JWT)
    Protección contra ataques comunes (CSRF, XSS)
  • Diagramas de Despliegue:
    Creación de diagramas de despliegue para representar la infraestructura
    Representación de componentes, servicios y su interacción
    Herramientas para la creación de diagramas (e.g., Lucidchart, Microsoft Visio)
  • Conceptos y Filosofía de DevOps:
    Principios y prácticas de DevOps
    Beneficios de DevOps para el desarrollo de software
  • Integración Continua (CI):
    Implementación de pipelines de CI
    Herramientas de CI (e.g., Jenkins, GitHub Actions, GitLab CI)
  • Despliegue Continuo (CD):
    Estrategias de despliegue continuo
    Automatización de despliegue y pruebas
  • Infraestructura como Código (IaC):
    Conceptos y herramientas de IaC (e.g., Terraform, Ansible)
    Automatización de la infraestructura
  • Gestión de Costos en la Nube:
    Evaluación de costos de infraestructura en la nube (AWS, Azure, GCP)
    Optimización y control de costos
    Estrategias para la gestión económica de recursos»
Misión 3. Introducción a los Microservicios, Contenedores y Orquestación y Pruebas
  • Conceptos y Beneficios:
    Definición de Microservicios: Qué son los microservicios y cómo se diferencian de las arquitecturas monolíticas.
    Beneficios y Desafíos: Ventajas y desafíos de utilizar una arquitectura de microservicios.
  • Diseño de Microservicios:
    Principios de Diseño: Principios para el diseño de microservicios efectivos y escalables.
    Desacoplamiento y Autonomía: Cómo lograr que los microservicios sean independientes y autocontenidos.
  • Comunicación entre Microservicios:
    Protocolos de Comunicación: Uso de REST, gRPC, y eventos para la comunicación entre servicios.
    Manejo de Errores y Retries: Estrategias para manejar fallos y asegurar la resiliencia.
  • Gestión de Datos en Microservicios:
    Patrones de Persistencia:
    Estrategias para manejar datos en una arquitectura de microservicios (base de datos por servicio, CQRS, etc.).
    Sincronización y Consistencia:
    Manejo de la consistencia eventual y la sincronización de datos.
  • Uso de Docker y Kubernets:
    Conceptos Básicos de Docker: Creación y gestión de contenedores Docker.
    Conceptos Básicos de Kubernetes: Introducción a Kubernetes y su arquitectura.
    Despliegue y Gestión de Contenedores: Configuración y despliegue de aplicaciones en un clúster Kubernetes.
    Escalabilidad y Actualizaciones: Estrategias para escalar aplicaciones y gestionar actualizaciones.
  • Pruebas de Servicios Web:
    Pruebas Unitarias y de Integración: Técnicas para probar servicios individuales y su integración.
    Automatización de Pruebas: Integración de pruebas en el proceso de integración continua (CI).
  • Pruebas de Contenedores:
    Pruebas de Contenedores Docker: Estrategias para probar contenedores y su funcionamiento en diferentes entornos.