GNU/Linux >> Tutoriales Linux >  >> Linux

Repensando DevOps:¿De qué se trata?

Desde que comencé a trabajar con diversas aplicaciones web en Linux Handbook y High On Cloud, el término DevOps me ha llamado la atención muchas veces, ya que es algo que cubrimos específicamente en Linux Handbook.

Hemos cubierto tutoriales sobre muchas herramientas relacionadas con DevOps, pero nunca hemos tratado de explorar el concepto real en profundidad. Dado que el manual de Linux está dedicado a los servidores Linux , también necesitamos explorar su importante papel en el campo DevOps.

Pero antes de hacerlo, es esencial comprender qué es realmente DevOps. DevOps es una palabra de moda extremadamente popular y encontrará múltiples definiciones en la web. Pero basado en mis propias experiencias, he llegado a la siguiente definición concluyente y pensamientos a partir de ahora. Este es un intento de revisar las normas DevOps existentes y repensarlas en la forma de un nuevo modelo que propongo aquí.

¿Qué es DevOps?

DevOps es un proceso de simplificación continua para mantener un delicado equilibrio entre la funcionalidad, la facilidad de uso y la seguridad de una aplicación, tanto en términos de su Dev fuga y Op eracioness .

¿Cómo asegurar eso?

Garantizar que una aplicación evolucione de manera eficiente y, al mismo tiempo, operativa es un desafío continuo para los ingenieros de DevOps. Para hacer eso, los componentes más fundamentales de DevOps deben monitorearse continuamente.

Ciclo de vida de desarrollo de aplicaciones (ADLC)

¿Creando una nueva aplicación? ¡Empiezas aquí mismo!

El ciclo de vida del desarrollo de aplicaciones es la motivación fundamental detrás del desarrollo de cualquier aplicación. A menos que el proceso de desarrollo no se controle cuidadosa y consistentemente, no puede estar absolutamente seguro de su desarrollo impecable. Una aplicación siempre estará bajo ADLC hasta que esté lista para producción.

ADLC es un principio esencial de ingeniería de software que consta de seis etapas esenciales. El desarrollo de una aplicación implica los siguientes pasos:

  1. Plan conceptual :Dar forma a la idea central detrás de la aplicación.
  2. Programación :Aquí es cuando se crea y desarrolla la aplicación.
  3. Documentación :Una aplicación excelente es inútil sin una documentación cuidadosa (legible por humanos).
  4. Pruebas para control de calidad :Asegurarse de que el producto final sea funcional, usable y seguro.
  5. Depuración :Se corrigieron los errores informados durante las pruebas.
  6. Lanzamiento de desarrollo :Se lanza la primera versión de la aplicación.

Hasta que ya menos que haya una versión estable disponible, este ciclo seguirá existiendo. Una vez que un software se lanza como una versión estable lista para producción, ya no se incluye en ADLC. Eventualmente cae dentro del Ciclo de vida de desarrollo del sistema (SDLC).

Ciclo de vida de desarrollo del sistema (SDLC)

Una parte de nuestra comunidad DevOps podría decir que tanto ADLC como SDLC son lo mismo. Pero en el escenario del mundo real, lo que veo es que ADLC y SDLC son bastante diferentes.

El ciclo de vida del desarrollo del sistema es la motivación fundamental detrás del desarrollo y la operación de una aplicación. Implica el desarrollo continuo de la aplicación después de su primera versión estable y asegura su operatividad continua.

  1. Plan conceptual :Revisando la idea central detrás de la aplicación.
  2. Programación :Esto es cuando la aplicación se desarrolla aún más.
  3. Documentación :Actualización continua de documentación legible por humanos.
  4. Probando la calidad de los nuevos lanzamientos :Asegurarse de que el nuevo producto final sea funcional, utilizable y seguro.
  5. Depuración :Se corrigieron los errores informados durante las pruebas.
  6. Lanzamiento de desarrollo :para una nueva aplicación (en cuanto a la versión o como la aplicación en sí), una versión de desarrollo evoluciona hacia su primera versión estable en esta etapa.
  7. Lanzamiento estable :La última versión estable se lanza como un producto con correcciones relacionadas con errores/seguridad junto con nuevas funciones.
  8. Implementación :El producto estable se implementa en los servidores.
  9. Mantenimiento y Supervisión :Supervisión constante y periódica de los servidores y las aplicaciones que se ejecutan en ellos.

Un modelo abierto impulsado por la comunidad siempre tendrá el mantenimiento más fluido. El último paso del ciclo solo se puede lograr verdaderamente con un modelo de código abierto. Es el mayor factor decisivo en términos de la evolución de cualquier aplicación.

Una aplicación que aún no tiene una versión estable no se puede considerar completa. Tan pronto como una aplicación está completamente construida, ADLC evoluciona a SDLC. ¿Por qué?

  • ADLC es puramente un Dev modelo de fuga
  • SDLC es a la vez un Dev fuga y Op eracioness Modelo

¿Entiendes mi punto ahora? Bajo ADLC, una aplicación no está lista para la producción, por lo que aún estaría en desarrollo barebone. Por lo tanto, no podemos llamarlo DevOps. Solo cuando sale la primera versión estable, evoluciona a SDLC, que es DevOps, porque una aplicación lista para producción estará continuamente operativa en adelante.

Como es evidente por las dos abreviaturas y el diagrama anterior, una aplicación es muy diferente de un sistema completo. Una aplicación no es más que una parte de un proceso sistémico completo. Esto es lo que diferencia a SDLC de ADLC. Entonces, ADLC es en realidad un subconjunto de SDLC.

SDLC debe ser impulsado continuamente por nosotros como comunidad, teniendo en cuenta el delicado equilibrio entre funcionalidad, usabilidad y seguridad.

Presentación del nuevo DevOps Triangle

Este diagrama nunca es el mismo porque SDLC nunca es estacionario. Es SDLC el que está siendo pivotado continuamente dentro del triángulo por la comunidad en función de los comentarios continuos de los desarrolladores, probadores y usuarios.

Dicho proceso pivotante cambia constantemente de acuerdo con los requisitos de la aplicación que se está implementando. Este modelo en constante cambio en el mundo real es el proceso de DevOps.

La ubicación del SDLC dentro del triángulo siempre variará de una aplicación a otra. La ubicación dinámica en realidad depende de la naturaleza de la aplicación que se está implementando mientras se desarrolla con una estrecha vigilancia sobre:

Funcionalidad :La función principal de la aplicación. Por ejemplo, la capacidad de enviar mensajes a través de Rocket.Chat.

Usabilidad :La facilidad de uso de la aplicación. Por ejemplo, lo conveniente que puede enviar mensajes a través de Rocket.Chat.

Seguridad :Grado de seguridad de la aplicación. Por ejemplo, una corrección de errores que soluciona una vulnerabilidad de Rocket.Chat como esta.

Una comunidad diversa que respalda una aplicación de código abierto debe mantener siempre un delicado equilibrio entre funcionalidad, facilidad de uso y seguridad.

Pero, ¿cómo en realidad?

Humildad en el lugar de trabajo:Máxima precisión en pivoting

Al final del día, los desarrolladores, usuarios y evaluadores son todos humanos. Ya sea local o virtual, las culturas y los lugares de trabajo de DevOps deben adoptar la idea simple de la compasión. ¡Un lugar de trabajo que practica la amabilidad entre los compañeros de trabajo está destinado a mejorar la productividad tanto de ADLC como de SDLC!

No se trata solo de aplicaciones web, también se trata de personas. Ellos son los que están continuamente creándolos, desplegándolos y manteniéndolos. De eso se trata la comunidad y es por eso que DevOps también es una cultura. La cultura DevOps abarca la gestión no solo de una aplicación web, sino también de las personas que la hacen realidad.

Un enfoque de código abierto hace que todo este proceso sea mucho más factible que uno propietario. Esto es lo que he sentido al trabajar con este sistema colectivo de personas, prácticas y tecnología .

Espero continuar compartiendo mis pensamientos en este género a través de una serie de artículos a seguir. Lo que siento es que, ya sea una empresa pequeña, mediana o grande, DevOps es aplicable en todas partes, pero en forma de modelos personificados.

Esto es solo una pequeña parte de lo que estoy ansioso por explorar a través de esta serie. Por favor comparte tus pensamientos en la sección de comentarios. ¡Gracias por visitar el Manual de Linux!


Linux
  1. Lo que probablemente no sabías sobre sudo

  2. ¿Qué es el alojamiento VPS? Todo lo que necesita saber sobre los servidores privados virtuales

  3. Desarrollo Flex en Linux, ¿cuál es un buen entorno libre?

  4. ¿Qué tiene de vulnerable este código C?

  5. Matar todos los procesos relacionados con una aplicación

[Revisión] Pear OS 8:Todo se trata de la apariencia

Lo que necesita saber sobre IPv6

Todo sobre los dominios adicionales

Todo sobre el Administrador de archivos (y lo que puede hacer con él)

Todo sobre el disco web

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