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 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
- Desarrollar
- 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
Es un lanzamiento parcial a un subconjunto de nodos de producción con sesiones adhesivas activadas. De esa manera, puedes controlar y minimizar la cantidad de usuarios/clientes que se verán afectados si terminas liberando un error.
Como
funciona: Se elige al
canario. Por comodidad muchos eligen al 5% de su tráfico. De esta forma, si
algo llegar a fallar únicamente ese 5% se vería afectado.
Después se
incluyen otros canarios con diferente alcance de tráfico; así se incrementa la
confianza en los nuevos cambios
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).
- Jenkins
- Travis CI
- AWS
- Azure DevOps
- GitLab
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
Publicar un comentario