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.

This workshop has been presented at DevOps.js Conf 2022, check out the latest edition of this JavaScript Conference.

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.

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
The talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.
¿Por qué es tan lento el CI?
DevOps.js Conf 2022DevOps.js Conf 2022
27 min
¿Por qué es tan lento el CI?
Slow CI has a negative impact on productivity and finances. Debugging CI workflows and tool slowness is even worse. Dependencies impact CI and waiting for NPM or YARN is frustrating. The ideal CI job involves native programs for static jobs and lightweight environments for dynamic jobs. Improving formatter performance and linting is a priority. Performance optimization and fast tools are essential for CI and developers using slower hardware.
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
Today's Talk discusses rethinking CI in monorepos, with a focus on leveraging the implicit graph of project dependencies to optimize build times and manage complexity. The use of NX Replay and NX Agents is highlighted as a way to enhance CI efficiency by caching previous computations and distributing tasks across multiple machines. Fine-grained distribution and flakiness detection are discussed as methods to improve distribution efficiency and ensure a clean setup. Enabling distribution with NX Agents simplifies the setup process, and NX Cloud offers dynamic scaling and cost reduction. Overall, the Talk explores strategies to improve the scalability and efficiency of CI pipelines in monorepos.
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
Passwords are terrible and easily hacked, with most people not using password managers. The credential management API and autocomplete attribute can improve user experience and security. Two-factor authentication enhances security but regresses user experience. Passkeys offer a seamless and secure login experience, but browser support may be limited. Recommendations include detecting Passkey support and offering fallbacks to passwords and two-factor authentication.
Despliegue Atómico para Hipsters de JavaScript
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Despliegue Atómico para Hipsters de JavaScript
This Talk discusses atomic deployment for JavaScript and TypeScript, focusing on automated deployment processes, Git hooks, and using hard links to copy changes. The speaker demonstrates setting up a bare repository, configuring deployment variables, and using the post-receive hook to push changes to production. They also cover environment setup, branch configuration, and the build process. The Talk concludes with tips on real use cases, webhooks, and wrapping the deployment process.
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
This Talk discusses the benefits of microservices and containers for building CI-CD pipelines. It explains how container technology enables portability and scalability. The challenges of microservices include network communication and testing in isolation. The Talk introduces Tacton, a cloud-native CICD pipeline for Kubernetes, and highlights the use of GitOps and Argo CD. It also discusses the importance of maintaining referential integrity between microservices and the evolving role of operators in the DevOps world.