Skip to content

Instantly share code, notes, and snippets.

View donkeysharp's full-sized avatar
💭
Breaking it... Fixing it... Dreaming it... Coding it...

Sergio Guillen donkeysharp

💭
Breaking it... Fixing it... Dreaming it... Coding it...
View GitHub Profile
@donkeysharp
donkeysharp / devops-bootcamp-sesion-4.md
Last active July 10, 2026 02:52
Resumen Sesión #4

Resumen Sesión #4

En esta sesión vimos varios conceptos:

  • RDS para manejo de base de datos
  • IAM Roles. Los IAM roles son similares a los usuarios, solo que sus keys son temporales y no estáticas, que es una buena práctica desde el punto de vista de seguridad. Por otro modo vimos que podemos asignarle a un servicio de AWS un IAM Role para que pueda ejecutar ciertas acciones en nuestro nombre, como por ejemplo que un servicio ECS envie logs a Cloudwatch.
  • Desplegando servicios en un cluster ECS

Resumen Sesión #3

En esta tercera sesión dimos el salto de la infraestructura hacia el empaquetado de nuestra aplicación. Vimos Docker como una forma de empaquetar aplicaciones junto con todas sus dependencias, de manera que puedan ejecutarse de forma consistente sin importar el entorno.

Ejecutamos la aplicación localmente dentro de un contenedor, comprobando que todo lo que necesita para correr viaja dentro de la imagen.

Luego aprendimos a escanear vulnerabilidades en una imagen de Docker utilizando Trivy, lo cual nos permite detectar problemas de seguridad antes de llevar nuestras imágenes a producción.

También vimos cómo reducir el tamaño de la imagen aplicando algunas optimizaciones, terminando con una versión slim de la imagen de Node.js. Una imagen más pequeña significa builds más rápidos, menos superficie de ataque y despliegues más ágiles.

Resumen Sesión #1

Durante toda el bootcamp simularemos que somos el equipo de devops para una empresa que tiene una aplicación que genera facturas en pdf. Mostramos la aplicación y el siguiente repo. Solo es importante que vean que es lo que tecnologías utiliza principalmente, no tanto la implementación. Inicialmente, es importante orientarnos más en cómo desplegar esta aplicación.

De momento esta aplicación esta corriendo todo en una instancia ec2. Aplicación + base de datos. Que no es el escenario ideal, entonces como equipo devops, comenzaremos a mejorar esta infrastructura pensando en futuro en alta disponiblidad, escalabilidad y observabilidad.

En esta primera sesión vimos como crear la infraestructura de red base. Una VPC con dos subredes publicas, dos subredes privadas, tablas de ruteo, NAT Gateway e Internetgateway.

- Correr todo el proyecto y probar localmente
- Destriparlo y dejar solo lo necesario para la parte de canary tokens http
- Abstraer la logica de canary tokens de manera que sea golang idiomatic
- Despues de abstraer, portar la logica de http a golang
- Inicialmente hacer un cli y la funcionalidad http trabaje correctamente
- Comenzar a portar los demás tipos de canary token
- Diseñar nuevo sistema de notificaciones (slack, telegram, etc.)
- Crear interfaz web
Nice to have features:
<!DOCTYPE html>
<html lang="en">
<head>
<link href="https://vjs.zencdn.net/7.4.1/video-js.css" rel="stylesheet">
</head>
<body>
<video id="player" class="video-js vjs-default-skin" controls="controls" width="640" height="360">
<source src="http://35.87.156.90:8080/hls/stream.m3u8"
type="application/x-mpegURL" />
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Live Streaming</title>
<link href="//vjs.zencdn.net/5.8/video-js.min.css" rel="stylesheet">
<script src="//vjs.zencdn.net/5.8/video.min.js"></script>
</head>
<body>
<video id="player" class="video-js vjs-default-skin" height="360" width="640" controls preload="none">
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
General
Complete name : evo-telefono.mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42 (isom/mp41/mp42)
File size : 6.41 MiB
Duration : 1 min 2 s
Overall bit rate : 857 kb/s
Encoded date : UTC 2019-11-21 12:31:56
Tagged date : UTC 2019-11-21 12:31:59
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=H, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>Soy un servidor víctima!!! :D</h1>
@donkeysharp
donkeysharp / hackmeeting.py
Created September 13, 2019 13:05
Hackmeeting0x7e3 animation
from asciimatics.effects import Stars, Print
from asciimatics.particles import RingFirework, SerpentFirework, StarFirework, \
PalmFirework
from asciimatics.renderers import SpeechBubble, FigletText, Rainbow
from asciimatics.scene import Scene
from asciimatics.screen import Screen
from asciimatics.exceptions import ResizeScreenError
from random import randint, choice
import sys