La ingeniería de software comprende de forma general desde detectar las necesidades o problemáticas a resolver con el sistema o aplicación (app), hasta el mantenimiento una vez ya puesto en producción (Sommerville, 2011). Este proceso está categorizado en dos formas:
Ambas metodologías tienen como fin el adoptar un enfoque sistemático y organizado para el trabajo con el fin de poder garantizar un producto de calidad. Sin embargo, esto no significa que no se puedan presentar problemas en cualquier proceso.
Uno de estos problemas es tener la seguridad de que el softwarefuncione correctamente, debido a que en muchos casos el entorno de desarrollo donde se crea, prueba y depura, puede ser diferente al entorno final (CIO, 2015). Esto puede suceder por varias situaciones, como pueden ser: el cambio de actualizaciones o de versiones de la misma herramienta de desarrollo, mantenimiento y modificaciones, entre otras.
La solución a este problema son los contenedores. Un contenedores un conjunto de dependencias, librerías y archivos de configuración en un solo paquete (CIO, 2015), los cuales se ejecutan aislados e independientes y permiten reducir conflictos de compatibilidad entre diferentes entornos de desarrollo. Dicho en otras palabras, son unidades estandarizadas de software para el desarrollo, envío y entrega (docker, 2015).
Específicamente, los contenedores tipo Docker tienen las siguientes características (docker, 2015):
CIO. (20 de Mayo de 2015). What are containers and why do you need them? Obtenido de Containers: http://www.cio.com/article/2924995/software/what-are-containers-and-why-do-you-need-them.html
Docker. (14 de Mayo de 2015). What is Docker. Obtenido de https://www.docker.com/what-docker
Jamrich Parsons, J., & Oja, D. (2008). cONCEPTOS DE COMPUTACIÓN.México: CENGAGE Learning.
Sommerville, I. (2011). Ingeniería de software . México: Pearson.