Getting the transcript
Reading the captions from YouTube. A video nobody has opened here before takes 10 to 30 seconds; this page fills in on its own.
Getting the transcript
Reading the captions from YouTube. A video nobody has opened here before takes 10 to 30 seconds; this page fills in on its own.

Jose Antonio · @joseantcloud
Words
19,362
Runtime
5:50:30
Speaking pace
55wpm
Reading time
81min
55 words per minute, below the 160 25th percentile of 349 measured videos. That distribution comes from the 349-video hook study.
Opening (first 30 seconds)
Hola a todos y gracias por vernos en otro video más. En esta ocasión, en este curso completo, desplegaremos una aplicación de cero a producción. A través de
28 words, the words spoken in the first 30 seconds at 55 words per minute.
Free, no signup. See how the first 30 seconds hold attention, with rewrites.
Sentence shape
| Measure | This transcript |
|---|---|
| Sentences | 2,501 |
| Average words per sentence | 7.7 |
| Longest sentence | 91 words |
| Questions asked | 137 |
| Sentences containing a number | 29 |
Most used terms
Filler phrases
3 in total: like 3.
A literal whole-word count of the same phrase list the Prepublish browser extension uses, so a phrase inside another word is not counted and a phrase used in its ordinary sense still is. It is a count and not a judgement.
What this transcript is
Every word below is the caption track YouTube publishes for this video, pulled from the video itself and reproduced unchanged. It is not Prepublish's writing, not a summary, and not a re-transcription: it is the video's own published captions. Spanish captions, generated automatically by YouTube, in the video’s original language. Source: the video on YouTube. A channel that would rather this page did not exist can ask for its removal through the contact page, and it is removed.
No Script X-ray for this video: YouTube shows a Most replayed graph only once a video has enough views.
Hola a todos y gracias por vernos en otro video más. En esta ocasión, en este curso completo, desplegaremos una aplicación de cero a producción. A través de este video desplegaremos el backend. Conoceremos cómo revisar swager. Utilizaremos un diagrama de arquitectura. Desplegaremos diferentes tipos de pipelines desde el backend, infraestructura utilizando Terraform, crearemos esquimas de nuestro SQL a través de los pipeline. desplegaremos el frontend, crearemos box y sobre todo cumpliremos la promesa de este curso, utilizar inteligencia artificial para poder solucionar problemas y empezar a entender cómo aplicarla en nuestro día a día como de bobs.
Todos los recursos de este video, los repositorios, los pipelines y toda la información quedará disponible. Así que recuerden darle like, suscribirse, compartir y apoyar este contenido. Así que sin más vamos manos a la obra. Hola a todos y gracias por vernos en otro video más. Como hablamos al inicio de este video, este tutorial es completo de cero a experto y también nos vamos a valer con la inteligencia artificial con copilot para poder ir entendiendo cómo funciona cada uno de las partes de nuestro proyecto.
Acá está en grandes rasgos el diagrama de arquitectura de nuestra aplicación e que se va a llamar Asure Devops Quotes App. El flujo, el flujo principal va a ser bueno, el usuario entra al front end, eh, el front end lee la configuración que vamos a tener desde el roundime. Llamamos al backend, se valida a través del JW Token, procesamos el negocio, SQL en Assure, que ya lo vamos a usar también guarda los datos. Vamos a crear un blog storage, un application insightes y assure dev automatizará los despliegues.
Por acá está el frontend, luego vamos a tener por acá el backend, el blow storage. Todo eso lo vamos a ir creando paso a paso y lo vamos a ir entendiendo mejor. Para arrancar, me gustaría primero eh que desde GitHub nos vayamos a la cuenta. Yo les voy a dejar esto en la documentación del video, en repositorios y descarguemos estos tres eh proyectos para que ustedes los corran de manera local. ¿Qué vamos a hacer? Bueno, desde nuestro Asure Devops vamos a hacer lo siguiente, perdón, desde nuestro portal vamos a hacer lo siguiente.
Eh, vamos a crear una organización en Assure the Mobs. Vamos a entender cómo funcionan las piezas principales. Luego nos vamos a mover y vamos a empezar con las configuraciones. Vamos también a necesitar un Excel para ir guardando nuestros recursos que vamos a crear. Dentro de los repositorios ustedes van a encontrar un RMI, una documentación donde se encuentra cada detalle técnico de nuestro proyecto. Así que por recomendación yo les diría que lean primero el RMIM, lo entendamos y luego vayamos. instalando todo paso a paso.
Así que vamos a empezar en este momento con la primera parte que es creando nuestra organización en Asure DevOps. Vamos manos a la obra. Bien, entonces vamos a iniciar con la primera parte. Vamos a crear nuestro proyecto y nuestra organización en Nature DevOBS. Para ello nos vamos a venir al portal y vamos a buscar desde acá devops. Va a aparecer por acá assured DevOps organizations. Vamos a seleccionar view My Organizations.
Y listo. Si ustedes nunca han creado una, eh, pues les va a decir que creen una nueva organización, van a darle continue, etcétera. Mi caso, ya tengo una creada para el proyecto. Entonces, voy a seleccionar la que ya tengo. Listo. Dentro de mi organización, dentro de mi organización de Asure Devops, tengo que crear un proyecto. Voy a volver a la arquitectura. dentro del proyecto, pues van a vivir mis repositorios, mis pipelines, vamos a tener los variable groups, vamos a tener el código, las historias de usuario, etcétera.
Ya lo vamos a ver en este momento. Entonces, le voy a llamar quotes app y le voy a poner live domain porque es eh el dominio que vamos a utilizar cuando despliuemos la infraestructura. Entonces, voy a poner por acá, eh, voy a venirme al repositorio, me voy a venir por acá. Listo, lo voy a copiar, le voy a pegar la descripción y voy a seleccionar create project. Listo. Una vez se ha creado el proyecto dentro de mi organización que se llama Aunt Cloud X, si se fijan, ya me aparece acá.
Listo, voy a tener assure the box. organización proyecto. dentro del proyecto. Pueden ver, voy a tener el overview, un summary de todo lo que hemos hecho, los dashboards, vamos a tener el wiki, vamos a tener los boards, los boards van a contener pues eh los batloads, los sprints, los queries, delivery plans, vamos a tener los repos, los pipelines, test plans por si ustedes tienen, por ejemplo, un equipo de QA o de testing, los artifacts, estos por el momento vamos a ver un poquito más adelante y el project settings, que es lo que vamos a ver en este momento.
Entonces, ya creamos nuestro proyecto y nuestra organización. Entonces, ¿qué vamos a hacer ahora? Conocer a profundidad asure de Entonces, veámoslo en este momento las partes que contiene nuestra organización. Bueno, entonces eh veamos, contamos con nuestra organización que se llama, bueno, quote app Live Domain. Listo. En el overview pueden ver toda la información que tenemos, boards, repos, pipelines y prácticamente todo.
Listo. En los dashboards vamos a crear en este momento nuestro primer dashboard. Un dashboard es el que se encarga de mostrar las historias de usuario, la información que tenemos pendiente de nuestro proyecto, eh tareas o bien algún otra información útil para nuestros servicios. Entonces vamos a irlo conociendo y lo vamos a crear paso a paso. Así que nos vamos a venir al dashboard, vamos a seleccionar el overview, vamos a agregar un widget.
Eh, por ejemplo, eh, vamos a buscar el build history, lo vamos a agregar por acá. Listo. Vamos a seleccionar configure widget. Y en nuestro caso, como no tengo ningún pipeline, lo voy a dejar como está. Así que luego vamos a seleccionar y busquemos algo sobre el team. Listo, vamos a buscar el team. Eh, creo que no tengo team acá. Oh, team members. Listo. Vamos a buscar el team members. Por el momento, como no tenemos, pues lo vamos a dejar así.
Listo. Voy a seleccionar don editing. Cuando ya empecemos a trabajar con información, pues ya vamos a ir eh llenando, vamos a ir recibiendo detalles. Acá vamos a tener el el build history y también parte de nuestro equipo. Bueno, el siguiente paso ahora que ya sabemos es los wikis. ¿Y para qué sirve un wiki? Bueno, esta es información, puede ser documentación del proyecto o pues eh general de lo que estamos haciendo.
Vamos a crear nuestro primer wiki. Eh, lo vamos a crear manual porque no tenemos el código. Entonces, vamos a ponerle acá eh quotes, quotes, app, main y focus. Listo. Voy a copiar de acá. No nos vamos a complicar tanto en esto porque pues ya sabemos toda la información. ¿Listo? Solo lo voy a copiar y quiero que vayamos entendiendo cómo funciona. ¿Listo? Por acá está. Perfecto. Ya tenemos nuestra primera wiki. La vamos a cerrar.
Listo. Vamos a volver a la wikis. Y listo, ya tenemos por acá la información de nuestra wiki y de nuestro proyecto. Los boards. Bueno, en los boards vamos a tener acá el board de nuestro equipo, donde vamos a tener las analíticas, por ejemplo, las tareas que se han asignado, los proyectos, todo esto va a depender si ustedes escogen hacerlo como ágil, como scrom, etcétera. En nuestro caso, cuando creamos el proyecto por defecto, pues ya vamos a ver cómo se crea, pero acá podremos agregar un item.
Vamos a poner acá eh create o vamos a poner import code. Listo, vamos a agregarlo. Perfecto, ya tenemos por acá, vamos a ver ahora los tipo. Vamos a tenerlo como nuevo active, resolve y closed. Listo. Acá pueden ver los settings dónde está el tipo de navegación, los campos, los estilos. Eh, los tags, por ejemplo, podría agregar un color eh new. New new para el color. Eh, vamos a ver. Listo. Vamos a poner este por acá.
Perfecto. Listo. Vamos a tenerlo backlocks. Aquí está asignado. Este es un user history. Eh, listo. Vamos a poner por acá. Vamos a abrirlo por acá. Pueden ver. Vamos a agregarle un tag y se va. Vamos a ponerlo como new. Perfecto. No tenemos a nadie seleccionado. Y vamos a ver este, por ejemplo, ya lo podemos mover activo. Eh, la descripción vamos a poner eh importar code from GitHub. Listo. Vamos a a ver el History Points.
Los history points van a depender mucho también de los project manager, el risk cer y el business area. Vamos a poner architectural. Listo. Lo vamos a guardar. Y si se fijan, ya en este momento está trabajando. Si ustedes se vuelven a los backlocks, van a ver que tenemos eh por tags, ¿a quién está asignado? Si está activo y listo. Los sprint. Bueno, los sprints, esto lo vamos a preguntar por acá a alguien, se lo vamos a preguntar a nuestro amigo Copilot, qué es un sprint en Asure Devops.
Como parte de este proyecto, quiero que también nos vayamos familiarizando con eh copilot. Vamos a buscar qué es un sprint en Asure Devops. Listo. Eh, no quiero ahondar tanto en teoría. No quiero queemos abundemos tanto en este tipo de cosas porque eh pues al final este proyecto es para que ustedes tengan experiencia y sobre todo que queden listos para el trabajo. Entonces cuando les hagan una entrevista de trabajo, ustedes digan, "Ah, bueno, un sprint es un bloque de tiempo fijo, generalmente de una a cuo semanas." Y acá pueden ver toda la información.
Bueno, eso es un sprint, ¿cómo lo podemos ver? ¿Listo? Perfecto. Vamos a cerrar ahora. Listo. Vamos a cerrarlo. Perfecto. Esto es un sprint. Por acá pueden ver. Pueden crear un nuevo sprint que pueden llamarle, por ejemplo, eh, deploy to pro or app or app. Start date. Este día. En dat vamos a poner eh tres semanas para la pongámosle para la primera semana de junio. Listo, vamos a crearlo y ya lo tenemos acá. El backlock new work item.
Pueden buscar acá los eh los work items, pueden ver las las opciones y toda la información. la capacity, por ejemplo, los días asignados, una signados y la capacidad por día vamos a poner eh de seis. Probablemente podrían ser horas, probablemente podrían ser eh historias de usuario, etcétera. Listo, ahí tenemos entonces nuestros sprints. Por acá pueden ver, acá están todos los sprints que ustedes pueden ir creando y que pueden ir modificando. los queries cuando eh por ejemplo los usuarios son muchos, tienen 1000, 2000, 3,000, eh ustedes pueden crear queries para saber el tipo de de historia de usuario, cuánto tiempo se ha tardado, etcétera.
Delivery plans, ya saben, como su nombre lo indica, es eh un plan para la creación de ciertas historias de usuario, features o características. Vamos a poner acá deploy to prodlo eh quotes app. Listo. El sprint acá pueden ver el team. Pueden ver el proyecto, el team y el back. Vamos a poner feature, vamos a poner histories. Listo. Vamos a crearlo. Perfecto. Ya lo tenemos acá. Ya lo empezamos este día y acá se van a ir asignando dependiendo de las historias.
Por ejemplo, new item. Si quieren crear un new item, acá se estaría asignando el delivery plan y toda la información. Analytic Views. Bueno, esto es bien importante si ustedes son PM hoy pues tienen ya eh plan de convertirse en un project manager para saber toda la información, los histories, los books y todo lo que le asignan al team y mantener una organización de todo el proyecto. Entonces ahora nos vamos a mover a repos.
Esta es la parte más importante para nosotros como dev. entender cómo funciona. Entonces, veamos en este momento los repositorios. Vamos a hablar ahora entonces de esta parte eh sobre los repositorios. Dentro de Assure Devops podemos manejar múltiples repositorios, podemos manejar múltiples configuraciones inclusive para nuestros repositorios. Ahora bien, si se fijan, eh cuando creamos el proyecto y luego pues creamos nuestra organización y nos venimos a los repositorios, tenemos esta opción y nos aparece un repositorio por defecto, el cual pues eh podemos clonar o podemos crear dentro de nuestra computadora y lo podemos traer acá.
Pero hay que entender otros conceptos. Asure Devops también. tiene ciertas características que vamos a entender. Una de ellas es conocer sobre las branching strategies o las estrategias de ramas dentro de de Bobs, porque este curso no solo abarca el Asure Devops y Ashure Portal eh P blind, sino entender un poco más cosas que nos van a preguntar dentro eh de entrevistas de trabajo. Entonces, por acá con la ayuda de Copilot vamos a a ver eso.
Bueno, entendiéndolo más allá vamos a ver que dentro del branching strategies vamos a tener uno donde utilizamos eh el cord tenemos el main y el master. Vamos a tener develop, pero aquí están las mayores, que son las más importantes. El core, sí, claro, eso es el que usamos normalmente, pero nos van a preguntar en una entradista, ¿cuáles son las branching stradis que podemos usar? Ustedes le pueden decir, bueno, la clásica vamos a utilizar eh gitfog.
Y ahí les van a decir, ¿por qué? Bueno, miren, es la más organizada. Eh, por defecto, pues ya usamos main y vamos a crear nuestras características, nuestros features, nuestros developares. Por ejemplo, vamos a poder crear un branch para feature e por ejemplo, José Antonio eh fix eh connection string release. Cuando vamos a hacer, por ejemplo, release pro 1.0, un hotfix que por allá nos quedó un color mal, nos quedó un bog, pues lo creamos acá.
Los pros acá están y los consquiera conocer bastante de si hay que las personas sepan cómo administrar su branches, etcétera. Eh, para continuous interation si es slower, porque imagínense que ustedes tienen un grupo de 10 desarrolladores y solo tienen creados eh dos agentes, ya vamos a verlos más adelante. Entonces, y los agentes se van a atorar y no va a pasar pues nuestro eh nuestro proyecto o nuestro push gitat. Este sí es simple.
Como pueden ver, solo vamos a tener dos tipos de arang main y feature. Cuando hagamos el pull request, pues fácil, el main se va a pues a crear el mix con nuestro eh característica. Acá están. No voy a abondar mucho para que ustedes lo estudien y el Gitlab Flow. Esto eh es híbrido, a mí no me gusta, les soy sincero, hasta el día de hoy no lo he visto prácticamente en ninguna eh lugar donde he estado trabajando. Y el Trunk Base, este sí se utiliza mucho cuando ustedes necesitan en específico eh algo rápido de producción.
Acá está cómo vamos a escoger eh la mejor para nosotros. Por ejemplo, continuous deploy, el gitfow cuando es un grupo pequeño de 5 20 desarrolladores, el Gitlab y más de 20 Gitflow. Ya cuando ustedes tienen microservicios como el que vamos a ver en este momento, vamos a utilizar el trunk based. Eso sería grandes rasgos conocer un poquito sobre los branching strategies. Ahora, ¿qué vamos a hacer que ya conocemos un poco más sobre los repositorios?
Y sobre preguntas que nos podrían hacer sobre esto, vamos a importar nuestros eh repositorios. ¿Cómo lo vamos a hacer? Muy fácil. Recuerden eh nosotros vamos a utilizar tres repositorios. Uno para el front end, otro para el backend y otro para nuestra infraestructura como código. Los repositorios, por ejemplo, front end y back end. tienen nuestros pipelines. Entonces, vamos manos a la obra e importemos los repositorios.
Entonces, vamos a iniciar importando nuestros repositorios. Para ello vamos a venir acá y vamos a seleccionar importos. Miren, eh, por ejemplo, si ustedes van a importar un repositorio privado, eh, podrían seleccionar authentication y con esto pues ustedes seleccionan eh, por ejemplo, el nombre de su usuario, el pad de GitHub y el nombre de su repositorio. En nuestro caso, como vamos a seleccionar un repositorio público, entonces pues vamos a venir, me voy a venir por acá, voy a volver, voy a seleccionar el infra, la parte primaria para crear nuestro proyecto.
Voy a copiar el URL. Voy a volver. ¿Y dónde estaba? Por acá le voy a pegar el nombre nuestro repositorio. Así se va a guardar dentro de Asure Devops. Entonces, mucho cuidado. Acá vamos a seleccionar importar unos segundos. Listo, ya importamos el primero. Ya vamos a verlo más adelante cómo usarlo. Por acá está. Listo. Vamos a importar el segundo. Importository. Voy a volver. Vengo a los repositorios, voy a seleccionar el backend.
Listo. Code. Lo copiamos. Me vengo por acá, lo pego. Voy a corregir el nombre. Voy a seleccionar import. Listo. Vamos a esperar unos segundos. Mientras tanto voy a volver y voy a buscar el front end. Listo, copiamos. Listo, ya se importó. Voy a importar otro adicional. Listo. Ah, sí, acá. Listo. Voy a cambiar el nombre. Y listo. Por acá está. Listo, ya tenemos los tres repositorios principales con los cuales vamos a trabajar.
Ya vamos a ver esto. Esto quiero que que veamos algo más importante. Listo. Vamos a volver a la arquitectura, al diagrama y ya importamos el repositorio front end. Ya tenemos el repositorio backend y tenemos nuestro IAC. En nuestro caso, pues no aparece por acá listado, pero ya lo vamos a revisar. Bueno, volvamos a los repositorios y entendámoslos un poquito. Para ello vamos a abrir esta pestaña y seleccionemos seleccionamos manage repositories.
Listo. Bueno, si se fijan, vamos a tener dentro de todos los repositorios settings, policies, vamos a tener security. Listo. Pero vamos a tener primero los repositorios. Acá vamos a tener los repositorios. Si en nuestro caso tenemos múltiples, si queremos administrar alguno, lo seleccionamos por acá. En nuestro caso, este no lo necesitamos. Entonces, me vengo acá y lo voy a borrar. Este se llama eh keyots appli domain.
Listo. Perfecto, ya lo borramos. Ahora vamos a ver el de infra. Si tenemos, por ejemplo, eh algunos repositorios que tengan secretos, acá están en security plans, ahí lo vamos a tener. Repository grar forks, eh, no, para que los repositorios no puedan ser eh copiados. Listo. Comit mentioning. Sí, es necesario que para cada commit se cree un mention link. Sí, lo podrían poner mention item work. Normalmente esto eh se genera cuando creamos el pull request.
Ya lo vamos a ver más adelante. Word item transferences. Sí, listo. Y acá pueden ver muchas cosas más. Si en dado caso ustedes no quieran borrar el repositorio, pero lo necesitan mantener, lo pueden deshabilitar. Y acá estamos las branches. En nuestro caso estamos utilizando el default main. Listo. Vamos a volver a este y si se fijan tenemos lo mismo. Vamos a venir a los policies. Comit validation file pad. Sí. Case informant reserve names.
Miren esto. Esto de acá es muy importante que lo sepan. ¿Qué va a suceder? Bueno, cuando ustedes ponen esto, eh, normalmente, por ejemplo, hay empresas o hay compañías que tienen nombres reservados, por ejemplo, Pepito e, por ejemplo, Microsoft, que tienen nombres eh reservados para ciertos archivos, entonces seleccionan reserve names para que lo tengan disponible. ¿Listo? Esta es pregunta de trabajo security. Listo.
Por ejemplo, hay cierto, ya lo vamos a ver más adelante, ciertos usuarios que no deben de acceder al repositorio. Entonces, acá eh lo remueven. Listo, lo vamos a remover de acá y los approvals en checks. Listo, acá está branch control approval. Por ejemplo, si alguien quiere hacer un deployment por acá, lo puede ver. Si alguien quiere crear un log también lo vamos a ver más adelante, no se preocupen. Listo, vamos a ver algo.
Vamos a ver las branches. Listo. En security, en policies. Bueno, vamos a ver algo. Bill validation, status checks, toda la información. El security. Listo, acá ya lo vimos. Y approval and checks. Listo, acá está. Muy bien, entonces vamos a volver, vamos a ver el quotes backend y lo mismo acá vamos a tener eh la misma información dentro de policy bien. Vamos a tener lo mismo, reserve names, listo. Si necesitan crear un nombre reservado, también lo van a tener por acá.
Lo vamos a modificar para que entendamos eso. Ya más adelante, cuando veamos los repositorios, vamos a entender un poco mejor. ciertas características. ¿Por qué es importante esto? Bueno, miren, dentro de los eh empresas o de las compañías, hay características que solo vamos a entender una vez estemos trabajando. Por el momento, lo más importante es que entendamos esto, cómo importar, cómo crear y cómo borrar algunos repositorios.
Ya tenemos por acá esto. Ya vamos a crear póliis. cuando estemos trabajando dentro del proyecto. Por el momento ya tenemos con vida uno, tres repositorios, ya creamos los boards, ya creamos el overview y tenemos también nuestro primer work item. Vamos a venir entonces a nuestro work item, listo. Y lo vamos a cambiar a resolve. Ya creamos nuestro primer Word Item. importar código. Listo. ¿Cuál es el segundo work item?
Vamos a crear un nuevo work item y esto va a ser una eh tarea. La tarea va a ser eh create eh vamos a poner, ¿cómo se llaman acá? Vamos a abrir repositorios por acá. Vamos a seleccionar manage repositories. Eh, policies. Create a policy to enforce. reserve name. Vamos a poner acá create policy to enforce reserve names. Names. Listo. Vamos a crear una. Voy a asignármelo a mí. Ya vamos a crear más usuarios. Adelante. Tags nuevo.
Listo. Estato. Description. as a devops devops s engine I need to enforce repos repositories repositories positories to avoid using test test test test names listo ¿Por qué? ¿Por qué puso esto? Bueno, vamos a poner eh activity eh deployment development, ¿no? Vamos a poner acá eh requirements. Eh eso vamos a dar una hora. Listo. Remaining, una hora. Completero. Eh, ¿por qué digo esto? Bueno, miren, hay eh lugares donde hay equipos dedicados para crear esto eh los test.
Entonces, por eso es bien importante que no se utilicen este tipo de nombres. Entonces, ahorita vamos aondar un poco más en los repositorios y vamos a entender esa configuración. Entonces, vamos a trabajar en esa iOS en este momento y luego nos vamos a mover a otra parte donde vamos a empezar a crear ya características de los proyectos. Vamos entonces, manos a la obra. Entonces, ¿qué vamos a ver en este momento? Eh, un poco de características avanzadas.
Igual eso lo vamos a ir viendo a lo largo del curso. Entonces, nos venimos a repositorios. Vamos a verificar esta parte. Tenemos los policies, eh los settings a grandes rasgos. Esto ya es para nivel de eh de los repositorios. Si ustedes quisieran hacer algo y nos vamos a ir al proyecto, vamos a venirnos Advance Security, listo, en in settings, listo. Pero ustedes dicen, miren, yo quiero eh modificarlo a nivel de todos los repositorios.
Ah, listo. Bueno, entonces para eso nos vamos a venir a settings, al settings de nuestro proyecto, no de la organización. A settings de nuestro proyecto y desde acá vamos a empezar a manejar las configuraciones de los repositorios. Vamos a ajustes o settings. Vamos a verificar. Listo, aquí tenemos la información, los pólies. Vamos a crear un policy, en este caso, commit autor email validation. Lo pueden hacer acá. Eh, reserve names, sí, lo vamos a dejar.
Branch policies. Quiero que vean esta protect branches paces across all repositories. Vamos a agregar una. Protect the default branch of each repository. Sí, listo. Vamos a crearlo. Perfecto. Require a minimum o reviewers. Sí, claro. Vamos a poner que uno. Listo. Y vamos a ver. Perfecto. Ya tenemos un validation. Muy bien. Entonces, vamos a poner acá el default branch para todos los repositorios. O sea, cuando se quiere hacer un push hacia esa branch, vamos a requerir un mínimo de reviewers.
Perfecto. Entonces, muy bien, ya tenemos los settings, ya tenemos esta configuración. Ahora, nosotros podríamos probar, sí, claro, podríamos probar y crear un branch, pero vamos a hacer algo. Vamos primero a venirnos a la organización. ¿Listo? Y vamos a irnos a la organización, perdón, organization settings. Listo, nos vamos a ir a usuarios. Listo. Y vamos a invitar a un usuario. Me voy a dar, voy a dar de baja a este.
Listo. Eh, remove. Ah, bueno, yo me había enviado una invitación, entonces eh vamos a removerlo. Listo. Y voy a volverlo a agregar. Listo. Y acá está. Voy a poner mi correo electrónico. Ya saben que esto me pueden contactar si tienen preguntas del curso. Snetil.com. Ya saben que se me pueden contactar. Listo. Lo vamos a agregar al proyecto. Perfecto. Vamos a darle a. Listo. Voy a verificar. Por ahí me va a llegar un correo de invitación.
Voy a esperar unos segundos. Listo. Vamos a esperar. Voy a esperar porque acá me va a llegar el correo de invitación. Listo. Listo. Por acá tengo mi correo de invitación. Entonces, ¿qué voy a hacer? Bueno, voy a poner pausa por acá y eh voy a darle okay. Entonces, pausa. Bien. Bueno, después de todo el circo, si se fijan, ya tengo por acá en este momento eh la invitación del proyecto. Listo, en repositorios. Ya estoy acá como eh mi usuario.
Entonces, ¿qué voy a hacer? Voy a crear eh voy a crear un branch. Voy a crear un branch y este se va a llamar José. Martínez. Listo. Eh, test, por ejemplo, test, trest, no, test. Listo, no tengo work items, entonces voy a asignarle un work item a este usuario para que entendamos cómo funciona. Esta es una dinámica muy interesante. Si no creamos estas dinámicas, probablemente no eh no las entendamos después cuando estemos creando mayores eh proyectos mayores.
Vamos a poner acá José Antonio. José Antonia@gmail.com. Mm, todavía no me aparece. Bueno, creo que nos va a tocar esperar un poquito, si no voy a crear una copia de este. No sé si me Ah, okay. Listo, listo. Eh, copiamos, pero creo que no me deja selecciono que no me deja seleccionar a otro usuario. Hm. Bueno, vamos a a darle un discard de los cambios. Entonces, me voy a venir acá, me vengo a este y lo vamos a crear. Listo.
Acá fulanito va a crear una un archivo y listo. Ya vamos a ir trabajando en esto de a poquitos y vamos a ir entendiendo cómo funciona. Ya cuando se creen los pull request, toda esa información se va a ir agregando. Perfecto. Bueno, ya tenemos un pull request, ya tenemos un usuario. Ya en este momento estamos entendiendo cómo funcionan eh cómo funciona en específico toda la información. Pull request no tenemos acá pull request como administrador, ¿no?
Listo. Bueno, entonces, ¿qué hicimos en este momento? Creamos un policy, verificamos la configuración general de los repositorios en Advance Security y con esto ya estamos familiarizándonos un poquito con la plataforma. Ahora, ¿qué vamos a hacer? Bueno, miren, vamos a avanzar a la siguiente parte, a los pipelines. Vamos a crear nuestro primer pipelines y vamos a entender cómo funciona. Entonces, veamos eso en este momento.
Primero que todo, para los pipelines vamos a utilizar la documentación y también nuestro amigo eh Copilot Pipelines. Listo, acá está. Eh, vamos a preguntarle. explica para humanos los Asure Pipelines. Listo, vamos a esperar y vamos a ver la documentación. Veamos qué nos dice la documentación. Por acá está. Bueno, y acá nos dice entonces los Asure Pipelines, como pueden ver, eh los pipelines nos dice que son un servicio que toma nuestro código, lo construye, lo prueba y lo despliega automáticamente.
En nuestro caso, pues en Asure, servidores propios, contenedores y acá está. No vamos a abondar eh en la teoría porque la pueden leer, pueden descargarse un libro, etcétera. Pero por acá está la información del pipeline. Eh, acá está un pipeline básico para no JS. Listo. Eh, los triggers que incluye los branch, el pull que ya lo vamos a crear. Tenemos eh los task. Hombre, ¿por qué me das? Bueno, bueno, steps, steps. Ya me hizo reír eso.
Bueno, eh tenemos los steps, eh los input y toda la información que le vamos a pasar a nuestro pipeline. ¿Listo? Entonces, ¿cuál es el siguiente paso? Bueno, señores, el siguiente paso es crear nuestro pipeline. Así que vamos a volver acá y vamos a asignar un work item. Vamos a crear un nuevo work item y user history y vamos a poner create IC pipeline. Listo. Perfecto. No identities found. Bueno, vamos a me lo voy a asignar aquí.
Listo. Se lo va a asignar acá a Antonio Martínez y voy a poner acá Asa Devops. Ay. A IC pipeline to deploy infra. Listo. Y asignamos esto. Story points. Vamos a ponerle tres. Proiberty uno porque es infra. El riesgo alto si no lo cumplimos. Classification. Esto no es business. Architectural. Listo. Lo vamos a guardar. Y listo. Ya lo vamos a poner acá. Listo, ya tenemos los work items. Si volvemos al perfil de nuestro amigo, acá lo refrescamos.
Listo, lo refrescamos. Vemos acá esto. Tenemos acá el user history. Entonces, lo vamos a crear. Listo. Don. Vamos a ponerlo en activo y lo vamos a guardar. Listo. Ahora vamos a trabajar desde este perfil. Vamos a venir y quiero que veamos lo siguiente en user settings. Perfecto. Vamos a cambiarle la imagen. Choose image. Eh, voy a poner acá un New Toyota. Listo. Perfecto. Muy bien. Aquí estamos. Vamos a volver a Devops.
Venimos acá. y él va a crear el primer pipeline. Vamos a crear pipeline. ¿Dónde está nuestro repositorio? Lo vamos a ver en este momento. ¿Dónde está nuestro código? Bueno, nuestro código está en Asure Repos. ¿Listo? Se encuentra acá. Quiero que vean esto. Quiero que me lo salte ahí. ¿Dónde está el repositorio o dónde está el código? En un repositorio y dónde está en quotes infra. Ahí sí. Listo. Acá está. Listo. Por acá está.
Quiero que lo vean. El trigger non. Los parámetros va a recibir el service connection. Ya lo vamos a crear. El display name, el string, el default. Tenemos un valor por default. Target stack. Ya lo vamos a ver. También si ustedes han venido siguiendo eh los videos de infraestructura como código, este les va a quedar muy claro. Aquí están los valores. Podemos desplegar un grupo de recursos, un aks, un web app, un storage account.
Listo. Vamos a usar un grupo existente, eh, false o true. Sí, el grupo de recursos, la ubicación, las ubicaciones que tenemos disponibles. Los ambientes de QA stag. El owner, listo, el default también por acá son ciertas tags, los nombres y pues eh no voy aundar en esto para que lo lean ustedes cuando lo descarguen. Perfecto. Y acá está todo lo de Terraform, los bars, todo lo que necesitamos. Muy bien, voy a guardarlo.
Listo. Y acá tengo mi primer pipeline, quotes, infra y AC. ¿Qué creen que sucedería si corro el pipeline? Bueno, quiero que veamos. Acá está. Me va a pedir un service connection, un target stack, un grupo de recursos, el nombre del grupo de recursos, la ubicación, el environment, el owner. Esto no es requerido y pues lo demás tampoco. Los recursos acá podemos definir variables si el pipeline las requiere. Stages no tenemos stages.
Los recursos tampoco. Vamos a darle ahora enable diagnostics. Y listo. Ah, bueno. Mm. Miren, falló. ¿Por qué falló? No hay logs, dice. Pipeline is not valid. Job deploy step asure cl input. Ah, okay. Dice, service connection which could not be found. Ah, okay. Bueno, tenemos un error acá y nos dice que el service connection no se pudo encontrar. Y también quiero que vean que que llegó un correo electrónico con la información de mi deploy.
Ah, okay, listo. Y por acá está los detalles. Nos dice de Pel Instal job deploy service connection preparation could not be found. Ah, bueno, ya tenemos una pista. Entonces, ¿qué vamos a hacer en este momento? Crear nuestro primer Service Connection. Bueno, algo interesante acá, ahorita que vamos a crearlo es saber dónde lo vamos a crear. Para ello nos vamos a venir a Project Settings, vamos a buscar pipelines Service Connection.
Vamos a crear nuestra primer service connection, pero vamos a duplicar por acá. Y quiero que vean nuestro Service Connection acá se llama eh, veamos, Preparations Antonio. Entonces yo voy a crearle una que se vaya a llamar, por ejemplo, eh eh Service Connection. Bueno, perdón, vamos a buscar acá primero el tipo de Service Connection. Vamos a tener Asure DevOps, eh Team Foundation, Resource Manager y muchos más. ¿Cómo?
En este momento vamos a enviar y vamos a solicitar creación de infraestructura en Asure. Vamos a buscar el Asure Resource Manager. ¿Listo? Lo vamos a dejar a nivel de suscripción porque eso es lo que necesitamos. Vamos a ver. Acá dice suscripción uno. Ah, okay, okay, listo. Mm. ¿Por qué creen que este no deja verlo? Ustedes dirán, "Pero es miembro de de la organización." Claro, es miembro de la organización, pero no tiene acceso dentro del tenant que vamos a utilizar para este proyecto.
Entonces, acá es donde sí se necesita al administrador. Entonces, voy a venir yo como administrador, voy a venir al service connection, voy a crear un service connection, resource manager, world identity. Voy a buscar mi suscripción. Eh, voy a poner por acá eh mi suscripción que necesito es enterprise. Listo. Voy a venir acá. Voy a mover esto también. Vamos a esperar unos segundos. Listo. Bueno, listo. Ahora eh quiero que vean, ya tengo acá el despliegue grupos de recursos.
No vamos a utilizar ningún grupo de recursos, entonces yo lo voy a dejar a nivel de suscripción. Entonces vamos a ponerle service connection e quotes app live domain. Listo. Eh, vamos a poner acá descripción service connection to access all resources in or app. Perfecto. Vamos a darle gr a todos los pipel. Listo. Vamos a esperar un par de segundos y listo, ya tenemos creada nuestra service connection. Vamos a ver. Usag no tenemos.
Aprobar scheck no tenemos por un momento. Voy a volver acá al pipeline. Listo, ya tengo el pipeline. Perfecto. Voy a editarlo. Listo. Voy a abrir acá eh Service Connection. Me vengo por acá. Project Settings. Service Connection. Listo. Listo. Y no aparece. Ahora ustedes dirán, "Bueno, pero si este fulano está creando acá, eh, ¿por qué no le aparece?" Bueno, miren, esto es un punto que quiero discutir con ustedes a futuro, no en este momento.
Si yo me vengo acá como administrador a los pipeles, tengo este, yo qué haría y cuál sería el componente apropiado. Acá me vendría al pipeline y en lugar de dejar un default, yo pasaría esto como una variable. Y ustedes dirán, "Bueno, pero ¿cómo pasamos esto como variable?" Muy fácil. Bueno, aquí hay algo que se llama variables. Entonces, yo pasaría por acá service connection. Perfecto. Y le pasaría el nombre de mi Service Connection, la que hemos creado anteriormente.
Vamos a ver. Vengo por acá. Service Connection. Listo. La voy a copiar. Voy a venir acá. Le voy a pasar este valor y listo. Ahora acá, si ustedes se fijan, le aparece cómo lo pueden pasar como un service connection. Entonces eso es lo que vamos a hacer en este momento. Ya tenemos por acá el nombre de nuestro Service Connection. Voy a copiar el nombre, lo voy a guardar y listo. Ahora ya solo me faltaría uno. Como yo soy administrador, podría enviarlo desde mail.
Listo. Entonces vamos a hacer eso. Vamos a modificar acá. Listo. Voy a Oh, my bad. My bad. Voy a copiar las variables. Voy a copiar. Listo. Vamos a modificar el default, el valor default. ¿Y cómo pasa una variable? Muy fácil. Abro acá, abro paréntesis. Listo. Y le paso el nombre de mi variable. Listo. Acá está duplicado. Voy a pegar. Listo. Y acá ya tengo entonces que este parámetro no se vaya a pasar como eh por así decirlo, dinámico.
Vamos a dejarlo fijo. Lo vamos a validar. Listo. Ah, okay. Listo. Miren lo que dice. Pushes to this branch are not permit. Ah, okay. Perfecto. Entonces, yo ya sé que ya hay ya tenemos restricciones, así que me voy a venir a los repositorios, voy a buscar el repositorio de infra IAC. Voy a crear un branch. que se va a llamar eh eh José. Pérez y se va a llamar Fix Service Connection. Service Connection. Listo. Vamos a touch uno de estos.
Perfecto. Vamos a crear. Ahora sí me puedo venir a mi pipeline, lo edito, modifico este, lo pego, listo, hago commit, voy a agregar mi item, voy a hacer commit y ahora voy a crear un pull request. Perfecto. Me voy a agregar a mí mismo. Mmm. Listo. Voy a crear acá. Y Okay. My bad. Oh, ¿qué se hizo? Voy a crear acá Word Items. Voy a crearlo y listo. Y dice que al menos un reviewer debe de aprobar. Lo voy a agregarme a mí como un require reviewer.
Listo. Y como opcional voy a agregar también a nuestro amigo Antonio Optional reviewer. Listo. Antonio Martínez. Listo. Perfecto. Entonces voy a copiar este. Muy bien. Overview. Si me vengo a los pull request. Acá tengo uno. Listo. Y voy a probarlo. Lo apruebo y dice que al menos alguien hacer adicional del autor debe de aprobarlo. Entonces voy a venir por acá. Listo. Voy a pegar nuestro pull request. Listo. Voy a darle a probar.
Muy bien, ya está todo perfecto. Files, vamos a revisar los files que se cambiaron. Listo, me vengo, selecciono complete. Perfecto. Y listo. Ahora me vengo a mi pipeline. Listo, ya lo edito y está funcionando. Ahora ya lo podría correr. Sí, claro. Vamos a darle resources. Bueno, voy a cambiar el nombre del grupo de recursos. Recuerden que en este momento estamos entendiendo acá cómo funciona. Todo esto es lo que ustedes van a ver en el día a día.
Listo. Vamos a darle resources run y va a volver a fallar. ¿Por qué creen? Bueno, vamos a ver. Nos está pidiendo un permiso. Ya vamos a entender qué es ese permiso. Mm, ¿por qué creen que no fallaría? Bueno, quiero que vean, nos dice algo acá, algo muy importante que quizás no hemos tomado en cuenta. Nos dice que está esperando que se despliegue un paralel job. Ah, okay, okay. Listo. Necesitamos un agente. Agentes y listo.
No tengo agentes. Entonces, ¿qué vamos a hacer en este momento? Uno, vamos a entender que es un agente. Dos, vamos a entender cómo se instala y tres, vamos a ver cómo se conecta con el pipeline. Entonces, vamos manos a la obra. Hablemos entonces un poco sobre los agentes. Primero vamos a a ubicarlos o vamos a movernos hacia la ruta donde están ubicados. Para ello nos vamos a venir a Project Settings, luego nos venimos hacia pipelines y nos vamos a mover a estas opciones.
Primero quiero que entendamos, vamos a tener los agent pool y los parallel jobs. Vamos a conocer primero los agentols y en este momento pues eh de este proyecto no hay ninguno. ¿Por qué uno? porque no hemos creado ningún pipeline todavía que se haya desplegado exitosamente. Luego, eh, ¿cómo vamos a hacer? Bien, acá vamos a agregar un pull y vamos a tener un existing asure pipelines, pero como en este momento no tenemos Asure Pipelines, no hemos comprado todavía eh la el tiempo de cómputo, entonces no vamos a agregar ninguno de esos.
Entonces, eh self host, sí, si ustedes quieren entender un poco más de los self host, eh les recomiendo que vean la documentación. Por acá está los self host agents, cómo usarlos, las versiones de Node que utilizan para crear su proyecto y cómo lo pueden llamar. Acá está el pool, el classic. Listo. En el UI la documentación de cómo pueden agregarlo y cómo lo van a ver disponible. Ahora, eh vamos a agregar también un Asure Virtual Machine scale set.
Sí, con un Service Connection. Sí, esto es cuando, por ejemplo, pensemos a términos empresariales. Volvamos a nuestra arquitectura. Veamos. Vamos por acá. Supónganse que esta aplicación un día llegara a ser utilizada por eh 235,221 usuarios. Entonces, esos 235,221 usuarios van a ingresar al frontend. voy a tener eh unos 20 o 30 desarrolladores trabajando y tod ahí van a estar haciendo cambio, van a estar enviando todo y pues se va a estar consumiendo el variable group, creando los pipelines.
Por ende, un solo agente no nos daría el ancho de banda para poder realizar todas esas maniobras, todas esas eh cambios en paralelo. Entonces, vamos a tener acá el agent tool, que va a ser un set de máquinas virtuales trabajando. ¿Listo? Pero en nuestro caso, como vamos a tener eh una cantidad muy pequeña de pipelines, pues lo mejor es un self host. Entonces, vamos a poner acá y le vamos a llamar self host agent. Codes app.
Listo. Vamos a darle permiso a todos los timeline. Sí, vamos a darle create. Listo. Por acá está. Y vamos a agregar nuestro primer agente. Acá vamos a tener agentes, Details security, approval and checks y los Analytics. En nuestro caso vamos a seleccionar nuestro primer agente y quiero que vean cómo se configura. Vamos a tener varias opciones, un Windows, Mac, OS, por ejemplo, ustedes están desarrollando aplicaciones Mac y pues necesitan crear un eh, no sé cómo se llama en en vamos a preguntarle acá, vamos a preguntar a este vamos a a buscar eso. ¿Cómo se llama? ¿Cuál sería el nombre técnico del APK en iOS?
Ah, okay. Bueno, un archivo IP. Listo. Ah, perfecto. Entonces, ustedes están desarrollando eso. Listo. Necesitarían un sistema Mac OS para construirlo. Aquí está un Linux. cuando están desarrollando aplicaciones Python, eh estamos desarrollando Flask, etcétera, o Windows, pues cuando necesitamos algo un poquito más genérico. En nuestro caso, vamos a hacerlo genérico. Vamos a descargar el agente y quiero que vean las instrucciones.
Aquí están las instrucciones de eh instalación. Son bastante detalladas. Sí, necesitamos configurarlo, eso sí. Vamos a ver cómo se configura. Por acá está los requisitos, eh toda la información. Como dije, no voy a dar. Esto lo pueden leer ustedes mientras van creando el proyecto. Pero quiero que vean, acá está la organización. Vamos a estar la organización. Vamos a necesar también un la URL de la organización. Ya lo vamos a ver. un personal access token.
Listo. Y lo vamos a a entender cómo usarlo. Con esto pues sería la introducción a los agentes. ¿Cuáles son los agentes? Listo, ya lo vamos a ya lo vamos a crear. Vamos a entender ahora los parallel jobs. Eh, como su nombre lo indica, cuando ya tenemos un agente corriendo, vamos a tener acá eh la cantidad de trabajos haciéndose. Por ejemplo, lo que hablaba, tenemos 20 desarrolladores trabajando y vamos a ver la cantidad de trabajos llevándose a cabo, en cuál agente está, eh la cantidad de CPU, eh los monthly purchases, lo que hemos hablado del tiempo, ahí estaría. los ajustes, pues por acá está toda la información de eh de nuestros amigos Pipeline, cuánto tiempo se quedaría cada ron.
Esto ya lo vamos a ver conforme vayamos desarrollando en este momento nuestro pipeline. Por el momento el que nos interesa es crear nuestro primer agente. Así que vamosnos a la obra en este momento y configurémoslo. Entonces vamos a crear nuestro primer agente. Nos vamos a venir a agentols. Vamos a seleccionar agent. Vamos a seleccionar new agent. Listo. Lo voy a a descargar. Recuerden que si ustedes estaban trabajando con Linux o con Mac, pues eh lo pueden descargar dependiendo de su sistema operativo.
En nuestro caso vamos a trabajar pues con Windows. Voy a abrir por acá la carpeta que lo contiene. Aquí están las instrucciones de cómo vamos a crear la gente y cómo lo vamos a correr. Ya la configuración esa pues eh es adicional. Vamos a buscar por acá PowerShell. Listo. Voy a venir acá a Powershell. Acá voy a crear la carpeta. Luego voy a copiar esto de acá. Las instrucciones detalladas por acá están. Acá la pueden ver la documentación.
Recuerden que la documentación debe ser siempre su mejor amiga para que no vayan a perderse o no hagan algo sin entenderlo. Entonces, acá lo vamos a configurar. Acá les dice cómo crean el agente, los procesos, el hardware desde la organización, los pool, cómo lo descargan, cómo lo configuran y qué se necesita. Eso lo estamos haciendo acá. De hecho, hay un ah tenemos una un video en específico para eso. Ahora voy a duplicar acá y nos va a pedir un server.
El server normalmente es desde el dominio de Asure DevOps adicional de su proyecto o de su organización. En mi caso es el de la organización. Listo. Así como ven acá, voy a darle enter y me va a pedir un pad. Acá dice enter authentication type. En nuestro caso vamos a seleccionar pad. Para el pad voy a venirme acá. Vean desde dónde lo saqué. Me vine a mi perfil, acá la parte del perfil, user settings, y acá está personal access token.
Voy a crear uno nuevo. Voy a ponerle a este eh pipeline config agent pad. El la expiración la vamos a dejar por 90 días. Full access. Listo. Voy a copiarlo. Regreso, lo pego. Y acá me va a pedir lo siguiente. Se va a conectar al server y me y vamos a registrar la gente y nos dice enter agent pool. Vamos a volver. Vamos a volver. Cerramos acá y el agent pool donde queremos registrar nuestro agente se llama self host agent quotes app.
Esto va a depender también del nombre que ustedes le hayan definido. Entonces, lo van a pegar acá. Eh, voy a venir, voy a ver, porque normalmente si lo pego así, eh, vamos a tener un problema. Entonces, voy a pegar. Listo. El nombre del agente nos va a dar un agente por default o un nombre por default. Lo voy a dejar por default. Listo. Y acá va a ver las eh disponibilidades. Lo va a registrar y listo. Vamos a dejar el todo por defecto.
Al menos que ustedes quieran como configuraciones más específicas, podrían dejarlo así. Pero si se fijan, ya está por acá el agente. Listo. ¿Cómo lo vamos a correr? Bueno, en la documentación nos dice cómo lo podemos correr. Acá está el server. Acá nos dice cómo lo corremos. Listo. ¿Qué es el comando ron.cmd. No me lo he sacado de la bolsa, sino desde acá. Si ustedes vuelven a seleccionar new agent, listo, acá está el último paso de cómo correrlo.
Voy a refrescar. está offline. Listo. Vamos a esperar un poquito. Muy bien. Ahora, eh, cómo está recién instalado, me gustaría actualizarlo para que la configuración de nuestro servidor quede de una. Entonces, después de que la gente se actualice, después de un par de minutos, normalmente eso toma de 3 a 5 minutos, ya el agente aparece online. ¿Y qué tendríamos que hacer? Bueno, tendríamos que ver nuestros pipelines, correrlo y crear nuestra primera infraestructura.
Ya hoy que tenemos el agente, ¿qué vamos a hacer? Lo primero es lo primero. Así que nos vamos a venir a pipeline. Yo hice por acá un pequeño cambio al pipeline. Recuerden que esto les va a quedar dentro de las eh de los recursos del del video. Entonces, no es necesario que que vengan y lo modifiquen manual. Cambié los parámetros. Teníamos por acá hardcodeado el Service Connection. Y ya vamos a agregar el el pipeline, el pipeline variable y se me vengo por acá a los variables, acá me pide un service connection.
Entonces yo voy a venir por acá variables, voy a agregar variable. Listo, me voy a venir a mi Service Connection. Para ello, vuelvo a los pipelines, busco, voy a copiar el nombre, voy a pegarlo por acá. Listo. Voy a darle okay. Voy a guardar y listo. Eso es el único cambio que he hecho hasta el momento. Eh, creo que recuerde. Entonces, voy a darle run y para crear nuestra infraestructura, miren, esto es muy importante que lo tengamos en cuenta porque pues dentro de los ambientes de producción, voy a venir por acá.
Voy a revisar, vamos a tener algo más importante todavía. Esto se va a valer muchas veces como un eh inventario. Vamos a crear un inventario. Entonces, voy a poner acá resource, name, location y environment. Listo. Vamos a crear nuestro recurso. Voy a volver. ¿Dónde está el pipeline? Por acá. Listo. El stack voy a crear un resource group. El resource group name normalmente siempre empieza, por ejemplo, por producción es group, el nombre del servicio que vamos a desplegar, listo, la ubicación environment pro y de más, pues lo vamos a dejar así.
Voy a copiar, voy a pegar por acá. Eh, eso es un resource group. Resource group. Listo. El name. Voy a darle un espacio. El name el location East us. Eh, aquí es resource. Lo voy a corregir rápido. Esto es muy importante. Eh, esto es más una resurse resource. Esto es más una formalidad en sí que eh pues que normalmente piden en los trabajos, no es que sea parte del curso, pero quiero que vayamos también teniendo buenas prácticas.
Vamos a guardar eh documentos, más ubicaciones y examinemos. Voy a crear en el desktop una nueva carpeta que se va a llamar curso. Vamos a poner cuotes app. Quotes quotes app resource y se va a llamar un inventory inventory. Listo. Ahora sí ya podemos verlo por acá. Un poquito más de orden. Me vengo por acá. Vale next. Darle enable diagnostics. Listo. Y falló. Mm. Bueno, vamos a ver. Nos dice, "The pipeline is not valid input connect name references service connection which could not be found." Bueno, miren, acá les voy a ser muy sincero, este es el tipo de problemas que vamos a encontrar en producción donde no sabemos qué pasó.
Entonces, voy a copiar esto. Voy a copiarlo. Voy a abrir por acá un Notepad. Ese es el tipo de problemas más comunes dentro de producción, pues mensajes un poco eh no tan llamativos. Y nos dice lo siguiente, Service Connection. Bueno, dice que el pipimine no es válido y que referencia hace una llamada a service connection que no se encontró. Bueno, vamos a copiar. Bueno, vengámonos acá a los Service Connection. Ah, okay, listo, ya entendí dónde está el problema.
Si fueron eh hábiles en su trabajo, se fijan, estamos utilizando el Service Connection que se llama Service Connection Quote Live Domain y el pipeline, voy a abrirlo por acá. El pipeline llama a este a la suscripción que se llama Service Connection. Bueno, acá entonces podríamos uno dentro de la apply pasar esto como una variable. Voy a darle un zoom. Pasarlo como una variable. ¿Listo? Pasar como una variable en el input.
O bien renombrar el eh res group. Entonces, ¿cuál harían ustedes? Bueno, podemos hacer dos. Podemos crear otro service connection que se llame service connection, que sería redundante o hacer un PR y que utilice acá nuestro service connection o pasar esto también como una variable. Tenemos varios caminos. Entonces podríamos uno copiar esto y llamarlo acá como otra variable, pero necesitaremos crear un branch. Entonces, vamos a crear un branch fixing.
Eh, este estoy usando el otro el otro eh eh perfil, el otro perfil de nuestro agente. Entonces, vamos a poner acá profile punto demo y el feature se va a llamar Fix Fix Service Connection. Listo. Vamos a tachar. No tenemos ninguno. Bueno, entonces lo vamos a dejar acá. Y ahora sí puedo corregir el pipeline. Eh, ya corregí el pipeline. Muy sencillo lo que hice. Solo cambié el suscription, removí todo lo redundante que teníamos.
Ahora voy a hacer el commit. Darle un commit por acá. Voy a crear un pull request. Listo. Muy bien. Entonces voy a agregar un review o lo podemos dejar así. Vamos a ver si no falla. Listo. Vamos a agregar un require reviewer y me voy a agregar, voy a agregar al administrador. Listo. Bien. Voy a copiar el pull request. Le vengo al administrador, pego por acá. Listo. Acá están los files que se cambiaron. Aquí está lo único que se cambió.
Eh, dmele inline. Listo. Removí esta variable, agregué esta variable y modifiqué esto. Vamos a ver. Ya. Vamos a ver si funciona. Listo. Entonces, eh, no fue mucho. Ya con la revisión, el overview. Voy a darle a. Listo. Me vengo al otro perfil. Voy a refrescar. Listo. Por acá está. Approve. Voy a darle complete. Voy a completar. Listo. Y ahora lo puedo cerrar. Listo. Ahora desde acá yo veo que está complete. Me vengo a pipelines.
Voy a darle, perdón, voy a me vengo a pipelines, vengo al pipeline que está fallando. Selecciono R pipeline. Pero antes quiero que veamos el cambio, vamos a venir a main. Pipelines history. Listo. Por acá está, si se fijan, los cambios. Y ahora yo voy a necesar este service connection. Listo. Bueno, vamos a ver. Vamos a ver si funciona. Aquí estamos aprendiendo todos. Si no estamos cometiendo errores, no estamos aprendiendo.
Me vengo por acá, selecciono R pipeline, vamos a volver a nuestro inventario. Voy a copiar el nombre, voy a pegar. Next, enable, run. Y listo. Ah, perfecto. Quiero que vean esto. Ahora sí está funcionando, pero más importante que la corrección que hicimos al pipeline es lo siguiente. Quiero que vean. Ah, okay. El agente ya está en este momento running jobs, está haciendo el terraform apply. Listo, ya empezó a escuchar los jobs.
Nos vamos a volver ahora a una parte importante, a los Service Connection. Listo, me vengo al Service Connection, veo usage history, ya hizo la prueba. Ahora vamos a volver. Listo, está corriendo. Vamos a venirnos a la gente y quiero que vean, aquí está el job corriendo. Listo. Y acá es listo, ya está inicializando. Vamos a esperar en promedio unos dos a tr minutos mientras se mueve un poquito, mientras completa las otras tareas y vamos a volver.
Bien, ya avanzó un poco. Veamos. Ya hizo los prechecks de la infra. Listo. Esto lo vamos a saltar. Prchecks. Listo. Acá está todo. Y acá está haciendo el Terraform Plan y el validate. Listo. Acá está el orden. Terraform init validate plan y apply. Listo. Aquí verifico las variables. Vamos a bajar un poco. Aquí está el init. Aquí está el plan, el nombre del grupo de recursos, la ubicación, los tags y el apply. ¿Listo?
Muy bien, felicitaciones y ya llegaron hasta acá. Recuerden que todo esto es porque al final cuando empecemos a hacer las modernizaciones de este proyecto, ¿qué va a suceder? Que vamos a meternos ya con inteligencia artificial, con agentes, con configuraciones adicionales. Entonces, si ustedes no conocen lo básico, no van a poder conocer lo avanzado. ¿Listo? El pipeline está en verde. Perfecto. Vamos a venirnos al portal.
Vamos a refrescar y quiero que vean. Muy bien. Felicitaciones si han llegado hasta acá. Vamos a ver. Essentials. Tenemos la suscription, el nombre que esperaban dentro. Exacto. Los tags. Así que, ¿qué hemos hecho hasta este momento? Bueno, corregimos nuestro pipeline creando un branch utilizando el otro perfil. Creamos un pull request donde actualizamos la conexión, verificamos los updates, corrimos el pipeline y ya creamos nuestro primer grupo de recursos. ¿Qué necesitamos ahora?
Bueno, vamos a volver al proyecto. Vamos a venirnos por acá al repo. Listo. Al Ritmi. No, no, no, no, no. Estoy en el infra. Es el backend. Listo. Vamos a irnos por acá. Vamos a buscar paso. Paso. Listo. Paso uno, crear grupo de recursos. Paso dos, crear base de datos SQL. ¿Dónde? Dentro de nuestro grupo de recursos. ¿Listo? Luego, paso tres, crear el storage account. Paso cuatro, crear el app configuration, que eso es opcional.
Application insightes. Crear el app service, crear el app service para backend y front end. y luego configurar variables de entorno. Entonces, amigos míos, ¿qué vamos a hacer en este momento? Bueno, fácil. Vamos a crear entonces nuestra primera nuestro primer base de datos SQL utilizando el portal. Vamos a avanzar con la base de datos, pero antes de crearla vamos a vamos a revisar nuestro diagrama. Voy a cerrar acá. Bueno, creo que lo podemos utilizar.
Eh, veamos un poco. Tenemos application insightes. Tenemos acá el número cinco. Busquemos el la base de datos. Deploy variable group. Listo. Acá está. Estudiante application insights. Y acá está. Bueno, después de 5 minutos de boxad, acá lo tenemos. Entonces, ¿cómo va a funcionar? Bueno, vamos a tener nuestra base de datos SQL, la cual va a tener las siguientes tablas. Vamos a tener users quote quote likes. Acá vamos a tener el y que el esquema o el esquema va a ser creado con pipeline manual o endpoint administrativo protegido.
Okay, listo. Veamos nuestros pipelines. nos dice acá backend pipeline, va a tener el build del API, el esquema, va a crear las tablas y luego voy a cerrar acá que estaba estaba leyendo algo. Luego voy a tener el container frontend. Listo. Vamos a venir a nuestro repositorio. Vamos a revisar back end, acá está. Vamos a ver un poco. Esta es para la segunda parte. Y acá tenemos el esquema. Bueno, acá está el pull. Ya lo vamos a actualizar.
Tenemos el variable groups. Okay, tenemos que crearlo también una vez nuestra base de datos está en place. Luego pues vamos a avanzar y vamos a revisar todo. Entonces, eh, ¿qué vamos a hacer? Muy fácil, vamos a venirnos al portal. Igual esto les va a quedar en la descripción del video para que ustedes analicen cómo funciona, lo pueden revisar y pueden hacer alguna actualización y avance. Entonces, vamos a revisar algo.
Quería eh que viéramos el infra y hacer el pipeline. ¿Cómo estamos pasando acá nuestra eh service connection? Creo que podríamos usar el mismo parámetro o bien modificar la existente. Creo que podemos modificar la existente. Entonces, no nos compliquemos en eso porque ya va a llegar su tiempo. Así que nos vamos a venir al portal. Voy a limpiar acá las eh notificaciones. Me vengo al grupo de recursos. Listo. Me voy a venir acá a mi grupo de recursos. ¿Dónde está?
Listo. Al de producción. Voy a cerrar acá. Vamos a ver los essentials. Sí, por acá está. Perfecto. Entonces vamos a crear nuestra eh SQL. Voy a venir al marketplace y buscamos acá SQL Database. Voy a abrir el inventario para mientras. Voy a ver dónde tengo el inventario. Listo, el inventory. Y por acá está SQL. Listo. Voy a crearlo. Voy a mover este para acá porque lo vamos a poner dentro del inventario. Una vez esté listo.
Vamos a apply offer. Listo. Vamos a ver. Nos va a pedir un eh un nombre de la base de datos. Voy a seguir el naming convention que tenemos acá. Entonces voy a poner acá P quotes app y bueno. Ah, bueno, pero acá tenemos así Pwes A SQL server server listo. Server listo. SBRS listo. Perfecto. Ah, bueno, aquí esta es la base de datos. Entonces acá voy a poner eh DV. Listo. Voy a crear un nuevo servidor para almacenar nuestra base de datos.
Esto creo que eh me lo pasé acá en el diagrama, pero bueno, no importa. Vamos a a crearlo en este momento. Eh, voy a ponerle acá y vamos a poner eh producción quotes. Vamos a poner acá server. Cuotes, Qotes app. Vamos a ver si está disponible. Eh, esperemos unos segundos si está disponible. Suscripción. Vamos a ver. Y no le gusta esto. Entonces, lo voy a poner por acá. A US. Listo. Eh, acceso. Pongamos por momento este.
Vamos a ponerle acá admin x. y el password. Vamos a venirnos para eso a generate password. Gener generator. Listo. Esto también se lo voy a dejar en la descripción del video para que lo tengan disponible. Entonces, vamos a crear una contraseña segura. Voy a copiar, voy a regresar, voy a poner por acá, voy a ponerle acá. Listo. Pero antes voy a hacer algo. Voy a poner acá SQL server server name. Listo. Y acá voy a poner eh user y password.
Yo sé que no es buena práctica, pero debemos de hacerlo. De hecho, eso lo podríamos meter en un eh esto después lo podríamos meter en un, ¿cómo se llama esto? en un keybolt para evitar este tipo de problemas. Pero bueno, por momento dejémoslo así y después lo podemos meter en un keybolt, no hay problema. Esto va a ser product location. Ya. Vamos a ver. Listo. Muy bien. Voy a crear. Perfecto. Ya tenemos este y configuramos la base de datos.
Bueno, listo. Esto nos aparece gratis. Entonces, perfecto. Networking, public. Sí, voy a dejar que los recursos accedan. Sí, security. Listo. Lo voy a dejar como está. Eh, colación lo voy a dejar igual. Exista, no, no vamos a agregar ninguna porque pues no lo necesitamos. Vamos a crear nuestra propia data. tags, no, porque aquí voy a hacer algo adicional al final de del video y hay algo que no le gusta. Ah, okay. Sí, ya aparece.
Al final, o mejor dicho, ¿qué vamos a hacer luego? Ya cuando se haya completado la infraestructura, vamos a hacer algo con el grupo de recursos. Vamos a movernos un poco a la observabilidad y vamos a entender esa parte de observabilidad aplicada también a los grupos de recursos. Recuerden que Asure Devops no solo es cloud, también hay que ver observabilidad, SRI, Platform engineering, etcétera. Así que también lo vamos a cubrir en este video.
Eh, si quieren descargar el template for automation, lo pueden hacer por acá. Listo, acá está para que lo puedan eh utilizar, ya sea dentro de una template o bien dentro de Devops, pero bueno, voy a cerrar acá y voy a seleccionar create. También este template lo pueden descargar para backup, por si futuro necesitan crear otra base, eh, y no lo tienen, por ejemplo, en el IAC, utilizaríamos o nos valdríamos de el template que hemos descargado.
Bueno, vamos a esperar por acá un par de minutos y luego vamos a volver y lo vamos a guardar dentro del inventario. Voy a darle autoguardado. Sí, listo, listo. Ya vamos a volver entonces para seguir con esa parte. Bueno, vamos a revisar. Listo. Pero para evitar esa verboidad, voy a realizar el grupo de recursos. Listo, acá estamos. Voy a cerrar acá. Listo. Acá está. Eh, el recurso, el server name me lo voy a copiar, me lo voy a traer por acá.
Listo. Voy a ver un poco acá. El location. Listo. El lo voy a copiar. Listo. Bien. Perfecto. Acá estamos. Estamos bien. Entonces, y el SQL DB también me lo voy a copiar. Si quieren ver el server por acá, pueden venir acá. Pueden ver todos los datos, el administrador, el server name, el networking. Perfecto. SQLD. Listo. Este va a estar siempre porque está alojado acá. Prob y listo. Bueno, ahora, ¿qué vamos a hacer? Vamos a revisar las bases de datos.
Acá lo tenemos. Vamos a darle a Query Editor SQL Authentication. Voy a poner el usuario. Voy a copiar la contraseña. Voy a pegar. Voy a conectarme y listo. Acá está la base de datos tables. No tengo ninguna. No tengo ninguna en este momento. Entonces voy a ver mi diagrama y listo. ¿Qué tenemos que hacer? crear las tablas y luego pues eh configurarlos. Vamos a volver a nuestro quote. Voy a ver acá y voy a buscar los pasos.
Paso dos, hemos creado la base de datos. Acá está listo el administrador. Ya tenemos la base de datos. Vamos a obtener ahora el connection string. Listo, por acá está. Vamos a buscar el connection string. Por acá está. Y nos dice que tenemos que utilizar este de acá. Conexion streamo.neto.net. Listo. Tenemos acá. Ah, okay. Listo. Acá está este el catálogo, el password, el usuario. Perfecto. Lo vamos a necesitar después.
Bueno, sí lo podemos copiar, pero vamos a copiarlo desde este momento. Vamos a copiarlo acá. Listo. Copiémoslo. Pongámoslo en el inventario. Eh, mejor editemos eso. Después lo copiamos y listo. Vamos a crear ahora un storage account. Blog storage. ¿Dónde vamos a guardar las fotos? Vamos a ver el diagrama. Listo. Contenedor de fotos. Guarda imágenes subidas por usuarios usando connection string o configuración segura.
Listo. Si acá está en el backend, tenemos eh punet entity framework core app service o container apps expone health quotes like health checks y endpint. Listo. Entonces vamos a crear esto porque esto ya lo tenemos creado. Entonces vamos a crear ahora el blog storage basado en el RM, en las recomendaciones. Bueno, entonces vamos a crear la storage account. Vamos a crear el storage account y el blow storage. Pero acá nos aparece que lo podemos crear desde el portal.
Pero recuerden algo, nosotros parte de lo que hemos desarrollado viene con Terrafon, con nuestra nuestro pipeline de infraestructura como código. Entonces, vamos a hacer algo. Vamos a aprovechar nuestro pipeline de infraestructura como código y vamos a correrlo para desplegar nuestra nuestro storage account. Para ello me voy a venir acá, me voy a venir el stack storage. Vamos a ocupar un grupo de recursos existente. Sí.
Y el grupo de recursos es este de acá, el de producción. Listo. Lo voy a copiar. Voy a pegar. Listo. El environment sí va a ser pro esta vez. Y vamos a volver acá el storage account. El storage account tiene que ser un nombre único porque si lo desplegamos, si lo desplegamos en este momento va a pasar lo siguiente, que se va a explotar y nos va a parecer un error que eso ya existe. ¿Cuál es la recomendación? que nos basemos siempre en los recursos que hemos creado.
Entonces, podríamos poner, por ejemplo, eh similar al SQL Server que hemos creado a la base de datos, a cualquiera. Vamos a copiar. Listo. Pero en lugar de SQL DV, vamos a poner acá eh SQL, vamos a poner storage account. Storage account. STG account storage account y voy a ponerle una X y un 01. Vamos a ver si le gusta, porque muchas veces también cuando excede 24 carácteres falla el container. Vamos a ver el diagrama arquitectura y las instrucciones.
Vamos a revisar el container. Vamos a crear uno que se llama fotos. Vamos a verlo. Listo. Lo voy a pegar acá. Cualquier cosa pues que falle la vamos a revisar acá. Vamos. Esta es parte de lo que me agrada realizar este tipo de videos porque pues aprendemos todos. Vemos los errores, podemos entender cómo funciona. Listo, revisemos. Eh, vamos a ocupar un grupo de recursos existentes. Sí. Ambiente, región, el owner. Bajamos storage account estándar y en replication ls.
Listo. Y el container. Bueno, ahora se va a llegar eh la verdad yo les voy a explicar algo aquí, algo que va a fallar. Eh, yo sé lo que va a fallar acá porque en este momento hay algo, una parte importante. Si ustedes ya se dieron cuenta, pues me alegro mucho. Si no, ya vamos a ver qué va a suceder cuando corra este pipeline. Entonces, démosle a run. Listo. Y acá puede quedarse eh 3 días. Quiero que vean lo que nos aparece. nos dice, "The agent requested is not running because all potential agent are running or request." Ah, okay.
Vamos a venirnos. Veamos el job. Vamos a ver los agentes y me aparece que está offline. Ah, okay, perfecto. Entonces, me voy a venir a mi desktop, me venir a mi agente, voy a encender powers. Voy a traer por acá, voy a encender acá en el agente Power Shell. Listo. Y lo voy a correr. Y voy a limpiar acá. Estaba haciendo una prueba el día de ayer para darle clear. Si no se acuerdan cómo correrlo, pues seleccionen agent e hace como me acaba de pasar.
Van a copiar el comando y lo pegan. Vamos a ver. Listo, ya está escaneando. Vamos a esperar unos segundos. se está conectando al server y listo, ya aparece online y ya está corriendo nuestro job. Vamos a venirnos al pipeline jobs pipeline. Listo. Y acá está haciendo el checkout de toda la información que le hemos pasado. Listo. Va a ser el init. Vamos a ver. Va a ser el init. Listo. ¿Dónde estamos pasando las variables?
El grupo de recursos. Si se fijan, acá está eh que va a usar un grupo de recursos existentes true el grupo de recursos, la ubicación tag environment, el storage account, el account, el local redondant storage, el container name. Listo, aquí está tomando todos los datos de la suscripción. Aquí está inicializado. Vamos a refrescar. Inicializado. Ahora tiene que hacer el plan. Listo. Aquí está el plan. Perfecto. Aquí está el plan.
Vamos a ver. Y acá están las acciones que va a realizar. El storage account. Se va a crear el access, el usage account kind, el type y pues todos los datos. Ustedes pueden tomarse el tiempo que quieran para realizar esto, para leerlo, mejor dicho, leer el plan. Acá están los properties, aquí está el resource que va a utilizar. Acá está toda la información. Esto, el container type lo vamos a cambiar después. Y acá está lo que se va a agregar, container y el storage account.
Aquí está el plan y ahora va a ser el apply. Al parecer no hubo ningún error en el plan, pero pues todo puede pasar. Así que vamos a ver. Eh, vamos a esperar. Listo. Esperamos unos segundos. Bueno, vamos entonces a esperar mientras revisamos que el apply sea exitoso. Bien, después de 2 minutos con 43 segundos nos dice que el apply fue exitoso. Vamos a ver. Vamos a bajar. Ya teníamos el plan creado por acá. Aquí está el plan.
Grabo el plan y ahora solterraform apply. Aquí están los output, el container name, el endp, el storage account name. Listo. Antes de ir me lo voy a copiar. Listo. Me lo voy a copiar por acá y voy a poner este storage account. Listo. Voy a pegarlo. Vamos a ver. Y voy a crear también eh voy a poner también todo el environment, pero por el momento pues eh lo vamos a sacar de Asure. Voy a venirme acá, voy a refrescar la pantalla.
Vamos a esperar unos segundos y listo. Quiero que vean, ya está acá el storage account. Listo, el storage account. Perfecto. Vamos a ver los essentials. Tenemos deploy by environment y el owner. Si selecciono la tag, aquí me aparecen todos los recursos que tienen pues el tag. Ya vamos a ver algo importante de esto. Listo. Los containers. Listo, los containers. Tengo fotos. Perfecto. Access. Conexción stram. Ya lo vamos a ver más adelante, pero quiero que veamos ahora algo, la configuración, porque vamos a necesitar un blog.
Entonces vamos a seleccionar el blog. ¿Alguien de ustedes se recuerda cómo hacerlo? Vamos a ver. Vamos a ver eso. Listo. Vamos a ver performance. Acá está. Enable. Listo. Vamos a darle enable para poder subir archivos. Perfecto. Vamos a actualizarlo. El blog. Vamos a copiar el blog. Bueno, ya vamos a vamos a poner acá el blog, el nombre. Vamos a ver la ubicación. Ya vamos a vamos a revisar eso. Listo. Ahora sí nos vamos a venir a containers.
Listo. Vamos a cambiarle el access level y lo vamos a poner como blog. Acá pueden poner ustedes e ya sea blog o container. Vamos a dejarlo primero como blog y vamos a ver cómo se comporta. Listo. Listo. Ya tenemos por acá el tipo de blog. Ahora vamos a ver en la documentación. Vamos a preguntarle eh, vamos a ver storage account asure. Recuerden, la documentación tiene que ser su mejor aliado. Listo, acá está. Para que la tengan en cuenta cómo funciona. ¿Listo?
Blow Storage. Perfecto. Vamos a ver las características. Eh, veamos. Bueno, buscamos la documentación oficial. Muchas veces acá nos manda esto. No, necesito necesito la documentación. Documentation. Listo. Bien. Por acá pues eh acá está el blog storage, el overview. Pueden leerlo. Acá está blog storage. ¿Para qué está designado? Para imágenes o documentos directo en el browser, cosa que vamos a hacer a través de la aplicación.
Por acá está guarda imágenes y también las muestra. ¿Listo? Igual pues todo esto lo pueden leer en la documentación y luego le pueden preguntar a Copilot cómo funciona. Es importante valerse de las herramientas. Sí, claro. Pero eh también hay que leer la documentación. Listo. Vamos a ver. Perfecto. Aquí está. Lo pueden leer todo la diferencia, los detalles. No vamos a abondar porque ese video es más práctico. Entonces, voy a cerrar por acá.
Voy a volver storage account, el overview. Listo. Y voy a copiar. Está haciendo mucho frío acá. Voy a poner acá también. Esto es inher. Listo. Prod. Y esto también pues en prod. Perfecto. Vamos a volver. Vamos a revisar. Eh, vamos a buscar los pasos. Pasó. Listo, ya tenemos eh veamos, ya tenemos el grupo de recursos, tenemos el SQL, perfecto, tenemos el storage account, ya lo que lo desplegamos desde Terrafone, mucho más fácil, más administrado.
También ya sabemos cómo utilizarlo. Acá tenemos los Ron con el infra y listo. Vamos a ver qué nos dice ahora. Storage account, el contenedor ya lo tenemos. Y app configuration. Les voy a ser muy sincero, el app configuration lo voy a dejar de último porque esto es algo opcional, igual que el frontend. Listo. Ahora viene la parte divertida y una de las partes pues más complejas dentro de nuestro eh tutorial, una las partes que nos va a tomar un poco más de tiempo porque donde vamos a crear el app, o sea, el web app donde va a correr nuestra aplicación.
Vamos a correr dos. Volvamos a la arquitectura. Vamos a correr dos. Una para el front end. y otra para el backend. Entonces, vamos a hacer eso. Vamos a correr la primera para el back end. Vamos a probar el health y vamos a luego correr el front end. Acá en la documentación, ¿de? una documentación nos dice los el rontime stack, el sistema operativo, la región, el app service plan, el skill size. Aquí estamos el host y listo.
Bueno, entonces eh lo podremos crear con Terrafom. Vamos a ver, vamos a ver. Sí, pero con ciertos matices, porque acaso lo estaríamos creando el web app. Vamos a evitar por el momento utilizar Terraform porque eh este curso de Terraform aún está un poco a medias, soy sincero. Entonces, por un momento vamos a dejar Terraform por allí y nos vamos a enfocar en específico en crear este recurso a través del portal dentro de nuestro grupo de recursos.
Entonces, basado en en esto, vamos a crear el primer web app. ¿Qué vamos a crear? El backend. Entonces, vamos a venir por acá. Voy a copiar este nombre porque lo voy a utilizar. Perfecto. Ahora me vuelvo a Asul Essential. Si estamos dentro del grupo de recursos. Listo. Eh, voy a buscar, no voy a buscar acá. Vamos a crear un un recurso web app create. Listo. Mi grupo de recursos. Listo. El nombre de la web app. SQLDV.
No, ese se va a llamar production. Eh, web app. Web app. Backend. Back end. Listo. Eh, código sí es Net 10 según la documentación está Linux y voy a poner por acá, voy a poner por acá y vamos a ver, vamos a esperar un poco. Listo, listo. Y voy a cambiar el pricing te. B2 está bien. Sí, B2 está bien. 3.5. Ya tengo por acá un service plan. Si ustedes no tuvieran un service plan, pues pueden crear uno. En mi caso, ya tengo uno donde voy a almacenar eh las do web app. ¿Qué sucede? ¿Por qué no creo uno?
Porque la cuota se vería afectada, o sea, no podría crear otro service plan por mi suscripción. Entonces lo voy a dejar sobre este. Voy a seleccionar database deployment networking. Lo voy a dejar en el recurso, el el secure del recurso, los tags. Listo. Review and create. Perfecto. Acá está. Vamos a vamos a revisarlo. Voy a copiar el nombre. Listo. Voy a copiar. Voy a copiar el nombre. Esto es un web app backend. Listo.
Lo voy a pegar acá. La ubicación. La ubicación. Vamos a ver esta ubicación. ¿Dónde está? Ah, Canadá Central. Esa creo que no lo voy a poder centralizar y lo voy a poder dejar como los otros, pero pues es parte del eh de la suscripción, es parte en sí de de algunos inconvenientes que tendría si la cambio. Entonces, lo voy a dejar ahí. Perfecto. Ahora le voy a dar create. Muy bien. Entonces está creando. Esto puede tardar unos 3 a 5 minutos.
Y vamos a volver a la documentación. nos dice el backend. Primero vamos a crear el backend, luego vamos a crear el eh frontend. Vengámonos a la arquitectura. Vamos a tener dos diferentes web app. Una que nos va a funcionar para el front end y una para el backend. El backend va a servir pues para llamar el API en la base de datos. Esta va a exponer el out, los likes, etcétera. Se va a conectar al blog storage, al SQL y va a recibir los nuevos deployment a través de Ashle Pipelines, que van a recibir a su vez de los variable groups que vamos a configurar más adelante.
Listo, acá vamos a estar va a ser el deploy del backend y este pues va a conectarse a través del AP al front end. Luego vamos a activar los application insightes y pues eh esto es lo que vamos a trabajar en esta parte. Vamos a esperar unos segundos. Vamos a ver. Vamos a esperar. Vamos a volver acá. Y listo, el recurso ya está completo. Recuerden que el codo site, eh, vamos a ver acá desde el grupo de recursos, voy a cerrar grupo de recursos.
Recuerden que el codo site, o sea, el sitio que se despliega por defecto, el sitio que se despega por desplega por defecto. Vamos a ver acá. puede tardar en promedio de unos 3 a 5 minutos en desplegarse. Listo, acá está. TX no tiene. Ya dije que más adelante lo vamos a revisar por qué. Y pues eh vamos a revisar la configuración. Stack settings. Listo. Dnet 10. No tenemos Star Command Hheck todavía no tenemos. Probablemente podríamos configurar uno también como parte adicional.
Pad mappings, error pages instancias. Listo. Course vamos a tener que activarlo más adelante. Logs y monitoring. Vamos a ver por acá el log streaming. Y listo. Acá está la aplicación y nos dice que está build con D.net. Muy bien, acá está funcionando. Ahora vamos a venirnos e dónde está deyment center code source. Listo. Containers logs todavía no tenemos FT Cential tampoco. Entonces, ¿qué vamos a hacer ahora? Bueno, tenemos que desplegar nuestra siguiente web app, que es el frontend y lo vamos a hacer igual con un stack, en nuestro caso pues node para el frontend.
Y luego vamos a configurar. Por último, el paso 8o, vamos a configurar las variables de entorno en Asure Devops. Acá está lo que necesitamos. Todas estas vamos a copiar y vamos a pegar. Y luego unas para el front end. Y vamos a irnos a crear por último unos bars en en Asure Devops. Listo, acá están los bars front ends también de back end. Listo, acá están los recursos, toda la información de lo que necesitamos y el swagia.
Listo. Vamos a buscar lo siguiente. Necesitamos también los bars del backend. F bars backend. Listo. Esos son los que tenemos que configurar también porque si no pues eh vamos a tener problemas al momento de desplegarlo. Acá está. Algunos son eh adicionales otros no. Listo, acá están. Vamos a crear el variable del group y los entornos. Perfecto. Entonces, ¿qué vamos a hacer? Bueno, vamos a desplegar el frontend y luego nos preocupamos por configurar los eh variable groups.
Vamos manos a la hora. Entonces, en este momento, ¿qué vamos a hacer? Creo que la parte más importante sería dejar listo nuestro eh backend. Entonces, vamos a dividir nuestra nuestras tareas. Vamos a dividir estas eh estos despliegues, mejor dicho. Primero en el front, en el backend, vamos a revisar los health y los checks de los end point. Luego pues migramos o nos movemos hacia el frontend. Lo vamos a hacer así para simplicidad.
Entonces veamos por acá. Tenemos que configurar nuestro variable group. dice que los secretos no haen el repositorio. Perfecto. Bueno, pero también el backend requiere tener los secretos que va a recibir para poder trabajar. Así que vamos a venirnos. Eh, la web app está apagada en este momento porque la vamos a configurar. Luego vamos a encenderlo y vamos a revisar los secretos. Entonces, empecemos en este momento y vengámonos a nuestro proyecto.
Vamos al repositorio, vamos a irnos al backend y revisemos los variable group que necesitamos. Bajemos, bajemos. Listo. Variables del entorno del back end. Listo. Acá está. Ya tenemos la DVO, los variables de entorno. Vamos a instalar el DNET environment, la URL, el website port, el container, el warm padh, el environment, el frontend, que ya lo vamos a actualizar, ya lo vamos a crear. Listo, el frontend base URL. el backend base URL, el JWT secret, el secreto, otro secreto y pues toda esta información.
Eh, por acá están asure de variable groups y estos son los que se vamos a crear luego, que son los mismos que va a recibir pues nuestro amigo allá en el backend. Entonces, ¿qué vamos a hacer? Vamos a seleccionar las variables de entorno del backend y las vamos a empezar a agregar. ¿Listo? Y voy a poner una pequeña pausa por acá mientras las voy agregando, pero vamos a hacer algo. Voy a venir, me voy a venir a environment variables.
Voy a empezarlas a agregar. Listo. Voy a empezarlas a agregar. La vamos a dejar vacías por el momento porque eh la idea es que estas se completen a través del variable group, o sea, que estos valores se reciban desde este valor. Solo los que sean necesarios, pues vamos a a configurarlos. Vamos a ver. Listo. Estos son los que vamos a configurar. Listo. Vamos a ver. Ah, okay. Bueno, miento, miento. Estos estos de acá sí lo vamos a configurar nosotros.
Los que ya se reciben del variable group son los que vamos a actualizar. Entonces, voy a editar estos. Advance Edit. Listo. ¿Y dónde estaba? DNET environment producción. Listo. Voy a agregar la siguiente. Listo. Y de aquí para pues ya ustedes lo pueden hacer. Eso solo van a copiar y van a pegar. No es que se requiera tampoco eh mucha ciencia. Este es el binding del contenedor. Listo. No es que se requiera mucha ciencia.
Para ver los valores pueden venir acá. Recuerden que eso los pueden ir editando conforme eh se necesiten. Website port. Acá está eh lo que hace pues cada uno de ellos o el trabajo encargado de cada configuración. Acá está el valor que necesitamos. 180. Listo. Voy a poner pausa por acá mientras eh los agrego. Bien. Después de media hora creando eh las variables de entorno pues dentro del web app están por acá. Vamos a darle Advance Edit y quiero que las veamos.
Listo. Acá está toda esta información. Igual ciertas de ellas van a ser sobrescritas cuando las agreguemos en el variable group de Asure, que es lo es el siguiente paso. Ahora bien, ustedes dirán, ¿de dónde se sacó este todas estas locuras? Bueno, uno me viene acá eh a quotes backend, bajé un poco. Listo. Y acá está variables de entorno del backend. Acá está el environment production. El URL. Aquí les dejaron los valores.
Website port. Solo van a copiar y pegar. Limit. Listo. El warmout path environment production. El frontend. Este lo dejé vacío. Como pueden ver. Me regreso por acá. Eh, lo dejé. Hay ciertos valores que quedaron vacíos porque como aún no los hemos desplegado, pues eh los podemos dejar vacíos. Luego el backend, este pues me lo saqué del propio backend de la aplicación. Me vine a la a la aplicación y lo saqué. Este lo dejé vacío porque lo vamos a agregar en el variable group.
Este también porque ya lo vamos a sacar del para el barel group. Este lo deje vacío porque lo recibe el variable group. Este pues eh le puse asure porque lo vamos a sacar desde allá. Igual lo va a sobrescribir. El connection string queda vacío. El container ya lo creamos. Por acá está. El máximo en fotos en megabte también lo agregué. El log information acá está. Este lo dejé en falso porque pues evita build en asure y este también que evita un build remoto.
Estas son opcionales y estas serían las variables del entorno del front end que ya las vamos a configurar también. Entonces, amigos míos, ¿cuál es el siguiente paso? Eh, las variables del grupo variable group en asure devops. Acá está la información. Estas pues las podemos omitir, por ejemplo, esta del service de ACR porque todavía no lo tenemos. Luego lo vamos a agregar y las variables del del frontend ya las vamos a actualizar, ya las vamos a agregar y pues ustedes pueden ir leyendo la documentación paso a paso para entenderlo cómo funciona.
Bueno, ¿qué vamos a hacer en este momento? Vamos a configurar las variables de entorno en Asure Devops. Listo. Ahora, eh para eso nos vamos a venir al paso número ocho. Vamos a movernos al paso número ocho. Y acá dice, ahora le decimos a short devops dónde desplegar y qué configuración usar. Eh, ¿por qué? Bueno, acá está. Si se fijan, vamos a tener que crear un pipeline adicional y el pipeline va a llamar estas variables de entorno, las va a sobrescribir y luego las va a enviar al backend.
Entonces, viéndonos en esta situación, es preferible que el pipeline diga, "Bueno, no voy a estar cargando con 500 secretos arcodeados. Voy a llamar un variable group, voy a seleccionar los datos que necesito, lo voy a inyectar al pipeline y lo voy a inyectar hacia el backend. Entonces, ¿cómo vamos a hacer un variable group? Para crear un variable group, voy a duplicar esta pestaña. Me voy a venir por acá. Eh, vamos a ver, vamos a ver a Pipelines Library.
Voy a crear un nuevo variable group. Voy a buscar y se va a llamar Bars Backend. ¿De dónde me saco este? Bueno, porque son bars backend y son también eh llamadas que va a realizar el pipeline. Si se fijan, el create pipeline, el create esquema lo va a llamar el ritm, el backend container también y el backend. Acá está el variable group. Entonces vamos a crear nuestro eh variable group. Vamos a venir al library, vamos a crear uno nuevo, bars backend.
Ustedes le pueden dar una pequeña descripción. Eh, por acá está la descripción. Podrían, por ejemplo, poner eh bars for backend inure. Listo. Perfecto. Vamos a seleccionar la primera y vamos a buscar el resource group. Vamos a ponerlo acá. Vamos a venirnos al portal. Recuerden que por eso era necesario que tuviésemos a la mano nuestro Excel, no era por eh porque tuviéramos la necesidad en sí de hacer eso, sino para solo copiar y pegar.
Entonces vamos a venir. Copiamos, pegamos. Listo. El siguiente valor, app service name. Vamos a venir, vamos a agregar app service name. Listo. ¿Y dónde está el service name? Bueno, creo que nos faltó. Ah, okay. Listo, acá está. Listo. Acá está. Si se fijan, pues acá está. ¿Cómo lo van a cómo lo van a ir agregando? no se complicar en esto. Luego el Asure SQL connection string. Recuerden que todos estos eh los hemos ido sacando desde Ashure.
Si en dado caso se olvidaron, pues pueden ir al grupo de recursos. Voy a aumentar un poco el zoom. Se pueden venir al grupo de recursos, el server. Listo. El grupo de recursos. Me voy a venir por acá SQL databases. Ahí está. Connection string. Listo. Connection string. Vamos a seleccionar esta con authentication. Listo. Vamos a pegarla acá. Pero esta la voy a corregir. Entonces voy a crear, voy a venir por acá Notepad y la voy a corregir.
Listo. El usuario. El usuario y el password. Voy a copiar mi password que tengo por acá. Listo. Voy a corregir. Recuerden que pues eh todos estos son pasos manuales. Ustedes los pueden automatizar, de hecho, los podrían automatizar a futuro. Eh pueden buscar la manera de automatizarlo y evitarse hacer este montón de de pasos que yo me estoy que me estoy haciendo por acá. Listo. Eh, vamos a ver. Voy a mejorar eso. Lo voy a dejar una sola línea para saber que funcione.
Listo. Vamos a ver. Listo. Bueno, lo voy a corregir y luego lo voy a pegar. Bien, ya está por acá. Vamos a ver el siguiente. Eh, por acá les he dejado este valor, pero ustedes lo pueden cambiar. Vamos a ver. Eh, recomendación sincera es lo siguiente. Voy a poner pausa por acá y luego pues vamos a hacer vamos a verificar los valores. Igual pues la idea es que vayamos dañando cosas en producción y entendamos cómo funciona en este caso, en este ambiente.
No vayan a romper nada en producción de su trabajo porque ahí se van a tener problemas. Entonces, voy a poner pausa por acá y voy a agregar el resto de valores. Bien, después de unos minutos he terminado de configurar los valores. Ciertos valores van a quedar vacíos porque luego los vamos a agregar. ¿Qué vamos a hacer en este momento? Vamos a guardarlo. Acá viene un dato. Por ejemplo, si ustedes necesitan algún valor eh, que normalmente así se hace, algún valor que no se deba ver, lo pueden agregar y lo pueden poner acá como un secreto.
Por ejemplo, este, este de acá y este de acá. Ahora, aquí viene el detalle y eso hay que estar muy pendientes. Si por motivo falla, van a tener que borrarla y volverla a agregar. Eh, son cosas que vamos a ir aprendiendo a lo largo del curso y son tareas que un DevOps aprende a lo largo de su carrera. Igualmente, son situaciones que uno ve día a día. Es una pregunta de trabajo. ¿Dónde agregarían ustedes eh cierta variable que necesita ser consumida por el pipeline? ¿Lo agregarían dentro del pipeline o lo agregarían acá?
Y ustedes pueden decir, "Bueno, podría crear un un variable group y asignarle el valor." Perfecto. Bueno, ya tenemos entonces el library. ¿Qué nos estaría faltando? Bueno, ahora viene la parte importante. Ya agregamos esto en el backend. Eh, front end lo vamos a ver. El bars ya lo tenemos. Listo. Acá está. Lo pueden ver. Ash devops barel group. Cuando estemos usando este de acá, los pronend, el backend lo vamos a dejar por un lado, por un momento.
Ya tenemos el SQL, ya tenemos el storage account, ya tenemos los feature flash. Lo vamos a pasar. El backend ya es lo que estamos creando. Ya agregamos estos valores y agregamos el variable group. Y ahora vamos a conectar variable group a pipelines. Dice que vayamos a pipeline este edit y listo. Bars backend. Ya lo tenemos. Perfecto. Entonces vamos a crear otro pipeline para el backend. Vamos a venirnos a nuestro eh Asure Devops.
Vamos a crear un nuevo pipeline. ¿Dónde está nuestro código? Backend. Eh, no, no, permítame. Listo. ¿Dónde está nuestro código? Y backend. Vamos a buscar un existing pipeline. Selecciono el backend, no el container, sino el backend. Le damos continuar, verificamos. Pero recuerden algo, acá no va a fallar porque tenemos este pull. Entonces, voy a voy a venirme por acá, eh, voy a duplicar este, voy a duplicar. Y eso estamos haciendo en este momento.
Listo, ya tenemos el variable group. El varable group se va a conectar al backend. El pipeline backend consumirá el variable group. Va a inyectar los valores a nuestra eh aplicación. Así que vamos a crear algo. Nos vamos a venir a branches, repos branches. Voy a agregar un new branch y este se va a llamar eh José. Vamos a llamarle José Martínez. Esto lo pueden hacer de acuerdo a ustedes. Eh, adul backend. Adult to backend.
Listo. Items. Vamos a agregarle un item. Import code. Listo. Ahora voy a venirme por acá al pipeline, al infra. Voy a seleccionar editar y podríamos usar la misma lógica o bien solo copiar el pull que necesitamos, este de acá. Listo, el pull name. Perfecto. Me vengo acá, me voy a venir a mi pipeline back endol. Listo. Aquí voy a seleccionar editar porque si no no va a pasar. Listo. Voy a pegar, voy a darle commit. Voy a linkear un item.
Voy a darle commit de nuevo. Voy a crear un pull request. Listo. Reviewers. Me voy a autoponer como reviewer. Voy a darle create y listo. Voy a probar. Listo. Voy a darle complete. Okay. Zero of one reviewers approved. Ah, okay. Vean. Listo. Ya tengo por acá. Entonces, voy a copiar mi pull request. Voy a venirme por acá a la otra cuenta. Voy a pegar. Listo. Voy a darle approve. Voy a completarlo. Listo. Y acá está. Ya el merch se está haciendo desde la otra cuenta.
Me voy a venir acá. Se está haciendo el merch y nos aparece completos. Complete. Listo. Ahora, ¿qué voy a hacer? Bueno, voy a venir a pipelines. Acá vamos a seleccionar new pipeline. Eh, pero voy a hacer algo. Me voy a valer de el pipeline existente para copiar la variable. Entonces, voy a venir a este, me voy a venir a este acá, voy a seleccionar editar y variables. Listo. Perfecto. Ahora, ¿dónde vamos a tener el esto?
Ya lo habíamos dicho en quotes backend, un pipeline ya existente. Listo. Backend. continue. Vamos a agregarle una variable. Vamos a asignarle la variable con el valor con el mismo valor que tenemos acá dentro del de infraestructura, porque vamos a utilizar el mismo Service Connection. Vamos a entender algo en este momento que que lo corramos. Vamos a a conocer algo muy diferente que quizás no hayamos discutido en ningún otro video antes.
Listo, vamos a darle save, vamos a darle run, vamos a revisar nuestro agente. Listo. Perfecto. Acá está. Vamos a venir. Y si se fijan, nos dice que debe de acceder. ¿A qué? Debe de acceder al grupo Bars backend. al grupo de variables que acabamos de crear. Vamos a darle permitir. Listo. Mientras tanto, vamos a venir por acá. Si se fijan, se creó un ambiente. De hecho, aquí hay un hay un bug porque aquí podríamos aquí debería ser producción.
Si me vengo al pipeline, voy a venirme al pipeline por acá. Voy a seleccionar mi ques backend. Lo voy a editar. y voy a buscar environment. Listo, acá está pasando esto que lo tenemos mal diseñado. Probablemente eh podríamos crear un bog para que acá el pipeline apunte a producción. Eso está mal porque los ambientes, eh, si googleamos o le preguntamos a acá a nuestro amigo Copilot, normalmente los ambientes que se utilizan en en un ambiente productivo, ¿cuáles serían?
Vamos a preguntar. Vamos a ver. Es más frecuente frecuentes. Listo. Eh, y en base a eso ustedes podrían ir creando sus ambientes. Listo. Acá está el develop. Este es el local. El dev es es testing u staging y prod. En nuestro caso podremos ocupar production. ¿Listo? Y acá está el flujo típico y la forma en la cual ustedes van a ir aprendiendo esto. Es muy importante que esto lo tengan en cuenta uno, porque es una pregunta de trabajo, una pregunta de entrevista de trabajo donde ustedes les van a decir, miren, eh tengo este pipeline, pero necesito que se despliegue y que cada despliegue sea logueado dentro de un ambiente.
Entonces, podrían decir, "Ah, bueno, entonces podríamos crear environments para cada uno." Acá podríamos crear eh, por ejemplo, si lo van a hacer para una virtual machine, si lo van a agregar para en este caso, por ejemplo, para development. Listo, lo vamos a crear. Acá pueden agregar un recurso, aquí se va a desplegar si es un un namespace de Cubernet o una máquina virtual, etcétera. Y es muy importante que ustedes sepan eso.
Vamos a volver al pipeline. Listo. Voy a cerrar acá copilot. Y listo, acá está. Ya se instaló. Ya tenemos el build. Ahora vamos a ver el deploy. Listo. Vamos a ver el deploy. Creo que me va a pedir un approval. Sí. Vamos a seleccionar. y va a acceder al ambiente, que no soy sincero, no sé si este vaya a funcionar, si no nos va a tocar crear un bogarlo. Vamos a esperar unos segundos. Bueno, después de unos minutos igual y sigue siendo por acá el circo.
Acá lo vamos a ver. está haciendo el deploy. Recuerden, amigos míos, lo siguiente, voy a cerrar acá, me voy a venir a los repos y venir acá al backend, voy a venir a main. Lo siguiente, este pipeline, este en específico donde está toda la información está corregido. Todo esto les va a quedar en el repositorio de GitHub. Así que ustedes solo tienen que descargarlo, copiarlo, agregar las variables de ambiente que ya hemos visto en la documentación y correrlo.
Vamos a regresar. Vamos a ver. Listo. Acá está inyectando las variables de ambiente. Listo. Vamos a revisar el backend. Acá está. todo lo que hemos agregado. Listo, acá está toda la información. Si ustedes tuvieran alguna pregunta o consulta, eh, pero ¿cuáles variables tengo que agregar? Bueno, muy fácil, pueden copiarlas desde el pipeline en el backend. Esas las variables están hasta el hasta la última parte. Acá está toda la información y las pueden copiar y las pueden comparar contra sus servicios.
Listo, acá está toda la información para que tengan más o menos la idea de por dónde podrían empezar a buscar. Si no, pues pueden preguntarle a Copilot y luego lo pueden actualizar. ¿Listo? Vamos a revisar. Muy bien. Este es optional. Perfecto. Acá están. Muy bien. Vamos a revisar. Bueno, ya casi va a completarlo. Listo. Vamos a abrir. Muy bien, está funcionando. Vamos a hacer algo. Nos vamos a venir al deployment center.
Vamos a venir a logs y listo. Quiero que vean esto. Si se fijan, por acá está el log de el deployment que acabamos de enviar. Aquí está la información y acá está el build. Vamos a ver. Aparece exitoso, solo está completando el paso opcional y listo, nos aparece en verde. Muy bien. Entonces, ¿qué vamos a hacer ahora? Vamos a esperar unos minutos y listo. Quiero que vean. Listo, ya nos aparece entonces nuestro API, nuestro endpoint.
Si han llegado hasta acá, felicitaciones. También podrían hacer lo siguiente. Podrían hacer un health. Listo. Y ya nos aparece healthy. Listo. Muy bien. Vamos a a volver ahora a nuestro diagrama. Vamos a esperar un poco. Listo, ya tenemos esta parte, ya tenemos configurado nuestro backend API. No sé si acá está funcionando el swagger. Asumiría que sí. Swagen. Ah, listo. Bueno, creo que acá no tengo swager porque solo estamos ocupando un endp.
Listo. Aquí está el app status running derabis SQL docs. Ah, okay. Tenemos API docs, no tenemos el swager. Muy bien. Vamos a duplicarlo. Vamos a duplicar. Vamos a acceder a API Docs. Listo. Y acá ya tenemos el swager. Perfecto. Vamos a aar acá y listo. Si se fijan, podemos correr el swager execute. Muy bien. Vamos a ver el del DD. Vamos a ejecutarlo y listo. Ahora bien, ¿cuál es la siguiente parte? Bueno, vamos a ver al diagrama.
Vamos a volver. Ya tenemos creado nuestro pipeline que actualiza el backend. Nos faltaría en este momento crear las tablas, los usuarios. Bueno, por lo menos las tablas dentro de nuestro Asure SQL database. Si nos venimos por acá, vamos a volver al grupo de recursos, vamos a venirnos eh al SQL Server. Voy a abrir por acá mi Excel. databases está online. Voy a darle un query editor. Voy a seleccionar mi usuario. Voy a volver.
Voy a abrir mi inventario. Voy a copiar el password. Vamos a conectarnos. Ah, bueno, detallazo es admin X. Listo. Bueno, vamos a conectarnos, vamos a revisar y no tenemos las tablas. Entonces, basado en la arquitectura o en el diagrama que tenemos de nuestro de nuestra aplicación, ahora la siguiente parte corresponde entonces a crear nuestro esquema de bases de datos. Entonces, para ello vamos a crear un nuevo pipeline.
Vamos a venir a pipelines, vamos a darle new, pero vamos a revisar el repositorio. Listo, vamos a volver en el backend. Acá tenemos pipeline el pipeline backend. Y acá tenemos el create esquema, pero acá viene un dato importantísimo. Si lo envío aquí, voy a tener un error porque tengo un default. Tengo que cambiar esto y solicitarlo a través de un pull request. Luego tengo también que crearle el variable y vamos a configurar eso.
Acá como ya sabemos y ya lo hemos trabajado, pues no se requiere más que venirnos al backend, listo, copiarlo y repararlo. Igual yo se lo voy a dejar esto listo en este momento para que no tengan ningún problema a la hora de correrlo y esto va a quedar dentro del repositorio. Entonces, voy a corregir eso rápido y luego vamos a correr nuestro pipeline backend. Bien, amigos, entonces ya hice el cambio del pipeline. Por acá está corriendo en este momento.
Quats backend. Vamos a ver qué cambio se hizo. Por acá está en main. Y si se fijan y prestan atención, realicé pues el cambio del pull. ¿Cómo lo hice? Creé un pull request. Por acá está el file. Lo envié. Di un approve y listo. Eh, bueno, ¿qué vamos a hacer? Vamos a esperar a que termine de correr y vamos ahora a refrescar acá. Listo, ya tenemos en main esto, pero quiero que vean lo siguiente. Quedó con un error. ¿Por qué hice esto?
Bueno, esto lo hice a propósito porque vamos a hacer lo siguiente. Voy a venirme acá, voy a venir a mi library, voy a copiar el nombre de mi bars backend, lo voy a copiar. Me voy a venir desde el otro proyecto que tengo por acá y voy a volver a enviar otro cambio. Vamos a hacer lo siguiente. Van a ir al file. Selecciono acá, view explorer, voy a editar y si se fijan por acá mi branch. Estoy trabajando desde mi branch.
Me voy a venir a variables, voy a editar, voy a dar un comit. Listo. Voy a linkear, pero no tengo. Entonces puedo dar comida acá. Voy a crear un pull request. Listo. Voy a seleccionar create y yo me puedo dar approve acá. Pero si me vengo por acá a complete, me dice que me falta el approval. Entonces voy a copiar, voy a pegar, me voy a venir al otro, al administrador de proyecto, lo voy a pegar y voy a hacer lo siguiente.
Voy a decir acá, please be aware that this will require a US in future. Listo, voy a agregar un comentario. Perfecto. Voy a agregar un comentario y ahora voy a cerrar acá y listo. Ahora primero voy a tener que resolver este comentario y voy a poner acá eh perfect user history, como quieran llamarle. Listo. Ahora sí ya él sabe que está perfecto. Voy a reaccionar y voy a probar. Listo. Ahora sí, esto ya está approved. Ahora voy a volver, voy a dar complete.
Y tenemos dos acá varias opciones. Una, eh, como no tenemos work items, que normalmente se requiere, pues vamos a hacer eh lo vamos a a quitar el check. eh nuestro branch si lo queremos borrar, listo. Y si queremos customizar el commit message, en nuestro caso vamos a darle complete y vamos a borrar nuestro branch. Perfecto, el file que se modificó y vamos a volver ahora al proyecto completo. Si me vengo a mi pipeline, listo, si me vengo a mi pipeline, al quotes back end, ya está corriendo.
Listo, aquí está corriendo y vamos a ver qué cambios se realizaron. Vamos a ver si son los esperados. Listo, listo. Acá está el group backend. Perfecto. El pull. Listo. Pero mientras tanto, acá viene otra parte importante. Me voy a venir a Service Connection. Listo. Y voy a ver el user usage usage history. Listo. Y acá está, si se fijan, acá está todos los cambios que se han hecho, todas las pruebas. Por ejemplo, ustedes necesaran hacer un auditing, pueden venir por acá, pueden ver el bill que se realizó y los cambios.
Vamos a esperar. Y mientras tanto vamos a crear nuestro nuevo pipeline. Para, ¿cuál pipeline vamos a crear? Vamos a venirnos a la arquitectura. Vamos a ver. Listo, ya corregimos esto, ¿cierto? El variable group. Aquí están las variables seguras. Y acá tenemos nuestro pipeline. Acá tenemos, ahora que vamos a correr, el esquema pipeline, el cual va a crear el esquema dentro de la base de datos, el cual va a ser consumido por el back.
Perfecto. Entonces vamos a volver a nuestro SQL. Voy a refrescar. Voy a abrir nuestra DVD, me va a venir a los table y no tengo ningún table creado. Entonces, eh normalmente uno dice, "No, pero eso tiene que automatizarse." Le van a decir, "Miren, necesito una base de datos que eh haga un Sí o que cree bases de datos de prueba." Ah, bueno, entonces ustedes ya saben que lo pueden hacer a través de un pipeline. En lugar de estar cargando, por ejemplo, con script manuales, ustedes vienen, crean a través de Terraform, la LSQL y a través de un pipeline, pues crean el esquema.
Muy bien, entonces vamos a venirnos a los pipelines. Vamos a seleccionar new pipeline. ¿Dónde está nuestro? ¿Dónde está nuestro código? En Asure Devops. ¿Dónde se encuentra? En el repositorio existen Jamel. Vamos a bajar. Create esquema. continue. Listo. Ustedes pueden, por ejemplo, podrían copiar, podrían venirse a su copilot y decirle que le explique cómo funciona el pipeline. Podrían ponerle por acá, explícame este pipeline y sus funciones y sus funciones principales para que ustedes vayan entendiendo eh cómo funciona paso a paso, los steps, etcétera.
Recuerden que pues sí, la inteligencia artificial nos va a ayudar, pero también uno tiene que conocer los principios básicos de cómo funcionan las cosas. Uno no tiene que dejar que la inteligencia artificial se encargue de todo, porque cuando ocurre un problema como los que hemos tenido, uno no sabrá directamente qué hacer. Acá está todo lo que realiza. Muy bien. Acá está. Perfecto, acá está todo. Pueden preguntarle y listo.
Ahora lo vamos a guardar. Vamos a darle save. Y listo. Ya tenemos por acá el los pipelines. Ahora lo voy a cambiar. Vamos a ver. Voy a editar, seleccionar acá y lo vamos a renombrar. Editar. Listo. Voy a copiar el nombre. Voy a copiar. Me vengo a pipelines o el pipelines y ustedes digan, "Miren, pero es que este nombre quedó con otro diferente." Claro. Sí. Entonces, me vengo acá, rename move. Listo. Lo voy a renombrar.
Voy a crear un nuevo folder que se llame SQL, donde ustedes podrían tener ciertos eh pipelines de características diferentes y lo podemos mover hacia dónde? Hacia el folder que necesitamos. Listo. Vamos a guardar y listo. Acá podemos ya segmentar por diferentes tipos. Podemos crear otro folder que se llame infra. Lo creamos. Movemos este pipeline. Vamos a moverlo hacia infra. Listo. Y vamos a ir segmentando para que funciona cada cada pipeline en lugar de tenerlos regados por ahí.
Listo. Vamos a crear un nuevo folder que se va a llamar backend porque estos pues son eh de Asure, perdón, son de de DevOPS, pero van a ver también pipelines que son 100% de código, que los desarrolladores necesitan correr, que los desarrolladores necesitan hacer esto, etcétera. ¿Listo? Bueno, vamos a ver. Vamos a cerrar acá. Por ejemplo, ustedes necesarían a futuro favoritearlo o ponerlo en favoritos. Pues lo pueden poner por acá. ¿Listo?
Pueden poner sus pipeline favoritos y acá en recientes les van a aparecer y aparecen con la estrellita. Bueno, entonces volviendo, vamos a correr este, vamos a seleccionarlo. Listo, no tenemos stages, no branches tampoco. Y analytics. Vamos a correr el pipeline. Vamos a darle enable diagnostics. Vamos a correrlo desde el main. Vamos a darle run. Y acá nos va a pedir un permiso. Nos dice, "This pipeline needs permission to access a resource before this run can continue to create asure sequel esquema." Vamos a ver, vamos a darle view.
Listo. Necesita acceder al bars backend, al que al que acabamos de modificar y en específico pues al connection string. Vamos a darle permit. Vamos a darle permit. De nuevo vamos a revisar y listo, acá está corriendo. ¿Cuánto va a tardar esto? Eh, bueno, acá están todas las variables. Probablemente tarde un par de minutos, un par de segundos, pero es importante que estemos monitoreando. Para ello vamos a refrescar tables.
No tenemos. Listo. Vamos a esperar. Y bien, ya está corriendo, ya está por acá. Listo. Acá está creando el esquima, el checkout. Acá está toda la información, el pipeline name, el agent, el OS, toda la información. Acá está valiando el esquema. Listo, valido el variable group, el backend, normalizo el end point, toda la información. Listo. Muy bien. Reviso el SQL, toda la información de nuestro eh repositorio. Perfecto, hizo el final validation y listo.
Ahora, si esto funcionó, vamos a refrescar. Vamos a refrescar toda la pantalla. Vamos a entrar con nuestro usuario. Recuerden que para eso tenemos por acá nuestro eh inventario. A futuro podríamos conectar esta información con un keyboard para evitar estos detalles. Listo. Voy a darle que no. Vamos a ver tables y listo. Ajá. Eso es magia, ¿no? Es mágico. Perfecto. Tenemos acá toda la información de los quotes. Si seleccionamos los primeros 1000, voy a bajar por acá.
Listo. No tenemos nada en este momento porque aún solo tenemos desplegado nuestro SQL, pero no tenemos información puesta por allá. Vamos a darle acá. Eh, creo que es Health DVD. Vamos a ver. Listo. Empezamos en el swager. Vamos a volver. Vamos a ver por acá el swager. Ah, es swager. Ah, no, es health o Dogs. Appoggs. Lo bueno que fue que yo lo cree, ¿cierto? Entonces vamos a esperar. Pero quiero que vean, ya tenemos por acá el HDB, Tri out execute y listo, está en buen estado.
Y pues eh a grandes rasgos vamos a ver ahora la arquitectura que vamos a revisar qué hemos hecho, hasta qué parte vamos. Bueno, tenemos nuestro variable group, el cual está inyectando variables seguras a nuestros pipelines, a nuestros pipelines. Por acá lo inyecta al pipeline para crear los valores o sobrescribirlos acá o sobrescribirlo sobre el app setting, el cual ya lo hemos visto. Esto por acá. Luego tenemos dos pipeline funcionando hasta el momento.
Uno para el backend, el cual construyó nuestra aplicación por acá. Después tenemos el create de esquema, el cual nos ha ido a crear las tablas principales de usuarios, quotes y quotes likes. Si nos venimos por acá, acá está quotes like, quotes y usuarios. No tenemos nada en este momento porque aún no hemos desplegado eh la parte principal del frontend, pero sabemos que estamos trabajando pues con eh un principio de software, desarrollo de software, que es a través de primero crear el backend y luego crear la base de datos y por último ya desarrollar el frontend.
Ya vamos a buscar el nombre técnico, no lo tengo a la mano. Listo, ya tenemos nuestro blow storage, nuestro pipeline, perdón, nuestro front end. Listo. Y ya sabemos que está funcionando. Aquí tenemos el swager. Ahora, ¿qué nos va a hacer falta? Uno, vamos a crear un variable group. que se va a llamar bars front endipeline front end acá para crear nuestra aplicación. Pero, ¿qué vamos a hacer primero? Desplegar nuestra web app frontend.
Nuestra web app frontend. ¿De qué va a depender? Bueno, voy a venirme al repositorio. Me voy a venir por acá. Voy a moverme hacia el front end. Voy a ver por acá el front end. Dice que es react, byte y node. Listo. Acá está la edición general, el usuario, todo lo que hace el frontend. Listo, acá está el frontend. Crea un package Jason, el lock, el server, el index y el source. Listo. Acá está el front end lo que vamos a necesitar, la pared del front end, los steps de lo que crea, lo que recibe, service connection, web app name, etcétera.
Bueno, vamos a ver eh los bars que necesitamos para el front end. Vamos a ver de entorno del front end. Esto es lo que vamos a agregarle. Listo. Estas son las que van a ir dentro de nuestro eh web app. Y acá están las variables de entorno que vamos a necesitar para el bars front end, el service connection, el resource group, web app name, environment, apprl y listo. Bueno, entonces acá está el pipeline, los pipeline pueden leerlo, no voy a tardar mucho tiempo acá. ¿Cuál sería el siguiente paso? crear nuestro web app front end dentro de Asure.
Entonces, vamos a avanzar con la siguiente parte que es nuestro front end. Vamos a crear primero eh el web appar. Así que vamos a venir al portal, vamos a seleccionar create a resource, buscamos web app, vamos a seleccionar create. Buscamos nuestro grupo de recursos. Recuerden que si no se recuerdan de su grupo de recursos, pueden venirse por acá, copiar desde su inventario, el nombre del grupo de recursos y listo. El web app name vamos a seguir el naming convention que hemos estado utilizando para eh nuestros productos y nuestros recursos.
Así que vamos a venir acá y este no se va a llamar backend, sino se llamará front. End. Listo. Código. Y sí, vamos a seleccionar en nuestro caso Note 20. Pongamos 22, luego lo podemos actualizar. ¿Listo? Eh, lo voy a dejar por ahí el basic. Lo voy a dejar en el basic. Recuerden que ustedes pueden seleccionar eh el free o pueden también desplegarlo en algún otro proveedor de servicio. En mi caso, porque estamos aprendiendo Asure, vamos a dejarlo acá, pero lo podrán desplegar en cualquier otro servidor, por ejemplo, en render, en Versel o etcétera.
Vamos a avanzar. database, no requerimos un database deployment por el momento aún no. Networking lo voy a dejar como acceso público. Security no le voy a actualizar nada por el momento. Tag eh, no vamos a requerirlo porque más adelante vamos a configurar una característica del grupo de
The words are the caption track's own and nothing is reworded or re-transcribed. Paragraph breaks are placed between sentences so the text reads as prose.
Free tools for your own script. No signup, no login.
Paste your draft and see where viewers are likely to drop off, with a rewrite for each weak line.
Paste the first 30 seconds of your own draft for a hook score and rewrites.
Check your draft against YouTube's advertiser-friendly guidelines before you record it.
Read this channel's public videos and transcripts, and download a writing brief for it.