Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 19, 2023 01:29 pm GMT

Que es la cultura DevOps?

Desde hace poco tiempo, las empresas han venido trabajando con una cultura que combina el desarrollo de software con las operaciones de tecnologa, ofreciendo a sus clientes productos y servicios a una mayor velocidad. Dicha cultura se llama DevOps.

DevOps (Desarrollo + Operaciones) es un trmino que se refiere a prcticas, herramientas y filosofas que facilitan la comunicacin y colaboracin entre los desarrolladores de software y operadores de TI con el fin de entregar software de mejor calidad y en tiempo gil. Cubre todo el ciclo de una aplicacin, desde el desarrollo, pasando por las pruebas hasta el despliegue final usando iteraciones continuas. A continuacin, veremos las fases de DevOps.

Integracin Continua

Es la prctica de combinar los cambios de cdigo regularmente en un repositorio central para ejecutar pruebas y compilar. En esta etapa, se escribe el cdigo bajo estndares, como por ejemplo, CERT C, MISRA C, AUTOSAR C++, PEP 8 PSR. Y, se utiliza un programa especial, llamado Linter para buscar errores de sintaxis y bugs cuando se ejecuta el cdigo. Los linter ms comunes son cfn_nag, cfn_lint, GoLint, PyLint, Checkstyl, EsLint y PMD.

Pruebas unitarias

Las pruebas unitarias garantizan que las unidades de cdigo funcionen cmo fue diseada la aplicacin, es decir, como se espera. Cuando los desarrolladores envan cdigo al repositorio central, se prueba de forma aislada y automatizada. Existen dos metodologas para el desarrollo de software que incluyen las pruebas unitarias:

  • Desarrollo impulsado por pruebas (TDD): Consiste en ciclos de desarrollo muy cortos y repetitivos, convirtiendo los requisitos de software en casos de prueba para mejorar el cdigo.

  • Desarrollo impulsado por el comportamiento (BDD): Consiste en fomentar conversaciones entre equipos de trabajo, usando ejemplos concretos para comprender cmo debera comportarse la aplicacin.

Los frameworks de pruebas unitarias ms comunes son JUnit, PyTest, .Net, JBehave, CSpec y PHPSpec.

Pull Request

El trmino ms visto en un repositorio de cdigo, es Pull Request. Es slo la revisin de cambios en el cdigo antes de fusionarlos en el repositorio. Los Pull Request se realizan de tres formas diferentes:

  • Fast-Foward Merge: Mueve la rama de referencia hacia la confirmacin ms reciente de la rama fuente. El historial de confirmaciones se conserva como si hubiera ocurrido en la rama de destino. La punta de la rama de origen se reenva rpidamente a la punta de la rama de destino.

  • Squash and Merge: Los commits de pull request se combinan en un nico commit.

  • Three-way Merge: La combinacin de tres vas crea una combinacin en la rama de destino, pero conserva las confirmaciones individuales como parte del historial.

Testing

Las pruebas automatizadas testing son la parte fundamental de una aplicacin, sino se prueba su funcionalidad no se puede entregar. Por eso, las pruebas estn presentes en todas las etapas de DevOps. La pirmide representa las diferentes etapas de las pruebas con el tamao de la seccin que representa cuntas pruebas se realizan en esa etapa.

Entre las ventajas de las pruebas automatizadas encontramos:

  • Velocidad.
  • Fiabilidad.
  • Consistencia.
  • Escalabilidad.
  • Eficiencia.

Entrega Continua

Es la prctica de preparacin de los cambios en el cdigo para la entrega sobre la aplicacin final. Es una extensin de la integracin continua, porque implementa los cambios en ambientes de prueba y produccin. Se puede automatizar mediante flujos de trabajo realizar de forma manual para puntos crticos. En esta etapa se realizan diferentes tipos de pruebas:

  • Pruebas funcionales: Se testean las funciones principales, usabilidad, navegacin, accesibilidad y mensajes de error bajo condiciones de error conocidas.
  • Pruebas de regresin: Aseguran que los cambios hechos en el cdigo no afecten las funciones existentes y no introduzcan nuevos defectos.
  • Pruebas de rendimiento: Determinan cmo funciona la aplicacin en trminos de capacidad de respuesta y estabilidad bajo una carga de trabajo especfica.
  • Prueba de aceptacin de usuario (UAT): Es dnde los usuarios actuales del software testean para asegurar que pueden manejar las tareas requeridas.
  • Pruebas sintticas: Mtodo para comprender la experiencia del usuario en una aplicacin mediante la prediccin del comportamiento.

Despliegue Continuo

Va ms all de la entrega continua, y asegura que el despliegue de la aplicacin, en el ambiente productivo, se realice de forma automatizada sin validacin humana.

Despliegue progresivo
Con una implementacin continua, su flota de produccin se divide en grupos para que toda la flota no se actualice a la vez. Su flota ejecutar las versiones de software nuevas y existentes durante el proceso de implementacin. Este mtodo permite una actualizacin sin tiempo de inactividad. Si la implementacin falla, solo se ver afectada la parte mejorada de la flota.

Comprobaciones de estado
Las comprobaciones de estado son pruebas que se realizan en recursos como la aplicacin, mquinas virtuales balanceadores de carga. Los resultados de estas pruebas pueden determinar si una implementacin se realiz correctamente o si una aplicacin funciona como se esperaba.

Implementaciones segmentadas
La segmentacin se refiere a dividir la implementacin en pequeos fragmentos. Un ejemplo de implementacin segmentada sera dividir la implementacin de su aplicacin por regin geogrfica o zona de disponibilidad.

Implementaciones Canary
Son un tipo de implementacin segmentada. Al igual que una implementacin segmentada, implementa una pequea parte de su aplicacin (llamada canary) y el resto de la aplicacin sigue ms adelante. Lo que hace que una implementacin de Canary sea diferente es que prueba su Canary con trfico de produccin en vivo.

Transiciones
Las transiciones son vnculos entre las etapas del pipeline que se pueden inhabilitar o habilitar. Cuando las transiciones estn habilitadas, las revisiones de la aplicacin pueden pasar de una etapa a otra. Estn habilitados de forma predeterminada.

Detener promociones
Hay muchas situaciones en las que es posible que deba detener una promocin (publicacin). Por ejemplo, si se encontr un error o problema crtico con la aplicacin actualmente implementada y necesita detener la implementacin de esa aplicacin y revertirla.

DevSecOps

ltimamente, se ha agregado una etapa adicional a las implementaciones DevOps para evitar brechas de seguridad. DevSecOps es una metodologa que cubre la seguridad en las canalizaciones de integracin continua (CI), entrega continua (CD) y la automatizacin. Integra conocimientos en seguridad en los equipos de trabajo para brindar seguridad a escala en la nube.

Herramientas DevOps

  • AWS CodeCommit.
  • AWS CodeBuild.
  • AWS CodeDeploy.
  • AWS CodePipeline.
  • Github.
  • CloudBees.
  • Jenkins.
  • TeamCity.
  • Ghost Inpector.

Muchos definen DevOps como una metodologa el uso de una serie de herramientas pero es ms bien concebido como un cambio cultural en la forma de integrar varios equipos de trabajo de desarrollo y operacin para desarrollar soluciones de tecnologa. Es un trmino que cada da toma ms fuerza en el lenguaje corporativo.

Publicado en: The Bucket of Notes


Original Link: https://dev.to/aws-builders/que-es-la-cultura-devops-olk

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To