Enviado por suzanneelhada el Jue, 05/09/2019 - 18:18
kubernetes

 

Sumergiéndonos en “Contenedores”...

Venimos de dar un paseo por los conceptos: virtualización, paravirtualización y emulación; ahora tomaremos aire, porque vamos a sumergirnos en “Contenedores”. Todos conocemos qué es un contenedor y para qué se usan, sin embargo lo voy a repetir para poder ubicarnos en el contexto. Un contenedor es un recipiente de carga, normalizado bajo las normas ISO internacionales, el cual transporta carga pesada o voluminosa, y también mercancía a granel o paletizada. Estos contenedores surcan los océanos de nuestro planeta sobre unos espectaculares buques cargueros; y lo hacen cada vez de manera más eficiente, ya sea utilizando mejores rutas de transportación, con planes estratégicos de tiempos y hasta mediciones marítimas y de clima, todo esto con el fin de cumplir con los objetivos que es “transporte de mercancía” de un lugar a otro.

Hablemos rápidamente del problema que resolvió este maravilloso sistema de transporte de carga; a nivel mundial en épocas pasadas fue un alivio contar con ello, y en la actualidad sigue teniendo la vigencia en su concepto puro, la óptima forma de transportación de mercancías, podemos evidenciar este problema resuelto cuando compramos mediante la tienda en línea de Amazon, sabemos lo gigante que es y el cómo utilizan este sistema para hacer llegar a su destino miles de productos cada día.

El futuro es a razón de reducción de tiempos optimización de resultados, la implementación de herramientas que logren esto, serán las que prevalezcan por encima de otras.

contenedor

Ahora necesitamos saber cómo es que es llevado el concepto anterior a los “contenedores” virtuales (en la nube), cómo es que contienen y transportan información…

¿Qué tal si comenzamos por el final?

Hoy en día tenemos una cantidad de startups bastante voluminosa, me atreveré a aseverar que a nivel mundial es un crecimiento exponencial, y voy a poner un ejemplo tomando quizás unas 100 startups aproximadamente las cuales se dirigen a un proveedor de servicios tecnológico cada día, y se preguntarán qué requiere una startup, de este tipo de proveedor; a grandes rasgos buscan desarrollo de sus apps y luego; que éstas puedan correr de manera correcta, eficiente y con la menor cantidad de problemas posible, buscan servicios de red óptimos que permitan manejar grandes bases de datos de clientes constantemente consultado dichas apps (actualmente casi todos buscan servicios cloud o en la nube y es el servicio más costoso pero más demandado también), y simultáneamente buscan que sus apps sean seguras, así mismo blindarse contra ataques maliciosos que corren por la red diariamente.

En base a lo anterior miremos el siguiente esquema:

esquema

Recordemos:

-RESOLVER DETALLES DE ALMACENAMIENTO Y RED

-POSTERIORMENTE CONFORME SE CREAN NUEVAS VERSIONES DE CADA SERVICIO ESTOS SE DESPLIEGAN DE FORMA CONTÍNUA EN LOS NODOS DE UNA DE LAS 8 FLOTILLAS ANFITRIONAS DE DOCKER.

Vemos como todo radica en la “optimización de recursos”, los cuales se podrían traducir en procesos. Al no duplicar procesos para una misma actividad obtenemos resultados ventajosos ante un pasado lleno de bugs, letargos y complejos procesos para solucionar errores en ciertos servicios.

Kubernetes, clusters, dockers… podría mentir y decir que es muy fácil de llevar a cabo, sin embargo para poder entenderlo necesitamos; pasión por este mundo, ganas y prestar la suficiente atención.

Nota importante: si te surge alguna duda al respecto utiliza la caja de comentarios o escribe directamente en el chat de discord en la sala de #virtualización y ahí podrás conversar conmigo o con cualquier otro compañero que sepa y le apasione el tema.

Glosario entre líneas:

Clúster: es un grupo de múltiples ordenadores físicos unidos mediante una red de alta velocidad. Dos tipos de clústeres;  IT comerciales (de alta disponibilidad y alta eficiencia) y

clústeres científicos (de alto rendimiento). Ejemplo: consulta Racimo Xserve del System X en el Instituto Politécnico y Universidad Estatal de Virginia.

Kubernetes: plataforma portátil, extensible y de código abierto para la gestión de cargas de trabajo y servicios en contenedores, facilitando tanto la configuración declarativa como la automatización. Fue diseñado originalmente por Google y ahora es mantenido por el Cloud Native Computing.

Pod: es la unidad operacional base para Kubernetes, son cápsulas que agregan una capa más de abstracción donde los datos son contenidos para su operación individual.

etcd: es la tienda de datos que Kubernete consulta para ir almacenando sus datos. Ejemplo: etcd permite que cualquiera de los nodos del cluster Kubernetes lea y escriba datos en él para luego ser consultados por el propio cluster.

CoreOS: Es un sistema operativo host (anfitrión) que puedes usar con Docker. Necesitamos un sistema que corra los contenedores. Ejemplo: crear una instancia de EC2, instalar CoreOS, se corre el demonio de Docker y se le añaden imágenes de Docker para que las corra.

EC2: la instancia EC2 se ejecuta como server virtual ofrecido por AWS (Amazon Web Service)

Docker: proyecto de código abierto que ayuda a gestionar el despliegue de contenedores. En sí una capa de abstracción adicional. Ejemplo: es como si presionamos un botón acelerador en nuestro auto para ir más rápido.

API: (Application Programming Interface), en sí una capa de abstracción, un encapsulado de código que hace peticiones HTTP lo que le da rostro a nuestra web, y puede ser consultado por cualquiera. Ejemplos: API de facebook, google, twitter; son consultadas a diario por millones de usuarios de páginas particulares para por ejemplo login.

Microservicio: partimos de una app monolítica y la dividimos en tareas; tantas como servicios ofrezca tu app. Ejemplos de un microservicio: login de tu app, autenticación, entre otros.

Quizás me han faltado algunos datos a los cuales hacer referencia, sin embargo esto es solo un ABC del tema, Kubernetes es un tema amplio y profundo, lleno de ramificaciones y esquemas donde se despliegan procesos largos, y si lo vemos desde la visión de un programador, aún más, por ahora me despido.

Me ha gustado muchísimo escribir este artículo para ustedes, me  he divertido y he aprendido. “Larga vida al Hacking Ético”.

Eso es todo lo que quería enseñarte, espero que haya sido de tu agrado. Si fue así, chatea con nosotros en Discord, registrate en el foro, síguenos en Facebook y Twitter, y no olvides compartirnos en las redes sociales, te lo agradecemos.

Etiquetas

Acerca del autor

Diseñadora Gráfica al servicio del software libre, amante de la tecnología. Experta en marketing internacional. Fundadora del equipo multidisciplinario Tecnotribu. Miembro activo de staff de: securityhacklabs.net, linuxespanol.net, maratonlinuxero.org
Graphic designer at the service of free software, technology-loving. Expert in international marketing. Founder of the Tecnotribu multidisciplinary team. Active staff member: securityhacklabs.net, linuxespanol.net , maratonlinuxero.org