Linux

Crear certificados SSL wildcard de Let’s Encrypt con certbot

Let’s Encrypt permite generar certificados SSL de forma gratuita, que podemos renovar periódicamente, por ejemplo cada tres meses. Ya sea para un entorno de pruebas o laboratorio, un proyecto personal, o para un proyecto empresarial de mayor tamaño, Let’s Encrypt es una solución adecuada y muy utilizada, cada vez más. Si bien, es habitual su uso con aplicaciones o servidores que están disponibles en Internet, en este Post os voy a contar cómo generar un certificado de Let’s Encrypt con certbot para una máquina Ubuntu que no está expuesta a Internet, ya sea un entorno de laboratorio o de pruebas, algo que para mi, resulta muy útil.

SonarQube – Introducción e instalación de SonarQube, SonarScanner CLI, y SonarLint

SonarQube (o simplemente Sonar) es una herramienta Open Source para el análisis estático de código y código limpio (Clean Code), que permite detectar bugs, vulnerabilidades de seguridad, y code smells, para diferentes lenguajes de programación (ej: Java, Kotlin, C#, JavaScript, Python, etc.), de gran ayuda para el aseguramiento de la calidad de nuestro Software, ya que proporciona diferentes métricas de calidad e incluso nos permite bloquear el despliegue si no cumplimos con un mínimo (Quality Gate). Se integra de forma sencilla con herramientas de CI/CD como Jenkins a través de SonarScanner para automatizar el análisis de código y subida de resultados al servidor SonarQube, y también con los diferentes IDEs a través del Plugin SonarLint (ej: PyCharm, Android Studio, Visual Studio Code, etc) para un feedback inmediato antes del Commit. Ayuda fundamental para mantener un código limpio y de calidad.

Jenkins – Instalar y configurar Jenkins sobre Ubuntu 22

Jenkins es quizás la principal herramienta para automatizar el CI/CD, es decir la compilación, integración y despliegue de aplicaciones de manera continua, aunque en general es una excelente herramienta de automatización (para otras muchas labores también). En este Post explico cómo instalar y configura Jenkins sobre Ubuntu 22, así como varias recomendaciones y Plugins habituales

Nexus OSS – Introducción e instalación en Ubuntu 22

Nexus es quizás el principal repositorio de artefactos (ej: APT, Composer, Conan, CPAN, Docker, ELPA, Git LFS, Go, Helm, Maven, npm, NuGet, p2, PyPi, R, Raw, RubyGems, o Yum), disponible en versión gratuita Open Source (Nexus OSS) y versión profesional de pago (Nexus PRO). Además, Nexus nos ofrece la posibilidad de crear repositorios Proxy (remotos) así como grupos de repositorios, gestión del almacenamiento, autenticación y autorización, y muchas opciones más para facilitar su administración. En este Post te cuento cómo instalar Nexus OSS 3.43.0 sobre Ubuntu Server 22 LTS, así como algún otro detalle de Nexus para que empieces a trabajar con él

Redis – Stream processing con Redis Streams

Redis Streams, inspirado en Apache Kafka, es una solución de mensajería para sistemas distribuidos donde los datos llegan continuamente, son almacenados (ofrece persistencia), y procesados en tiempo real con garantía de entrega y de procesamiento, como ocurre en entornos de IoT y Big Data. Un Stream es un conjunto de mensajes o eventos temporales, que pueden llegar de forma masiva (gran volumen) y a gran velocidad. Puede trabajarse con uno o varios Streams, con múltiples Productores (ej: sensores IoT o microservicios comunicándose asíncronamente), y múltiples Grupos de Consumidores (ej: cálculos en tiempo real, descarga a Data Lake o Data Warehouse, etc), para formar un sistema escalable y tolerante ante fallos

Redis – Escalabilidad con Redis Cluster

Redis Cluster proporciona escalabilidad horizontal, al dividir los datos que tenemos en Redis entre varios nodos (Shards) entre los que se repartiran las claves a almacenar. De este modo, aunque alcancemos el límite de recursos de nuestra máquina, podremos seguir creciendo a base de añadir más nodos (escalado horizontal), donde cada nodo almacena y se responsabiliza sólamente de una parte de las claves (un conjunto de slots). Además, se puede combinar con la Replicación, consiguiendo una gran escalabilidad (horizontal y vertical) y alta disponibilidad, pero… sólo podremos utilizar db0, cambiará la forma de conectar, aumentará el coste de mantenimiento (razón para pensar en Redis en Cloud), y asumiremos algunas limitaciones relacionadas con comandos que actúan sobre varios slots

Redis – Replicación y Automatic Failover con Sentinel

Redis proporciona un mecanismo asíncrono de Replicación, con el que podemos tener una o varias réplicas de lectura para aumentar la disponibilidad o repartir las lecturas entre más instancias mejorando el rendimiento, apoyándose en Sentinel para proporcionar Automatic Failover, sin necesidad de un Cluster, aunque nos cambiará la forma de conectarnos a Redis

Redis – Persistencia y Durabilidad

Redis proporciona dos mecanismos para permitir la persistencia de los datos en disco, y que no se pierdan tras un reinicio, un aspecto muy importante al tratarse de una base de datos que almacena todos sus datos en memoria, pudiendo utilizar cualquiera de ellos o ambos a la vez (una solución híbrida): Snapshotting (similar a un Backup Full) y AOF (similar a un Backup del Log de Transacciones).

Redis – Instalación en Ubuntu

La instalación de Redis para un entorno de Producción que soporte una carga de trabajo importante, tiene varios detalles a tener en cuenta, tanto de cómo hacer la instalación, como de diferentes configuraciones necesarias a realizar, tanto a nivel de Redis como del Sistema Operativo. En este Artículo te cuento los detalles más importantes, para instalar Redis en Ubuntu, para un entorno de alta carga.

Redis – Procedimientos Almacenados con Lua

Redis permite la ejecución de código dentro de la base de datos, mediante Lua, de forma similar a los procedimientos almacenados de las bases de datos relacionales, pudiendo trabajar con las claves de forma eficiente evitando su transferencia a través de la red, así como programar transacciones complejas. Lua es un lenguaje de Scripting ligero, potente, y eficiente, un proyecto Open Source con licencia MIT, y un lenguaje que podremos utilizar para escribir código de servidor en Redis