1 00:00:04,660 --> 00:00:57,070 Buenos días. Sí, por supuesto, estoy de acuerdo. Vale, genial. Muchas gracias. 2 00:01:11,769 --> 00:01:17,680 ¿Se está viendo ya la presentación? Vale. Genial. 3 00:01:18,739 --> 00:01:24,159 Bueno, pues voy a proceder a la presentación de mi proyecto, la implementación Docker con S-Cloud. 4 00:01:25,340 --> 00:01:32,439 Lo primero, voy a presentar cómo se va a desglosar esta presentación en estos puntos que muestra el índice. 5 00:01:32,439 --> 00:01:49,519 Lo primero, haré una pequeña introducción, expondré los objetivos generales y específicos, voy a comentar las tecnologías utilizadas en la infraestructura, la metodología que se ha seguido con sus diferentes fases, voy a hacer hincapié en dos de ellas, concretamente, que es la de despliegue y configuración y la de pruebas. 6 00:01:50,299 --> 00:01:54,739 Luego voy a comentar los posibles contextos laborales en los que sería aplicable este entorno, 7 00:01:55,920 --> 00:02:00,560 las conclusiones técnicas y lecciones aprendidas gracias a este proyecto 8 00:02:00,560 --> 00:02:05,340 y por último las vías futuras con las que se mejoraría esta infraestructura. 9 00:02:07,159 --> 00:02:14,539 Empezando por la introducción, este proyecto se basa en la implementación en Docker de una infraestructura cloud basada en contenedores 10 00:02:14,539 --> 00:02:20,580 queriendo simular la infraestructura de una empresa sencilla pero a la vez completa. 11 00:02:20,580 --> 00:02:29,139 Por eso vamos a utilizar servicios adicionales para cubrir esas necesidades que puede llegar a tener una empresa a día de hoy. 12 00:02:30,000 --> 00:02:36,379 El objetivo general del proyecto, por supuesto, es la propia implementación de esta infraestructura con Docker 13 00:02:36,379 --> 00:02:42,740 y la utilización de Portainer como herramienta de gestión gráfica para la administración del entorno. 14 00:02:42,740 --> 00:02:56,840 Como objetivos específicos, tendríamos el despliegue de estos servicios para cubrir las necesidades que he comentado antes en contenedores, los cuales son almacenamiento en la nube, backups, dashboards y monitorización. 15 00:02:57,819 --> 00:03:04,479 También la realización de pruebas del entorno para validar la integridad del dato y la estabilidad del mismo. 16 00:03:05,819 --> 00:03:11,099 La documentación de este proceso para que pueda ser replicable por otro técnico o otro departamento de técnicos. 17 00:03:11,099 --> 00:03:16,419 Y por último la comparación de este sistema de contenedores con la virtualización tradicional. 18 00:03:16,419 --> 00:03:43,300 Bueno, pues en cuanto a las tecnologías utilizadas, bueno, como he comentado antes, para el sistema de contenedores voy a utilizar Docker y Portainer para la gestión gráfica, para almacenamiento en cloud he utilizado Nextcloud junto con MariaDB, que necesita de MariaDB para su funcionamiento, y un servicio de Redis, el cual ha solucionado problemas de bloqueos entre usuarios concurrentes y caché. 19 00:03:43,300 --> 00:03:55,740 Por otro lado, para el tema de backup, de copias de seguridad, hemos empleado Duplicati, sobre todo por ese cifrado AS256 que le proporciona una capa adicional de seguridad al dato. 20 00:03:56,500 --> 00:04:08,979 Para la monitorización tenemos una configuración dual. Por un lado es Uptime Cuma para la monitorización de la disponibilidad del servicio y por otro NetData para los recursos del servidor. 21 00:04:09,960 --> 00:04:16,480 Como dashboard he utilizado Homer para tener un acceso directo a todos los servicios desde un solo panel de control. 22 00:04:16,980 --> 00:04:20,399 El sistema operativo elegido ha sido Ubuntu Server 2204. 23 00:04:21,579 --> 00:04:24,439 En cuanto a la metodología, se ha dividido en cuatro fases. 24 00:04:25,180 --> 00:04:28,519 La investigación, la de despliegue, la de pruebas y la de documentación. 25 00:04:28,519 --> 00:04:38,560 La de investigación se ha basado principalmente en el análisis de tecnologías y en valorar qué opciones podrían ser las óptimas para implantarlas en esta infraestructura. 26 00:04:38,980 --> 00:05:02,899 En la fase de despliegue se ha realizado la instalación de Docker y de Portainer y la creación de los stacks de los servicios que hemos mencionado antes. En la fase de pruebas se han realizado dos diferentes pruebas, una de rendimiento contra Nextcloud para valorar el rendimiento del servidor y la validación de backups y restauración de los mismos para comprobar la integridad del dato. 27 00:05:02,899 --> 00:05:12,920 Y por último, la de documentación, la cual conlleva englobar toda la información recogida en las tres fases anteriores y redactar el proyecto. 28 00:05:14,540 --> 00:05:23,800 Haciendo un poco más de énfasis en la fase de despliegue y configuración, se ha realizado la instalación de Docker en Ubuntu, la instalación y configuración de Portainer. 29 00:05:23,800 --> 00:05:29,800 y una vez ya teníamos la herramienta gráfica para la administración, ayudándonos de ella, 30 00:05:29,899 --> 00:05:34,000 hemos creado los stacks por cada uno de los servicios con Docker Compose, 31 00:05:34,300 --> 00:05:38,420 aprovechándonos de la funcionalidad de Web Editor que proporciona Fortinet 32 00:05:38,420 --> 00:05:45,959 y a continuación la configuración e integración de cada servicio entre ellos según las necesidades que quisiéramos cubrir. 33 00:05:46,959 --> 00:05:52,459 En la fase de pruebas, hemos realizado unas pruebas de rendimiento con Apache Benchmark. 34 00:05:52,459 --> 00:06:20,579 Han sido tres diferentes pruebas de rendimiento, de login y autenticación, listado de archivos y subida de archivos. Con esto se ha querido poner a prueba si el dimensionamiento del servidor cumplía con las expectativas de aguantar la carga con la que se le había estipulado y las ha superado con creces, incluso se le ha expuesto a más peticiones y más usuarios concurrentes del contexto inicial y aún así ha sido capaz de responder y soportar esa carga. 35 00:06:20,579 --> 00:06:32,199 Por otro lado, otra de las pruebas es la validación de backups de NesCloud con Duplicati. Tengo dos copias de segura diferentes, una para datos de usuario y otra para las configuraciones y las bases de datos. 36 00:06:32,699 --> 00:06:38,579 Ambas se han restaurado satisfactoriamente, validando que el dato es íntegro y los backups son consistentes. 37 00:06:38,579 --> 00:06:44,759 consistentes. A continuación voy a exponer los posibles contextos laborales en los que se podría 38 00:06:44,759 --> 00:06:51,139 aplicar esta infraestructura, como se llaman pymes, el sector educativo, los equipos de TI y startups. 39 00:06:51,660 --> 00:06:56,560 En cuanto a las pymes, sobre todo se destaca que tendrían un control total de los datos frente a 40 00:06:56,560 --> 00:07:02,459 otros servicios de cloud externos, además tendrían un ahorro en costes por los datos recurrentes de 41 00:07:02,459 --> 00:07:07,500 licencias que los servicios externos conllevan y se beneficiarían del cifrado de datos que les 42 00:07:07,500 --> 00:07:21,079 les proporciona mayor seguridad en el dato. En cuanto al sector educativo, tendrían una fácil compartición de materiales, una compartición segura, podrían crear carpetas para compartir esos recursos, 43 00:07:22,360 --> 00:07:35,100 podrían aprovechar el cifrado de datos para el dato más crítico, para el dato sensible, como podrían ser los expedientes académicos y podrían hacer uso del panel de control de Homer 44 00:07:35,100 --> 00:07:49,899 como una especie de portal para tener acceso a los recursos. En cuanto a los equipos de TI, hemos valorado que favorecería mucho y simplificaría mucho las labores de escalabilidad y de gestión del entorno 45 00:07:49,899 --> 00:08:02,680 gracias a Portainer, ya que en caso de tener que desplegar un servicio nuevo, simplemente con una plantilla podrían desplegarlo o incluso simplemente si hiciese falta tener una instancia más 46 00:08:02,680 --> 00:08:08,620 de un servicio ya desplegado se escalaría un contenedor frente a la virtualización tradicional 47 00:08:08,620 --> 00:08:14,379 la cual conllevaría pues el despliegue de otro servidor su configuración y posterior la 48 00:08:14,379 --> 00:08:21,160 instalación del servicio y en cuanto a las startups sobre todo por su situación destacaríamos la 49 00:08:21,160 --> 00:08:26,259 reducción de costes iniciales que les supondría ya que todas las tecnologías que utilizamos todas 50 00:08:26,259 --> 00:08:30,819 las tecnologías software son de código abierto con lo cual no tenían que pagar ninguna licencia 51 00:08:30,819 --> 00:08:37,720 inicial y el tema del crecimiento del entorno iría de la mano de la demanda de crecimiento 52 00:08:37,720 --> 00:08:43,000 de la empresa podrían crecer escalando contenedores en función de su propio crecimiento 53 00:08:44,720 --> 00:08:50,179 bueno como conclusiones de este proyecto la principal es que se ha demostrado la viabilidad 54 00:08:50,179 --> 00:08:56,820 de la creación de una infraestructura empresarial simple pero completa basada en un contenedores 55 00:08:56,820 --> 00:09:17,320 Docker, utilizando Portainer como herramienta de gestión gráfica, lo cual ha facilitado la posibilidad de, sin un gran conocimiento técnico, poder, que bueno, justo se junta con la siguiente conclusión, poder integrar exitosamente los servicios comentados de almacenamiento, sistema de vacas, panel de control y monitorización. 56 00:09:17,320 --> 00:09:35,039 Y bueno, he querido destacar también esta serie de lecciones aprendidas gracias a este proyecto, como es la eficiencia de recursos de los sistemas de contenedores frente a la virtualización tradicional, ya que se consumen menos recursos que un servidor tradicional. 57 00:09:35,039 --> 00:10:02,039 También la seguridad que proporciona el cifrado de datos, la estabilidad que se ha podido demostrar gracias a las pruebas de rendimiento exponiéndole a cargas de peticiones y usuarios concurrentes, la importancia de emplear volúmenes Docker para la persistencia de datos críticos y evitar su pérdida y la necesidad de automatizar los backups y la monitorización porque al final son puntos clave para el mantenimiento de la infraestructura. 58 00:10:02,039 --> 00:10:31,100 Bueno, y por último, quería destacar las posibles vías futuras para mejorar este entorno, como sería la migración de esta infraestructura a Kubernetes para una orquestación avanzada, incluso la inclusión en un clúster de Kubernetes, la migración de los contenedores a pods para implementarlo dentro de Kubernetes y la posibilidad incluso de automatizar la escalabilidad. 59 00:10:32,039 --> 00:10:41,600 Otro punto que podríamos mejorar sería la integración de este entorno con el Active Directory para tener un control de la gestión y de acceso de los usuarios. 60 00:10:42,500 --> 00:10:56,860 Y por último, el empleo de un proxy inverso para la gestión de tráfico englobando todos los servicios en un mismo certificado SSL y no tener URLs como las que tenemos ahora que son menos amigables cada uno con su puerto. 61 00:10:56,860 --> 00:11:02,220 Y bueno, esto ha sido mi presentación. Muchas gracias. 62 00:11:04,159 --> 00:11:41,620 Pues principalmente, lo he comentado así un poco por encima, con el caso del contexto laboral del equipo de TI. 63 00:11:41,820 --> 00:11:53,240 Cuando se quiere implementar un servicio, un servicio de backup o el que sea, al final el hecho que conlleva el despliegue de un nuevo servidor, 64 00:11:53,240 --> 00:12:11,840 En mi punto personal, conlleva bastante más labor el despliegue de un servidor, la instalación dentro del servidor del servicio y dentro de contenedores simplemente con una plantilla recogiendo los valores y los parámetros que necesitamos para el servicio. 65 00:12:11,840 --> 00:12:20,460 se despliega de una manera mucho más rápida en caso de necesitar más instancias de ese servicio. 66 00:12:20,600 --> 00:12:26,139 Simplemente escalando ese contenedor ya tendríamos más capacidad de trabajo de ese proceso 67 00:12:26,139 --> 00:12:36,899 frente a que en un servidor tradicional, de virtualización tradicional, considero que es bastante más laborioso el proceso. 68 00:12:36,899 --> 00:12:50,159 Incluso en el momento de arranque de los contenedores, cuando se inicia el servidor que tiene instalado Docker, se arrancan los contenedores. Es un arranque mucho más rápido que lo que sería dentro de un servidor virtual tradicional. 69 00:12:50,159 --> 00:13:33,029 Pues principalmente he tenido en cuanto a los backups de la base de datos de MariaDB, de Nest Cloud, me he encontrado con que no tenía un backup diario en caso de que hubiese algún tipo de problema, corrupción de datos o incluso en el proceso de instalación se modificase un valor que no se quería. 70 00:13:33,029 --> 00:13:43,250 no tenía un backup diario o estable para recuperarlo. Entonces me he tenido que crear un pequeño script dentro del servidor 71 00:13:43,250 --> 00:13:47,649 para que haga un dump de la base de datos y así tener esa copia de seguridad a mano. 72 00:13:48,250 --> 00:13:56,490 Otro caso que me he encontrado ha sido, lo he comentado cuando he puesto la parte de las tecnologías, 73 00:13:56,490 --> 00:14:03,250 que me he encontrado con errores de bloqueo por usuarios concorrentes dentro de Nesclav. 74 00:14:03,409 --> 00:14:09,590 Entonces, estuve informándome y vi que efectivamente con Redis hace una gestión de los bloqueos 75 00:14:09,590 --> 00:14:16,210 y de la cache, lo cual permite esa petición concorrente de los usuarios a un mismo fichero. 76 00:14:17,350 --> 00:14:22,389 Y bueno, por supuesto también en el tema de los volúmenes de logro. 77 00:14:22,389 --> 00:14:29,470 No ha sido realmente un problema, pero sí una solución a un posible problema que me podría haber elegido 78 00:14:29,470 --> 00:14:33,809 si no lo supe simplemente para la resistencia de los datos. 79 00:14:51,059 --> 00:15:00,799 Tenía en mente el implementar más seguridad, bueno, ya lo había dicho yo, en lo que sería como la base de una infraestructura. 80 00:15:00,799 --> 00:15:09,279 No me he metido tanto en el sector de la agilidad, pero bueno, la verdad es que es un autor de este tipo de figuras. 81 00:15:09,440 --> 00:15:47,059 Bueno, una vez dado, permite el empleo de un próximo agresor culturístico. 82 00:15:47,519 --> 00:15:47,720 Gracias.