DevOps en AppCenter

Mobile DevOps

Angel Pérez
5 min readAug 23, 2020

Con cada nueva liberación de aplicaciones móviles, entramos a nuevos niveles de competencias para mejorar la calidad de nuestras entregas, nuevos retos y mayores solicitudes.

Esto nos lleva a la necesidad de adoptar nuevas tecnologías y con ellas adoptamos nuevas estrategias para poder entregar un rendimiento y valor maximizado a nuestros clientes.

Es por esto, que ahora cada vez es más común encontrarnos con requerimientos de DevOps en los proyectos. Incorporarlo es un reto, ya que requiere de un compromiso grande para hacerla adopción y con ello dejar atrás malas prácticas para los procesos de integración y despliegue.

Adoptar estas prácticas, nos hace mejorar personalmente y en equipo, ya que nos permite mejorar nuestros procesos y productos, ya que nos brinda la seguridad de un software más estable y confiable.

Cuando incorporamos Continuous Integration y Continuous Deployment (CI/CD), migraciones las integraciones y liberaciones, dando como resultado procesos automatizados para realizar estas tareas, implementando con esto un principio clave del proceso de DevOps:

“El proceso debe ser repetible y confiable”.

Estas herramientas son útiles para cualquier tecnología de software, sin embargo, una de las pocas exploradas actualmente, es la incorporación en aplicaciones móviles, dando como resultado Mobile DevOps.

Mobile DevOps es un mundo un tanto desconocido pero con un enorme potencial para desarrollar, podemos agregar herramientas de CI/CD, integrar con muchas nubes como Azure, inclusive integraciones para desplegar directamente a los Stores o MDMs.

Para demostrarlo, a continuación encontrarás una pequeña guía para emplear esta estrategia utilizando tecnologías de Microsoft.

Mobile DevOps: Android App

Para este proceso, utilizaré Azure DevOps, como mi herramienta para manejar los archivos fuentes con Azure Repos.

Para implementar Mobile DevOps utilizaré AppCenter de Microsoft.

Quizá te preguntes, ¿Por qué no haré todo en Azure DevOps?

Bien, esto es porque tenemos mas tareas y procesos especializados para aplicaciones móviles en el AppCenter, por ejemplo, si quieres compilar y generar nuevas versiones de Aplicaciones Tradicionales, Videojuegos que con baseUnity o una App Cross Platform (Xamarin o React),.

¡AppCenter es el lugar indicado!

Lo primero es crear una aplicación en AppCenter, basado en las configuraciones de mi repositorio, Android con Kotlin.

Posteriormente, tengo que conectar mi repositorio para generar mis pipelines de CI, para esto nos movemos a la sección de Build, aquí comienza lo interesante, con esta herramienta podemos tener un solo pipeline por branch, así que debemos manejar una estrategia de branching, puede ser basada en características o usando el modelo GitFlow estándard, normalmente terminaremos con dos principales: Producción y Desarrollo.

Al configurar nuestro pipeline, debemos de considerar dos cosas, la primera, para cada uno de ellos debemos proporcionarle las credenciales para firmar (JKS/P12 caso Android, Provisioning Profile/P12 en iOS) y la segunda, si compilamos de forma especial (ej: Librerías, Extensiones, etc) debemos incluir los scripts en formato shell scripting, puedes encontrar más información en este enlace: Custom Build Scripting AppCenter.

Es posible habilitar pruebas automatizadas desde la granja de dispositivos en AppCenter, para lo que requeriremos una suscripción, pero, es una muy buena alternativa para probar nuestra aplicación en muchos dispositivos de diferente gama y soporta iOS y Android.

Una vez configurado, al realizarse una nueva integración o de modo manual, podemos ejecutar este pipeline que nos dará como resultado una liberación o artefacto, con ello concluimos nuestra etapa de Continuous Integration en aplicaciones móviles.

Ahora para nuestras operaciones de Continuos Deployment, podemos compartir un enlace para la instalación a través de un mail para nuestros colaboradores o equipo de pruebas, si somos una empresa que usa un MDM, es posible conectarlo con estas herramientas para publicar nuevas versiones para todos nuestros colaboradores, nativamente se conecta con InTune de Microsoft, pero podemos exportar para terceros.

Y si buscamos darle el factor WOW a nuestro proceso, podemos conectarlo con las tiendas y publicar una nueva versión disponible para todos nuestros usuarios desde la comodidad de nuestros pipelines.

Para android encontraremos Intune y Google Play

Conectar con las Tiendas

Para el AppStore, necesitaremos una cuenta válida de desarrollador con permisos para publicar nuevas versiones de las aplicaciones, será únicamente necesario contar con las credenciales y seguir el procedimiento para configurar la conexión, sin olvidarnos que, en nuestros pipelines, debemos configurar nuestro provisioning profile y nuestro certificado de distribución (Firma digital).

El caso de Android es particular, necesitamos acceder al manejador de identidades del Google Cloud Platform (GCP) para generar una cuenta de servicio, con la autorización para publicar nuevas versiones de las aplicaciones, es un proceso sencillo que podemos seguir a través del siguiente enlace: Configure Google Play Acoount

Una vez conectado y elegido, podemos ejecutar nuestro componente de Continuous Deployment y entregar una nueva versión a nuestra audiencia por el medio que destinemos.

Cool no?

Emplear estas herramientas, amplifica nuestros resultados, ya que podemos ahorrarnos algunas horas en días de liberación, que en algunos casos es el tiempo que puede tomarnos integrar, compilar y generar una nueva versión.

Espera hay más

Podemos configurar el Bug Tracker, para poder registrar issues con nuestras versiones directamente a nuestra plataforma de Azure DevOps y tener todo nuestro proceso de desarrollo administrado desde un mismo lugar.

Espero te haya resultado entretenido y de utilidad. Nos vemos en una siguiente edición de Mobile DevOps con Azure DevOps.

Happy Coding!

--

--

Angel Pérez
Angel Pérez

Written by Angel Pérez

Lead Software Engineer at NuBank

No responses yet