Consumidores, Autenticación, y Autorización de APIs en Kong – I

Kong Gateway permite la configuración de diferentes mecanismos de autenticación (ej: Basic Auth, Key Auth, etc.), así como permite definir Consumidores, a los que podemos asociarles credenciales y añadirles a grupos para darles acceso a nuestras APIs, mediante la configuración de ACLs que permitan el acceso a nuestras APIs sólo y exclusivamente a los usuarios permitidos. En este Post vamos a ver como configurar paso a paso tanto Basic Auth como Key Auth, mediante un ejemplo práctico, utilizando uno o ambos mecanismos de autenticación simultáneamente

Introducción a Kong Gateway y Konga Dashboard

Kong Gateway es un API Manager construido sobre NGINX y escrito en Lua, disponible en versión Community (gratuita) y versión Enterprise (de pago y más completa), extensible mediante Plugins (algunos sólo disponibles en la versión Enterprise) que pueden activarse en diferentes scopes (Global, Route, Service, Consumer). Kong puede ejecutarse fácilmente de forma dockerizada (ej: Docker, Docker Compose, Kubernetes, etc.) usando PostgreSQL o Cassandra como base de datos (e incluso DB-Less mediante configuración declarativa), y es escalable horizontalmente (Clustering).

Introducción a Keycloak, OAuth 2.0 y JWT

Keycloack es un Proveedor de Identidad (IdP) Open Source y gratuito, desarrollado en Java por JBoss (división de Red Hat, adquirida por IBM en 2019) sobre el servidor de aplicaciones WildFly, con Licencia Apache 2.0 (permite su uso comercial), y con gran adopción en el mercado, existiendo una versión comercial de pago: RedHat Single-Sign-On. Keycloack proporciona Single-Sign On (tanto con SAML 2.0 como con OpenID Connect), multi tenancy (crear servidores de identidad virtuales dentro de un mismo Keycloak), Login Social (ej: Facebook, Google, Twitter, Instagram, GitHub, etc), federación de identidades con LDAP y Active Directory, y un montón de opciones más para poder personalizarlo a tu gusto, y que tú te puedas concentrar en tu aplicación, que de la identidad, ya se encargan ellos

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.

Python – Exportando datos de Jenkins con jenkins-exporter

Jenkins es quizás la principal herramienta para automatizar el CI/CD en muchas empresas, una herramienta abierta y extensible mediante Plugins y scriping, que permite integrarse cualquier tecnología que puedas necesitar. En este Post os comparto una utilidad Python de línea de comandos para la exportación a CSV de datos de Jenkins (ej: usuarios, jobs, builds, roles, etc.), de utilidad para obtener datos estadísticos, poder ver su evolución en el tiempo, o incluso repartir costes entre departamentos o cualquier tipo de análisis de uso. Open Source, totalmente free (repo en GitHub), y preparada para correr en Docker y Kubernetes

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

Python – Exportando datos de Jira, Confluence y Bitbucket con atlassian-exporter

Muchas empresas utilizan la suite de Atlassian, para la gestión de su ticketing (Jira Service Management), gestión de sus productos Software (Jira Software), documentación tipo Wiki (Confluence), y gestión de los repos Git (Bitbucket), entre otros motivos porque, la integración de todos ellos ayuda mucho a gestión ágil de proyectos y de productos. En este Post os comparto una utilidad Python de línea de comandos para la exportación a CSV de datos de Jira, Confluence, y Bitbucket (en todos los casos, de las versiones Cloud), de utilidad para obtener datos estadísticos, poder ver su evolución en el tiempo, o incluso repartir costes entre departamentos. Open Source, totalmente free (repo en GitHub), y preparada para correr en Docker y Kubernetes

OpenStack – Cómo añadir un Compute Node con Packstack

Una de las principales ventajas de OpenStack, es que se trata de una solución altamente escalable, pudiendo llegar a tener cientos o miles de servidores. En este Post vamos a hacer una pequeña introducción a la escalabilidad en OpenStack, así como ver el proceso para añadir un Compute Node a nuestra instalación de laboratorio (all-in-one) sobre CentOS 7 con Packstack

OpenStack – El Servicio de Almacenamiento: Cinder y Swift

OpenStack ofrece varios servicios de almacenamiento para diferentes propósitos. Los más conocidos son Cinder y Swift. Cinder proporciona almacenamiento en bloques (Block Storage) que básicamente es el utilizado para gestionar los discos de las máquinas virtuales y los Snapshots, mientras que Swift proporciona almacenamiento de objetos (Object Storage) que básicamente es el equivalente a AWS S3 ó Azure Blob Storage, permitiendo tener contenedores donde subir ficheros, accesibles de forma pública a mediante una URL temporal y segura (similar a los Token SAS de Azure)