Tarea:
T01 – Investigación DEVOPS
Asignatura:
Diseño de interfaces humano-máquina
PROGRAMA EDUCATIVO:
Ingeniería en telemática
130300126 - Brian Asael Noh Cocom
DevOps
El término DevOps, que es una combinación de los términos ingleses development (desarrollo) y
operations (operaciones), designa la unión de personas, procesos y tecnología para ofrecer valor a
los clientes de forma constante. DevOps incluye sistemas de seguridad, maneras de trabajar en
colaboración, análisis de datos, entre otras características.
De aquí podemos sacar tres ideas clave:
DevOps es una metodología para creación de software.
DevOps se basa en la integración entre desarrolladores software y administradores de
sistemas.
DevOps permite fabricar software más rápidamente, con mayor calidad, menor coste y una
altísima frecuencia de releases.
DevOps describe los enfoques para agilizar los procesos con los que una idea (como una nueva
función de software, una solicitud de mejora o una corrección de errores) pasa del desarrollo a la
implementación, en un entorno de producción en que puede generar valor para el usuario. Estos
enfoques requieren que los equipos de desarrollo y operaciones se comuniquen con frecuencia y
aborden su trabajo con empatía hacia sus compañeros de equipo. También son necesarios la
escalabilidad y el aprovisionamiento flexible. Con DevOps, es posible brindar una mayor potencia a
aquellos que más la necesitan, gracias al autoservicio y la automatización.
Fases en DevOps
Para poder aprovechar al máximo el enfoque de DevOps, las empresas deben considerar la función
que desempeña la seguridad en el ciclo de vida de sus aplicaciones. Esto significa pensar en la
seguridad básica desde la etapa de planificación en adelante. También implica automatizar algunas
funciones de seguridad para impedir que se ralentice el flujo de trabajo de DevOps.
Planeamiento
En la fase de planeamiento, los equipos de DevOps conciben, definen y describen las características
y la funcionalidad de las aplicaciones y los sistemas que van a crear. Realizan un seguimiento del
progreso tanto de forma general como de forma pormenorizada, desde tareas de un único producto
hasta tareas que abarcan carteras de numerosos productos. La creación de registros de trabajo
pendiente, el seguimiento de los errores, la administración del desarrollo de software ágil con
Scrum, el uso de paneles Kanban y la visualización del progreso son algunas de las formas en las que
los equipos de DevOps planean con agilidad y visibilidad.
Desarrollo
La fase de desarrollo incluye todos los aspectos de la programación (escritura, pruebas, revisión e
integración del código por parte de los miembros del equipo) y la compilación de ese código en
artefactos de compilación que se pueden implementar en varios entornos. Los equipos de DevOps
buscan innovar con rapidez sin sacrificar la calidad, la estabilidad ni la productividad. Para ello,
utilizan herramientas muy productivas, automatizan los pasos cotidianos y manuales, e iteran el
código en pequeños incrementos mediante pruebas automáticas e integración continua.
Entregar
La entrega es el proceso de implementar aplicaciones en entornos de producción de un modo
constante y confiable. La fase de entrega incluye también la implementación y la configuración de
la infraestructura básica totalmente gobernada que constituye esos entornos.
En la fase de entrega, los equipos definen un proceso de administración de versiones con fases de
aprobación manual claras. También establecen puertas automáticas que mueven las aplicaciones
de una fase a otra hasta que están disponibles para los clientes. La automatización de estos procesos
hace que estén controlados y sean escalables y repetibles. De este modo, los equipos que practican
DevOps pueden realizar entregas con facilidad, confianza y tranquilidad.
Funcionamiento
La fase de uso implica mantener y supervisar las aplicaciones, así como solucionar los posibles
problemas, en los entornos de producción. Al adoptar prácticas de DevOps, los equipos trabajan
para asegurar la confiabilidad, la alta disponibilidad y el objetivo de ningún tiempo de inactividad
del sistema, al tiempo que refuerzan la seguridad y la gobernanza. Los equipos de DevOps buscan
identificar los problemas antes de que afecten a la experiencia del cliente y mitigarlos rápidamente
a medida que surgen. El mantenimiento de esta vigilancia requiere una telemetría muy completa,
alertas que permitan tomar medidas y visibilidad total de las aplicaciones y del sistema subyacente.
Herramientas
Poder seleccionar herramientas que respalden sus procesos es fundamental para el éxito de
DevOps. Si sus operaciones intentarán mantener el ritmo de los ciclos de desarrollo rápidos,
necesitarán usar plataformas altamente flexibles y tratar su infraestructura como los equipos de
desarrollo tratan el código. Las implementaciones manuales son lentas y dan lugar a errores.
La automatización permite simplificar la preparación y la implementación de las plataformas.
La ingeniería de confiabilidad del sitio (SRE) gestiona las tareas manuales con los sistemas de
software y la automatización, y un enfoque de SRE puede ofrecer un mejor respaldo para los
objetivos del equipo de DevOps.
Los contenedores facilitan el traslado de las aplicaciones entre los entornos de desarrollo, prueba
y producción. Su uso permite a los desarrolladores empaquetar y aislar sus aplicaciones con todo
lo que necesitan para su ejecución, lo que incluye los archivos de aplicaciones, los entornos de
tiempo de ejecución, las bibliotecas dependientes y las configuraciones.
El enfoque de DevOps va de la mano con los contenedores de Linux®, que brindan a su equipo la
tecnología subyacente necesaria para un estilo de desarrollo en la nube. Los contenedores
respaldan un entorno unificado para el desarrollo, la distribución, la integración y la automatización.
Por otro lado, Kubernetes es la forma moderna de automatizar las operaciones de los contenedores
de Linux. Le permite gestionar los clústeres que ejecutan estos contenedores en todas las nubes
públicas, privadas o híbridas con facilidad y eficiencia.
Referencias
[Link]
[Link]
[Link]