Debo implementar DevOps? — Altiernet
15262
post-template-default,single,single-post,postid-15262,single-format-standard,ajax_fade,page_not_loaded,,qode_grid_1300,qode-theme-ver-10.1.1,wpb-js-composer js-comp-ver-5.0.1,vc_responsive
 

Debo implementar DevOps?

Debo implementar DevOps?

Porque debo de implementar DevOps

DevOps es una metodología de administración de proyectos que resuelve la problemática del traspaso de productos entre el personal desarrolladores y operaciones. En lugar de operar en silos, ambos equipos colaboran en un proyecto desde el inicio hasta el fin.

Utilizan las mismas plataformas, hablan el mismo lenguaje y comparten todo lo que hacen en el proyecto en tiempo real. ahí es donde Devops adquiere su nombre, es la fusión del personal de desarrollo y operaciones, culturalmente y técnicamente. DevOps es acerca de tirar la pared y trabajar juntos y asegurar que los requerimientos no son solo un papel, sino algo vivo.

Mucha gente erróneamente piensa que DevOps es una alternativa al manejo de proyectos agiles, en realidad La agilidad es necesaria, DevOps es un complemento al enfoque interactivo.

El desarrollo ágil requiere que el software sea credo de forma incremental, liberado y actualizado con la retroalimentación de los usuarios y pruebas. pero no necesariamente requiere que desarrollo y operaciones trabajen juntos. la pared entre ellos aún puede existir, enviando el producto entre ellos varias veces para mejorarlo. Si se implementa DevOps la pared se derriba, los equipos prueban de forma iterativa con el usuario, colaboran juntos para un mejor entendimiento del producto, habilita los flujos agiles que ocurran inclusive más rápido, con más comunicación y más precisión

DevOps requiere colaboración, flexibilidad e incertidumbre, en cascada se tiene que estudiar todo el proyecto, para determinar los riesgos, el plan de mitigación y entonces iniciar, en ágil se trabaja de forma incremental aprendiendo y descubriendo mientras se avanza y con DevOps se tienen que enfrentar los riesgos de forma colaborativa en lugar de responsabilidad separada.

El enfoque debe de ser en la gente, primero dar a conocer la visión de los cambios y entonces entrenar a la gente para alcanzar esos requerimientos.

Mucha gente considera que la automatización de procesos significa reemplazo de gente, en realidad la automatización es una herramienta para ayudar a los humanos a completar el desarrollo del software más rápido y con más precisión, es un complemento en lugar de un reemplazo. en lugar de revisar cada pieza de software manualmente con las herramientas se puede asegurar el compliance del software.  se pueden tener iteraciones rápidas sin sacrificar calidad, las herramientas automáticas pueden validar que el código es seguro, compliant y compatible con los sistemas actuales, eliminando el error humano.

También ayuda con el nuevo personal, ya que con las herramientas puede interactuar rápido para ver si su código cumple con los requerimientos y encontrar de forma rápida las deficiencias para corregirlas, esto sin la necesidad de tener un supervisor ya que las herramientas validan el código

Herramienta de integración y entrega continua; cuando alguien en desarrollo u operaciones realiza un cambio, se debe de tener accesible para cualquier en el equipo. de esta forma todos están en la misma página de lo que pasa en un único ambiente de operación, continuous integration habilita respuestas automáticas de los cambios del código

 

Que se obtiene con DevOps

En una organización que trabaja con desarrollo en cascada puede realizar de 1 a 4 liberaciones al año, al implementar metodologías agiles, puede incrementar las liberaciones de 12 a 24, sin embargo, implementando DevOps puede lograr más de 100 liberaciones al mes.

Las mismas actividades que se realizan en el desarrollo en cascada como son análisis, diseño, código, pruebas y aceptación, son también realizadas en la metodología ágil, sin embargo, para incrementos de valor más específicos, se toman pequeñas partes y se construyen más rápido, es decir el mismo ciclo que se utiliza en el desarrollo en cascada en la metodología ágil se realiza mucho más rápido, sin embargo, utilizando DevOps se puede incrementar aún más rápido las liberaciones, ya que varios procesos se agilizan por medio de la colaboración y automatización.

Con DevOps se ayuda a evitar la siguiente problemática:

  • Operaciones y desarrollo trabajan de forma independiente.
  • Existe una pared entre los departamentos de desarrollo y operaciones.
  • Desarrollo quiere más funcionalidades, operaciones quiere estabilidad, como no hay un entendimiento, se crean muchos problemas de afectación del servicio, ya que desarrollo no lo prueba en un ambiente similar al que operará en producción.
  • Muchas veces operaciones aplican arreglos temporales para que funcione la aplicación o regresa el software a desarrollo para corrección de bugs, o adecuaciones de funcionalidades,
  • Desarrollo deja otros proyectos para arreglar el software regresado por operaciones, por lo que los usuarios finales deben de esperar más tiempo para obtener los beneficios de las aplicaciones.

Porque perseguir DevOps?

Colaboración es el core de DevOps sin embargo hay otras razones que ayudan a conseguir lo siguiente:

Un desarrollo más rápido; la meta es desarrollar más rápido y eficiente, con más iteraciones, ya que los equipos de desarrollo y operaciones tienen el mismo entendimiento de las funciones y metas del proyecto, no tienen que perder tiempo en regresar el código a desarrollo y viceversa.

Aun cuando los equipos entregan los servicios más rápido no tienen que sacrificar la calidad, realmente el proceso minimiza los errores en dos temas importantes; primeramente devops permite a ambos equipos ver el scope completo de un proyecto, tienen un mejor entendimiento de como los cambios afectarían la aplicación, segundo; automatización reemplaza los procesos manuales, reduciendo el error humano por medio de la automatización del desarrollo y despliegue de funciones.

DevOps ayuda a las dependencias de gobierno a ofrecer un mejor servicio a los ciudadanos en la era digital. La expectativa de los ciudadanos es que sus gobiernos entreguen los servicios con la misma movilidad, agilidad y usabilidad al igual que el sector privado, por lo que las dependencias de gobierno buscan como cubrir esas demandas.

Con DevOps se obtiene soluciones con mejor calidad y al mismo tiempo se tiene mayor flexibilidad. En DevOps desarrollo y operaciones obtienen un mejor entendimiento del proyecto en el que están trabajando. Desarrollo conoce las condiciones reales donde su código operara, por su parte operaciones conoce porque la aplicación fue desarrollada de esa manera, juntos toman mejores decisiones y pueden hacer cambios  con un estrés mínimo para asegurar que la aplicación mantiene el ritmo de las necesidades y escenarios requeridos.

Retos de implementar DevOps

Las organizaciones se enfrentan a la demanda de cumplimiento de fechas muy agresivas para la entrega de servicios, en escenarios que les toma mucho más tiempo del que les demandan los usuarios, les toma semanas armar los ambientes de pruebas, tienen que comprar infraestructura, configurarla, normalmente se saltan las pruebas y pruebas de desempeño para liberar la aplicación, teniendo como resultado fallas en el servicio, y cuando ya tienen eso listo, para remediar estos problemas se puede implementar DevOps, lo cual habilita que los equipos de desarrollo y operaciones, desplieguen cambios, el ambiente colaborativo es más rápido y efectivo, como resultado se obtiene una mejor experiencia del usuario final. También puede ayudar a las dependencias de gobierno a retener el conocimiento de sus aplicaciones en lugar de subcontratar los servicios.

Los retos en las organizaciones al implementar DevOps, son el cambio cultural y acostumbrarse al desarrollo incremental del proyecto, ya que muy a menudo se tiene el deseo de tener todo el proyecto terminado de una vez como en el caso de cascada, especialmente retador cuando se tienen silos, una forma de atacar es evolucionando el proceso básico de scrum en el cual los equipos se reúnen rápidamente todos los días para compartir el progreso del proyecto, posterior escalar a una iteración más contacto a un framework de agile.

Una forma de implementar DevOps, es apoyarse con un agile coach, para ayudar la organización en el doloroso proceso del cambio de desarrollo en cascada a un proceso más agile como el de DevOps, no solo para ayudar en los componentes tecnológico, pero también en el cambio cultural.

Proporcionar demos abiertos: reunir a los equipos de desarrollo y operaciones cada dos semanas para proporcionar demos para que cualquiera en el equipo lo pueda ver, esto ayuda con el cambio cultura y da mucho visibilidad y transparencia

Iniciar con un proyecto que genere impacto; lo que puede enfocar al equipo y motivarlos al éxitos, cuando equipo un reto, hay más colaboración.

Gap de digitalización entre sector privado y sector público

En la economía de las aplicaciones, donde todo se entrega como un servicio, se ha rebasado al sector público, ahora los líderes en las dependencias, se preguntan cómo se entregan los servicios, de forma digital, más rápido, seguro y con mejora calidad.

Las dependencias están utilizando tecnología para probar con sistemas simulados los cuales no tienes disponibles para pruebas, por razones de seguridad nacional o seguridad de la información, para la interoperabilidad digital es crítico se tengan estos ambientes.

Por lo que para la información sensible se utiliza enmascaramiento o generación de información con cobertura del 100% de las necesidades de prueba, para que se pruebe en condiciones reales en lugar de probar de forma parcial, lo cual no mostraría los impactos de los cambios. Esto generaría proyectos confiables.

La clave es proveer una solución de herramientas completamente integrada, iniciando por un mapa grafico de los procesos de negocio de los requerimientos, ligados a los datos para la administración de los datos de pruebas.  Esto permite al equipo visualmente mapear todos los escenarios de prueba y entonces automatizar la creación de pruebas, optimizar los datos de prueba necesarios, y aprovisionar los datos necesarios para las pruebas, ya sea datos de producción enmascarados o datos generados de forma sintética.

La segunda pieza es crear una simulación de una aplicación o sistema de una dependencia.

Finalmente, lo siguiente es automatización, se debe de construir la automatización tanto como sea posible en esta cadena de soluciones, esto implica herramienta de herramientas de orquestación para resolver ambientes con alta cantidad de scripts.

En la economía de las aplicaciones no es solo entregar el servicio, sino entregarlo de la mejor forma, lo cual mejora la satisfacción de los ciudadanos, cubriendo de una mejor forma sus expectativas.

No Comments

Sorry, the comment form is closed at this time.