Posts
-
Integrate Terraform Language Server Protocol With vim
Aug 20 -
Continuous Integration for Golang Applications with Terraform, Codebuilds and ECR
Jul 26
I wrote this post for sharing, how we can do continuous integration for Golang APIs with some tools. In this post I’m going to use terraform for making a codebuild resource, Code build to build the Golang API and generate a docker image and ECR for keeping the docker image.
The workflow: The continuous integration workflow is very easy to understand, every time a new tag is created the webhook will start the job, Codebuild will compile the Golang API and will generate the docker image, then will run a docker push to AWS ECR,
-
Parseando JSON con Golang y las naves de spaceX
Feb 10 -
Creando un cluster de kubernetes en GCP con terraform
Feb 3 - Credentials : En este caso tenemos que generar un account service y usar el archivo json que se genera con los permisos necesarios
- Project : Determinamos el proyecto en GCP en el cual vamos a trabajar
- region : Determinamos la región por el cual vamos a trabajar.
-
Utilizando Traefik como Dynamic Reverse Proxy en Docker Swarm sobre AWS
Dec 22 -
Traefik: Load Balancer y Reverse Proxy para Docker
Oct 25 -
Howto: Instalando Rocket.Chat en Docker
Mar 7
We write large-scale infrastructure with terraform. We spend hours creating modules, writing resources, developing infrastructure. To feel more comfortable, surely we need a langserver in our editor. I’ll show how to integrate a terraform langserver in vim - making it a Swiss Army Knife.
The Language Server protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features. Like auto complete, go to definition, find all references and alike into the tool. This post explains how to integrate terraform-lsp on vim.
Golang se ha convertido en uno de mis lenguajes favoritos y hoy escribiré de como podemos usar go para poder consumir la API de spaceX y obtener información de las naves lanzadas al espacio
Soy admirador total de Elon musk y de todas sus compañías, una de ellas es spaceX, una compañía dedicada al transporte aeroespacial y hoy por medio de Golang vamos a obtener información de su ultima nave lanzada al espacio.
Terraform, es una de las herramientas mas potentes de hashicorp y hoy en día es usada por grandes compañías para mantener infraestructura en la nube.
Terraform destaca porque podemos trabajar con múltiples providers al mismo tiempo, ¿ que quiere decir esto ? que le podemos decir a terraform que cuando se cree una nueva instancia en GCP al mismo tiempo genere un registro DNS en route53 en AWS, esto de una manera muy sencilla.
Pero hoy no vamos a hablar de AWS, hoy vamos a hablar de GCP, una nube muy poderosa que tiene características muy interesantes para tener en cuenta y en este caso, construiremos un cluster de Kubernetes en GCP usando terraform.
Conectandonos a Google Cloud platform:
Para conectarnos a GCP solo necesitamos determinar:
Despues de determinar los valores mencionados anteriormente, los seteamos en el siguiente archivo.
Traefik es una herramienta muy potente gracias a que soporta varios providers como backend, en este caso usaremos traefik para que nos sirva como Dynamic Reverse Proxy sobre un cluster de Docker Swarm en Amazon Web Services.
Componentes:
3 Instancias (1 Manager y 2 worker):
**Manager: **Esta instancia sera la que controlara todo el cluster, en ella desplegaremos traefik y los servicios que no son worker, esta instancia estará sobre una subnet , la cual llamaremos **“subnet frontend” **y tendrá su respectivo Secure Group
**Worker: **las instancias llamadas workers son dichas instancias donde correran nuestros servicios desplegados en AWS, sin tener en cuenta los servicios de “management” que podemos desplegar en la subnet de frontend, aquí desplegaremos los servicios que necesitemos como un web server, un micro servicio, etc, estas dos instancias estarán sobre otra subnet, la cual la llamaremos “subnet backend” y tendrá su respectivo Secure Group
Cuando trabajamos con docker en ambientes productivos, la mayoría de casos usamos tecnologías para orquestar y poder ofrecer alta disponibilidad sobre nuestros micro servicios, debido a esto, nosotros corremos multiples aplicaciones sobre un mismo host que haga parte de nuestro stack de orquestación. Para que estas aplicaciones puedan ser consumidas sin necesidad de exponer un puerto, necesitamos un reverse proxy para poder consumir estos servicios desde un único puerto.
**Traefik **es un reverse proxy y load balancer compatible con docker escrito en Go, creado especialmente para micro servicios, Traefik soporta diferentes Backends como: (Docker, docker Swarm, Kubernetes, Rancher, Amazon ECS y muchos mas ) su configuración es bastante sencilla y cuenta con un Dashboard donde podemos visualizar nuestros Micro servicios.
Rocket.chat para mi es una de las mejores plataformas de chat OpenSource que existen, es muy flexible a la hora de adaptarlo y lo mejor, tiene cliente para toda las plataformas.
En este caso, realizaremos la instalación de Rocket.chat en docker, por el cual no importara la distribución linux que utilicemos, pero en este caso utilizare Centos 7 como host de mis contenedores para hacer el despliegue.
Instalación:
Vamos a usar varios contenedores y para lograr la comunicación entre ellos, se usara Docker Compose, el cual nos permite hacer despliegues de servicios el cual involucra varios contenedores.
Docker:
Instalamos docker usando el script que se encuentra en su pagina oficial.
wget -qO- https://get.docker.com/ | sh
Al finalizar el proceso usamos systemctl para subir el servicio y dejarlo habilitado para que inicie cuando se inicie el servidor.
systemctl start enable
systemcl enable docker
Autentificación LDAP Vtiger CRM 6
Jan 19Vtiger es un CRM de código abierto muy potente que trata de acercarse a grandes crms como salesforce y SugarCRM, pero en esta ocasión veremos como autentificarlo hacia LDAP.
Con un gran compañero de la compañía Gabo, logramos hacer la autentificación continuación describo los pasos para lograrla.
Para lograr la autentificación debemos usar los archivos de autentificación de Vtiger de 5.x, estos archivos los encuentran en github.
https://github.com/braybaut/ldap-vtiger
Howto: como crear un contenedor de datos en docker
Jan 13los contenedores no son persistentes en sus datos al ser ejecutados, esto quiere decir que al terminar una ejecución de un contenedor este pierde sus datos.
Existen varias practicas para realizar la persistencia de los datos, en esta ocasión usaremos un contenedor de datos ( data container) para hacer la persistencia.
Este contenedor solo guardara la información que se requiere sea persistente, no es necesario que este iniciado ya que lo podemos compartir sin necesidad de que este ejecutado.
Docker: Ingresar al bash de un contenedor iniciado | Script
Jan 12Ultimamente he trabajado mucho con docker y en el maravilloso recorrido que he tenido con docker se me presento un problema gigante, inicio el contenedor con su servicio pero por X o Y motivo quiero ingresar al bash y el “docker attach” no funciona porque el docker no lo inicie con /bin/bash
Una solución es abrir el puerto 22 e ingresar por ssh, pero no es la gracia trabajar de esta manera ya que estamos con container. Navegando por la red encontré un comando un poco largo para poder ingresar al bash del container y un compañero de la compañía donde trabajo también me paso uno parecido, pero me pareció algo fastidioso usar un comando largo para ingresar al bash entonces me tome la tarea de crear un script para que me facilite esta tarea, se los mostrare: