Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Curso de Docker

Curso de Docker

Guido Vilariño

Guido Vilariño

Las tres áreas en el desarrollo de software profesional

3/33
Recursos

Aportes 80

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Problems when building:

  • Development dependencies (packages)
  • Runtime versions
  • Equivalence of development environments (code sharing)
  • Equivalence of production environments(go to production)
  • Versions / compatibility(integration of other services e.g.: databases)

Problems when distributing:

  • Different build generations
  • Access to production servers
  • Native vs. distributed execution
  • Serverless

Problems when executing:

  • Application dependencies
  • Operating System Compatibility
  • Availability of external services
  • Hardware Resources

Docker allows:

Build, distribute and run your code anywhere without worrying.

Resumen de la clase:

“Docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado.”

Problemáticas del desarrollo de software

1. Construir - Escribir código en la máquina del desarrollador. (Compile, que no compile, arreglar el bug, compartir código, etc. )

Problemática:

  • Entorno de desarrollo (paquetes)
  • Dependencias (Frameworks, bibliotecas)
  • Versiones de entornos de ejecución (runtime, versión Node)
  • Equivalencia de entornos de desarrollo (compartir el código)
  • Equivalencia con entornos productivos (pasar a producción)
  • Servicios externos (integración con otros servicios ejem: base de datos)

2. Distribuir - Llevar la aplicación donde se va a desplegar (Transformarse en un artefacto)

Problemática:

  • Output de build heterogeo (múltiples compilaciones)
  • Acceso a servidores productivos (No tenemos acceso al servidor)
  • Ejecución nativa vs virtualizada
  • Entornos Serverless

3. Ejecutar - Implementar la solución en el ambiente de producción (Subir a producción)
El reto Hacer que funcione como debería funcionar

Problemática:

  • Dependencia de aplicación (paquetes, runtime)
  • Compatibilidad con el entorno productivo (sistema operativo poco amigable con la solución)
  • Disponibilidad de servicios externos (Acceso a los servicios externos)
  • Recursos de hardware (Capacidad de ejecución - Menos memoria, procesador más debil)

Problema principal: “Pero en mi maquina corre”

“Docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado”

Una razón por la que Docker es tan popular es que cumple la promesa de “desarrollar una vez, ejecutar en cualquier lugar”. Docker ofrece una forma sencilla de empaquetar una aplicación y sus dependencias de tiempo de ejecución en un solo contenedor; también proporciona una abstracción en tiempo de ejecución que permite que el contenedor se ejecute en diferentes versiones del kernel de Linux.

Usando Docker, un desarrollador puede crear una aplicación en contenedor en su estación de trabajo, y luego implementar fácilmente el contenedor en cualquier servidor habilitado para Docker. No es necesario volver a probar o volver a sintonizar el contenedor para el entorno del servidor, ya sea en la nube o en las instalaciones

Docker en una imagen:

Si todo el curso va a tener el mismo entusiasmo con el que presento este video, va a estar chevere, a darle al docker! 😄

se ve muy bueno el curso… al parecer voy a aprender de docker:

  • Mientras que Udemy me mira con ojos de tristeza 👀

😅

Este curso lo vi hace dos años pero a pesar de conocer muy bien no existe nada como un review y el teacher uno de los mejores de Platzi

Ufff enserio docker cambia vidas sobre todo para mi y mis compañeros de trabajo nos ha ayudado mucho en el tema de solo tener que configurar el entorno una sola vez y que sirva para siempre ya demas no necesitas instalar nada sino un par de comandos que puedes documentar y listo

Recuerdo que en el curso de arquitectura de software se mencionan los dos tipos de problemas o dificultades que enfrentamos en desarrollo de software:

😅 Problemas Esenciales:

Son los relacionados con la complejidad de necesidades, conformidad del cliente, cambios que nos solicitan y intangibilidad del software, estos son los más recurrentes, los que Guido menciona, donde no existe la bala de plata para resolverlos 🐺.

🤖 Problemas Accidentales:

por otro lado estos tienen que ver con los lenguajes de programación, el multiprocesamiento, los entornos de programación y aquí podríamos ubicar los problemas que señala Guido, donde Docker 🐳 nos apoya en la construcción, distribución y ejecución del software, que alivio 3 problemas menos 🦾

Escuchar esas palabras me hace recuperar la fé en el proyecto que tengo atorado jajaja, pero ahora falta ver, cuáles son los requerimentos de Docker xD

3️⃣ Las tres áreas en el desarrollo de software profesional

Apuntes

  • Existen 3 problemas que en toda tecnología o aplicación van a estar presentes
    1. Construir
    2. Distribuir
    3. Ejecutar

🔨 Construir software

  • Escribir código es solo una (pequeña) parte
  • Los problemas complejos necesitan equipos

Problemas al construir software

  • Entorno de desarrollo
  • Dependencias
  • Entorno de ejecución
  • Equivalencia con entorno productivo
  • Servicios externos

📦 Distribuir software

  • Tu código tienen que transformarse en un artefacto, o varios, que puedan ser transportados a donde tengan que ser ejecutados

Problemas al distribuir software

  • Divergencia de repositorios
  • Divergencia de artefactos
  • Versionado

👨‍💻 Ejecutar software

  • La máquina donde se escribe el software siempre es distinta a la máquina donde se ejecuta de manera productiva

Problemas al ejecutar software

  • Compatibilidad con el entorno productivo
    • No estamos seguros de que lo que necesitemos este instalado
  • Dependencias
  • Disponibilidad de servicios externos
  • Recursos de hardware

🐳 Docker

“Docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado.”
~ Documentación oficial de Docker

Buen Intro

Problemas al construir:

Dependencias de desarrollo
Versiones de entornos de ejecución
Equivalencia de entornos de desarrollo
Equivalencia de entornos de producción
Versiones / compatibilidad

Problemas al Distribuir:

Generaciones del build diferentes
Acceso a servidores de producción
Ejecución nativa vs la distribuida
Serverless

Problemas al Ejecutar:

Dependencias de aplicación
Compatibilidad de sistema operativo
Disponibilidad de servicios externos
Recursos de hardware

Docker permite:
Construir, distribuir y correr tu código en cualquier lado

En mi opinión , creo que entre los problemas principales al momento de desarrollar software serían, de manera muy puntual y resumida, la seguridad, la eficiencia del código y la potabilidad.

2. Las tres áreas en el desarrollo de software profesional

Construir, Distribuir, Ejecutar
Existen tres áreas en el desarrollo de software que, en cada una de ellas tiene sus propios desafíos.

  • Construir, en esta área se habla del cómo se construye el software y que es necesario.

  • Distribuir, el lugar donde debe estar el software para que pueda servirse o estar disponible

  • Ejecutar, como hacer que el software finalmente se ejecute en el lugar donde es solicitad

Respuesta que Docker da a muchas de las problemáticas
Docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado

¿Cuáles son los problemas que Docker da solución en cada área en la construcción software?

1. Realidad de Construir software

La realidad es que escribir código es una pequeña parte del problema Los problemas complejos necesitan equipos

El Problema de construir software

  • Entorno de desarrollo,
    esto está asociado con la herramienta que usan los desarrolladores para construir software, y que versiones de lenguaje está usando.

  • Dependencias,
    Ningún software construido desde cero, esto está relacionado con configuraciones, librerías, framework.

  • Entornos de ejecución,
    Las configuraciones para ejecutar el código dentro de cada máquina del equipo de desarrollo

  • Equivalencia con entorno productivo,
    este punto está relaciona con, cómo hacer que el entorno de ejecución junto con la codificación sea lo más parecido al entorno productivo, por ejemplo existe la posibilidad de que los desarrolladores estén codificando en windows y el despliegue final puede ocurrir en un servidor linux, entonces si existen la llamada a servicios de window puede ocurrir problemas al momento de realizar el despliegue en Linux.

  • Servicios externos,
    Está relacionada con servicios externos por ejemplo consulta a bases de datos, consulta a API entre otros. La idea es como se van configurar estos servicios externos

2. Realidad de distribución de software
Tu código tiene que transformarse en un artefacto, o varios, que pueden ser transportados a donde tengan que ser ejecutados. Por ejemplo Si se trabaja con java este genera un . .jar o si es un proyecto Android este genera un .apk, entonces la pregunta es: ¿En cuál repositorio debe ser colocado?

Problemas al distribución de software

  • Divergencia de repositorios,
    Ejemplo: Un proyecto Android genera un .apk, entonces esta se alojará en la playstore, y se tiene una bases de datos Mysql la cuál la aplicación hará uso, esta estará alojada en otro lugar
  • Divergencia de artefactos,
    Ejemplo: Un proyecto Android genera un .apk, y si esta aplicación accede a una bases de datos, esta tiene otra extensión y lo convierte en otro artefacto a parte.
  • versionado,
    ¿Cómo versionar cada artefacto que conforma nuestro software?

3. Realidad de Ejecutar Software
La máquina donde se escribe el código de software siempre es distintiva ala máquina de donde se ejecuta de manera productiva.

Problemas al distribución de software

  • Compatibilidad con el entorno productivo
  • Dependencias
  • Disponibilidad de servicios externos
  • Recursos de hardware.

“Docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado”

Problemas del desarrollo de software.

  • Construir: Escribir código es sólo una pequeña parte

    • Entorno de desarrollo
    • Dependencias
    • Entorno de ejecución
    • Equivalencia con entorno productivo
    • Servicios externos
  • Distribución de software: Tu código tiene que transformarse en un artefacto, o varios, que puedan ser transportados a donde tengan que ser ejecutados.

    • Divergencia de repositorios
    • Divergencia de artefactos
    • Versionado
  • Ejecutar Software: La máquina donde se escribe el software siempre es distinta a la máquina donde se ejecuta de manera productiva.

    • Compatibilidad con el entorno productivo
    • Dependencias
    • Disponibilidad de servicios externos
    • Recursos de hardware.

Bueno Guido y Platzi, espero cada vez entender más e integrar mejor toda esta información y me sienta más capacitada para que me funcione y me corran los proyectos que proponen en los cursos. Gracias.

Docker help you to build , distribute and execute any application on any place

““Docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado.””

Me quedo con esta última promesa 🙌🏽

jajjajajajja salió el chapulín colorado, este curso es lo máximo ❤️

Felicidades al profe Guido, bajo muchismo de peso se ve genail y siempre estar mas saludale significa codear mejor.

welcome to the matrix

Un artefacto puede ser:

Un documento: como un Caso de Negocio o un documento de la arquitectura del Software.
Un modelo: como un modelo de caso de uso.
Un elemento de un modelo: como una sola clase de todo el Diagrama de Clases.

Los modelos y elementos de modelos, tienen reportes asociados a ellos. Un reporte saca información acerca de los modelos y sus elementos mediante una herramienta. Un reporte presenta un artefacto o un conjunto de artefactos. La mayoría de los artefactos tienen directrices, las cuales describen los artefactos con más detalle.

Para hacer el desarrollo de un sistema de Software manejable completo, los artefactos están organizados en conjuntos correspondientes a las disciplinas. Muchos artefactos son usados en varias disciplinas; por ejemplo, la Lista de Riesgos, el Documento de Arquitectura del Software y el Plan de iteración. Este tipo de artefactos pertenecen al conjunto de artefactos donde ellos fueron originalmente creados.

Problemas al construir software
- Entorno de desarrollo
- Dependencias
- Entorno de ejecución
- Equivalencia con entorno productivo
- Servicios externos

Problemas al distribuir
- Divergencia de repositorios
- Divergencia de artefactos
- Versionado

Problemas al Ejecutar
- Compatibilidad con el entorno productivo
- Dependencias
- Disponibilidad de servicios externos
- Recursos de hardware

Hoy toca aprender Docker!

Ok, creo que amo Docker

Docker te permite construir software. Se debe tener en consideración que tenemos ciertos problemas y limitaciones en la creación.

distribuir software
para eso es importante nuestro repertorio

y también nos permite ejecutar software

y las preguntas que se hacen las mayorías de desarroladores es quien nos puede ayudar

por lo tanto vamos a tener obstáculos a la hora de programar

para eso esta docker

  • Los 3 grandes problemas del desarrollo profesional #Extractos
    1. Construir (cómo armamos el software)
      • Entorno de desarrollo
      • Dependencias
      • Entorno de ejecución
      • Equivalencia con entorno productivo
      • Servicios externos (Bases de datos)
    2. Distribuir (cómo los llevamos a donde tiene que estar)
      • Divergencia de repositorios
      • Divergencia de artefactos
      • Versionado
    3. Ejecutar (cómo hacemos que el software se ejecute como se debe ejecutar)
      • Compatibilidad con el entorno productivo
      • Dependencias
      • Disponibilidad de servicios externos
      • Recursos de hardware

Docker nos permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado.

Problemas del Desarrollo de Software Profesional





1. Construcción - Cuando se trata de realizar aplicaciones en la industria del software, normalmente no lo hacemos solos, lo hacemos con un equipo de trabajo. La razón de esto es porque el trabajo en colaborativo resulta ser mucho más productivo, ya que como dice el dicho “Dos cabezas Piensan mejor que una” pero así como trabajar en equipo es una gran ventaja, tambien tiene sus contras, un ejemplo de esto es la organización del equipo. A continuacion mencionare los problemas mas comunes asociado con la construcción de software:

  • Entorno de desarrollo (Los paquetes de la aplicación mantenerlos acordes con los que tengan otros compañero)
  • Dependecias (Se debe asegurar de utilizar las mismas versiones)
  • Entorno de Ejecución (Verificar que tenga la version correcta)
  • Equevalencia con entorno productivo (Si tu compañero trabaja con linux y tu con windows deberías buscar la manera de que el entorno productivo sea lo mas parecido)
  • Servicios externos (íntegración de programas externos)


2. Distribución - Se relaciona con el lugar en donde vas a alojar tu aplicación ó tambien en donde alojara la misma para que esten disponibles y luego puedan ser ejecutados. Para hacer esto tu código debe tranformase en un artefacto, y aqui es donde pasan los siguentes problemas:

  • Divergencia de Repositorios
  • Divergencia de Artefactos
  • Versionado


3. Ejecución - Uno de los ultimos pasos es ver como quedo tu aplición al final del día pero aqui se viene un reto super importante y es verificar que la aplicación corra correctamente; en pocas palabras debes pasar tu aplicación del ambiente de desarrollo a uno de producción. Estos son los problemas al ejecutar tu software:

  • Compatibilidad con el entorno productivo
  • Dependencias
  • Disponibilidad de servicios externos
  • Recursos de hardware

Problemas:

  • Construcción: entorno, ide, dependencias
  • Distribución: divergencia de repositorios y artefactos, versionado
  • Ejecución: la maquina donde se escribe no es la misma donde se ejecuta de manera productiva, dependencias, recursos de hardware

Docker realmente cumple la promesa que hacían lenguajes de programación como Core Java con su famosa JVM y los archivos bytecode con extensión .class

JAJAJA MUCHOS PROBLEMAS YA TENGO YO Y AHORA MAS PROBLEMAS JAJAJA

genial el homenaje al #chapulinColorado
(DevOps): Ohh!! y ahora quien podrá salvarnos???
(Docker): Yoo!!

Problemas del desarrollo de SW convencional:
1- Construir: trabajar en equipo, no es solo hacer código; algunos de los problemas son:
1.1- Entorno de desarrollo
1.2- Dependencias
1.3- Entorno de ejecución
1.4- Equivalencia con entorno de producción
1.5- Servicios externos
2- Distribuir: llevar lo que se hizo a algun lado, generan artefactos que se llevan donde se deben ejecutar. Problemas:
2.1- Divergencia de repositorios
2.2- Divergencia de artefactos
2.3- Versionado
3- Ejecutar: correr el SW, problemas:
3.1- Compatiblidad
3.2- Dependencias
3.3- Disponibilidad de servicios
3.4- Recursos de HW

Los problemas son infinitos, siempre habra problemas, ¿Quien podra ayudarnos? Es Docker, permite construir, distribuir y ejecutar tu aplicación en cualquier lado.

Eliminar con docker lo que comunmente se dice “En mi maquina funciona”

Aunque hoy día también existen otras propuestas por grandes empresas para manejar estándares entre diferentes lenguajes de programación, Docker sigue siendo el referente en esta materia.

  • Construir.
    • Dependencias en el desarrollo.
    • Versiones de configuración de entornos ejecución, desarrollo, producción.
  • Distribuir.
    • Generación en los binarios
    • Acceso a los servidores productivos.
  • Ejecutar.
    • Dependencias de la aplicación
    • Compatibilidad con el SO, Servicios externos y hardware
  • Docker, promete la solución a estos problemas de una manera simple y sencilla.

En proyectos serios, estaremos trabajando en equipos, esto nos exige lograr hacerlo de manera optima.
crear entornos de desarrollos reproducibles nos permite tener ese estandar de trabajo. Aqui entra docker.
Docker nos permite contruir, distribuir y ejecutar una aplicacion en cualquier lado.

Muy interesante la promesa de Docket.

me encanto el storytelling de la clase, comenzamos in media res, que te dan ganas de irte y hacer otra cosa con tu vida, pero luego el salvador, Que genial!!!
Pstd: Además como el enemigo se deshace de otros héroes.

Como armamos el software
Como lo llevamos
Y cómo hacemos que corra como lo esperamos

El problema de desarrollar software

  • Entorno de desarrollo

  • Dependencias

  • Entorno de ejecución

  • Equivalencia con entorno productivo

  • Servicios externos

El problema de Distribuir software

Tu código tiene que transformarse en un artefacto, o varios que puedan ser transportados a donde tengan que ser ejecutados.

  • Divergencia de repositorios

  • Divergencia de artefactos

  • Versionado

El problema de ejecutar software
La máquina donde se escribe el software siempre es distinta a la máquina donde se ejecuta de manera productiva.

  • Compatibilidad con el entorno productivo

  • Dependencias

  • Disponibilidad de servicios externos

  • Recursos de hardware

Docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado.

**Las tres areas en el desarrollo de software profesional

**Los grandes problemas:

Problemas del desarrollo de software profesional

  • Construir
  • Distribuir
  • Ejecutar

Construir software

  • Escribir código es solo una pequeña parte
  • Los problemas complejos necesitan equipos.

Problemas al construir software

  • Entorno de desarrollo
  • Dependencias
  • Entorno de ejecución
  • Equivalencia con entorno productivo
  • Servicios externos

Distribuir software

Tu código tiene que transformarse en un artefacto, o varios, que puedan ser transportados a donde tengan que ser ejecutados.

Problemas al distribuir software

  • Divergencia de repositorios
  • Divergencia de artefactos
  • Versionado

Ejecutar software

La maquina donde se escribe el software siempre es distinta a la maquina donde se ejecuta de manera productiva.

Problemas al ejecutar software

  • Compatibilidad con el entorno productivo
  • Dependencias
  • Disponibilidad de servicios externos
  • Recursos de hardware

Docker nos ayudara con estos problema

porque docker permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado.

"Docker, permite Construir, Distribuir y Ejecutar cualquier aplicación en cualquier lado", creo que esta es la frase mas importante que debemos tener en cuenta

Hay por cierto una iniciativa llamada Open Container Iniciative, que tiene tres principales especficaciones:

  • Run time specfication

  • Image specification

  • Distribution specification

Surge por las mismas razones por las que surgió EcmaScript, por ejemplo, en JavaScript.

Docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado.

Problemática:

Construir: Un entorno de desarrollo donde podamos escribir código resolviendo las siguientes problemáticas:

  • Entorno de desarrollo.- paquetes y sus versiones

  • Dependencias.- frameworks, bibliotecas

  • Entorno de ejecución.- Versiones de node, etc.

  • Equivalencia con entorno productivo.- Simular lo mas posible el entorno local al productivo.

  • Servicios externos.- Comunicación con base de datos (versiones, etc)

Distribuir: Llevar nuestro código (artefactos) a donde tenga que llegar.

  • Divergencia de repositorios.- Colocar los artefactos en su repositorio correspondiente.

  • Divergencia de artefactos.- Existen variedad de artefactos en una aplicación.

  • Versionamiento.- Mantener un versionado de código en las publicaciones.

Ejecutar: Hacer que el desarrollo o los artefactos que se programaron en local funcionen en productivo. La máquina donde se escribe el software siempre es distinta a la máquina donde se ejecuta de manera productiva.

  • Compatibilidad con el entorno productivo

  • Dependencias

  • Disponibilidad de servicios externos

  • Recursos de hardware

Docker promete construir, distribuir y ejecutar cualquier aplicación en cualquier lado.

F por el Chapulín Colorado :’(

Las frases del final estan super pontentes. Buena oratoria , excelente informacion 😄.

Docker permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado.

Docker es una bomba

The excitement around Docker arose in an environment characterized by a seemingly unquenchable demand for the latest and greatest apps. Docker’s promise of unicorn-like portability appealed to developers who wanted to build containerized apps on a single server, knowing they’d work on multiple servers. To this day, new innovations—including Docker Extensions and Docker Desktop for Linux—are still helping developers work up new applications more efficiently.
Yet two key factors saw Docker’s popularity spring a leak in recent years:

Docker’s partial sale of its business to Mirantis in 2019
Microsoft’s warning of the deprecation of the Docker container runtime by Kubernetes in early 2022
**_El entusiasmo en torno a Docker surgió en un entorno caracterizado por una demanda aparentemente insaciable de las mejores y más recientes aplicaciones. La promesa de Docker de una portabilidad similar a la de un unicornio atrajo a los desarrolladores que querían crear aplicaciones en contenedores en un solo servidor, sabiendo que funcionarían en varios servidores. Hasta el día de hoy, las nuevas innovaciones, incluidas Docker Extensions y Docker Desktop para Linux, siguen ayudando a los desarrolladores a trabajar en nuevas aplicaciones de manera más eficiente.

Sin embargo, dos factores clave hicieron que la popularidad de Docker se filtrara en los últimos años:

Venta parcial de Docker de su negocio a Mirantis en 2019
Advertencia de Microsoft sobre la desaprobación del tiempo de ejecución del contenedor Docker por parte de Kubernetes a principios de 2022
tomado de Containers Rise in Docker’s Wake
October 27, 2022
by Don Boxley

Ya la inquietud se enfoca hacia cual sera el futuro de la contenerizacion y si entraran nuevos actores a la escena ademas de docker.

❤️ docker hace mis sueños posibles.

principles problemas
construir distribuir y ejecutar
ahi entra docker docker te permite construir distribuir y ejecutar en cualquier lado la aplicacion que estas desarrolando

Que sistemas de nombramiento para las versiones existen?

estuvo bueno el el chiste de el chapulin jaja

Problemas del desarrollo de software profesional

  1. Construir: Escribir código es sólo una pequeña parte. Los problemas complejos necesitan equipos.
    1. Entorno de desarrollo
    2. Dependencias
    3. Entorno de ejecución
    4. Equivalencia con el entorno productivo
    5. Servicio externos
  2. Distribuir: El código tiene que transformarse en un artefacto, o varios, que puedan ser transportados a donde tengan que ser ejecutados.
    1. Divergencia de repositorios
    2. Divergencia de artefactos
    3. Versionado
  3. Ejecutar: La máquina donde se describe el software siempre es distinta a la máquina donde se ejecuta de manera productiva.
    1. Compatibilidad con el entorno productivo
    2. Dependencias
    3. Disponibilidad de servicios externos
    4. Recursos de hardware

docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado…

bien hasta ahí es el resumen de esta clase…

que bien explicado el alcance y finalidad del docker

Excelente forma de explicar!!!

Importante es establecer entornos homogeneos en la fase de desarrollo para los grupos de trabajo.

Problemas al construir:

  • Dependencias de desarrollo (paquetes)
  • Versiones de tiempo de ejecución
  • Equivalencia de entornos de desarrollo (código compartido)
  • Equivalencia de entornos de producción (ir a producción)
  • Versiones / compatibilidad (integración de otros servicios, por ejemplo: bases de datos)

Problemas al distribuir:

  • Diferentes generaciones de construcción
  • Acceso a servidores de producción
  • Ejecución nativa frente a distribuida
    sin servidor

Problemas al ejecutar:

  • Dependencias de la aplicación
  • Compatibilidad del sistema operativo
  • Disponibilidad de servicios externos
  • Recursos de hardware

Docker permite:

  • Cree, distribuya y ejecute su código en cualquier lugar sin preocupaciones.

problemas al construir
problemas al distribuir
problemas al ejecutar software

alguien sabe que audífonos usa el profe

Los tres problemas del desarrollo estàn en :

  • Construcción
  • Distribución
  • Ejecución

los tres problemas màs importantes del software :

  • Fase se Constucción
  • Fase de Distribución
  • Fase de Ejecuciòn

Los 3 problemas más importantes del software son: Construcción, distribución y ejecución. Docker se enfoca en construir, distribuir cualquier aplicación en cualquier lado.

Docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado.

Problemas del desarrollo de software profesional:

  • Construir
    – Entorno de desarrollo
    – Dependencias
    – Entorno de ejecución
    – Equivalencia con entorno productivo
    – Servicios externos
  • Distribuir
    El código tiene que transformarse en un artefacto, o varios, que puedan ser transportados a donde tengan que ser ejecutados.
    – Divergencia de repositorios
    – Divergencia de artefactos
    – Versionado
  • Ejecutar
    La maquina donde se escribe el software siempre es distinta a la maquina donde se ejecuta de manera productiva.
    – Compatibiliad con el entorno productivo
    – Dependencias
    – Recursos de Hardware
    – Disponibilidad de servicios externos.
    Y ahora quien podra ayudarnos? Docker Heroe.

Virtualización para tener un espacio para ejemplificar el área de producción

Las tres áreas en el desarrollo de software profesional

Los tres grandes problemas


Construir:
Cómo armamos el software
Distribuir:
Cómo lo hacemos llegar a todos nuestros usuarios
Ejecutar
De qué manera hacer que ese software corra, y de la manera que queremos que corra, en el lugar donde queremos que corra (Servidor, dispositivo móvil, computador, etc)

Construir Software

Escribir software es solo una pequeña parte
Los problemas complejos necesitan equipos

Problemas al construir software

  • Entorno de desarrollo
  • Dependencias
  • Entorno de ejecución
  • Equivalencia con entorno productivo
  • Servicios externos

Distribuir Software

Tu codigo tiene que transformarse en un artefacto, o varios, que puedan ser transportados a donde tengan que ser ejecutados.

Problemas al distribuir software

  • Divergencia de repositorios
  • Divergencia de artefactos
  • Versionado

Ejecutar Software

La máquina donde se escribe el software siempre es distinta a la máquina donde se ejecuta de manera productiva

Problemas al ejecutar software

  • Compatibilidad con el entorno productivo
  • Dependencias
  • Disponibilidad de servicios externos
  • Recursos de hardware

Para todo esto Docker es aquel quien nos va a ayudar porque…

“Docker te permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado”

Muy interesante

Hay una infinidad de problemas en el desarrollo de software, pero hay tres que siempre van a estar presentes en cualquier tecnología: construcción, distribución y ejecución de la aplicación.

Construcción del software
Escribir código es sólo una pequeña parte de esta fase, porque cuando trabajamos en un proyecto serio solemos trabajar en equipo. Construir software no es sólo un problema de cómo escribimos el código o cómo tenemos un entorno de desarrollo que funcione, sino que tiene problemas más grandes, y cuando trabajamos en equipo uno de ellos es el cómo compartimos el código, cómo manejamos las versiones en cada entorno de desarrollo, etc. Los que más nos afectan son:

  • Entorno de desarrollo
  • Dependencias
  • Entorno de ejecución
  • Equivalencia con entorno productivo
  • Servicios externos

Distribución del software
Nuestro código tiene que transformarse en un artefacto, o varios, que puedan ser transportados a donde sean ejecutados.
Los problemas aquí son:

  • Divergencia de repositorios
  • Divergencia de artefactos
  • Versionado

Ejecución del software
La máquina donde se escribe el software es siempre distinta a la máquina donde se ejecuta de manera productiva.
Problemas:

  • Compatibilidad con el entorno productivo
  • Dependencias
  • Disponibilidad de servicios externos
  • Recursos de hardware

Todos estos son problemas complejos, pero que en ellos nos puede ayudar Docker.

Docker nos permite construir, distribuir y ejecutar cualquier aplicación en cualquier lado. Esta es la promesa de Docker.