DevOps móviles en la práctica

Hola Habr! Hoy compartimos con ustedes una guía simple y comprensible sobre cómo poner en práctica Mobile DevOps. Además del manual en papel, debajo del corte también puede encontrar grabaciones de video del taller del mismo nombre, que cubre todos los aspectos de DevOps en relación con el desarrollo móvil.



Doy la palabra al autor, Vyacheslav Chernikov.

DevOps móvil: una guía de acción


Un saludo, lector. El verano voló una vez más a la velocidad de un cometa, y junto con el otoño, es hora de volver al 150% de la productividad. En la primavera, Microsoft y yo preparamos una guía "DevOps móviles en la práctica" sobre cómo automatizar al máximo el proceso de desarrollo de aplicaciones móviles. La siguiente es una hoja informativa de la guía completa.

1. Acerca de DevOps


1.1 Acerca de la cultura DevOps


DevOps mismo camina lentamente por el planeta en un abrazo con técnicas de gestión flexibles. Sin embargo, si observa un poco más a fondo, DevOps es principalmente una cultura en la que todo el equipo que desarrolla y mantiene un sistema de TI funciona en su conjunto. Es la comunicación dentro del equipo lo que se requiere para construir una interacción saludable entre empresas, programadores, administradores de sistemas y probadores.

El segundo elemento importante de cualquier proceso de DevOps es la capacitación del equipo. En un mundo ideal, un equipo (comenzando con un negocio) debe aprender a satisfacer mejor las necesidades del usuario final, creando valor para el consumidor. Pero en la práctica, también se debe aprender el "valor" para contar y sacar conclusiones competentes de esto. Para la capacitación, en cualquier caso, se requiere la retroalimentación de usuarios reales. Dicha conexión son sistemas de monitoreo continuo para la viabilidad de los sistemas de TI y una variedad de sistemas de registro.

Y para que este DevOps exista no solo en la mente de los desarrolladores, debe ponerse en práctica utilizando herramientas que sean adecuadas para las necesidades de la tarea. Parte de la cultura DevOps es también el deseo de automatizar las actividades de rutina. Esto hace que el proceso de desarrollar y desarrollar sistemas de TI sea menos doloroso y más eficiente.

1.2 ¿Cuál es la diferencia entre DevOps y DevOps móvil?


DevOps apareció como un enfoque para grandes equipos y empresas que trabajan en grandes sistemas de TI que consisten en una gran cantidad de módulos, a menudo escritos en diferentes lenguajes de programación y diseñados para diferentes entornos de tiempo de ejecución. Sin embargo, a medida que el término y el enfoque se hicieron más populares, DevOps comenzó a ser adaptado por varios equipos para resolver una amplia gama de problemas.

Muy a menudo, DevOps se asocia con grandes productos digitales, cuyo desarrollo y mantenimiento se lleva a cabo por docenas, cientos y, a veces, miles de especialistas. Muchos equipos ya han desarrollado sus propias prácticas y sus propias herramientas para respaldar el proceso DevOps: un sistema para el ensamblaje, prueba, implementación y monitoreo automáticos. Por lo general, todo esto se crea en su propia infraestructura, pero las herramientas en la nube de CI / CD también se están desarrollando activamente.



Figura 1. Diferencia entre Mobile DevOps y Enterprise DevOps

Todo esto está poco asociado con el desarrollo de aplicaciones móviles. Mobile DevOps es una versión "más pequeña" de DevOps regular, ya que las aplicaciones móviles son principalmente una interfaz conveniente para interactuar con sistemas de TI externos. La escala más pequeña del equipo y sus problemas específicos específicos de las aplicaciones móviles (ver Figura 1):

  • - varias plataformas;
  • - Varios dispositivos.

1.3 Documentación unificada y un solo idioma


Para que DevOps funcione y haya una interacción real entre los equipos, necesita un solo idioma y una única documentación de trabajo, comprensible para todos los participantes. Aquí, ningún enfoque proporciona pautas claras, y los sistemas son todos diferentes. Sin embargo, es la documentación que vive con el proyecto el ciclo de vida completo y es una herramienta para la comunicación y la interacción del equipo.



Figura 2. Documentación de trabajo

La documentación de trabajo competente puede simplificar y acelerar el desarrollo del proyecto. Este proceso se describe con más detalle en nuestra Guía # 2 " Diseño técnico de aplicaciones móviles ".

Aquí identificaremos los documentos principales (ver Figura 2):

- lista de pantallas;
- mapa de transiciones y estados;
- mesa de pantallas.

El uso de nombres y numeración de extremo a extremo en estos documentos es importante. Esto es lo que simplifica y acelera el proceso de comunicación dentro del equipo. Otro factor importante es el "código de documentación" de cumplimiento, que deja en claro la comunicación de las empresas con los desarrolladores.

2. Características de Mobile CI / CD


Entonces, decidimos sobre la cultura de interacción y documentación de trabajo y ahora podemos pasar al soporte instrumental en forma de una canalización de CI / CD. Cuantas más operaciones pueda automatizar, mejor.

2.1 Problemas Mobile Dev


El desarrollo móvil tiene 3 áreas problemáticas distintas:

  • Varios sistemas operativos y sus versiones. La aplicación debería funcionar correctamente en una amplia gama de sistemas operativos diferentes, cada uno de los cuales tiene sus propias características y limitaciones.
  • Varias opciones para la arquitectura del procesador central. El hardware de los teléfonos inteligentes y las tabletas está mejorando constantemente, pero no se olvide de las "personas mayores" hace cinco años, que pueden estar en manos de sus usuarios reales.
  • Diferentes resoluciones de pantalla de dispositivos. Independientemente del número de píxeles o la relación de aspecto, la interfaz de la aplicación móvil debe mostrarse correctamente en todos los dispositivos.

En general, las pruebas y la depuración en una gran flota de dispositivos reales es indispensable.

2.2 Qué se puede probar automáticamente


En la práctica real, es imposible hacerlo sin pruebas manuales en teléfonos inteligentes o tabletas. Sin embargo, parte del código se cubre fácilmente mediante pruebas automatizadas basadas en pruebas unitarias (en adelante, simplemente pruebas unitarias). Veamos la arquitectura típica de la mayoría de las aplicaciones: Figura 3.



Figura 3. Arquitectura clásica de tres niveles

Pruebas de cobertura total es más sabio realizar pruebas en 2 direcciones:

  • pruebas unitarias (funcionales, de integración) para la capa de acceso a datos o repositorios.
  • Pruebas de IU (funcional, regresión) para capas de lógica de negocios e interfaz de usuario.

No es posible cubrir todo con pruebas unitarias en aplicaciones móviles, además esto reduce la velocidad de desarrollo y actualización del sistema. Para la fase de prueba de unidad automática de la tubería CI / CD, será útil cubrir los siguientes mecanismos de capa DAL:

  • Métodos de acceso a la API de back-end
  • métodos de acceso a datos (repositorios);

Si hablamos de pruebas automáticas de IU, podemos probar lo siguiente:

  • operabilidad de la aplicación en dispositivos reales con las características necesarias;
  • la capacidad de ejecutar escenarios comerciales clave.

Según los resultados de las pruebas de IU, las capturas de pantalla se recopilan con cada paso en cada dispositivo; en base a esto, un ingeniero de control de calidad puede ver manualmente el diseño correcto de la aplicación con diferentes resoluciones y tamaños de pantalla.

La conveniencia, la suavidad de las animaciones y otras características específicas del usuario son difíciles de dedicar a las pruebas automáticas; es mejor dejarlas a los probadores en vivo y a los usuarios beta.

Fin de la hoja informativa.



Materiales utiles


Reserve Mobile DevOps en la práctica




La versión digital completa de la guía en papel "Mobile DevOps en la práctica" .

Materiales de video del taller “DevOps móviles en la práctica” (4 partes por 3.5 horas)


Parte 1




Parte 2




Parte 3




Parte 4




Cumbre DevOps


Me gustaría hablar sobre Mobile DevOps en vivo o hacer preguntas. Estaré encantado de verte en Microsoft DevOps Summit el 13 de septiembre en Moscú ( registro ) o en los DevOps Days del 14 al 15 de septiembre en Kazan ( más ).

¡Como siempre, agradeceré los comentarios y las preguntas de los comentarios! Mantente en contacto!

Sobre el autor


Vyacheslav Chernikov es el jefe del departamento de desarrollo de Binwell , Microsoft MVP y desarrollador certificado de Xamarin. En el pasado, uno de los Nokia Champion y Qt Certified Specialist, actualmente especialista en plataformas Xamarin y Azure. Entró en la esfera móvil en 2005, desde 2008 ha estado desarrollando aplicaciones móviles: comenzó con Symbian, Maemo, Meego, Windows Mobile, luego cambió a iOS, Android y Windows Phone.

También puede leer los artículos de Vyacheslav en el blog en Medium .

Source: https://habr.com/ru/post/es421465/


All Articles