Machine-0
¡Desata tu potencial con tu propia nube en tu PC!
🚀 ¿ Qué es Machine-0?
Machine-0 Es el resultado de combinar el poder de los contendores(docker) y Kubernetes junto con la magia de Linux y en este caso, el potencial de las máquinas virtuales (VM) para crear entornos de desarrollo 🖥️, tanto para tus proyectos profesionales 🤓, como también en entornos de aprendizaje. 📚.
Machine-0 es una plataforma que te permitirá configurar cualquier stack tecnológico moderno, desde desarrollo desarrollo Full-Stack y Machine Learning hasta DevOps y MLOps y mucho más. 💻 Además, te ofrecemos la magia de realizar todo esto en contenedores, ¡incluso múltiples contenedores Linux! 🐧🔮 como si tuvieses no solo una sino múltiples máquinas virtuales.
Machine-0 esta soportado sobre docker & Linux, así que si es compatible con Linux, ¡probablemente se pueda ejecutar en DevBox! 🤖💾
Machine-0 es una plataforma, tanto local como en la nube(Azure, Google, Amazon), donde podrás configurar todo un stack tecnológico en cuestión de segundos, ya sea utilizando tus propios recursos tecnológicos o en la nube.
Machine-0 Cloud es nuestra plataforma de aprendizaje en la nube donde contamos con hardware de alto nivel. Los contenedores se ejecutan en una CPU AMD EPYC 7763 con 8 núcleos. La memoria total del sistema es de 64251 MiB(64 Gigas)
Machine-0
¿Por qué Machine-0?
La mayoría de los profesionales en el mundo tech están acostumbrados a configurar sus entornos de desarrollo de manera tradicional o lo que es lo mismo configurando todo en un mismo host. Ya sea que desarrolles modelos de machine learning como científico de datos, trabajes con tecnologías como Airflow como ingeniero de datos, o estés involucrado en el desarrollo full-stack, devops, mlops, etc., todos hemos configurado nuestros entornos de desarrollo de la misma manera. No importa si estás en Windows o MacOS, todos seguimos el proceso tradicional de instalación y configuración de programas. Descargar/Instalar 🛠️
¿Y cual es el problema? Es un proceso laborioso y propenso a errores. 😓
La razón de esto radica en que en un mismo host se pueden encontrar tanto los programas que utilizas en tu ámbito profesional como tus aplicaciones personales. Esto puede provocar conflictos entre programas, librerías etc. Lo que dificultar tu flujo de trabajo.
Maquinas Virtuales
La pregunta sería: "¿Existe una mejor forma de hacerlo?" La respuesta es sí. Y nos referimos a las máquinas virtuales. Las máquinas virtuales (VM) tienen la capacidad de ejecutar un sistema operativo completo 100% aislado del sistema operativo host, permitiéndonos configurar solo lo que nos interesa. Sin embargo, las VM no resuelven del todo el problema anterior, simplemente nos ahorran una parte del problema, ya que al final todo se debe seguir configurando en la VM sin aislar las aplicaciones y programas entre sí que son el verdadero problema.
Contenedores Dev
Entonces, si las maquinas virtuales no resuelven el problema al 100% ¿Qué solución existe? La respuesta son los contenedores Dev
. Imagina una PC donde pudieras instalar o desinstalar lo que quisieras en cuestión de segundos, reiniciarlo a la velocidad del rayo, destruirlo y reconstruirlo cuantas veces desees. Y lo mejor de todo, imagina que pudieras tener no solo un PC, sino varios, cada uno con configuraciones diferentes para diferentes casos de uso. Pues esto es posible creando contenedores Dev.
Los contenedores Dev tienen la capacidad de ser configurados con tus herramientas y lenguajes de programación preferidos, como Python, JavaScript y herramientas de desarrollo como Git, Vim, Nano, SSH, entre otros, al mismo tiempo que te permiten controlar otros contenedores que contienen aplicaciones más grandes, como una base de datos. Estos contenedores se pueden configurar según tu rol profesional:
¿Cómo funciona?
Sencillo: Machine-0 usa clusters de Kubernetes "K8s" para desplegar Pods o contenedores. Estos contenedores los usamos como Dev Containers o Entornos de desarrollo remoto.
Nuestra plataforma Machine-0 está soportada con VMware y las maquinas virtuales VMware Workstation Pro. Esto significa que cuando accedes a nuestros contenedores, estás accediendo inmediatamente a una máquina virtual preconfigurada para ejecutar Kubernetes junto con pods también preconfigurados para el desarrollo.
¿Qué puedo hacer en Machine-0?
En el siguiente video nos conectaremos al pod(contenedor maestro) devx0
y dentro de este contenedor desplegaremos dos contenedores: PostgreSQL y PGAdmin. Por un lado PostgreSQL es una de las bases de datos más usadas en la actualidad y PGAdmin es un gestos de bases de datos con interfaz grafica. Todo esto sucede dentro del DevBox
.
Una de las grandes ventajas de Machine-0 es que tiene la capacidad de ejecutar docker dentro del mismo contenedor(Pod) a esto se le llama docker in docker(dind). Ejecutar Docker dentro de un contenedor Docker (DinD) en el desarrollo ofrece ventajas como la encapsulación de entornos de desarrollo, un aislamiento mejorado para prevenir conflictos, la capacidad de probar configuraciones complejas y ejecutar pruebas de integración de manera aislada, flexibilidad en la construcción de imágenes Docker, y una mejor compatibilidad con herramientas de integración continua y entrega continua, lo que permite a los equipos de desarrollo trabajar de manera más eficiente y segura con aplicaciones basadas en contenedores.
¿Qué resuelve Machine-0?
Machine-0 ha sido diseñado pensando en resolver un problema cada vez más común tanto en los entornos de desarrollo profesional: La configuración y el mantenimiento de entornos de desarrollo.
Replicar un entorno de desarrollo para que funcione exactamente al día 1
a lo largo del tiempo es un gran desafío. Nuestro contenedores de desarrollo permite configurar estos entornos para que sen 100% inmutables lo que significa que los contenedores, una vez creados, no se modifican ni se actualizan. En lugar de ello, si es necesario realizar cambios en la aplicación o el entorno de ejecución, se despliegan nuevos contenedores con los cambios incorporados en lugar de modificar los contenedores existentes.
¿A quien esta dirigido Machine-0?
Dado que DevBox crea entornos de desarrollo para DevOps, Data Engineering, Data Science, Desarrollo Full Stack, MLOps, entre otros, en Machine-0 puedes desarrollar tus cargas de trabajo profesionales, proyectos personales, rutas de aprendizaje, o utilizarlo como plataforma para el desarrollo y mejora de tus habilidades. No importa cuál sea tu rol profesional, con nuestros entornos de desarrollo podrás configurar todo un stack tecnológico para potenciar, acelerar y optimizar todas las cargas de trabajo que requieras.
Machine-0 hace uso de tres tecnologías clave:
🐧 Linux 🐳 Docker(Contenedores) ☸️ Kubernetes.
En la actualidad, Linux
es el sistema operativo más utilizado en el mundo de las tecnologías🌍, y casi todas las aplicaciones de software e infraestructuras tecnológicas en el mundo se ejecutan en Linux. Por otro lado, Docker
cambió la forma en que creamos aplicaciones y las implementamos en producción 🏭, resolviendo multitud de problemas antes de la aparición de los contenedores. Finalmente, Kubernetes
, conocido como el sistema operativo de la nube ☁️ o la aplicación definitiva para gestionar contenedores 📦. Es nuestro principal componente en nuestra plataforma.
Con estos "ingredientes" (Linux, Docker, Kubernetes) 💡, creamos DevBox, la primera plataforma de entrenamiento tecnológico en la nube. 🌟"
¿Cómo Funciona Machine-0?
Machine-0 esta soportado en Maquinas Virtuales(VM) y utiliza clústeres de Kubernetes y contenedores de desarrollo. Para conectarse a estos clústeres de Kubernetes, se utilizan dos componentes clave:
- Visual Studio Code: Este es el editor de código más ampliamente utilizado en la industria TECH y preferido por la mayoría.
- Extensión Remote Development (Extensión VSCode): Esta poderosa extensión permite desarrollar código en una máquina remota, ya sea un servidor, una máquina virtual o, en nuestro caso, contenedores alojados en Kubernetes. Esto brinda la ventaja de aprovechar la mayor potencia de procesamiento y los recursos específicos de la máquina remota sin sacrificar la comodidad y las funcionalidades de Visual Studio Code. La extensión Remote Development permite que VS Code funcione de la misma manera en un contenedor remoto o en un entorno local, lo que supone una ventaja significativa.
Desarrollo Soportado en Contenedores: 📦🔗
El desarrollo soportado en contenedores permite la configuración de entornos aislados y replicables 🛡️.
Los profesionales que usan nuestra plataforma Machine-0
cuentan con un entorno de desarrollo basado en contenedores. Siguiendo la filosofía de los contenedores y el enfoque Cloud Native, aprenderás a trabajar con microservicios. Además, los contenedores permiten replicar entornos de desarrollo exactamente iguales, lo que elimina problemas comunes como "a ti te funciona pero a mí no" o "instalé este programa pero obtuve este error" 🤦♂️🤷♀️. Estos problemas son frecuentes incluso para los desarrolladores más experimentados
Desarrollo 4x: 🚀
La velocidad es esencial desarrollo de cualquier tecnología, ya que las tecnologías evolucionan rápidamente 📈. Con nuestra plataforma soportada en contenedores, impulsamos la velocidad del desarrollo al permitirte trabajar con múltiples tecnologías simultáneamente
Además de lo mencionado, trabajar en un entorno Linux real te permitirá acelerar cualquier trabajo o proyecto o acelerar tu ruta de aprendizaje o mejorar tus actuales Skills.
Pero lo más importante, trabajar en contenedores te ahorra mucho tiempo al liberarte de las configuraciones técnicas de un PCs 🖥️.
¿Corre en mi PC/Laptop?
La repuesta rápida corta es sí, ya que la mayoría de los PC desde 2011 soportan el primer requisito que es la virtualización.
Los requisitos específicos para ejecutar máquinas virtuales pueden variar dependiendo de las cargas de trabajo que quieras implementar(no es diferente a los requisitos que usarías en tu host local).
DevBox viene preconfigurado con Ubuntu Server sin interfaz gráfica para reducir al mínimo el consumo de memoria RAM, lo que permite que DevBox utilice solo 350 MB de memoria RAM como base principal.
Sin embargo, aquí hay algunos requisitos generales que podrían ser útiles:
-
Hardware de la PC:
- Procesador (CPU): Un procesador moderno con soporte para virtualización por hardware (Intel VT-x o AMD-V). Cuantos más núcleos tenga, mejor será la capacidad de ejecutar cargas de trabajo.
- Memoria RAM: Se recomienda tener al menos 8 GB de RAM, pero cuanto más tengas, mejor. La cantidad necesaria dependerá del número y la carga de trabajo de las máquinas virtuales.
- Almacenamiento (Disco Duro o SSD): Deberías tener suficiente espacio en disco para alojar
DevBox
minino 10Gigas.
-
Sistema Operativo Anfitrión:
- Asegúrate de que el sistema operativo que estás utilizando sea compatible con el software de virtualización que has elegido que por lo general es con Windows 10/11 MacOS o Linux.
-
Tarjeta de red:
- Para conectar las máquinas virtuales a redes virtuales o físicas.
-
Tarjeta gráfica:
- Aunque no es un requisito estrictamente necesario, una tarjeta gráfica dedicada puede mejorar el rendimiento, especialmente si planeas utilizar aplicaciones que requieran una cantidad significativa de recursos gráficos dentro de DevBox como cargas de trabajo IA, Machine Learning o Deep Learning.
¿Cómo accedo a Machine-0?
Machine-0 empaqueta todo el software en imágenes ISO del sistema operativo en este caso Ubuntu Server. Esta imagen ISO es una representación digital de todo el contenido DevBox. Esto incluye todos los archivos necesarios para iniciar y configurar Machine-0 en cualquier computadora.
Estas imágenes ISO Machine-0 son utilizadas para distribuir versiones Machine-0 donde empaquetamos nuevas actualizaciones tanto de sistema operativo como de las diferentes versiones de Kubernetes, Docker, y los diferentes contenedores para ciencia de datos e ingeniería de datos. Los usuarios pueden descargar estas imágenes ISO para luego instalar Machine-0 en tu computadora.
Soporte
Una vez adquieras DevBox recibirás soporte directo para ayudarte con la configuración en tu PC/Laptop. Esto con una capacitación individual para que aprendas a sacarle el máximo provecho a Machine-0.