No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
17 Hrs
29 Min
53 Seg

Manejo de ambientes para datos

14/25
Recursos

Aportes 30

Preguntas 0

Ordenar por:

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

En mi equipo se manejan los siguientes ambientes:

  • Local: Consiste en una copia local de la rama master en el repo personal, aqui es donde se realiza todo el desarrollo.
  • Work: Tambien conocida como rama develop, es una rama espejo a la principal y es donde se valida lo ejecutado en local.
  • Live: Finalmente es llevado a la rama master mejor conocido como producción.

Mi resumen de la clase:

Siempre es bueno probar, antes de poner en producción. Para esto hacemos una contribución ordenada. Detener lo que no funciona y darle continuidad a lo que funcionas en diferentes ramas en Git.

Para esto tenemos 3 ramas local, beta y producción.

Manejo de Ambientes para Datos - Resumen:

Definición: Los ambientes para datos son entornos aislados que se utilizan para la gestión de datos en diferentes etapas de un proyecto, como desarrollo, pruebas y producción.
- Ventajas:

  • Aislamiento: Cada ambiente está aislado de los demás, lo que ayuda a prevenir problemas y conflictos entre diferentes etapas del proyecto. Esto significa que los cambios en el ambiente de desarrollo no afectarán el ambiente de producción, por ejemplo.

  • Control: Los ambientes permiten un mayor control sobre los datos y los procesos que se ejecutan en cada etapa. Esto facilita la gestión de versiones y garantiza que los datos se manipulen de manera segura.

  • Pruebas y Validación: Los ambientes de prueba ofrecen la posibilidad de realizar pruebas exhaustivas antes de implementar cambios en producción, lo que reduce el riesgo de errores y problemas en el entorno en vivo.

  • Escalabilidad: Los ambientes se pueden dimensionar según sea necesario. Por ejemplo, puedes tener un ambiente de desarrollo con recursos más limitados y un ambiente de producción con una configuración más robusta para manejar grandes volúmenes de datos y cargas de trabajo.

-Desventajas:

  • Complejidad: Mantener múltiples ambientes puede ser complejo y requerir recursos adicionales en términos de hardware y administración.

  • Costos: Cada ambiente adicional implica costos adicionales, ya sea en términos de hardware, software o recursos humanos para administrarlos.

  • Posible Divergencia: Si no se administran correctamente, los ambientes pueden divergir con el tiempo, lo que puede llevar a problemas cuando se migra código o datos de un ambiente a otro.

  • Configuración y Sincronización: Configurar y mantener los ambientes puede ser una tarea desafiante, especialmente en proyectos complejos con múltiples componentes y sistemas.

Trabajar en ambientes cloud mitiga un poco eso de los distintos ambientes entre los desarrolladores, puedes tener las dependencias instaladas en un cluster que es para consumo de todos los desarrolladores y en el momento de mandar a prod llevas ese cluster a una image de docker para que se siga replicando. Punto positivo para cloud!!

La documentación de Docker queda muy bien aquí:
Manage data in Docker

Se sigue un proceso para llevar funciones a produccion, primero pasa por el desarrollo de la funcionalidad, luego esa funcionalidad se lleva a la parte de pruebas y, por ultimo se pasa a la parte e produccion.

Develop => Staging => Production

En mi equipo se trabaja en DEV, QA producción

Una de las ventajas es que permite a los desarrolladores realizar un adecuado manejo de las versiones , cambios o nuevos desarrollos permite no llevar errores al entorno de producción y solventarlos en un ambiente de pruebas.

Para es tos casos se debe prevenir situaciones en las cuales el software desarrollado presente comportamientos distintos y errores en los diferentes ambientes. Es decir evitar que las versiones de pruebas sean diferentes a las de producción.

Como decía mi abuela, cada casa tiene su religión
Los equipos de data son muuy variados en sus ambientes de desarrollo-development

El hecho de dockerizar algo y que ya esten todas las compativilidades instaladas para el proyecto en cuestion, es la caracteristica positiva numero 1, ya que de ahi se desprenden otras como hacer que las personas pueden empezar a trabajar en el proyecto mas rapidamente, por otro lado si se rompe algo dentro del docker, queda alli.

El ambiente donde se prueba el software es en beta verdad, es como si fuera el entorno de calidad.

Muy bien explicado, una ruta coherente antes de la salida a producción, aqui toman mucha relevancia poder dockerizar.

Cuando menciono branch se me vino a la cabeza git. Esto es de gran utilidad en equipos de desarrollo, para que cada programador trabaje por su cuenta y despues todo el codigo se una.

Después de leer sobre el manejo de ambientes, entiendo que es una muy buena practica, aun no puedo como separar en etapas un proyecto que haría un equipo de Data Engineer, pero se que si se manejan por ambientes, podría optimizar su funcionalidad, donde se desarrolle, se pruebe, se verifique y así, a la hora de entrar la versión final, no vayan a ocurrir inconvenientes, respecto a las desventajas supongo que puede ser un poco mas demorado y se requieran de mas herramientas aumentando el costo
Ambiente de pruebas seria el que mas destaca, ya que es el espacio en donde podemos poner en practica, equivocarnos, hacer retroalimentacion y finalmente desarollar un proceso que esta validado y tendremos la certeza que al momento de ponerlo en el ambiete de produccion funcionara de la mejor forma
Como DE eh trabahado principalmente con: DEV Para desarrollo QA Para testeo y ejecucion con data basura Preprod Para ejecucion con data real, por lo general es una copia o derivacion de lo que alimenta prod y PROD como paso final
Existe también el equipo de QA y se debe tener un ambiente previo donde se replica lo desarrollado antes de pasar a producción.

Gracias

Tres ventajas y tres desventajas de los entornos de desarrollo de software: ### Ventajas: 1. **Control y Reproducibilidad del Entorno**: Los entornos de desarrollo permiten a los desarrolladores configurar un ambiente específico con todas las herramientas, bibliotecas y configuraciones necesarias para desarrollar y probar su software. Esto garantiza que todos los miembros del equipo trabajen en el mismo entorno, lo que facilita la colaboración y asegura la consistencia en el desarrollo. 2. **Aislamiento de Dependencias**: Los entornos de desarrollo proporcionan aislamiento de dependencias, lo que significa que cada proyecto puede tener sus propias versiones específicas de bibliotecas y herramientas sin interferir con otros proyectos. Esto ayuda a evitar conflictos entre dependencias y simplifica la gestión de versiones de software. 3. **Facilita la Migración y la Implementación**: Al tener entornos de desarrollo estandarizados y controlados, es más fácil migrar y desplegar aplicaciones en diferentes entornos, como entornos de pruebas y producción. Los desarrolladores pueden estar seguros de que el software funcionará correctamente en diferentes configuraciones. ### Desventajas: 1. **Costo de Configuración y Mantenimiento**: Configurar y mantener entornos de desarrollo puede requerir tiempo y recursos significativos, especialmente en proyectos grandes o en equipos distribuidos. Esto puede incluir la instalación y configuración de software, la gestión de dependencias y la resolución de problemas relacionados con el entorno. 2. **Posibles Diferencias entre Entornos**: A pesar de los esfuerzos por estandarizar los entornos de desarrollo, a veces pueden surgir diferencias entre los entornos de desarrollo y otros entornos, como entornos de prueba o producción. Estas diferencias pueden llevar a problemas de compatibilidad que no se detectan hasta etapas posteriores del desarrollo. 3. **Puede Limitar la Flexibilidad**: En algunos casos, los entornos de desarrollo demasiado rígidos pueden limitar la flexibilidad de los desarrolladores para probar nuevas herramientas o experimentar con diferentes configuraciones. Esto puede dificultar la adopción de nuevas tecnologías o prácticas de desarrollo que podrían beneficiar al proyecto.
Dev, Staging y Producción. Ese es el stack que siempre he manejado.
Landing-Staging-Modelo
En mi trabajo, de momento y para nuestra area aun no disponen de ambientes de trabajo. Personalmente y dado que suelo trabajar con scripts, suelo manejar varios archivos cuya nomenclatura del nombre suelo modificarla dada su funcionalidad. BK\_filename = Backup del script original que voy a manipular. DEV\_filename = Archivo de trabajo, donde hago mi codigo, pongo mis anotaciones y comentarios. Utilizo mis objetos de prueba que previamente construí. QA\_filename = Archivo de pruebas, donde elimino todo rastro y comentario que use para mi desarrollo y solo dejo los objetos que son necesarios para mis pruebas y los comentarios que sé, deben pasar a Produccion. filename = Archivo oficial, donde elimino los objetos que use en mis pruebas, dejo los objetos productivos. Y esta version del codigo es la que pasa a producción. Se que no termina siendo lo mas practico o lo mas deseable, pero por el momento fue la mejor forma que encontre para poder emular y poder semi estructurar los futuros ambientes de trabajo que deberian darnos. PD: Pese a lo increible, termina siendo una situacion muy frecuente al menos en Colombia. Para que no se extrañen si terminan topandose con algo así.
Los ambientes de trabajo permiten evitar errores antes de salir a producción. La separación de los ambientes permite el manejo de las versiones de código. De esta manera, quién trabajó el código puede asegurarse de que el mismo funciona y también puede ser controlado por una persona más idónea. Esto último se aplica en donde trabajo.
Si no estoy mal en mi equipo (no hago parte directa del desarrollo de software) se maneja en 2 ambientes: * Primero QA: Prueban los componentes, apis, etc. * Segundo Producción o Productivo: Etapa final antes del lanzamiento. Cualquier corrección o comentario estaré atento.
por experiencia, las ventajas de usar ambientes es el poder controlar los cambios que se trabajan en esos ambientes, el tipo de cambio permitido es distinto entre ambientes de acuerdo al uso de dicho ambiente. Las desventajas es al querer incorporar los cambios hechos en otros ambientes, o cuando se requiere que nuestro trabajo contemple cambios incorporados en otros ambientes. quizás esos nuevos cambios contemplan datos que todavía no se manejan en uno de los ambientes. Pero en realidad todo tiene solución no hay mucha desventaja, las ventajas de poder complementarnos y darnos espacios entre equipos tiene un peso mayor a cualquier incomodidad.
Manejo de ambientes **Ventajas** * Consistencia: Los distintos ambientes pueden contar con las mismas versiones de las herramientas, lenguajes y bases de datos que los ambientes productivos lo cual permite trabajar sobre ellos sin riesgo de comprometer o generar interferencias entre los participantes del proyecto. * Agilidad: Facilita ciertas acciones como el control de versiones, ejecución de pruebas y actualización de la documentación del proyecto. * Transparencia: La forma de trabajo colaborativo da a los equipos involucrados información actualizada y accesible en casi cualquier momento además permite gestionar el intercambio de datos y la información del proyecto. **Desventajas** * Tiempos de respuesta: La inexperiencia de miembros, infraestructura inadecuada o mala estimación de la complejidad del proyecto puede aumentar el tiempo de forma considerable para alguna etapa del ambiente. * Posibles perdidas de información: Carencias en la administración de la información que se ira proporcionando en cada etapa y de un equipo a otro pueden generar la perdida de detalles en la información u omisiones. * Dependencias: Algunas etapas pueden frenarse por controles de acceso a los sistemas o autorizaciones sobre el tipo de información que será empleada en las etapas del ambiente.

14. Manejo de ambientes para datos

  • Contribución ordenada
  • Branches

Buena explicacion.