1 00:00:11,949 --> 00:00:25,629 Vale, pues buenos días. Hoy día 19 de enero a las 9 y 22 estamos convocados a través de la Jefatura del Departamento para la defensa del módulo profesional del proyecto de ciclo formativo de grado superior de ASIC. 2 00:00:25,910 --> 00:00:40,369 Te informo de que esta defensa está siendo grabada y que dicha grabación se utilizará en el entorno cerrado de EducaMadrid con fines educativos y solo estará a disposición de los profesores y evaluadores en el aula virtual para llevar a cabo la evaluación y la calificación de la defensa del proyecto. 3 00:00:40,369 --> 00:01:00,030 En el aula virtual de proyectos habéis sido informados de los criterios y de la rúbrica de calificación. El orden de la presentación del proyecto es el siguiente, 15 minutos máximo para la defensa del proyecto, 15 minutos máximo para las preguntas por parte del tribunal. Dicho esto, tu tiempo de exposición comienza a partir de este momento. Adelante y mucha suerte. 4 00:01:00,030 --> 00:01:25,810 Buenos días, soy Rubén Marco Lacalambarero. Mi proyecto trata de un piloto para la adopción de buenas prácticas. Es una migración de una aplicación on-premise a la nube. Recordemos, una infraestructura on-premise es algo que gestiona la propia empresa, sus instalaciones físicas, al contrario que una nube, que es gestionada por terceros. 5 00:01:25,810 --> 00:01:45,170 Entonces, partimos de un escenario con unas premisas. El departamento de sistemas que vamos a estudiar tiene una infraestructura en premios con virtualización, la gestión e instalación se realiza de manera manual, 6 00:01:45,170 --> 00:02:04,109 La inconsistencia entre los entornos de preproducción y producción está a la orden del día, porque cada uno instala lo que quiere y lleva problemas. La documentación está descentralizada, incompleta, es poco fiable o soleta y el display de software y verificación se realizan de manera manual. 7 00:02:04,109 --> 00:02:12,949 Tenemos unas premisas a mejorar, la agilidad, la reproducibilidad o repetibilidad, conocimiento de la infraestructura y sistemas que la componen 8 00:02:12,949 --> 00:02:21,030 La metodología del software, la infraestructura on-premise, una habitación a la nube ya es una mejora 9 00:02:21,030 --> 00:02:24,629 Gestión manual de los servidores y los despedidos manuales 10 00:02:24,629 --> 00:02:29,650 Cogiendo por ejemplo la infraestructura on-premise, ¿qué tenemos? 11 00:02:29,650 --> 00:02:57,270 Pues tenemos los sistemas que llegan a su límite de vida, el tiempo invertido en estudios de viabilidad, costes, estimación de recursos a futuro, búsqueda de hardware, que cumplan los requisitos, el proceso de renovación y adquisición de nuevo hardware o licencias son lentos y laboriosos, un fallo en la estimación puede llegar a provocar bloqueos en proyectos, falta de agilidad, adaptabilidad y flexibilidad. 12 00:02:57,270 --> 00:03:15,590 Como propuesta de mejora, tenemos una migración de infraestructura híbrida, capacidad de automatización, disponibilidad, escalabilidad y velocidad de recuperación frente a desastres, unificación de proveedores de recursos, gestión de costes, licenciamiento y adquisición de nuevo hardware más rápido y paro. 13 00:03:15,590 --> 00:03:23,710 Lo mismo que tener que comprar un servidor, que desplegar una máquina en la nube, por ejemplo. 14 00:03:23,710 --> 00:03:40,000 La gestión manual de servidores. ¿Qué nos encontramos? Pues una baja capacidad de reproducibilidad o repetibilidad debido a su fuerte componente humano en su creación, documentación de la infraestructura y de los sistemas que la componen no siempre precisa o autorizada, 15 00:03:40,000 --> 00:03:48,280 y, en caso de fallo de máquinas físicas, procesos de recuperación lentos y sin garantías de repetibilidad o reproducibilidad del original. 16 00:03:48,979 --> 00:03:57,759 Como propuesta de mejoras, tenemos técnicas que posibiliten la reproducibilidad o repetibilidad de los sistemas de forma rápida y automática, 17 00:03:58,680 --> 00:04:03,300 herramientas que soporten IAC, Video Administración de la Configuración, 18 00:04:03,300 --> 00:04:11,960 Centralización de toda la información relevante en su configuración en un único sitio que permita su consulta de forma eficiente 19 00:04:11,960 --> 00:04:17,379 Herramientas de gestión de versiones, independencia de los sistemas del factor humano 20 00:04:17,379 --> 00:04:21,680 Todo esto se da a la nota 21 00:04:21,680 --> 00:04:22,620 Más cosas 22 00:04:22,620 --> 00:04:24,519 ¿Qué tenemos en un despliegue manual de software? 23 00:04:24,519 --> 00:04:29,779 Pues un elevado componente humano en el proceso de compilación, entrega y despliegue de los proyectos 24 00:04:29,779 --> 00:04:32,980 Mayor posibilidad de fallo en alguna de las etapas 25 00:04:32,980 --> 00:04:38,300 velocidad de los despliegues dependiente de la disponibilidad o experiencia del técnico. 26 00:04:39,160 --> 00:04:46,019 Como propuesta de mejora, tenemos la optimización y aceleración mediante la introducción de herramientas de integración continua, 27 00:04:46,019 --> 00:04:54,819 que permiten la definición de pipelines de entrega y despliegue automatizados, eliminación del componente humano y de los fallos que pudiera conllevar, 28 00:04:55,740 --> 00:05:01,839 hasta acción de la disponibilidad o experiencia del técnico e infraestructura como consumible para los departamentos de desarrollo. 29 00:05:01,839 --> 00:05:26,300 Estos son, a los modos, unos ejemplos. Entonces, en el proyecto piloto, la arquitectura que vamos a utilizar es un servidor Ansible, que estará en nuestra infraestructura en premis, con sistema operativo Ubuntu, Ansible y una serie de herramientas que necesitamos. 30 00:05:26,300 --> 00:05:40,660 Este servidor Ansible, ¿de qué se encarga? Pues se va a encargar del despliegue automatizado de roles en la parte on-premise y de la infraestructura y de los roles, porque está todo automatizado en la parte de la nube. 31 00:05:41,800 --> 00:05:52,899 Luego tenemos un servidor Jenkins, también con Ubuntu, con sus herramientas necesarias, que se encarga de la compilación, el empaquetado y el despliegue automatizado de nuestra aplicación. 32 00:05:52,899 --> 00:06:07,379 Tenemos una plantilla CentOS, aparte on-premise, totalmente limpia, que nosotros la utilizamos para clonar y luego de manera automatizada desplegar los roles. 33 00:06:07,379 --> 00:06:16,420 ¿Qué vamos a crear? Los servidores de infraestructura que vamos a desplegar van a ser básicamente dos 34 00:06:16,420 --> 00:06:23,759 Un servidor de aplicaciones con todo lo necesario para que se pueda ejecutar nuestra aplicación 35 00:06:23,759 --> 00:06:26,480 Y luego un servidor de base de datos 36 00:06:26,480 --> 00:06:33,800 Partimos de varios escenarios 37 00:06:33,800 --> 00:06:40,959 Empezamos desde el más básico, el típico departamento de sistemas que lo hace todo de manera manual 38 00:06:40,959 --> 00:06:45,060 En ese escenario yo empecé haciéndolo 39 00:06:45,060 --> 00:06:48,279 Entonces, el escenario 1, ¿qué tipo de infraestructura tenemos? 40 00:06:48,500 --> 00:06:50,759 Tenemos una infraestructura on-premise 41 00:06:50,759 --> 00:06:53,420 ¿Cómo se realizó el despliegue de esa infraestructura? 42 00:06:53,579 --> 00:06:55,019 De manera totalmente manual 43 00:06:55,019 --> 00:07:02,399 Yo cogí una imagen de un sistema CentOS, lo despliegué manualmente 44 00:07:02,399 --> 00:07:05,100 todo se hizo de manera manual 45 00:07:05,100 --> 00:07:07,579 todo esto anotando, todos los pasos 46 00:07:07,579 --> 00:07:09,199 el display de roles, también 47 00:07:09,199 --> 00:07:11,139 de manera manual, anotaba 48 00:07:11,139 --> 00:07:12,779 necesito esto, este software 49 00:07:12,779 --> 00:07:14,879 todo anotado, para que 50 00:07:14,879 --> 00:07:17,220 de vistas a un escenario 51 00:07:17,220 --> 00:07:19,220 2, donde ya tuviese 52 00:07:19,220 --> 00:07:20,959 claro que había que automatizar 53 00:07:20,959 --> 00:07:22,279 que podía automatizar 54 00:07:22,279 --> 00:07:24,819 en el escenario 1 55 00:07:24,819 --> 00:07:26,860 display automatizado de la 56 00:07:26,860 --> 00:07:28,199 aplicación, esto si 57 00:07:28,199 --> 00:07:30,060 con Jenkins 58 00:07:30,060 --> 00:07:50,720 En todos los escenarios ya lo hice. Nos vamos al escenario 2, donde tenemos una infraestructura on-premise. Se realiza el despliegue de la infraestructura a partir de un clonado, que hemos hablado antes, de una plantilla. 59 00:07:50,720 --> 00:08:09,339 Ahora, el display de roles se realiza de manera automatizada con Ansible. Yo le digo, tú eres un servidor de aplicaciones, te instalas tu role. Tú eres un servidor de base de datos, te instalas tu role. Eso se hace ya de manera automatizada. 60 00:08:09,339 --> 00:08:21,800 Y el despliegue de aplicación, lo mismo, se realiza de manera automatizada. Este escenario es el que he puesto un vídeo aquí en esta parte, es un poquito más largo, explicando toda la operativa. 61 00:08:21,800 --> 00:08:30,579 Ganamos, pues que el despegue de roles se realiza de manera automatizada y se gana mucho tiempo 62 00:08:30,579 --> 00:08:40,120 Y luego tenemos el escenario 3, que aquí ya es distinto, la infraestructura ya nos hemos ido a la nube 63 00:08:40,120 --> 00:08:46,419 El despegue de infraestructura desde Ansible se realiza de manera automatizada 64 00:08:46,419 --> 00:08:55,700 Es decir, las máquinas se crean directamente, las instancias se crean directamente en la nube, cosa que no hacíamos antes. 65 00:08:56,080 --> 00:09:00,460 Acabamos desde un clonado la plantilla. 66 00:09:02,299 --> 00:09:07,100 El despliegue de roles también lo hace de manera automatizada. 67 00:09:08,320 --> 00:09:11,080 Y el despliegue de aplicación también. 68 00:09:11,080 --> 00:10:04,399 Bueno, ahora me gustaría hacer el escenario 3, vale, en directo, entonces voy a, vale, entonces ahora vamos a realizar el escenario 3 que como he comentado está totalmente automatizado, para ello tenemos un pequeño menú, vale, en este caso, bien, 69 00:10:07,799 --> 00:10:25,500 ¿Qué hace este menú? Pues básicamente lanza los playbooks necesarios de Ansible para crear la infraestructura, la nube, el servidor de aplicaciones WebFly y el Postgres, que es el servidor de la base de datos. 70 00:10:26,039 --> 00:10:37,580 Este menú también te permite en la parte on-premise, en el escenario 2, el despliegue del servidor de aplicaciones o el despliegue del servidor de base de datos. 71 00:10:40,200 --> 00:10:49,389 me voy a copiar la publica del servidor de aplicaciones porque porque en la parte 72 00:11:07,710 --> 00:11:16,070 bueno esta sería estaría la nube vale ahora mismo pues acaba de crear estas dos máquinas 73 00:11:16,070 --> 00:11:26,799 el servidor de base de datos y el servidor de aplicaciones importante tenemos la pública 74 00:11:30,940 --> 00:11:37,840 vamos a necesitar aquí en la parte de james yo aquí como tres jobs es uno para el despliegue 75 00:11:37,840 --> 00:11:44,539 del escenario 1 del escenario 2 y del escenario 3 y nosotros vamos a hacer el despliegue de artefacto 76 00:11:45,440 --> 00:11:46,700 ahora mismo en él 77 00:11:53,309 --> 00:12:06,929 necesito configurar la ip pública el servidor de aplicaciones y modificaron el pib de line 78 00:12:08,110 --> 00:12:09,509 Porque si no, me fallaría. 79 00:12:11,269 --> 00:12:11,909 Aquí pongo. 80 00:12:13,769 --> 00:12:19,909 Esta sería la IP pública del servidor de aplicaciones donde quiero despegar el artefacto. 81 00:12:22,919 --> 00:12:30,059 Así, a grosso modo, el PIP-Align es bastante sencillo. 82 00:12:30,059 --> 00:13:03,049 Básicamente hace unas comprobaciones del artefacto, lo genera, detiene el servidor de aplicaciones, realiza una copia de seguridad si ya detectase que existe un artefacto, copia el nuevo artefacto, hace la limpieza y arranca el vuelo. 83 00:13:03,470 --> 00:13:12,350 Esto sería lo que hace. Necesito volver a ver si he acabado. 84 00:13:25,090 --> 00:13:54,820 Ahora está configurando el servidor. Bueno, esto que os enseño es los playbooks que ejecuta Ansible para la parte de la nube. 85 00:13:56,399 --> 00:14:08,139 Básicamente tenemos un playbook para crear la infraestructura de los dos servidores, una configuración inicial que hace en ambos servidores, las configuraciones. 86 00:14:08,139 --> 00:14:27,799 Luego otro playbook para realizar el rol de servidor de aplicaciones, otro para instalar el servidor de base de datos y por último uno que instala el driver para poder conectar con la base de datos, configurar el data source y todo. 87 00:14:34,179 --> 00:14:36,200 Rubén, te queda un minutillo, ¿vale? 88 00:14:37,019 --> 00:14:50,210 Vale, aquí vemos que ya ha acabado, ¿vale? Entonces, lo que he ejecutado ahora es el despliegue del artefacto. 89 00:14:54,919 --> 00:15:20,139 Con esto ya acabo, ¿vale? Vale, con esto ha realizado el despliegue del artefacto. 90 00:15:30,700 --> 00:15:34,620 Y aquí tenemos nuestra aplicación ya preparada. 91 00:15:35,379 --> 00:15:40,580 Vale, lo único que no veo la pantalla, o sea, ahora mismo estoy viendo solo la parte de la nube. 92 00:15:40,580 --> 00:15:53,750 se ha quedado ahí pero no sé si se ha quedado congelada 93 00:15:53,750 --> 00:16:15,429 la parte de aquí tampoco la has visto 94 00:16:15,429 --> 00:16:16,350 entonces el despliegue 95 00:16:16,350 --> 00:16:30,990 vale, entonces aquí había 96 00:16:30,990 --> 00:16:34,009 configurado, os había enseñado el pipeline 97 00:16:34,009 --> 00:16:41,509 bueno estos son todos los pasos que ha realizado para desplegar la aplicación vale y bueno pues 98 00:16:41,509 --> 00:16:54,429 al final tengo aquí mi aplicación desplegada esta es la ip del servidor de distancia creada en la 99 00:16:54,429 --> 00:17:09,400 nube vale y bueno pues esta es la aplicación que que tengo ejemplo y bueno pues básicamente sería 100 00:17:09,400 --> 00:17:15,539 Pues nada, has terminado, ¿no? 101 00:17:16,339 --> 00:17:17,299 Sí, sí, claro. 102 00:17:17,740 --> 00:17:27,819 Muy interesante. Yo la verdad que tenía aquí algunas preguntas antes de comenzar la presentación, pero las has ido respondiendo, o sea que muy bien. 103 00:17:27,819 --> 00:17:40,519 A ver, solo un par de cosillas básicas. Bueno, desde el punto de vista de seguridad, ¿qué riesgos le ves a este tipo de infraestructura? 104 00:17:40,980 --> 00:17:52,099 Hay riesgos. O sea, de hecho, uno de los mayores problemas que he tenido ha sido la conectividad. Es decir, no había manera de conectar. 105 00:17:52,099 --> 00:18:06,240 Entonces, teniendo en cuenta que esto es como laboratorio, he tenido que ceder en ese aspecto mucho. Hay cosas, parámetros que no se deberían poner nunca en producción. 106 00:18:06,240 --> 00:18:30,480 La clave es el acepte porque sí, así sin reconocerle, no sé. Ha habido que hacer concesiones para que funcionase. Y lo reconozco, porque si no, no era capaz, no he sido capaz, incluso al hacer muchas cosas que quería haber hecho, no he sido capaz de sacarlas y no he tenido que dejar así. 107 00:18:30,480 --> 00:18:34,819 No te preocupes, es solo por eso, por ver un poco... 108 00:18:34,819 --> 00:18:37,740 Sí, soy consciente de ello. 109 00:18:38,099 --> 00:18:47,460 Claro, claro. A ver, no se puede tener todo. Queremos automatizar y queremos todo y a lo mejor hay que conceder alguna cosa, ¿no? Está claro, eso está claro. 110 00:18:49,599 --> 00:18:58,720 Vale, y luego, nada, pregunta un poco típica, pero bueno, si tuvieras que continuar el proyecto, ¿cuál sería el siguiente paso en tu proyecto? ¿Cuál sería la evolución? 111 00:18:58,720 --> 00:19:18,319 Yo empecé con una idea y se fue transformando. O sea, todo. ¿Y si hago esto? ¿Y si esto? ¿Y si ahora? ¿Y si puedo? ¿Y si? O sea, no ves el límite. El límite ya te lo pone el tiempo que tienes que esperar las cosas y dices, hasta aquí. 112 00:19:18,319 --> 00:19:21,220 o que algo que no funciona y no te sale 113 00:19:21,220 --> 00:19:23,299 y dices, mira, ya, o sea, esto no lo puedo 114 00:19:23,299 --> 00:19:25,259 hacer, de hecho había una cosa 115 00:19:25,259 --> 00:19:27,380 chulísima que me hubiese encantado 116 00:19:27,380 --> 00:19:29,240 hacer, que es la parte del 117 00:19:29,240 --> 00:19:31,200 clonado que tengo que hacer manualmente 118 00:19:31,200 --> 00:19:33,359 en el escenario 2, que tengo que hacer manualmente 119 00:19:33,359 --> 00:19:35,079 en VBWare 120 00:19:35,079 --> 00:19:37,079 esa parte 121 00:19:37,079 --> 00:19:39,099 también automatizarla, que me hiciese 122 00:19:39,099 --> 00:19:40,859 con una herramienta que se llama 123 00:19:40,859 --> 00:19:42,900 Windows RM, bueno, pues fui 124 00:19:42,900 --> 00:19:45,019 incapaz de hacerla funcionar, esa máquina 125 00:19:45,019 --> 00:19:46,680 o sea, era incapaz 126 00:19:46,680 --> 00:20:01,720 Y me di por vencido. Y era una cosa chulísima. En el escenario 12, clonaba directamente la parte on-premise y luego desplegaba. Todo automatizado. No tenías tu botón derecho, clonar, no. Eso es un problema. No fui capaz. Por ejemplo, es un punto de mejora. 127 00:20:01,720 --> 00:20:04,839 crear todos los 128 00:20:04,839 --> 00:20:07,180 WinFly que quiera, todos los servidores de aplicaciones 129 00:20:07,180 --> 00:20:08,859 que quiera, tirando solo 130 00:20:08,859 --> 00:20:11,059 de uno de base de datos, también 131 00:20:11,059 --> 00:20:12,980 no fui capaz, porque 132 00:20:12,980 --> 00:20:14,960 no fui capaz tampoco de manejar bien 133 00:20:14,960 --> 00:20:16,980 las IPs dinámicas, no 134 00:20:16,980 --> 00:20:18,680 conseguía con Ansible que se viese 135 00:20:18,680 --> 00:20:19,539 o sea 136 00:20:19,539 --> 00:20:22,740 me pelea tanto que es que te digo 137 00:20:22,740 --> 00:20:24,440 se pueden hacer maravillas 138 00:20:24,440 --> 00:20:27,079 de hecho es que yo desconocía 139 00:20:27,079 --> 00:20:28,680 totalmente este mundillo 140 00:20:28,680 --> 00:20:30,839 lo he oído mucho 141 00:20:30,839 --> 00:20:56,700 Por eso me gustó ponerme a jugar con ello y me da cuenta de lo que se puede hacer, de todo lo que se puede hacer. Pues es que yo, años trabajando en un departamento de implantación de sistemas, haciendo todo manualmente y tardaba dos días en dejar un servidor instalado y todo. Madre mía, aquí cojo y en cinco minutos lanzo un Playboy y ala, ya está hecho. 142 00:20:56,700 --> 00:20:59,559 Me ha sorprendido mucho 143 00:20:59,559 --> 00:21:01,640 que yo había oído hablar del tipo de 144 00:21:01,640 --> 00:21:02,619 tecnología pero no lo había 145 00:21:02,619 --> 00:21:04,980 yo no me había puesto a probarlo 146 00:21:04,980 --> 00:21:07,700 y la verdad que es que me ha sorprendido mucho para bien 147 00:21:07,700 --> 00:21:10,019 o sea, hay que decir que es que me... 148 00:21:10,019 --> 00:21:11,039 Un partido de cero 149 00:21:11,039 --> 00:21:13,579 con el 500-0, Genkis también 150 00:21:13,579 --> 00:21:15,579 lo oía muchísimo, ni idea de que era 151 00:21:15,579 --> 00:21:17,259 Genkis, ni idea de que 152 00:21:17,259 --> 00:21:18,200 era Ansibor 153 00:21:18,200 --> 00:21:21,140 Pues está bastante 154 00:21:21,140 --> 00:21:22,900 has logrado mucho 155 00:21:22,900 --> 00:21:25,700 porque al final de partir 156 00:21:25,700 --> 00:21:27,839 de acero, con todo este tipo de tecnologías 157 00:21:27,839 --> 00:21:29,740 además ha inmigrado a la nube la utilización 158 00:21:29,740 --> 00:21:31,940 de la AWS que también tiene sus historias 159 00:21:31,940 --> 00:21:33,619 y demás que también 160 00:21:33,619 --> 00:21:34,160 es complicado 161 00:21:34,160 --> 00:21:39,500 pero está muy bien, yo la verdad que 162 00:21:39,500 --> 00:21:41,720 poco más porque es que tenía aquí una serie de preguntas 163 00:21:41,720 --> 00:21:43,079 pero vamos que está 164 00:21:43,079 --> 00:21:45,440 todo, estoy mirando 165 00:21:45,440 --> 00:21:47,640 pero está todo resuelto, o sea que yo darte 166 00:21:47,640 --> 00:21:49,039 enhorabuena porque me ha gustado mucho 167 00:21:49,039 --> 00:21:50,519 y he visto un poco 168 00:21:50,519 --> 00:21:54,000 esa parte del proyecto en la que 169 00:21:54,000 --> 00:21:55,099 desconocía 170 00:21:55,099 --> 00:21:57,480 que había leído pero que 171 00:21:57,480 --> 00:21:59,359 ahora la he visto en producción 172 00:21:59,359 --> 00:22:01,259 la he visto trabajando, la he visto funcionando 173 00:22:01,259 --> 00:22:03,059 así que ya te enhorabuena porque tiene 174 00:22:03,059 --> 00:22:05,420 bastante trabajo y 175 00:22:05,420 --> 00:22:07,359 la verdad que me ha gustado mucho 176 00:22:07,359 --> 00:22:08,839 así que nada, bueno pues 177 00:22:08,839 --> 00:22:11,319 si tienes alguna pregunta, alguna cosa 178 00:22:11,319 --> 00:22:12,700 tú que quieras hacer 179 00:22:12,700 --> 00:22:14,720 nada, bueno 180 00:22:14,720 --> 00:22:16,759 pues ahora de momento ya desconectar 181 00:22:16,759 --> 00:22:18,619 quitarte este peso de encima 182 00:22:18,619 --> 00:22:21,259 y nada, pues eso, lo he dicho, a partir del día 183 00:22:21,259 --> 00:22:23,339 29 ya tendremos la sesión de evaluación 184 00:22:23,339 --> 00:22:27,359 me imagino que los días posteriores pues ya se publicarán las notas y demás vale 185 00:22:27,359 --> 00:22:34,539 de momento te adelanto que enhorabuena porque me ha gustado mucho tiene tiene muy buena me 186 00:22:34,539 --> 00:22:40,079 ha gustado la verdad que tiene muy buena punta así que nada bueno rubén por nada pues eso es 187 00:22:40,079 --> 00:22:46,140 todo vale mucha suerte y a ver si nos vemos en un futuro si te pasa por el instituto ya 188 00:22:46,140 --> 00:22:50,940 sabes estoy por aquí vale venga hasta luego