GESTIÓN DEL PROCESO DE DESARROLLO DE SOFTWARE

 

GESTIÓN DEL PROCESO DE DESARROLLO DE SOFTWARE

Planeación del proceso de desarrollo de software


Devops

DevOps es un marco de trabajo y una filosofía en constante evolución que promueve un mejor desarrollo de aplicaciones en menos tiempo y la rápida publicación de nuevas o revisadas funciones de software o productos para los clientes.

Su objetivo es hacer más rápido el ciclo de vida del desarrollo de software y proporcionar una entrega continua de alta calidad.

Con DevOps se promueve una comunicación continua más fluida, la colaboración, la integración, la visibilidad y la transparencia entre equipos de desarrollo de aplicaciones (Dev) y sus homólogos en operaciones tecnológicas (Ops).

DevOps tiene un gran impacto en la parcelación que se determina al establecer la estrategia de sourcing. En términos cualitativos y financieros, el plan de sourcing solo será sostenible si los servicios, las aplicaciones y la infraestructura de TI se internalizan y externalizan de acuerdo a una parcelación.

Ciclo de vida de Devops

  • Plan

En la fase de planeamiento, los equipos de DevOps conciben, definen y describen las características y la funcionalidad de las aplicaciones y los sistemas que van a crear.. Realizan un seguimiento del progreso tanto de forma general como de forma pormenorizada, desde tareas de un único producto hasta tareas que abarcan carteras de numerosos productos.

  • Desarrollar

La fase de desarrollo incluye todos los aspectos de la programación (escritura, pruebas, revisión e integración del código por parte de los miembros del equipo) y la compilación de ese código en artefactos de compilación que se pueden implementar en varios entornos. 

  •  Entregar

La entrega es el proceso de implementar aplicaciones en entornos de producción de un modo constante y confiable. La fase de entrega incluye también la implementación y la configuración de la infraestructura básica totalmente gobernada que constituye esos entornos.

  • Funcionamiento

La fase de uso implica mantener y supervisar las aplicaciones, así como solucionar los posibles problemas, en los entornos de producción. Al adoptar prácticas de DevOps, los equipos trabajan para asegurar la confiabilidad, la alta disponibilidad y el objetivo de ningún tiempo de inactividad del sistema, al tiempo que refuerzan la seguridad y la gobernanza. 

El impacto de DevOps en los equipos

DevOps y Agile rompen la estricta división entre el desarrollo y la gestión, las aplicaciones y la infraestructura. DevOps se utiliza, sobre todo, en entornos innovadores donde los ciclos cortos beneficina al  negocio. Ejemplos de ello son: un mercado creciente, de alta competitividad, de alta visibilidad o una empresa altamente dinámica. Por el contrario, en los entornos heredados, más estables, se aplica el método de cascada. Por tanto, en una gran empresa habrá equipos en cascada y equipos DevOps.

Les comparto un tutorian básico de Devops:



https://www.youtube.com/watch?v=kp0-wv0HHFU


ESTRATEGIAS DE DESPLIEGUE DE SOFTWARE


Existen distintos tipos de estrategias de despliegue de softaware pero en particular el lanzamiento azul/verde y canario son los que mas me llaman la taención, al igual el de prueba A/B porque este solo consiste en que tu como desarrollador le hagas  una página de color azul y otra verde, una con botones de x color y en la otra página de otro color.


LANZAMIENTO AZUL/VERDE

Que es: Una implementación azul-verde es un modelo de lanzamiento de aplicaciones que transfiere poco a poco el tráfico de usuarios de cierta versión anterior de una aplicación o microservicio a una versión nueva casi idéntica, cuando ambas se encuentran en producción.
Como funciona: La versión anterior se denomina entorno azul, mientras que la versión nueva se conoce como entorno verde. Cuando el tráfico de producción se transfiere por completo del entorno azul al verde, la versión azul puede conservarse en caso de ser necesaria una restauración, o extraerse de la producción y actualizarse para convertirse en la plantilla a partir de la cual se realizará la próxima actualización.

LANZAMIENTO CANARIO


Pruebas A/B

Por implementación, las pruebas A/B son similares a las pruebas de Canary. El enfoque de A/B es ver lo útil que es una característica para los clientes. 

Este método consiste en desarrollar dos versiones de un mismo elemento que vamos a lanzar al mercado (por ejemplo, un botón de CTA azul y uno amarillo), y luego utilizar las métricas de cada variación para evaluar cuál funciona mejor.

Estos son algunos de esos elementos que podemos testar en un A/B Test:

  •      Las palabras, colores, tamaños y ubicación de tus CTAS.
  •      Los titulares y cuerpos de la descripción de tus productos.
  •      La extensión de un formulario y tipos de campos.
  •      El layout o estructura visual de tu página web.
  •      El modo de presentación del precio de tus productos y ofertas promocionales.
  •    Las imágenes (ubicación, propósito, contenido y cantidad) de las landings y páginas de tu producto.



II. Desarrollo de integración continua


Herramientas para el proceso de desarrollo e integración continua.


La CI/CD es un método para distribuir aplicaciones a los clientes con frecuencia mediante el uso de la automatización en las etapas del desarrollo de aplicaciones. Los principales conceptos que se atribuyen a la CI/CD son la integración continua, la distribución continua y la implementación continua. La CI/CD es una solución para los problemas que puede generar la integración del código nuevo a los equipos de desarrollo y de operaciones (también conocida como "Integration Hell").

¿Cuál es la diferencia entre CI y CD (y la otra CD)?

La sigla CI/CD tiene diferentes significados. La "CI" en CI/CD siempre se refiere a la integración continua, que es un proceso de automatización para los desarrolladores. Si la CI tiene éxito, los cambios del código nuevo en una aplicación se diseñan, se prueban y se combinan periódicamente en un repositorio compartido. 

La "CD" en CI/CD se refiere a la distribución o la implementación continuas, los cuales son conceptos relacionados que suelen usarse indistintamente. Ambos conceptos se refieren a la automatización de las etapas posteriores del canal, pero a veces se usan por separado para explicar la cantidad de automatización que se está incorporando.


Herramientas de automatizacción de pruebas



Selenium es considerado el estándar de la industria para la automatización de pruebas de interfaz de usuario de aplicaciones Web. Para usar Selenium de manera efectiva, los usuarios deben poseer conocimientos avanzados de programación y necesitan dedicar un tiempo considerable para construir los marcos de automatización, así como bibliotecas necesarias para la automatización.

  • Experiencia de prueba sin fisuras al permitir la estandarización del W3C.
  • Los usuarios pueden escribir scripts de prueba en muchos lenguajes diferentes (como Java, Groovy, Python, C#, PHP, Ruby y Perl) que se ejecutan en múltiples entornos de sistemas (Windows, Mac, Linux) y navegadores (Chrome, Firefox, IE y navegadores Headless).

 

JMeter es una herramienta de código abierto diseñada para la carga de pruebas y la medición del rendimiento. Además, JMeter ahora también se utiliza para pruebas de API y servicios, especialmente para el rendimiento de la API.

JMeter ofrece:

  • Interfaz de usuario simple y fácil de usar.
  • Resultados de prueba que pueden ser reproducidos.
  • Soporta archivos CSV para establecer los valores de los parámetros de la API

 

LambdaTest es una herramienta de testeo de navegadores basada en la nube que permite realizar pruebas de navegadores cruzados para aplicaciones web en más de 2000 navegadores, sistemas operativos y dispositivos. Es una plataforma de pruebas escalable que ayudará a tu equipo al llevar sus necesidades de evaluación de software a la infraestructura de la nube. 

LambdaTest ofrece:

  • Prueba de compatibilidad de navegadores en línea.
  • Pruebas en los últimos navegadores de escritorio.
  • Prueba de respuesta en todos los tamaños de pantalla.
  • Colaboración continua durante las pruebas.
  • Pruebas visuales.
  • Rastreador de problemas incorporado.
  • Soporte 24×7.

 

Postman una herramienta de automatización diseñada para el testeo APIs. Los usuarios pueden instalar esta herramienta como una extensión del navegador o una aplicación de escritorio en Mac, Linux, Windows. Postman es popular no sólo entre los testeadores de automatización de pruebas de APIs, sino también entre los desarrolladores que utilizan la herramienta para desarrollar y probar APIs.

Postman ofrece:

  • Un completo conjunto de características para diseñar, depurar, probar, documentar y publicar APIs.
  • Interfaz de usuario amigable y fácil de usar.
  • Soporte en pruebas automatizadas y exploratorias.
  • Acepta los formatos de la API de Swagger y RAML.
  • Las requests y los respondents pueden empaquetarse y compartirse con los miembros del equipo.

Selenium

En este parcial he aprendido sobre selenium, se me hace muy interesante, ya que hemos realizado prácticas y pude ver el proceso de la prueba, el realizar pruebas a nuestras páginas es muy importante realizarlas ya que la tecnología está dirigida a muchas ramas, como la medicina, para esto se debe asegurar el correcto funcionamiento ya que los apartaos que son programados sirven para detectar enfermedades, terapias, etc., y esto depende de vidas.

 

Es muy interesante ir descubriendo la funcionalidad de nuestras páginas, el ir navegando y darse cuenta de los errores que pueden tener.


III. Proceso de liberación y monitoreo



Liberación y despliegue continuo de software (CD).

La CI/CD es un método para distribuir aplicaciones a los clientes con frecuencia mediante el uso de la automatización en las etapas del desarrollo de aplicaciones. Los principales conceptos que se atribuyen a la CI/CD son la integración continua, la distribución continua y la implementación continua. La CI/CD es una solución para los problemas que puede generar la integración del código nuevo a los equipos de desarrollo y de operaciones.

Identificar las herramientas para liberación y despliegue continuo (CD).

  • Jenkins
  • Travis CI
  • AWS
  • Azure DevOps
  • GitLab

Proceso de evaluación de rendimiento.

¿Qué es un SLA?

Un SLA (acuerdo de nivel de servicio) es un acuerdo entre el proveedor y el cliente sobre los parámetros cuantificables, como el tiempo de actividad, la capacidad de respuesta y las responsabilidades.


¿Qué es un SLO?

Un SLO (objetivo de nivel de servicio) es un acuerdo enmarcado en un SLA sobre una métrica específica, como el tiempo de actividad o el tiempo de respuesta. Así, si el SLA es el acuerdo formal entre tú y el cliente, los SLO son cada una de las promesas que le haces a ese cliente. 





Comentarios