GNU/Linux >> Tutoriales Linux >  >> Linux

El ciclo de vida de la versión de software en DevOps:¿Por qué reinventar el modelo?

En mi artículo anterior y el primero de esta serie, presenté una nueva forma y modelo de DevOps y describí sus componentes esenciales y flujo de trabajo.

En este artículo, exploraré la importancia del ciclo de lanzamiento de una aplicación y el importante papel que desempeña en nuestro modelo DevOps.

Pero antes de comenzar, es necesario que recuerde brevemente algunas secciones esenciales de mi artículo anterior, particularmente SDLC, y también vuelva a analizar un hecho que muchos de nosotros en la academia de informática podríamos haber estado siguiendo sin darnos cuenta durante décadas.

No voy a volver a detallar los pasos, ya que el artículo anterior ya ha sido enlazado aquí. Pero voy a echar un vistazo al diagrama SDLC una vez más en un momento.

Importancia del ciclo de vida de la versión de software en DevOps

El Ciclo de Vida de la Versión de Software, o SRLC en forma abreviada, es un procedimiento obligatorio que se lleva a cabo durante el desarrollo de cualquier aplicación. Es una necesidad crucial porque el software de calidad garantiza DevOps de calidad. Eso se puede garantizar de manera efectiva solo cuando sus diversas fases progresan de manera eficiente.

El ciclo de vida de la versión de software

Un ciclo de vida de lanzamiento de software o SRLC es la secuencia de varias etapas a través de las cuales el desarrollo de un software evoluciona desde una fase pre-alfa hasta una fase de producción. Es un proceso continuo porque cualquier software siempre tendrá su versión actualizada hasta que alcance el final de su vida útil (EOL).

Los nombres y las prácticas pueden variar de un desarrollador a otro. Pero en general, hay cinco fases esenciales involucradas:

  1. Prealfa :La primera fase en las versiones de software que solo incluye la funcionalidad principal y es más probable que tenga la cantidad máxima de errores. Solo lo prueban desarrolladores y evaluadores.
  2. Alfa :La segunda fase en los lanzamientos de software se considera una función completa y es probable que todavía tenga errores, pero mucho menos que la pre-alfa. Está probado por desarrolladores y probadores. Pero dependiendo de las diversas NDA, puede estar disponible para el público también de forma selectiva o en todo el mundo.
  3. Beta :La tercera fase se centra principalmente en corregir errores y problemas que se encontraron en las dos fases anteriores. Al igual que la versión prealfa, la disponibilidad del software beta también se basa en acuerdos de confidencialidad.
  4. Candidato de versión Nota:Una versión candidata a lanzamiento del software es una versión preliminar que tiene potencial para ser un producto final estable. En la práctica general, una versión candidata a lanzamiento ya no recibe ningún código fuente nuevo para el programa. Los cambios en el código fuente solo se realizan cuando aún se encuentran errores cuando se somete a pruebas de nivel de producción.
  5. Lanzamiento de producción :Como es muy evidente, un lanzamiento de producción es el producto final que se pone a disposición del público en general como un producto estable.

Nota :El concepto de NDA no tiene mucho valor en el campo del software de código abierto debido a un modelo transparente.

Basado en nuestro nuevo modelo, SRLC en realidad funciona en dos etapas:

1. Etapa de lanzamiento de desarrollo en ADLC

La aplicación se convierte en su primera versión en esta etapa y avanza a través de la mayoría de las fases de lanzamiento (mencionadas anteriormente) a medida que se vuelve más madura y factible. Los errores se reducen gradualmente y la eficiencia aumenta a medida que pasa el tiempo.

2. Etapa de lanzamiento estable en SDLC

Esta es la etapa de producción de SRLC donde una versión de desarrollo se convierte en su primera versión estable disponible lista para ser utilizada por clientes y usuarios.

¿Por qué es un "Ciclo de Vida"?

Durante décadas, en la materia académica de Ingeniería de Software , el plan de estudios de Ciencias de la Computación en diferentes universidades ha mencionado el modelo de proceso de liberación de software como un ciclo. Pero el diagrama que se representa es bastante contradictorio. Por lo general, se describe de la siguiente manera:

Basado en una simple observación, es muy evidente que el diagrama anterior no muestra ninguna propiedad "similar a un ciclo" en absoluto. Basado en este modelo convencional, se llama ciclo aunque el diagrama no muestra tal característica... no se puede llamar ciclo... es un diagrama de flujo.

Para que parezca un ciclo, la fase de producción tendría que volver a la fase pre-alfa y eso no tendría sentido lógico, a menos que se revise críticamente todo el escenario una vez más:

Puede notar claramente que la versión estable es donde el software ha alcanzado su máximo potencial y es capaz de implementarse en producción. Aunque no se muestra en el diagrama, ¿por qué se lo denomina "ciclo de vida"?

Esta es la razón

Cuando la versión de producción ha sido adoptada por los usuarios/clientes, los desarrolladores del software aún están realizando mejoras al agregar más funciones, ajustar las existentes, corregir errores y fallas de seguridad durante la producción y cualquier otro cambio que sea necesario a través del tiempo. . Por lo tanto, siempre hay una versión de desarrollo trabajando constantemente entre bastidores.

Por muy críticamente probado que pueda estar un software, hay ciertas fallas que se revelarían solo en un escenario del mundo real, y estas fallas se corrigen en la versión actualizada de cualquier lanzamiento de producción.

Pensemos en ello por un momento. ¿Puede una versión de producción realmente llamarse producto final si el software está continuamente en desarrollo en forma de versiones actualizadas?

¿Cómo revisar el diagrama y sus escenarios como un ciclo real?

Para poder percibir este proceso como un ciclo, debemos revisar nuestro nuevo modelo SDLC descrito anteriormente:

Si desea verlo solo con una perspectiva de lanzamiento de software, el modelo SDLC se puede transformar en SRLC:

Una aplicación de software se refiere únicamente a su desarrollo, mientras que un sistema de software se refiere al desarrollo tanto de la aplicación como de los procesos sistémicos bajo los cuales se implementa y mantiene. Si simplificamos aún más, podemos volver a imaginarlo de la siguiente manera:

Hagamos zoom en las Versiones de desarrollo zona para ver lo que realmente está pasando y derivar nuestro "Ciclo de vida":

Aquí puede observar que las primeras cuatro fases esenciales ahora se representan como parte de un ciclo real. Cada una de estas fases también se somete a desarrollo de aplicaciones basado en ADLC (etiquetado en el diagrama como ADLC) a medida que avanzan a la siguiente fase. Una vez que el desarrollo de software sale de la etapa de candidato a lanzamiento, se somete a desarrollo del sistema. basado en SDLC (etiquetado en el diagrama como SDLC) para finalmente convertirse en una versión estable que estaría activa a través de implementaciones de producción como entornos de clientes y usuarios finales.

¿Por qué ahora una versión estable debe volver a un estado pre-alfa? ¿Solo para representarse a sí mismo como un ciclo de vida? Definitivamente no.

Una versión estable debe volver a someterse a una evaluación de nivel pre-alfa para mantener constantemente la calidad más alta posible.

Dado que el producto ya se lanzó como una versión estable, la depuración y las pruebas en las fases pre-alfa, alfa y beta no requieren mucho tiempo. Por lo tanto, debe tener en cuenta que después de que un nuevo producto se lanza al público, se acerca rápidamente al nivel de evaluación del candidato de lanzamiento después de que todo tipo de usuario lo implemente y lo audite.

Los errores en el nivel de producción en tiempo real son inevitables y, sea cual sea su naturaleza, es necesario volver a evaluarlos con un enfoque pre-alfa. Solo así se puede garantizar un software de calidad de manera consistente con una velocidad y eficiencia óptimas.

Por lo tanto, ahora finalmente se puede hacer referencia a este modelo revisado como un ciclo real y no como el diagrama de flujo convencional que muchos de nosotros en la comunidad de desarrollo podríamos haber estado siguiendo sin darnos cuenta durante décadas. Es un proceso continuo, por lo que se denomina "Ciclo de vida" de la versión de software.

Si hay alguna sugerencia, comentario o comentario sobre este tema, háganoslo saber en la sección a continuación. Nos encantaría verte involucrado en enfoques tan interesantes. Estén atentos al próximo artículo de esta serie :)


Linux
  1. Por qué a los programadores les encanta el empaquetado de Linux

  2. La evolución de los gestores de paquetes

  3. ¿Por qué el servidor bloqueó mi IP?

  4. ¿Por qué no funciona ~/.bash_profile?

  5. Linux:¿por qué el kernel no puede ejecutar Init?

Las 7 mejores distribuciones de Linux de lanzamiento continuo para personas que quieren lo último y lo mejor en kernel y software

¿Por qué no instalar paquetes de software desde Internet?

DevOps vs Ingeniero de software:¿Cuál es la diferencia?

Responsabilidades principales de un ingeniero DevOps

Cómo actualizar Linux Mint a la última versión

¿Por qué la función de cierre se llama release en `struct file_operations` en el kernel de Linux?