Webinar: Agiliza la innovación de tu empresa con el uso de DevOps y aplicaciones web en AWS.

CompuCloud speakers Bianca Grullón, Jared Hernández, and Pedro Serrano explain how to speed up innovation using DevOps and web applications on AWS. They cover cloud architecture, automation pipelines, serverless design, and real case studies to help your business scale faster and more securely.
Con ello pues damos inicio a este webinar sobre Agiliza tu innovación con DevOps y aplicaciones web en AWS. Para nosotros este tema es muy importante y va muy de acorde a todo lo que estamos viviendo al día de hoy. Esta tecnología apoya mucho a las empresas en temas de innovación hacia ellas y por eso quisimos presentar este tema principalmente. A continuación presento quienes estaremos presentando este webinar. Mi nombre es Bianca Grullón, yo soy consultora Comercial y me acompañan mis compañeros el ingeniero Pedro Serrano y Jared Hernández, quienes son especialistas en DevOps y quienes nos estarán explicando un poquito más el funcionamiento de estas herramientas y de estas tecnologías que estoy segura que son muy útiles para ustedes. A continuación les presentaré lo que es la agenda del día de hoy. En principio presentaremos ¿Quién es CompuCloud? ¿En qué los podemos apoyar? Seguido por la importancia de utilización de nuevas herramientas que faciliten la innovación de las empresas, ese es un punto como muy importante. ¿Qué son las aplicaciones web? ¿Cómo funcionan? ¿A qué llamamos aplicaciones web nativas hacia la nube? ¿Cuáles son utilizadas el día de hoy y cómo pueden beneficiar a las empresas? ¿Qué es un DevOps? ¿Cómo funciona? ¿A qué se debe esta tecnología? Lo que es desarrollo de aplicaciones web con DevOps en AWS. Estaremos explicando un poquito más ejemplos de esta arquitectura, cómo se visualiza, cómo se integran estos servicios y soluciones y estaremos realizando una demo de una aplicación web con un ciclo DevOps en AWS, ya que entendemos que para poder tener una mejor visualización de estas soluciones y servicios que estaremos explicando a continuación, es muy importante que ustedes lo puedan ver reflejado en tiempo real, cómo se utiliza en la consola de AWS, cómo es todo el proceso, cómo es el cambio de código, cómo lo pueden ver dentro de su página web. Y después estaremos estableciendo algunos casos de unas empresas que ya lo han utilizado. Y seguido a ello tendremos una sesión de preguntas en el cual si durante la presentación tienen alguna duda o tienen alguna pregunta, favor de hacérnosla llegar por medio del chat y una vez que ya estemos en la sesión de preguntas, las estaremos contestando. Entonces pues ya damos inicio a este webinar. Iniciando ¿Quién es Compuclau? A continuación presentaré ¿Quiénes somos nosotros? Nosotros somos una empresa 100% enfocadas en tecnología nube estamos desde el 2012 siendo aliados de Amazon Web Services, quien es la nube líder de esta tecnología. Nosotros nos enfocamos mucho tanto en temas de planeación, arquitectura, migración, implementación y el acompañamiento en temas de consultoría para poder integrar este tipo de tecnologías a sus empresas. Nosotros somos Partner Advance, es una certificación que nos da AWS por el tiempo que estamos, por las certificaciones que tenemos y por la experiencia de utilizar su tecnología, sus soluciones y servicios. Nuestros ingenieros y personal de Compuclau está certificado en varios rubros, principalmente en temas de arquitecturas de Beleb y Sysops, que son parte muy fundamental para poder estar elaborando y teniendo este tipo de tecnología. Contamos con la certificación de Well Architecture, el cual se basa en cinco principios que lo que busca es temas de seguridad, de fiabilidad, de excelencia operacional, de eficiencia en el desempeño y optimización de costos, que es una parte muy importante una vez que se integran a esta nueva tecnología, tener la confianza que su información está segura y que constantemente se pueden estar optimizando costos. También contamos con la competencia de Digital Customer Experience, que lo que busca principalmente es apoyarlos en robustecer todo el tema de la arquitectura en nube para que su experiencia final hacia el cliente sea mejor, el tiempo de respuesta de su página web, tiempo de respuesta de sus aplicaciones web sean más rápidas y con esto apoyarles un poquito más a darle una mejor experiencia al cliente. Seguido a ello, a continuación iniciamos con el tema de la importancia de auto de la utilización de las nuevas herramientas que facilite la innovación en las empresas. Actualmente vivimos en un mercado muy competitivo en el cual la importancia de la innovación ha sido como uno de los pilares para poder establecer un poquito más el tema de la transformación y el crecimiento de las empresas, siempre buscando lo que es la optimización de procesos, llegar más rápido a tener nuevas soluciones, a tener acotar tiempos que los permitan ser más competitivos, ofrecer nuevos productos y servicios, ya que conocemos que el mercado del día de hoy está buscando nuevas tendencias, tiene nuevas necesidades y el tiempo de respuesta de las empresas debe ser un poquito más ágil ya que el consumidor así lo exige, posicionarse de manera estratégica en el mercado, tener un objetivo fijo y tener las herramientas que los permita llegar a esas metas de mercado. A esa competencia un poquito diferente o con integración de innovación que les permita llegar al mercado objetivo y obviamente buscando un ahorro en costos. Este es como un tema muy principal para todas las empresas y más a lo que estamos viviendo el día de hoy con el tema de esta contingencia, estamos buscando la mejor manera de optimizar costos, pero siempre con el enfoque de estar innovando, de poder tener este motor de la transformación, de poder integrar nuevas herramientas que los permita estar en un mercado un poquito más competitivo que les da esta ventaja. A continuación se presentan algunos datos de Forbes, en el cual establece que a partir de lo que estamos viviendo, de un día para otro, países enteros nos quedamos en casa. Entonces, esto hace que haya una nueva necesidad del mercado en el cual crece lo que es el e commerce, teniendo en primer lugar lo que son el pago de servicios de contenido. Ahora las plataformas que tenían cinco, seis, siete usuarios, actualmente ya tienen millones de usuarios que utilizan su plataforma. Entonces, ¿De qué manera puede hacer que la experiencia del cliente sea la misma a la que tener cinco, al que tener un millón? Entonces, ¿Qué herramientas te permiten crecer y estar de acuerdo a la demanda que se está viviendo al día de hoy? Y pues este es el tema del día de hoy, las aplicaciones web y el desarrollo de DevOps en AWS. Entonces, es un poquito la integración de estos, de que como vemos también igual el pago de servicios ha crecido mucho, antes de la facilidad de ir a las oficinas de los servicios que queremos pagar, ya no es la misma, ya es a través de las aplicaciones y es a través de la página web. Y ahora sí, cómo integramos esta tecnología en nuestras empresas y cómo nos adaptamos a la necesidad de los clientes, porque de un día para otro ha crecido monumentalmente. Igual los supermercados han tenido que, algunos nada más han tenido como la página web, como cómo hacer tus compras, pero ahora sí el tema de logística, el tema de tener unas nuevas certificaciones de sanidad, de poder tener como esta plataforma al alcance de todos sus usuarios y tener estas tecnologías que los apoyen a solventar la demanda que se tiene. Las aplicaciones delivery, actualmente, pues ya pedimos más comidas en casa, por lo mismo, no es lo mismo ir ahora a un restaurante, sino como pedirla en la casa y tener esa facilidad. Entonces, estas tecnologías nos van a permitir poder tener la seguridad, la escalabilidad y obviamente en un costo optimizado para podernos adaptar a esta necesidad de los usuarios, que no es solo para un solo segmento del mercado, sino para todas las industrias. Esto es algo que estamos viviendo el día de hoy, este es la nueva normalidad a la cual nos tendremos que estar adaptando y todas las tecnologías se van a tener que ir sumando a estas nuevas necesidades del cliente. Y para ello pues estaremos presentando. Forbes establece que actualmente existen 631 millones de usuarios en el comercio electrónico, lo cual es un mercado bastante amplio y que estoy segura que varios de los que están aquí conectados en este webinar están interesados por poder llegar a ellos y poderles dar esa facilidad a sus clientes. Entonces, por qué no le cedo la palabra a mi compañero Jared, quien nos estará explicando un poquito más de estas herramientas que nos permiten llegar a este mercado, de poder tener esta aplicación y poder llegar al objetivo que están buscando cada una de ellas.
Muchas gracias Bianca y muchas gracias a todos por seguir en este webinar de aplicaciones web y DevOps en AWS. Bueno, para empezar hablaremos acerca de qué son las aplicaciones web, que es cualquier programa de cómputo que puede realizar una o muchas funciones y puede tener diversos giros, por ejemplo, redes sociales como lo son Twitter, Facebook, Instagram, sitios especializados en subir contenido multimedia como puede ser YouTube, Spotify o sitios de almacenes y ventas como si fuera un ecommerce tipo Amazon o Mercado Libre, o inclusive sitios web con una función de entretenimiento como puede ser Reddit. ¿Cómo se conforma una aplicación web moderna? Antes las aplicaciones web tradicionalmente se realizaban en forma de monolitos, es decir, todo estaba junto en un solo código, tanto el frontend, que es la parte que ve el usuario final, como el backend que es la parte que maneja su lógica de negocios, todo esto estaba embebido en un solo contenedor y si había algún fallo se tenía que ir a buscar sobre todo este código, eso es lo que le llamamos único punto de fallo. Entonces ahorita las aplicaciones web modernas ya no buscan tener un monolito, lo que buscan es el desacoplamiento de funciones, ya sean microservicios o si no se requiere tanto desacoplamiento, tal vez sólo en dos partes. La primera parte podría ser lo que es el backend, que es el que.
Maneja la lógica diferentes tecnologías, podemos tener nuestro backend en un lenguaje de programación, nuestro frontend en otro lenguaje de programación, podemos hacer que todo esto sea más mucho más interactivo, conformar diferentes lenguajes, por ejemplo nuestro backend podemos tenerlo en un Spring, tal vez un Hibernate con Java, podemos usar servicios de AWS tales como RDS, podemos hacer la comunicación vía API o vía CALS con por ejemplo documentos tales como JSON, XML, YAM, entre otros, hacia nuestro frontend, nuestro frontend como sabemos puede estar en diferentes lenguajes, más adelante vamos a ahondar un poquito más a detalle, pero como tal es la tendencia este desacoplamiento. A continuación vamos a ver las ventajas de una aplicación web moderna. Una aplicación web moderna, más todavía si la tenemos en AWS, obviamente sus ventajas son la escalabilidad. La escalabilidad, como podemos ver al momento de desacoplar, al momento de hacer todas estas cuestiones que nos permiten manejar monolitos, es bastante escalable dependiendo de los recursos que nosotros estemos requiriendo. Entonces si nosotros tenemos estos recursos, por ejemplo las tiendas online no todo el tiempo tienen el mismo tráfico, si por ejemplo tenemos un Black Friday, tenemos un Black Friday, entonces ese día obviamente vamos a tener un poco más de demanda, entonces obviamente nuestra escalabilidad va a crecer, nuestra escalabilidad va a crecer en demanda, va a decrecer cuando la demanda así lo permita. Entonces esa es una gran ventaja de AWS. La seguridad, AWS invierte bastante en seguridad, es uno de sus principales core, pueden estar ustedes totalmente seguros de que la seguridad que manejamos acá en AWS es la óptima, cumple con estándares, certificaciones en redes en tránsito, ahora sí que muchas capas de seguridad y servicios que podemos agregar al mismo tiempo, ahora sí que ya depende de los requerimientos que ustedes tengan. Ahorra tiempo, obviamente ahorramos tiempo en el desarrollo. Sí, adelante Jared.
OK, ¿Ya me escucho bien?
Sí, perfecto, muy bien.
OK, una disculpa, lo que pasa es que falló el micrófono, pero a veces pasa. Entonces como venía hablando el ingeniero Pedro, lo importante aquí de las aplicaciones web en AWS es que le vamos a dar escalabilidad. AWS siempre está dispuesto a darles una alta disponibilidad y que sus servicios ya sea que fallen o si tienen algún tipo de problema porque hay un alto tráfico en un día normal, tal vez con otro en otro proveedor de nube o inclusive si lo tienen en una versión en sus propios servidores puede fallar ya que no va a tener la escalabilidad que les ofrece AWS también hay cierto ahorro de tiempo ya que antes al ser todo un monolito y tener toda la aplicación tanto el lado del frontend como el lado del backend en un solo código, se tenía que buscar línea por línea, ahora sí que la funcionalidad como todo estaba junto, tenían que buscar sus programadores el punto de fallo, ahora si está desacoplado, si falla únicamente el frontend, pues se van directamente a lo que es el frontend. La robustez igual que les brinda AWS es gigantesca, su aplicación puede ser tan pequeña como ustedes deseen o tan grande como lo necesiten. La seguridad AWS tiene el pilar fundamental de lo que es seguridad, entonces siéntanse protegidos porque AWS cuenta con diversas certificaciones que les va a garantizar que los datos que estén en la nube van a estar a salvo y por ende también una mejor experiencia para el usuario final. Una aplicación web moderna está construida con el propósito de brindarles a los usuarios finales una experiencia de usuario excelente. Bueno, les voy a hablar acerca de qué son frameworks de desarrollo para aplicaciones web. Si ustedes todavía no han desarrollado su aplicación web, pueden ayudarse de estos frameworks para ahorrarles tiempo que a su vez va a ser dinero. Si utilizan por ejemplo sus desarrolladores Python, pueden utilizar el framework de Django y en AWS se puede subir esta aplicación sin ningún problema, ya sea en servicios como EC o servicios más especializados como Beanstack o inclusive en contenedores. Igual si sus desarrolladores son expertos en Java pueden optar por utilizar herramientas como Spring o Spring Boot, entonces también se pueden subir a través de contenedores o a través de un Elastic Beanstack sin problema o inclusive EC. Por último, si ustedes quieren crear una aplicación web lo más moderna posible, que tengan el frontend y el backend separados y se comuniquen a través de lo que vendría siendo API Calls, pueden utilizar un framework de desarrollo como React o Angular y así dotarles a los usuarios finales de una mejor experiencia de uso. OK, vamos a hablar acerca de las diferencias entre lo que vendrían siendo aplicaciones tradicionales y aplicaciones nativas de la nube. Las aplicaciones tradicionales antes contaban con una estabilidad ciertamente porque las versiones que sacaban estaban pensadas para que sean utilizadas un largo periodo de tiempo. Ahora lo que nos interesa es la rápida comercialización de nuevas tecnologías o nuevas herramientas o nuevas características en su sitio web. Yéndonos directamente a lo que vendría siendo un poco más técnico y lo que vendría siendo un framework como Scrum, una metodología de trabajo tipo Scrum. Desarrollo semi ágil en cascada, es lo que nos venía platicando acerca de lo tradicional. Antes se tenía que plantear una serie de testeos, una serie de planeaciones para posteriormente realizar un release en lo que vendría siendo meses. Ahora nos interesa más lo que es el desarrollo ágil, utilizar las bondades de DevOps, de las cuales va a hablar mi compañero Pedro más adelante, y así sacar lo que son releases seguidos para brindarle una mejor experiencia al usuario final. Antes se tenía un equipo aislado de desarrollo, ahora todo queremos que sea colaborativo. ¿Cuál es el pilar de la colaboración? Lo podemos hacer a través de DevOps. Los ciclos de entrega antes eran largos y ahorita queremos que sean continuos, continuos y cortos. Entonces nos interesa más sacar releases, tal vez pequeños, pero con mucha frecuencia a sacar un release muy grande en meses. Las arquitecturas de aplicaciones antes eran monolíticas, como bien se explicaba, ahora se trata de hacer a través de microservicios, desacoplar todo el sistema. La infraestructura antes estaba centrada totalmente en el servidor y ahora lo que tenemos es la nube. A continuación el ingeniero Pedro les va a hablar acerca de las bondades de DevOps.
Muchas gracias Jared, Muchas gracias. Gracias a todos por seguir en el webinar. Vamos a hablar un poco más ya a fondo de lo que es DevOps, que es el meollo como tal de este webinar. Entonces podemos ver qué es DevOps, al ver que es DevOps es, podemos verlo como una metodología. Una metodología en el que nosotros tenemos un ciclo. Un ciclo como podemos ver, se representa con este icono de infinito, en el que vamos a acoplar en nuestros desarrollos, en nuestras operaciones, a los dos departamentos, desarrollo y operaciones. Y todo aquel departamento que esté embebido en estos dos mundos, los vamos a hacer que trabajen en conjunto, vamos a hacer que sea todo un ciclo y que obviamente esto va a impactar en tiempos, en esfuerzos y en colaboración. El cómo funciona, pues obviamente nosotros estamos acostumbrados a, por ejemplo, que nuestros desarrolladores estén, valga la redundancia, desarrollando. Entonces al estar desarrollando, obviamente, pues ellos tradicionalmente están en su mundo, ellos están desarrollando, les llega tal vez un requerimiento, lo desarrollan tal vez ellos mismos, puede que hasta lo testeen, no utilizan tal vez herramientas, tal vez desde el IDE o algún framework en específico, hacen su debug, hacen su despliegue y tiene que pasar todo un proceso a donde vamos a hacer el despliegue final para que Operaciones pueda consumirlo y una vez que lo consuma, tal vez tengamos un departamento de QA, entonces se hace manual esto, QA se da cuenta, lo testea manualmente, va a tener que darnos retro tal vez a través de Operaciones, entonces se vuelve muy tedioso y la comunicación se corta bastante, es muy deficiente la comunicación en esta forma. Entonces si nosotros utilizamos esta metodología con las herramientas indicadas, obviamente este ciclo se automatiza y se vuelve totalmente colaborativo. Nuestros desarrolladores están desarrollando, están colaborando entre ellos porque van a desarrollar en un mismo lugar que es un repositorio, van a estar haciendo release continuos, van a estar haciendo sus despliegues, entonces al hacer el release, el deploy Operaciones, QA monitorea en tiempo real, esto permite tener notificaciones que estos servicios nos dan. Entonces obviamente van a tener la comunicación va a estar totalmente fluida, totalmente fluida y obviamente esa es la intención de esta metodología, es como tal una metodología. A continuación vamos a ver cómo nos podemos ayudar añadiendo un ciclo DevOps a sus aplicaciones web ya como tal en AWS. Como ustedes saben, AWS tiene un stack ideal para que integre como tal su aplicación web a un ciclo DevOps de una manera muy fácil. Si bien por un lado nuestro interés final es que el cliente final consuma una buena aplicación, que su experiencia de usuario sea bastante elevada, bastante óptima, entonces nosotros vamos a ver qué herramientas podemos usar. Entonces cambiamos los servicios, AWS tiene bastantes servicios que nos pueden ayudar, estos servicios son los que vamos a utilizar al final del día para hacer estas automatizaciones de DevOps, servicios tales que nos permiten el build, el test, el release, más adelante los vamos a ver a detalle, pero tenemos todo este stack, todo este stack de servicios en AWS que es muy importante entenderlos. A continuación vamos a hablar como tal del desarrollo de aplicaciones web en un ciclo DevOps AWS. Bueno, primero vamos a ver como tal, tenemos que entender un poquito en partes, tenemos que desmenuzar, porque si bien nosotros nuestra intención es que podamos entender cómo implementar un ciclo DevOps, también una intención es usar las tecnologías o usar las metodologías también indicadas para estos desarrollos. Por ejemplo, como ya lo habíamos mencionado antes, es muy importante desacoplar nuestro backend de nuestro frontend, entonces al entender esto nuestro backend podemos saber que puede quedar en diferentes servicios en AWS, tales como el más tradicional que es EC, todos sabemos que podemos poner nuestro backend en un EC, que al final es un servidor, lo configuramos todo es un poco más manual, sin problemas se puede y se le puede integrar un ciclo DevOps. Tenemos por otro lado los contenedores, ya es un paso más hacia lo automatizado, hacia los serverless, aunque no es serverless al final del día, pero es administrado, entonces nosotros podemos hacer estos pequeños monolitos, desacoplar de un monolito gigante, desacoplar nuestros servicios y ponerlos en contenedores. AWS nos permite sin problemas manejar Kubernetes, manejar Dockers, entonces es como un paso más, estamos pensando en caminar más hacia la automatización, hacia la optimización, entonces esta cuestión de los contenedores sabemos que es bastante eficiente, cada quien en su mundo con sus propias configuraciones, un paso más arriba todavía hacia esta cuestión de serverless, olvidarnos totalmente de los servidores, puede ser es Lambda, Lambda a través de API gateway con Apical lo podemos integrar de forma totalmente nativa con por ejemplo una RDS, un DynamoDB y sin problemas podemos ponerle un ciclo DevOps para que nuestro backend quede aquí como ya habíamos mencionado en un webinar anterior. A continuación vamos a ver qué bases de datos podemos utilizar en AWS, si bien obviamente tenemos el mundo abierto, podemos utilizar ahora sí que la base de datos que más se apegue a nuestras necesidades, más si ya tenemos un proyecto andando y este proyecto simplemente queremos ponerle un ciclo DevOps o o complementarlo con estas tecnologías, pues obviamente tenemos que acoplarnos a él, pero si la tendencia es hacer algo diferente, algo nuevo, una migración tal vez, entonces podemos optar por usar una base de datos no relacional tal como Amazon DynamoDB o una base de datos relacional como RDS, como todos sabemos MongoDB, tienen un MongoDB, podemos hacer esta migración hacia Amazon DynamoDB, nos va a ayudar bastante, lo vamos a tener nativo y lo vamos a poder que sea más ágil, podemos pensar en servicios AWS de base de datos. A continuación vamos a ver, ya hablamos del backend, hablamos de las bases de datos, ahora vamos a hablar del frontend, entonces estamos hablando en partes de cómo podemos agilizar y cuál es la mejor práctica para que al final del día DevOps nos haga sentido, entonces si nosotros ya desacoplamos nuestro backend, obviamente el frontend es el siguiente paso, podemos utilizar un s, si nosotros tenemos una página estática que ya le quitamos toda la lógica, todas las cargas de trabajo, entonces obviamente va a ser estática, tal vez con JavaScript, css, funciones muy básicas nativas, entonces podemos hostearlas sin problemas en s, tal vez un React, la desarrollamos en Node, js, no sé, diferentes tipos de cuestiones, podemos usar los contenedores, obviamente mientras más serverless o más administrado sea mejor, entonces es la capa media, un contenedor, tener nuestro front en un contenedor específico, separarlo de todos los demás o un ec que es lo más tradicional, obviamente siempre vamos a tratar de que caminemos hacia la derecha, hacia tener más automatizado, hacia tener estos servicios más desacoplados, pero obviamente ec califica sin problemas. A continuación en las soluciones serverless en AWS, como ya lo habíamos mencionado, siempre la tendencia, el mercado nos invita que vayamos un poco más y AWS también a que vayamos un poco más hacia tendencias serverless, tales como DynamoDB, ya lo hablé, Amazon Lambda que es nuestro servicio de cómputo sin servidor y s para nuestros frontend, entonces entendiendo esto nuestro ciclo DevOps va a ser bastante eficiente, no quiere decir que de la otra forma no lo sea, pero obviamente la tendencia va para allá. A continuación vamos a ver los servicios DevOps en AWS. Ahora sí vamos a entrar un poco más en materia de lo que es servicios DevOps, si bien ya hablamos de hacia dónde van a estar dirigidos, vamos a hablar en general de los servicios, por ejemplo el servicio básico o hace como tal, no quiere decir que sea el único o que sea regla utilizarlo porque tiene integración con los servicios que ustedes están usando, más si ya tienen un proyecto andando. Scott Commit es un servicio de repositorios con tecnología git, obviamente si tenemos un git q, un GitLab, podemos hacer la integración, podemos traérnoslo, podemos migrarlo, si la intención es tener todo en AWS, obviamente va a ser mucho más ágil, va a tener comunicación nativa en AWS, nuestra recomendación siempre es traernos todo AWS, pero obviamente entendemos que muchas veces no se puede, ya tienen el proyecto muy desarrollado, tal vez tengan licencias, pero sin problemas se puede hacer una conexión, tenemos nuestro GitHub, lo integramos con CodeCommit, obviamente podemos tener una réplica de nuestro repositorio de forma por así decirlo, espejo y aprovechamos todas las bondades que AWS nos está dando, las integraciones mucho más ágiles y fáciles con los servicios. Entonces nosotros conectamos nuestro GitHub con CodeCommit y posteriormente vamos a utilizar un servicio que se llama CodeBuild. CodeBuild lo que nos va a hacer, nos va a ayudar a construir, hacer este debug, este testing, este empaquetado, hacer todos aquellos cumplimientos que nuestro servicio requiera, nuestro proyecto, tales como instalaciones de paquetería, más adelante vamos a verlo un poco más a detalle, pero tales como instalaciones de paquetería, tal vez configuraciones en específico, correr comandos específicos que nosotros queramos o creación de algún archivo en específico, nos va a ayudar a hacer todo ese debug, nos va a crear el artifact, ese servicio se lo va a pasar a code deploy. Code deploy va a tener la tarea importantísima de desplegar hacia el punto final que nosotros digamos, ya sea backend o frontend. Entonces obviamente si es un desarrollador, pues va a ser hacia el backend, si es un diseñador, pues va a ser hacia el front. Entonces lo va a hacer de forma automática. Para automatizar todos estos pasos está codepipeline, porque si cada servicio hace su propia labor, no es al final del día de forma tan automática. Para automatizar todo esta tubería como tal tenemos que usar pipeline. Pipeline se maneja a través de alarmas que nos van a llegar. Por ejemplo, nosotros hacemos un push del lado del desarrollo, estamos desarrollando, lo queremos, queremos hacer un commit, hacemos el commit, mandamos el push. CodePipeline va a detectar ese push, lo cacha porque entiende que a CodeCommit le llegó una nueva versión en el branch específico. Entonces agarra el código, se lo pasa codebull, lo empaqueta, hace todo lo que tenga que hacer, se lo pasa a codeploy y codeploy lo despliega. Todo esto de forma totalmente automatizada. Obviamente si hay algo que no se cumplimentó en el proceso, CodePipeline nos va a avisar y nos va a decir ¿Sabes qué? Se encontró un error, tal vez codeploy lo detectó, nos manda logs y nosotros ya sabemos definir las acciones. A continuación vamos a hablar de ejemplos de arquitectura para las aplicaciones web como tal. Podemos ver este ejemplo que ya les había. Jared había mencionado anteriormente cuál era la metodología de desarrollo anteriormente. Entonces podemos ver, aunque está en AWS sigue teniendo esta tendencia de desarrollo como antes lo hacíamos que es nuestros usuarios finales, lo entregamos a través de un servicio de DNS, un servicio de entrega de contenido, se viene a una VPC en específica donde tenemos, si bien tenemos un auto scaling aquí con su balanceador lo más seguro pero no dejan de ser servidores virtuales que son las instancias Dc, se comunica otra VPC, lo más seguro es que es privada hacia nuestra base de datos, entonces todo queda de forma monolítica, nada más desacoplamos nuestro servidor con nuestra base de datos, entonces es una forma de desarrollo tradicional. A continuación vamos a ver una forma más moderna como tal de desarrollo, entendemos por ejemplo aquí es totalmente serverless, tenemos como tal nuestros usuarios, nuestra entrega de dominio, nuestra entrega de contenido a través de CloudFront, vamos a consumir como ya les había dicho nuestra página web estática a través de Amazon s, esta va a ser toda su lógica de operaciones a través de API Gateway y nuestro backend va a estar en Lambda, va a ser puras apicals, este Lambda tal vez opere con una base de datos y va a estar consumiendo tal vez un contenido estático desde un buque de s, entonces pensemos por ejemplo que tenemos un ecommerce, la tienda está estática en Amazon s, las operaciones por ejemplo le damos clic a un producto API Gateway nos manda a llamar Lambda, Lambda tal vez está a nuestros precios en DynamoDB, Lambda se los pide a DynamoDB, nos los retorna y los podemos desplegar, ¿Cuánto cuestan estos tenis? 50 pesos porque ya hizo toda esa operación entre estos servicios, obviamente la imagen de los tenis puede estar en Amazon s para que no esté tan holgado nuestra página web estática, que ese es el requerimiento, que sea estática, que esté muy compacta, entonces va a ser toda esta operación y lo vamos a tener desacoplado, lo vamos a tener en diferentes servicios y la implementación de un ciclo de Vox va a ser bastante fácil al tenerlo de esta forma como tal. A continuación vamos a tener una breve demo de un ciclo DevOps a cargo de mi compañero Jared, Gracias.
Muchas gracias Ingeniero Pedro y gracias a todos por continuar en el webinar de aplicaciones web. Bueno aquí tenemos una aplicación web basada en lo que vendría siendo Django, entonces bueno el propósito es muy simple, simplemente agarras y mandas un mensaje, por ejemplo líderes en AWS, como pueden ver aquí si envío el comentario se agrega una vez que todo esto está en CodePipeline, entonces por ejemplo vamos a ver el código y cómo vamos a implementarlo por ejemplo aquí dice en esta página somos su aliado en AWS, entonces le vamos a poner al implementar un ciclo DevOps en una aplicación web, en una app web, lo guardamos. Aquí tengo un complemento para Visual Studio Code el cual te permite trabajar con git directamente desde acá, entonces le vamos a poner cambiando el mensaje, hacemos un code commit y hacemos un git push. A la hora de hacer el git push, como lo explicó el ingeniero Pedro Codepipeline le va a mandar GitHub una alerta de que hubo una nueva inserción, un nuevo push y entonces va a empezar a trabajar. Como pueden ver ya pasó aquí en la la fase source que literal es donde jala el código de GitHub o puede ser de codecommit también si lo tienen todo en AWS. En la fase de build sus desarrolladores tienen que hacer un archivo como este, un buildspec yam donde por ejemplo pueden establecer variables de entorno, pueden instalar las librerías que tienen para que su sitio web funcione correctamente, configurar la base de datos, después en la fase build como tal correr pruebas unitarias e integración y en post build pues nada más agregar por ejemplo un log de que se completó en tal día, en la fecha que se hizo el git push, esto todo lo hace CodeBuild, si ustedes intentarán hacer esto en un contenedor o en un EC o en un servicio que no sea beanstack, tendrían que aquí poner todos los comandos, por ejemplo un npm installado para instalar las dependencias en un código de node js, tal vez configurar su frontend en Angular y crear un ng build, etc. Pero en este caso como lo estamos apuntando directamente a lo que vendría siendo un beanstack, binstack se encarga de realizar toda la instalación de dependencias. Como pueden ver aquí automáticamente ya detectó que hubo un nuevo cambio porque en la ramificación de deploy que está apuntando a beanstack ya pasó la fase tanto de source como de build correctamente y va a la fase deploy donde vamos a poder ver el cambio directamente a lo que vendría siendo el sitio web. Aquí ya me dice que el health está OK, entonces lo actualizamos y pueden ver que ya al implementar un ciclo DevOps en una app web como tal, ese es el demo, igual si si desean pueden implementar algo más serverless con Lambda, con CloudFormation para crear todo el entorno, entonces aquí como quien dice va de acuerdo a su modelo de negocios. A continuación les voy a hablar acerca de los casos de uso de una aplicación web moderna como tal. Un ecommerce Es fundamental que se tenga una aplicación web, si tienes una tienda de cualquier tipo o tu modelo de negocios es la venta de productos, de servicios, tal vez un ecommerce vendría siendo la solución ideal para sus problemas, más en esta fase de contingencia que estamos viviendo desgraciadamente. También si tiene un ERP lo pueden migrar a AWS sin ningún problema, o inclusive un portal web más común como podría ser la del demo, tal vez una sección de blogs o algo así, tal vez también lo pueden migrar a lo que vendría siendo AWS y aplicaciones web de uso interno. Igual si ustedes cuentan con, si tienen aplicaciones con las que trabajan día a día y están basadas en lo que es tecnologías web, lo pueden migrar AWS sin ningún problema y no se preocupen por la seguridad porque AWS ofrece certificados de seguridad muy altos, de un alto estándar, entonces sus datos van a estar totalmente privados. En conclusión, para crear una aplicación web y montar un ciclo DevOps en AWS, primero tienen que arquitectar la solución, ya sea una solución más tradicional como podría ser la demo que es en Django, o inclusive una aplicación web basada en serverless totalmente con un frontend tal vez dinámico como podría ser React o Angular. Después establecer los servicios AWS que más le convengan a su arquitectura, por ejemplo si está utilizando React o Angular, pues sería un s un s para almacenar el resultado de la codificación de Angular React y conectarlo, por ejemplo una base de datos podría ser en MongoDB en un s o con DocumentsDB, o podría ser una base de datos serverless nativa AWS como podría ser DynamoDB o una RDS. Después vendría siendo la fase de implementar un ciclo DevOps, crear el pipeline, montar el source code, el source code puede venir ya sea de codecommit, lo más recomendable para que todo esté en AWS, o inclusive de GitHub, si su equipo de desarrollo utiliza GitHub que es lo más probable, entonces también su código va a estar, puede ser la fuente desde ahí, desde su repositorio en GitHub. Después de esto, montarlos, decidir a qué servicio va a ir el build, porque si va a un beanstack que te crea todos los archivos, todos los requisitos de tu aplicación web, pues entonces no se tiene que montar tanto código en esta fase de build, pero si en cambio va un EC o contenedores, si se debe de montar las pruebas unitarias y de testeo, etcétera. Y por último el code build que sería el endpoint, si se va a desplegar a contenedores, a un EC, a un Cloud Formation para crear un ambiente serverless o inclusive a lo que vendría siendo BeanStack. La automatización, pues esto le va a agregar automatización. El ciclo DevOps como tal, su propósito es automatizar los deployments y poder montar una metodología rápida a su negocio. Y por último, disfrutar de las ventajas de AWS.
Muchísimas gracias Jared Pedro por esta presentación de estas tecnologías y pues por parte de compuclo, ¿Cómo los podemos ayudar? Primero es por medio de una consultoría, de saber sus necesidades, qué es lo que están buscando y ver la manera de integrar estas tecnologías. Es diseñar y desarrollar un ambiente en AWS en el cual les permita llegar a sus objetivos de mercado y que tengan como la confianza y la seguridad que todo va a estar protegido. Y la implementación de estas tecnologías basándonos en optimización y la buena administración de ellas. El éxito de un buen desarrollo es la combinación de prácticas, tecnologías, procesos y una estrategia de negocio. No basta tener las tecnologías en tu empresa si no las debemos utilizar o si no hay un equipo especializado para apoyarte a utilizarlas al 100% y tener un objetivo de mercado en el cual se vea beneficiado toda la empresa. Esperamos que este webinar haya sido de su interés, que la información que les hemos dado les ayude a poder implementar estas nuevas tecnologías. Muchísimas gracias a todos por estar el día de hoy, esperamos que esta información sea de mucha utilidad para ustedes y esperamos verlos pronto para próximos proyectos. Muchísimas gracias.
More from Paulina

Todo sobre la Nueva Región de AWS en México | Beneficios, Infraestructura y Migración

DEMO: De VMware a AWS. Administración de ambientes dentro de la consola de AWS.








