Trabajo práctico de final de curso - perfeccion-ar/infraestructura-clasica-y-avanzada GitHub Wiki
Como hemos anticipado, el alumno se hará acreedor al final de su cursado, de un título expedido por Fundación Islas Malvinas y por Perfeccion.Ar
Es decir, el alumno es competente para administrar servidores, VPS, containers LXD, o Proxmox
Se agregan al título, si el alumno es capaz de incluir las siguientes tecnologías en su proyecto
- DEVOPS: el alumno trabajó con un mínimo de dos containers docker
- Configuration Management: el alumno empleó Ansible, Puppet, Cheff, etc
- CI/CD: el alumno despliega usando Jenkins, Gitlab CI, Github Actions, etc
- SRE: el alumno emplea un cluster: Swarm o Kubernetes, y monitorea con Grafana y Prometheus.




Créditos: algún creativo tras una reunión Post Morten en Latam
En su container LXD / Proxmox, y creando al menos dos servicios, el alumno debe elegir 1 (una) de las siguientes tecnologías y enlazarlo a una base de datos: MySQL, María, PostgreSQL. Mongo es optativo, pero no reemplaza un RDBMS.
Algunos de estos stacks los hemos visto, y otros, para no sobrecargar, no. Pero podemos dar apoyo al respecto. Algunas stacks sobre los cuales tenemos experiencia y podemos ofrecer apoyo.
La consigna es que deben incluir al menos una base de datos en el proyecto.
- LAMP con
- Wordpress
- Moodle
- Joomla
- Python
- Flask
- Django
- Streamlit
- NodeJS / NextJS / Vue
- Ruby
- Rails
- Sinatra / Padrino
- Java
- Tomcat
- JBoss
- Jetty
- Otras tecnologías / stacks que proponga el alumno: Ejemplo
- n8n
- Odoo
- etc
- Otros stacks fácilmente desplegables, que ya vienen con base de datos, y que son lindos para mostrar a los compañeros una vez desplegados:
- Gitlab-CE
- Bitbucket
- Youtrack
- Jenkins
El alumno puede usar VPS propia, o un container LXD / Proxmox asignado por el profesor, en los tiempos libres que se asignan a tal fin. Se recomienda contratar una VPS barata, propia, si desea recibirse lo antes posible y no lidiar con nuestras capas de seguridad.
El sistema tiene que estar desplegado públicamente, no solo "corriendo en la máquina personal".
Para la entrega de este trabajo práctico debe cumplir con los siguientes requisitos:
- Debe entregarse funcionando, es decir, que puedan verse ambos contenedores entre sí (ej: sistema Front y/o Backend, con la base de datos).
- Se debe presentar subido a un repositorio en Github / Gitlab / Bitbucket, etc.
- El profesor debe tener permiso Dev para subir parches a alguna rama, en forma asíncrónica. No hace falta nivel Owner (permisos máximos) - Permiso Maintainer puede ser también, si el alumno no tiene experiencia mergueando a Main y necesita ayuda.
- Debe tener documentación en Markdown (README.md), con instrucciones de deploy.
- Es decir, debe ser reproducible durante la presentación.
- Antes de la presentación, puede ser exigido que corra en un ambiente limpio.
- No puede haber 2 proyectos iguales
- Máximo tamaño de grupo: dos personas. Cada persona no puede estar en más de un grupo.
- No hay plazo de entrega para el trabajo. El alumno puede integrarse a nuevas comisiones que comiencen cada nuevo año, si necesita reforzar algún contenido.
- Cuando esté listo, el proyecto debe ser presentado en clase. Debe tener la calidad suficiente como para ser presentado incluso en alguno de los grupos que frecuentamos, Andes Tech / Underc0de
- Debe incluir el texto de alguna licencia libre que permita a nuestro grupo usarlo de ejemplo para futuras clases, e incluso forkearlo, modificarlo, corregirlo, etc. Hay varias licencias libres por allí. GPL, BSD, Creative Commons, etc.