Aporta Calidad y Seguridad al pipeline de CI/CD

Rate this content
Bookmark

En esta masterclass repasaremos todos los aspectos y etapas al integrar tu proyecto en el ecosistema de Calidad y Seguridad del Código. Tomaremos una aplicación web simple como punto de partida y crearemos un pipeline de CI que active el monitoreo de calidad del código. Realizaremos un ciclo completo de desarrollo, comenzando desde la codificación en el IDE y abriendo una Pull Request, y te mostraré cómo puedes controlar la calidad en esas etapas. Al final de la masterclass, estarás listo para habilitar esta integración en tus propios proyectos.

FAQ

Sonar, anteriormente conocido como Sonar Source, es una compañía que proporciona herramientas para mejorar la calidad del código y la seguridad en proyectos de desarrollo. Ofrece productos como SonarLint, una extensión del IDE para retroalimentación instantánea; SonarQube, una herramienta autoadministrada; y SonarCloud, un servicio basado en la nube para análisis de código.

Para utilizar SonarCloud, debes crear una cuenta y seguir los pasos para configurar tu proyecto. Esto incluye forkear un repositorio, conectarlo con SonarCloud y configurar las reglas de análisis de código. SonarCloud te permite monitorear la calidad del código, identificar problemas y mejorar la seguridad de tu aplicación.

SonarLint es una extensión para IDEs que proporciona retroalimentación instantánea sobre la calidad del código mientras programas. Se integra con IDEs populares como Visual Studio Code, JetBrains y Eclipse, y te ayuda a detectar y corregir problemas de código en tiempo real.

Primero, debes crear una organización en SonarCloud y conectar tu repositorio. Luego, selecciona los repositorios que deseas analizar y configura las reglas de análisis. Finalmente, realiza un push o merge para que SonarCloud ejecute el análisis automáticamente en cada cambio.

SonarLint y SonarCloud pueden sincronizarse para compartir configuraciones de reglas y análisis. Esto permite una experiencia de usuario consistente y asegura que ambos sistemas utilicen el mismo conjunto de reglas para el análisis de código.

SonarLint subraya los problemas en el código directamente en el IDE. Puedes ver la descripción del problema y ejemplos de cómo resolverlo mediante la interfaz de SonarLint. Además, algunas reglas ofrecen correcciones automáticas que puedes aplicar con un clic.

SonarCloud ayuda a detectar errores, vulnerabilidades y problemas de mantenibilidad en el código. Ofrece métricas detalladas sobre la calidad del código, malos olores de código, duplicaciones y su evolución a lo largo del tiempo, lo cual es crucial para mantener la integridad y seguridad del proyecto.

Sí, utilizando el modo conectado de SonarLint, puedes establecer perfiles de calidad específicos para diferentes proyectos. Esto permite personalizar las reglas y configuraciones de análisis según las necesidades particulares de cada proyecto.

Elena Vilchik
Elena Vilchik
76 min
29 Mar, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La masterclass presenta los productos de Sonar para la calidad y seguridad del código, incluyendo SonarLint, SonarQube y SonarCloud. Cubre la configuración de SonarLint, la configuración de reglas en SonarCloud y la conexión de SonarLint a SonarCloud. La masterclass también explica cómo configurar las acciones de GitHub para ejecutar pruebas y generar cobertura, y cómo utilizar la puerta de calidad y el análisis de código nuevo de SonarCloud. SonarCloud admite múltiples lenguajes y plataformas y cuenta con un sólido sistema de soporte comunitario.

1. Introducción a los productos y plan de Sonar

Short description:

Primero me presentaré yo y Tibor, desarrolladores de Sonar. Discutiremos el uso de los productos de Sonar para la calidad del código y la seguridad en tu proyecto CI. El plan incluye ocho modelos para configurar el análisis de calidad del proyecto. Sonar proporciona herramientas de calidad de código, incluyendo SonarLint para obtener retroalimentación instantánea mientras codificas, SonarQube como una herramienta autoadministrada y SonarCloud como una herramienta basada en la nube.

Primero me presentaré. Yo y Tibor, somos desarrolladores de la compañía Sonar Source o ahora la llamamos Sonar y ambos somos desarrolladores de los analizadores de JavaScript y hoy hablaremos sobre cómo puedes utilizar los productos desarrollados por Sonar para mejorar la calidad del código y la seguridad en tu proyecto CI. Veremos esto con Sonar cloud y Sonar Linux. No estoy seguro si has escuchado sobre este producto pero definitivamente aprenderás sobre él pronto. Te mostraré el plan. Digamos que dura una hora y media, pero es solo una estimación aproximada. Tal vez sea más rápido. Depende de cómo vayan las cosas. Aquí está el plan. No solo lo repasaré, sino para que entiendas que habrá ocho modelos. Cada modelo es un pequeño paso para configurar el flujo de análisis de calidad de tu proyecto y los iremos viendo uno por uno. Dejaré de compartir estas diapositivas. Ahora comencemos lentamente con los productos que discutiremos hoy. Sonar es una compañía que proporciona herramientas de calidad del código. Esto es, digamos, un ecosistema. SonarLint es una extensión para el IDE, que te brinda retroalimentación instantánea mientras estás codificando. SonarQube es una herramienta autoadministrada, por lo que tendrás que alojarla tú mismo. Y SonarCloud es una herramienta basada en la nube que es alojada por Sonar. Simplemente compras una suscripción allí o es gratuita para proyectos de código abierto y la utilizas. Hoy, para simplificar, utilizaremos SonarCloud, por supuesto, para no tener que preocuparnos por configurar SonarQube.

2. Forking the Project and Setting Up SonarLint

Short description:

Comencemos por hacer un fork del proyecto simple y pequeño de MDN. Haz un fork en tu organización y clónalo localmente. Abre el proyecto en VS Code y enfócate en el archivo 'source/app'. Instala la extensión SonarLint y soluciona los problemas de código reportados. Puedes configurar las reglas de SonarLint y desactivar las que no sean necesarias. Por último, encuentra la regla sobre la sintaxis abreviada.

Comencemos y te preguntaré en la siguiente diapositiva, en la diapositiva número seis. Hay un enlace. Ya lo tengo abierto, es el fork del proyecto simple y pequeño. Este es un proyecto de MDN, lo forkeé y lo modifiqué un poco para que sea más adecuado para nuestros propósitos. Entonces, ¿podrías hacer un fork de este repositorio en tu organización? Aquí tienes el botón de fork. Yo no lo haré porque ya tengo dos. Haz un fork en tu organización donde tengas permisos. Y luego presiona aquí y deberías ver la organización aquí y debes presionarla. Una vez que lo hayas forkeado, ábrelo para que veas tu, no sé, John slash todo react. Y ahora puedes clonar este proyecto localmente. Puedes copiar el enlace SSH. Y puedes clonar el repositorio localmente con git clone e insertar este enlace. Así que solo tengo mi directorio vacío que creé para nuestro taller de devop.js y simplemente lo clono allí. Hemos clonado el repositorio y ahora vayamos a VS Code. Entonces VS Code es uno de los IDE que es compatible con SonarLint. Lo elegí porque es el IDE más común para el desarrollo de JS. También se admiten los IDE de JetBrains, Eclipse, Visual Studio. Creo que eso es todo. Así que abramos nuestro proyecto en esto. Usaremos el menú aquí. Abrir carpeta. Y abriré este proyecto aquí. Así que abramos el archivo source. No sé de dónde saqué el nombre del archivo. Así que abramos el archivo source/app. Este será el archivo en el que nos enfocaremos hoy. Puedes ignorar el resto. Es un proyecto Simple deReact, que realiza la adición de elementos de lista de tareas, como tus tareas diarias o lo que sea. Es un pequeño proyecto de demostración basado en yarn de YouTube. Puedes instalar las dependencias de yarn aunque no es realmente necesario ahora. Y ahora instalemos la extensión SonarLint. En la pestaña de extensiones de VS Code, donde están estos cuatro cuadrados, simplemente escribe SonarLint y estará en la parte superior y haz clic en el botón de instalación. Y se está instalando y aquí está. E instantáneamente estamos obteniendo código subrayado. Esto es SonarLint diciéndonos que hay algunos problemas en el código, o cosas que se pueden mejorar para fines de mantenibilidad. Por ejemplo, aquí hay un código comentado que puede ser confuso para los mantenedores. Aquí tienes una importación de React dos veces, así que puedes fusionar estas importaciones para que sean más concisas, etc. Tenemos diferentes problemas aquí. En la parte inferior de VS Code tienes esta advertencia, en la parte inferior de esta pestaña ves a SonarLint que te informa sobre los problemas en el código. Así que hay advertencias. Bueno, no estoy seguro de qué significa este icono. En SonarLint puedes configurar las reglas. Si abres esta pestaña de explorador, la primera pestaña donde ves los archivos en la parte inferior hay una pestaña de reglas de SonarLint. No es muy práctica, pero eso es lo que nos da VS Code. Aquí tienes la lista de reglas y para aquellas reglas que están activadas tienen on y para las que están desactivadas tienen off. Tenemos este conjunto de reglas predeterminado, que se ejecuta por defecto, y esperamos que satisfaga a todos, pero seguramente querrás desactivar algo. Por ejemplo, aquí tenemos algo como, está bien, no necesitas crear esta variable, solo devuelve directamente esta regla o esta expresión. Así que puedes desactivar la variable, la regla y simplemente puedes hacer clic aquí. También para cada regla tienes una descripción. También puedes acceder a ella desde esta bombilla, y aquí tienes la descripción de la regla y ejemplos ejemplos de código bueno y malo, y lo último que haremos ahora es encontrar en esta lista

Watch more workshops on topic

De 0 a Autenticación en una hora con ReactJS
React Summit 2023React Summit 2023
56 min
De 0 a Autenticación en una hora con ReactJS
WorkshopFree
Kevin Gao
Kevin Gao
La autenticación sin contraseña puede parecer compleja, pero es simple de agregar a cualquier aplicación utilizando la herramienta adecuada. Hay múltiples alternativas que son mucho mejores que las contraseñas para identificar y autenticar a tus usuarios, incluyendo SSO, SAML, OAuth, Magic Links, One-Time Passwords y Authenticator Apps.
Mientras abordamos los aspectos de seguridad y evitamos errores comunes, mejoraremos una aplicación JS de pila completa (backend Node.js + frontend React) para autenticar a los usuarios con OAuth (inicio de sesión social) y One Time Passwords (correo electrónico), incluyendo:- Autenticación de usuarios - Gestión de interacciones de usuarios, devolviendo JWTs de sesión / actualización- Gestión y validación de sesiones - Almacenamiento seguro de la sesión para solicitudes de cliente posteriores, validación / actualización de sesiones- Autorización básica - extracción y validación de reclamaciones del token JWT de sesión y manejo de autorización en flujos del backend
Al final del masterclass, también exploraremos otros enfoques de implementación de autenticación con Descope, utilizando SDKs de frontend o backend.
Principales Diez Vulnerabilidades de Seguridad OWASP en Node.js
JSNation 2024JSNation 2024
97 min
Principales Diez Vulnerabilidades de Seguridad OWASP en Node.js
Workshop
Marco Ippolito
Marco Ippolito
En este masterclass, cubriremos las diez vulnerabilidades más comunes y riesgos de seguridad críticos identificados por OWASP, que es una autoridad confiable en Seguridad de Aplicaciones Web.Durante el masterclass, aprenderás cómo prevenir estas vulnerabilidades y desarrollar la capacidad de reconocerlas en aplicaciones web.El masterclass incluye 10 desafíos de código que representan cada una de las vulnerabilidades más comunes de OWASP. Se proporcionarán pistas para ayudar a resolver las vulnerabilidades y pasar las pruebas.El instructor también proporcionará explicaciones detalladas, diapositivas y ejemplos de la vida real en Node.js para ayudar a comprender mejor los problemas. Además, obtendrás información de un Mantenedor de Node.js que compartirá cómo gestionan la seguridad en un proyecto grande.Es adecuado para desarrolladores de Node.js de todos los niveles de habilidad, desde principiantes hasta expertos, se requiere un conocimiento general de aplicaciones web y JavaScript.
Tabla de contenidos:- Control de Acceso Roto- Fallas Criptográficas- Inyección- Diseño Inseguro- Configuración de Seguridad Incorrecta- Componentes Vulnerables y Obsoletos- Fallas de Identificación y Autenticación- Fallas de Integridad de Software y Datos- Fallas de Registro y Monitoreo de Seguridad- Falsificación de Solicitudes del Lado del Servidor
Encontrar, Hackear y solucionar las vulnerabilidades de NodeJS con Snyk
JSNation 2022JSNation 2022
99 min
Encontrar, Hackear y solucionar las vulnerabilidades de NodeJS con Snyk
WorkshopFree
Matthew Salmon
Matthew Salmon
npm y seguridad, ¿cuánto sabes sobre tus dependencias?Hack-along, hacking en vivo de una aplicación Node vulnerable https://github.com/snyk-labs/nodejs-goof, Vulnerabilidades tanto de código abierto como de código escrito. Se anima a descargar la aplicación y hackear junto con nosotros.Corrigiendo los problemas y una introducción a Snyk con una demostración.Preguntas abiertas.
Despliega una aplicación de componentes web y configura un flujo de integración continua
DevOps.js Conf 2022DevOps.js Conf 2022
111 min
Despliega una aplicación de componentes web y configura un flujo de integración continua
Workshop
Philippe Ozil
Philippe Ozil
Únete a nosotros en un masterclass en el que desplegarás una aplicación Node.js simple construida con componentes web y configurarás un flujo de integración continua (CI). Aprenderás sobre el poder del Lightning Web Runtime (LWR) y las GitHub Actions.
Autenticación sin contraseña para servidores: práctica con ASA
DevOps.js Conf 2022DevOps.js Conf 2022
32 min
Autenticación sin contraseña para servidores: práctica con ASA
WorkshopFree
E. Dunham
E. Dunham
Hoy en día, no necesitas una contraseña separada para cada sitio web en el que inicias sesión. Sin embargo, gracias a la deuda tecnológica y la tradición, muchos profesionales de DevOps todavía tienen que lidiar con una gran cantidad de claves SSH para acceder a los servidores en los que a veces necesitamos estar. Con OAuth moderno, un solo inicio de sesión y un segundo factor para demostrar tu identidad son suficientes para acceder de forma segura a todos los servicios a los que tienes autorización. ¿Y si SSHing en servidores fuera tan fácil? En este masterclass, utilizaremos la herramienta de Acceso Avanzado a Servidores de Okta (anteriormente ScaleFT) para experimentar una forma en que el sueño de enviar claves SSH como la contraseña se ha hecho realidad.
- discutiremos cómo funciona ASA y cuándo es la herramienta adecuada para el trabajo- guiaremos el proceso de configuración de una cuenta de prueba gratuita de Okta para usar ASA, y la configuración de la puerta de enlace ASA y el servidor en servidores Linux- luego nos conectaremos por SSH a nuestros hosts con los clientes ASA sin necesidad de proporcionar una clave SSH desde nuestras laptops- revisaremos los registros de auditoría de nuestras sesiones SSH para examinar qué comandos se ejecutaron

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Node Congress 2022Node Congress 2022
26 min
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Top Content
¿Sabes qué está pasando realmente en tu carpeta node_modules? Los ataques a la cadena de suministro de software han explotado en los últimos 12 meses y solo están acelerándose en 2022 y más allá. Profundizaremos en ejemplos de recientes ataques a la cadena de suministro y qué pasos concretos puedes tomar para proteger a tu equipo de esta amenaza emergente.
Puedes consultar las diapositivas de la charla de Feross aquí.
¿Por qué es tan lento el CI?
DevOps.js Conf 2022DevOps.js Conf 2022
27 min
¿Por qué es tan lento el CI?
Todos nos hemos preguntado esto mientras esperamos una eternidad a que termine nuestro trabajo de CI. Un CI lento no solo arruina la productividad del desarrollador, rompiendo nuestra concentración, sino que también cuesta dinero en tarifas de computación en la nube y desperdicia enormes cantidades de electricidad. Vamos a adentrarnos en por qué ocurre esto y cómo podemos solucionarlo con herramientas mejores y más rápidas.
El estado de la autenticación sin contraseña en la web
JSNation 2023JSNation 2023
30 min
El estado de la autenticación sin contraseña en la web
¿Podemos deshacernos de las contraseñas ya? Son una mala experiencia de usuario y los usuarios son notoriamente malos con ellas. El advenimiento de WebAuthn ha acercado al mundo sin contraseñas, pero ¿dónde nos encontramos realmente?
En esta charla exploraremos la experiencia actual del usuario de WebAuthn y los requisitos que un usuario debe cumplir para autenticarse sin contraseña. También exploraremos las alternativas y salvaguardias que podemos utilizar para mejorar la experiencia de las contraseñas y hacerla más segura. Al final de la sesión, tendrás una visión de cómo podría ser la autenticación en el futuro y un plan para construir la mejor experiencia de autenticación hoy en día.
Poner fin al dolor: Repensando CI para Monorepos Grandes
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Poner fin al dolor: Repensando CI para Monorepos Grandes
Escalar bases de código grandes, especialmente monorepos, puede ser una pesadilla en los sistemas de Integración Continua (CI). El panorama actual de las herramientas de CI tiende a ser orientado a máquinas, de bajo nivel y exigente en términos de mantenimiento. Lo peor es que a menudo están desconectadas de las necesidades y el flujo de trabajo real del desarrollador.¿Por qué es un obstáculo el CI? Porque los sistemas de CI actuales son comodines, sin una comprensión específica de tu base de código. No pueden aprovechar el contexto en el que operan para ofrecer optimizaciones.En esta charla, exploraremos el futuro del CI, diseñado específicamente para bases de código grandes y monorepos. Imagina un sistema de CI que comprenda la estructura de tu espacio de trabajo, paralelice dinámicamente las tareas en máquinas utilizando datos históricos, y haga todo esto con una configuración mínima y de alto nivel. Repensemos el CI, haciéndolo más inteligente, eficiente y alineado con las necesidades del desarrollador.
Despliegue Atómico para Hipsters de JavaScript
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Despliegue Atómico para Hipsters de JavaScript
Desplegar una aplicación no es un proceso fácil. Te encontrarás con muchos problemas y puntos de dolor que resolver para que funcione correctamente. Lo peor es: ahora que puedes desplegar tu aplicación en producción, ¿cómo no vas a poder desplegar también todas las ramas del proyecto para tener acceso a vistas previas en vivo? ¿Y poder hacer un revert rápido a pedido?Afortunadamente, el clásico conjunto de herramientas de DevOps tiene todo lo que necesitas para lograrlo sin comprometer tu salud mental. Al mezclar expertamente Git, herramientas de Unix y llamadas a API, y orquestar todo ello con JavaScript, dominarás el secreto de los despliegues atómicos seguros.No necesitarás depender de servicios comerciales: ¡conviértete en el maestro perfecto de las herramientas y netlifica tu aplicación desde casa!
Cómo construir tuberías de CI/CD para una aplicación de microservicios
DevOps.js Conf 2021DevOps.js Conf 2021
33 min
Cómo construir tuberías de CI/CD para una aplicación de microservicios
Top Content
Los microservicios presentan muchas ventajas para ejecutar software moderno, pero también traen nuevos desafíos tanto para las tareas de despliegue como operativas. Esta sesión discutirá las ventajas y desafíos de los microservicios y revisará las mejores prácticas para desarrollar una arquitectura basada en microservicios.Discutiremos cómo la orquestación de contenedores usando Kubernetes o Red Hat OpenShift puede ayudarnos y lo uniremos todo con un ejemplo de tuberías de Integración Continua y Entrega Continua (CI/CD) en OpenShift.