Aprovechando los Microservicios para Mejorar la Reutilización de Software
Descubre cómo DevOps y InnerSource apoyan la reutilización efectiva de microservicios en grandes organizaciones.
― 7 minilectura
Tabla de contenidos
La reutilización de software significa usar componentes de software existentes para crear nuevas aplicaciones. Esta práctica ha evolucionado desde usar pequeños fragmentos de código hasta emplear componentes más grandes como Microservicios. Un microservicio es una parte independiente de una aplicación más grande que se comunica con otros componentes. El principal objetivo de la reutilización de software es ahorrar tiempo, esfuerzo y costos mientras se mejora la calidad.
En los últimos años, prácticas como DevOps e InnerSource han ganado popularidad al fomentar la reutilización de software. DevOps se centra en el desarrollo y entrega continua, mientras que InnerSource promueve la colaboración y el intercambio dentro de las organizaciones. Este artículo explora cómo estos enfoques mejoran la reutilización de microservicios en una gran empresa.
Antecedentes
La reutilización de software ha existido durante décadas, pero su importancia ha crecido con el auge de los microservicios. Los microservicios son unidades más pequeñas e independientes que pueden desarrollarse y desplegarse por separado. Su arquitectura permite una integración y gestión más sencilla, lo que los hace aptos para su reutilización en diversas aplicaciones.
Ericsson, una gran organización que produce productos tecnológicos, ha adoptado un enfoque nativo en la nube para el desarrollo de software. Desarrollaron un sistema llamado la Plataforma de Desarrollo de Aplicaciones (ADP) que fomenta la creación y reutilización de microservicios.
El ecosistema de ADP tiene varios microservicios comunes que se pueden usar en diferentes aplicaciones. Esta iniciativa busca mejorar la eficiencia y reducir la duplicación de esfuerzos. Sin embargo, implementar estas prácticas implica costos iniciales y desafíos que las organizaciones deben enfrentar.
La Importancia de la Reutilización de Software
Los principales beneficios de la reutilización de software incluyen:
- Ahorro de Costos: Al reutilizar componentes existentes, las organizaciones pueden reducir los costos de desarrollo.
- Mejora de Calidad: Los componentes reutilizables a menudo pasan por pruebas rigurosas, mejorando su fiabilidad.
- Desarrollo Más Rápido: Reutilizar microservicios permite un despliegue más rápido de nuevas aplicaciones.
- Consistencia: Usar los mismos microservicios en diferentes aplicaciones asegura uniformidad en funcionalidad y experiencia de usuario.
A pesar de estas ventajas, las organizaciones enfrentan obstáculos para implementar la reutilización de software de manera efectiva.
El Rol de DevOps
DevOps es un conjunto de prácticas que busca mejorar la colaboración entre los equipos de desarrollo y operaciones. Se enfatiza la automatización, la integración continua y la entrega, que son esenciales para mejorar la reutilización de software.
En un entorno de DevOps, los microservicios pueden desarrollarse, probarse y desplegarse rápidamente. Esto permite a los equipos centrarse en construir nuevas características en lugar de reinventar funcionalidades existentes. Las herramientas de automatización juegan un papel crucial para asegurar que los microservicios se entreguen y desplieguen de manera constante y sin errores.
Prácticas de InnerSource
InnerSource se refiere a aplicar prácticas de desarrollo de código abierto dentro de una organización. Fomenta la colaboración y la transparencia al permitir que los equipos contribuyan a componentes compartidos. InnerSource anima a los equipos a compartir conocimientos y trabajar juntos, lo que lleva a una mejor reutilización de software.
Al adoptar InnerSource, las organizaciones pueden romper silos y promover una cultura de colaboración. Esto resulta en componentes de mejor calidad y más contribuciones, beneficiando en última instancia a toda la organización.
El Ecosistema de ADP en Ericsson
La Plataforma de Desarrollo de Aplicaciones (ADP) de Ericsson busca agilizar el desarrollo y la reutilización de microservicios. El ecosistema de ADP consiste en varios microservicios comunes que pueden ser utilizados por diferentes aplicaciones dentro de la organización. Este ecosistema fomenta la colaboración entre equipos y el intercambio de trabajo.
El ecosistema de ADP ha establecido directrices y principios que los equipos deben seguir al desarrollar microservicios. Estas directrices incluyen reglas de diseño que aseguran el cumplimiento de estándares de seguridad y rendimiento.
Desafíos en la Reutilización
Aunque los beneficios de reutilizar componentes de software son claros, hay varios desafíos que enfrentan las organizaciones:
- Costos Iniciales: Desarrollar microservicios reutilizables requiere una inversión inicial en tiempo y recursos para asegurarse de que cumplan con los estándares de calidad.
- Problemas de Integración: Los equipos deben entender cómo integrar los componentes reutilizables en sus aplicaciones de manera efectiva.
- Brechas de Conocimiento: Los equipos pueden carecer de las habilidades necesarias para desarrollar o contribuir a microservicios reutilizables.
- Resistencia al Cambio: Los empleados pueden mostrarse reacios a adoptar nuevas prácticas y colaborar con otros equipos.
Las organizaciones deben abordar estos desafíos para aprovechar al máximo los beneficios de la reutilización de software.
Costos y Beneficios de Reutilizar Microservicios
Cuando las organizaciones desarrollan microservicios reutilizables, incurre en ciertos costos asociados con su creación y mantenimiento. Estos costos pueden incluir:
- Esfuerzo de Desarrollo: Se necesita tiempo y recursos para construir microservicios que cumplan con las directrices establecidas.
- Documentación: Una documentación clara es esencial para asegurar que otros equipos puedan entender y utilizar los microservicios de manera efectiva.
- Capacitación y Soporte: Los equipos pueden requerir capacitación para aprender cómo integrar y usar componentes reutilizables.
Sin embargo, a pesar de estos costos, los beneficios a largo plazo pueden superar la inversión inicial. Los principales beneficios de reutilizar microservicios incluyen:
- Mayor Calidad: Los microservicios comunes pasan por pruebas extensivas, lo que lleva a una mayor calidad y menos problemas en las aplicaciones.
- Mejora en la Productividad: Los equipos pueden ahorrar tiempo al reutilizar componentes, permitiéndoles centrarse en desarrollar nuevas funciones.
- Mejor Experiencia del Cliente: La consistencia en los microservicios conduce a una mejor experiencia de usuario en diferentes productos.
Estrategias para Mejorar
Para mitigar los desafíos de reutilizar microservicios, las organizaciones pueden implementar varias estrategias:
- Escalar la Adopción de InnerSource: Fomentando las prácticas de InnerSource, las organizaciones pueden incentivar más colaboración y contribuciones de diferentes equipos.
- Mejorar la Documentación: Proporcionar directrices detalladas sobre cómo usar e integrar microservicios puede ayudar a reducir confusiones y problemas de integración.
- Programas de Capacitación: Ofrecer sesiones de capacitación puede ayudar a los equipos a desarrollar las habilidades necesarias para utilizar y contribuir a componentes reutilizables.
- Directrices Claras de Contribución: Establecer un proceso claro para las contribuciones puede ayudar a los equipos a entender cómo pueden participar en el desarrollo de recursos compartidos.
Conclusión
La reutilización de microservicios dentro de organizaciones como Ericsson puede llevar a mejoras significativas en eficiencia, calidad y productividad. Al adoptar prácticas contemporáneas como DevOps e InnerSource, las organizaciones pueden fomentar un ambiente colaborativo y agilizar sus procesos de desarrollo.
Sin embargo, persisten los desafíos, y las organizaciones deben trabajar activamente para abordar estos problemas para desbloquear completamente los beneficios potenciales de la reutilización de software. A través de una planificación cuidadosa, inversión en capacitación y el establecimiento de directrices claras, las organizaciones pueden asegurar la implementación exitosa de microservicios reutilizables en sus prácticas de desarrollo.
Título: Large scale reuse of microservices using DevOps and InnerSource practices -- A longitudinal case study
Resumen: Contemporary practices such as InnerSource and DevOps promote software reuse. This study investigates the implications of using contemporary practices on software reuse. In particular, we investigate the costs, benefits, challenges, and potential improvements in contemporary reuse at Ericsson. We performed the study in two phases: a) the initial data collection based on a combination of data collection methods (e.g., interviews, discussions, company portals), and b) a follow-up group discussion after a year to understand the status of the challenges and improvements identified in the first phase. Our results indicate that developing reusable assets resulted in upfront costs, such as additional effort in ensuring compliance. Furthermore, development with reuse also resulted in additional effort, for example, in integrating and understanding reusable assets. Ericsson perceived the additional effort as an investment resulting in long-term benefits such as improved quality, productivity, customer experience, and way of working. Ericsson's main challenge was increased pressure on the producers of reusable assets, which was mitigated by scaling the InnerSource adoption. InnerSource success is evident from the increase in the contributions to reusable assets. In addition, Ericsson implemented measures such as automating the compliance check, which enhanced the maturity of reusable assets and resulted in increased reuse.
Autores: Deepika Badampudi, Muhammad Usman, Xingru Chen
Última actualización: 2023-09-26 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2309.15175
Fuente PDF: https://arxiv.org/pdf/2309.15175
Licencia: https://creativecommons.org/licenses/by/4.0/
Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.
Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.
Enlaces de referencia
- https://www.michaelshell.org/
- https://www.michaelshell.org/tex/ieeetran/
- https://www.ctan.org/pkg/ieeetran
- https://www.ieee.org/
- https://www.latex-project.org/
- https://www.michaelshell.org/tex/testflow/
- https://kubernetes.io/
- https://helm.sh/
- https://www.cncf.io/
- https://mirror.ctan.org/biblio/bibtex/contrib/doc/
- https://www.michaelshell.org/tex/ieeetran/bibtex/