API with Express, Mongoose & MongoDB

Cuando queremos tener una arquitectura desacoplada o, cuando necesitamos tener un acceso programático a nuestro producto y/o servicio, lo más normal y común es tener un servicio de API. Concretamente una API RESTful para, por ejemplo, poder ofrecer servicios como: GET para consultar y leer, POST para crear, PUT para editar y DELETE para eliminar. Bien, uno de los lenguajes más famosos y, recomendable, para poder construir nuestra API RESTful es NodeJS y más concretamente su Framework Express que nos proporciona muchas herramientas útiles para poder organizar nuestra aplicación. [Leer más]

Linkerd, Service Mesh microservice management

Las Arquitecturas basadas en Microservicios han facilitado y continúan facilitando mucho todos nuestros desarrollos, puestas en producción y release management, pero ciertamente se puede continuar mejorando y una forma es implementando un Service Mesh. ¿Qué es un Service Mesh? Pero: ¿Qué es un Service Mesh?. En modo resumen rápido podemos decir que es una infraestructura, basada en software, encargada de manejar las comunicaciones entre microservicios y/o distintos componentes. Para explicarlo mejor podemos ver unas funcionalidades ejemplos donde podríamos implementarlo: [Leer más]

Reference (Simple) Architectures con Traefik, Kubernetes y API Kong Gateway

Hacerlo todo complicado es algo, por desgracia, muy natural. Pero deberíamos tender a hacerlo a lo fácil y así asegurarnos que nuestros proyectos tienen un % mucho más elevado de éxito y no al contrario. Es por ello que quiero plantear éste post para intentar resolver ciertas dudas que me han llegado frente al diseño de nuestras arquitecturas en AWS. La idea no va más allá de construir una “mínima” arquitectura, pensando en dos tipologías de acceso: programático o humano, y con dos tipos de consumidores: usuarios internos (empleados) o usuarios externos (clientes). [Leer más]

OpenFaaS, Serverless Functions Made Simple for Docker & Kubernetes.

OpenFaaS es un marco para “empaquetar” código, binarios o contenedores como funciones sin servidor en cualquier plataforma: Windows o Linux. Hasta aquí, “parece fácil” pero realmente es una maravilla ya que nos elevará a un nuevo nivel. Veamos sus principales Highlights: Podremos crear funciones desde plantillas de código. Contruir funciones como se fueran imagenes Docker. Hacer Push de estas imagenes a Docker Registry. Hacer Deploy de las funciones. Invocar las funciones. [Leer más]

JUJU, orquestación de servicios by Ubuntu (Canonical Ltd).

Juju, según la wikipedia, es una herramienta de gestión de orquestación de servicios desarrollada por Canonical Ltd.. Es un proyecto de software libre presentado en Launchpad​ y liberado bajo la licencia pública general de Affero.​ Juju es brillante para, en pocos minutos, poder deployar servicios que sin unos conocimientos avanzados podrían resultarnos bastante complejos. Por ejemplo, en el siguiente gif, podremos ver como deployar Kubernetes en simples pasos y mediante plantillas pre-configuradas en Juju. [Leer más]

Configurando Kong como API Gateway by @ciberado

Comparto un brillante vídeo de @ciberado en el que se explica como configurar el API gateway Kong para que nos autentifique mediante API Key. En su post puedes ver todos los comandos que ha utilizado para que, como yo, puedas configurarlo de una forma muy fácil. Una más que buena imagen que resume el uso de Kong es: En un futuro artículo haremos la instalación y configuración y publicaremos paso a paso todas las instrucciones. [Leer más]

RancherOS Development Environment by Docker

RancherOS es una simple distribución de Linux que nos permitirá crear con unos simples Clicks un entorno de desarrollo, por ejemplo, a partir de un entorno Kubernetes o Dockers Swarm. Tiene perfecta integración con AWS EC2. Para crear el entorno base podremos usar las AMIs públicas disponibles en el Marketplace de AWS o bien, descargarnos una ISO e instalarlo de cero. Mi recomendación es utilizar las AMIs que tenemos a nuestro alcance ya que vienen optimizadas y actualizadas. [Leer más]

Alarmas de Monitorización de Filesystem mediante CloudWatch en AWS

CloudWatch es la herramienta por excelencia de AWS para el control y auditoría de todos sus sistemas. A parte de tener sus propias alarmas (default), AWS nos permite configurar nuestras própias (avanzadas). Para ello seguiremos unos simples pasos y aprovecharemos, a la vez, unas tools que ya AWS nos ofrece como guía. La guía de AWS la podemos encontrar en: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html. Y podemos instalar AWS CLI (DEBIAN/UBUNTU) mediante sudo apt-get install awscli El siguiente Tutorial se divide en dos partes, que son: [Leer más]

Enviando Build Logs de Jenkins a ELK (Elasticsearch + Logstash + Kibana)

Jenkins y ELK (Elasticsearch, Logstash y Kibana) son dos fantásticas herramientas para iniciarnos en DevOps. En nuestro caso usamos Jenkins como Planificador de Tareas (Scheduled Task) aunque, realmente, es casi perversión lo que se puede llegar hacer con Jenkins y todos sus plugins. En éste artículo no hablaremos de Jenkins sinó de la posibilidad de poder mandar sus Log de ejecución a ELK, otra herramienta o Suite de herramientas que ningún DevOps puede dejar en el tintero. [Leer más]

Apache + Let's Encrypt en Ubuntu 17.04

Let’s Encrypt es ya una opción muy interesante para poder configurar certificados TLS/SSL en nuestros proyectos web. En este pequeño artículo se muestra como configurarlo en Apache con Ubuntu 16.04 y, a la vez, su simple proceso de renovación ya que, por lo general, su caducidad es de 90 días. Para poder empezar con el Tutorial hay que tener unos prerequisitos iniciales, los siguientes: Ubuntu 17.04 instalado (también funciona con Ubuntu 14. [Leer más]