Mobile DevOps es un conjunto de prácticas que aplican los principios de DevOps específicamente al desarrollo de aplicaciones móviles. El DevOps tradicional se centra en optimizar el proceso de desarrollo de software en general, pero el desarrollo móvil tiene sus propios desafíos únicos que requieren un enfoque personalizado. [1] Mobile DevOps no es simplemente una rama de DevOps específica para el desarrollo de aplicaciones móviles, sino una extensión y reinterpretación de la filosofía DevOps debido a los requisitos muy específicos del mundo móvil. [2]
Razón fundamental
El enfoque tradicional de DevOps se formó alrededor de 2007-2008, [3] cerca de las fechas en que los sistemas operativos móviles iOS y Android fueron lanzados al público. El enfoque tradicional de DevOps evolucionó principalmente para satisfacer las necesidades cambiantes del mundo del desarrollo de software con el cambio de paradigma hacia el desarrollo y la implementación continuos y rápidos (como en el desarrollo web , donde los lenguajes interpretados son más frecuentes que los lenguajes compilados ). [4] Mientras que el DevOps tradicional adoptó la agilidad y la flexibilidad, los proveedores de sistemas operativos móviles se orientaron hacia un enfoque de jardín amurallado con aplicaciones compiladas con controles estrictos sobre cómo pueden distribuirse e instalarse en un dispositivo móvil. [5] Esta diferencia en la mentalidad de desarrollo móvil en comparación con lo que defiende el enfoque tradicional de DevOps se aumenta aún más con las aplicaciones móviles que se implementarán en una gran cantidad de dispositivos y sistemas operativos variables. [6]
Finalmente, el concepto de Mobile DevOps despegó como una tendencia alrededor de 2014-2015, [7] en línea con el rápido crecimiento de la cantidad de aplicaciones en las tiendas de aplicaciones móviles . [8] A medida que tanto los individuos como las corporaciones desarrollan y publican cada vez más aplicaciones móviles, aumentó la necesidad de eficiencia y ciclos de lanzamiento más cortos , lo que se aborda mediante el enfoque de retroalimentación continua y desarrollo continuo dentro del concepto de DevOps , [1] al tiempo que requiere un nivel significativo de adaptación y extensión de las prácticas tradicionales de DevOps. [9]
Cambio de mentalidad de DevOps tradicional a DevOps móvil
Mobile DevOps tiene un conjunto único de desafíos y limitaciones, lo que consolida el hecho de que debe abordarse como una disciplina separada. [1] [9]
Estos desafíos pueden resumirse de la siguiente manera:
- Requisitos específicos de la plataforma y controles estrictos de los proveedores de sistemas operativos móviles, donde, por ejemplo, un dispositivo macOS es obligatorio para el desarrollo y lanzamiento de aplicaciones iOS . [2] [5]
- El enfoque de jardín amurallado para distribuir aplicaciones móviles, específicamente las que se aplican a las aplicaciones iOS , [10] que conlleva demoras en la revisión y el lanzamiento de aplicaciones que no serían necesarias en el desarrollo web, por ejemplo.
- Requisitos de firma de código que vienen con el enfoque de jardín amurallado, que introducen procesos adicionales en el proceso de creación de aplicaciones móviles junto con nuevas preocupaciones de seguridad. [5]
- Un ciclo de implementación completo se vuelve a ejecutar incluso con el más mínimo cambio de código debido a la forma en que se compilan las aplicaciones y se entregan a los usuarios. [5]
- El producto final se implementará en una amplia variedad de dispositivos móviles en todo el mundo, lo que requiere pruebas exhaustivas y comentarios de los usuarios. [9]
- El monitoreo de aplicaciones móviles requiere herramientas y enfoques adicionales para poder obtener datos de una aplicación que se ejecuta en un dispositivo móvil respetando la privacidad del usuario. [1]
- Las actualizaciones frecuentes del sistema operativo por parte de las plataformas móviles pueden requerir una rápida adaptación de las aplicaciones, lo que introduce mayor complejidad en los ciclos de desarrollo y mantenimiento.
Beneficios de DevOps móvil
Mobile DevOps no es un concepto abstracto y ofrece una serie de beneficios que pueden ayudar a mejorar la eficiencia y la eficacia del proceso de desarrollo de aplicaciones móviles . Estos beneficios pueden incluso cuantificarse mediante la recopilación de datos dentro del ciclo de vida del desarrollo de aplicaciones móviles . [9]
Los beneficios se pueden clasificar en las siguientes áreas:
- Ciclos de lanzamiento más rápidos: al automatizar tareas y optimizar el proceso de desarrollo, DevOps móvil permite a los equipos ofrecer nuevas funciones y actualizaciones con mayor frecuencia. [9]
- Calidad mejorada: las pruebas automatizadas y el monitoreo continuo ayudan a identificar y corregir errores en una etapa más temprana del ciclo de desarrollo, lo que genera aplicaciones de mayor calidad. [1] [6]
- Utilización optimizada de recursos: Mobile DevOps promueve la utilización optimizada de recursos mediante la automatización de tareas y la optimización de flujos de trabajo. Además, las prácticas de DevOps móviles como la contenedorización pueden ayudar a crear entornos de desarrollo más eficientes y escalables. [11]
- Mayor agilidad: Mobile DevOps permite a los equipos responder mejor a los cambios en el mercado y a los comentarios de los usuarios. [11]
Lista de plataformas DevOps móviles dedicadas
Si bien es posible ejecutar un ciclo DevOps móvil con la mayoría de las plataformas CI/CD , es posible que requieran un esfuerzo significativo en comparación con el CI/CD no móvil (por ejemplo, debe traer su propia infraestructura [12] o puede requerir "reinventar la rueda" para plataformas de uso común como Jenkins [13] ).
Para superar los desafíos específicos de los dispositivos móviles, existen ciertas plataformas que se dedican al ciclo de vida de las aplicaciones móviles. Estas plataformas se centran exclusivamente en los procesos DevOps para el desarrollo de aplicaciones móviles y también se conocen como plataformas CI/CD móviles.
- Appcircle (multiplataforma | basado en la nube y en las instalaciones)
- Visual Studio App Center (multiplataforma | basado en la nube)
- Xcode Cloud (solo plataformas Apple | Basado en la nube)
Véase también
- Integración continua
- Entrega continua
- Despliegue continuo
- Desarrollo de aplicaciones móviles
- Lista de plataformas de distribución de aplicaciones móviles
- Pruebas de dispositivos móviles
Referencias
- ^ abcde Tak, Rohin; Modi, Jhalak (2018). Mobile DevOps: Ofrezca integración e implementación continuas dentro de sus aplicaciones móviles . Packt Publishing. págs. 12–18. ISBN 9781788296243.
- ^ ab "¿Qué es Mobile DevOps en el desarrollo de aplicaciones iOS y Android?". ionic.io . 2022-09-28 . Consultado el 2024-03-26 .
- ^ Atlassian. «Historia de DevOps». Atlassian . Consultado el 26 de marzo de 2024 .
- ^ Smith, David (25 de enero de 2024). "La evolución de DevOps". DevOps.com . Consultado el 26 de marzo de 2024 .
- ^ abcd Appcircle (8 de octubre de 2022). "5 diferencias entre CI/CD móvil y CI/CD web/backend". Blog de Appcircle . Consultado el 26 de marzo de 2024 .
- ^ ab Yarlagadda, Ravi Teja (2019). "Cómo DevOps mejora la calidad del desarrollo de software". Revista electrónica SSRN . 7 (3): 358.
- ^ "Tendencias de Google para la palabra clave "Mobile DevOps"". Tendencias de Google . Consultado el 26 de marzo de 2024 .
- ^ "Número de aplicaciones disponibles en la App Store de Apple desde 2008 hasta julio de 2023". Statista . Consultado el 27 de marzo de 2024 .
- ^ abcdeEramo , Romina; Soccia, Gian Luca; Noletti, Martina; Celi, Alejandro; Autili, Marco. "Un estudio empírico sobre el papel de Devops en el desarrollo de aplicaciones móviles". SSRN . doi :10.2139/ssrn.4719199.
- ^ Kirkwood, Megan (6 de febrero de 2024). "Regular el jardín amurallado: el desafío de enfrentarse a los guardianes | TechPolicy.Press". Tech Policy Press . Consultado el 27 de marzo de 2024 .
- ^ ab Nabil, Moataz (2023). Manual de estrategias de DevOps móvil . Paquete. ISBN 9781803242552.
- ^ Bapat, Vaishnavi (9 de septiembre de 2022). "Anuncio de macOS Runners en Bitbucket Pipelines". Bitbucket . Consultado el 3 de noviembre de 2024 .
- ^ "Creación de aplicaciones iOS con Jenkins". Creación de aplicaciones iOS con Jenkins . Consultado el 3 de noviembre de 2024 .
Enlaces externos
- Documentación para desarrolladores de Android
- Documentación para desarrolladores de Apple
- Documentación para desarrolladores de Flutter
- ¿Qué es DevOps móvil? por Microsoft