Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions antora-playbook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,27 @@ site:

content:
sources:
- url: .
branches: HEAD
start_path: .
- url: .
branches: HEAD
start_path: .

antora:
extensions:
- require: '@antora/lunr-extension'
- require: "@antora/lunr-extension"

asciidoc:
extensions:
- asciidoctor-emoji
- asciidoctor-kroki
attributes:
kroki-fetch-diagram: true
experimental: ''
idprefix: ''
idseparator: '-'
page-pagination: ''
experimental: ""
idprefix: ""
idseparator: "-"
page-pagination: ""
highlightjs-theme: monokai
highlightjs-languages: js, elixir, sql, yaml, html, css
highlightjs-languages: js, elixir, sql, yaml, html, css, php

ui:
bundle:
url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/HEAD/raw/build/ui-bundle.zip?job=bundle-stable
Expand Down
12 changes: 12 additions & 0 deletions docs/abstract.html
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,18 @@ <h3 class="title"><a href="index.html">Elixir Full-Stack</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="http/chapter.html">HTTP, JSON y APIS</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Seguridad</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/security.html">Seguridad de las Aplicaciones</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/cryptography.html">Criptografía</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
Expand Down
12 changes: 12 additions & 0 deletions docs/afterword.html
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,18 @@ <h3 class="title"><a href="index.html">Elixir Full-Stack</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="http/chapter.html">HTTP, JSON y APIS</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Seguridad</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/security.html">Seguridad de las Aplicaciones</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/cryptography.html">Criptografía</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
Expand Down
12 changes: 12 additions & 0 deletions docs/authors.html
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,18 @@ <h3 class="title"><a href="index.html">Elixir Full-Stack</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="http/chapter.html">HTTP, JSON y APIS</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Seguridad</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/security.html">Seguridad de las Aplicaciones</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/cryptography.html">Criptografía</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
Expand Down
12 changes: 12 additions & 0 deletions docs/bibliography.html
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,18 @@ <h3 class="title"><a href="index.html">Elixir Full-Stack</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="http/chapter.html">HTTP, JSON y APIS</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Seguridad</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/security.html">Seguridad de las Aplicaciones</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/cryptography.html">Criptografía</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
Expand Down
12 changes: 12 additions & 0 deletions docs/book.html
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,18 @@ <h3 class="title"><a href="index.html">Elixir Full-Stack</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="http/chapter.html">HTTP, JSON y APIS</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Seguridad</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/security.html">Seguridad de las Aplicaciones</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/cryptography.html">Criptografía</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
Expand Down
12 changes: 12 additions & 0 deletions docs/colophon.html
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,18 @@ <h3 class="title"><a href="index.html">Elixir Full-Stack</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="http/chapter.html">HTTP, JSON y APIS</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Seguridad</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/security.html">Seguridad de las Aplicaciones</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/cryptography.html">Criptografía</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
Expand Down
12 changes: 12 additions & 0 deletions docs/dedication.html
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,18 @@ <h3 class="title"><a href="index.html">Elixir Full-Stack</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="http/chapter.html">HTTP, JSON y APIS</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Seguridad</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/security.html">Seguridad de las Aplicaciones</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="security/cryptography.html">Criptografía</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
Expand Down
170 changes: 24 additions & 146 deletions docs/devops/devenvs.html
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,18 @@ <h3 class="title"><a href="../index.html">Elixir Full-Stack</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../http/chapter.html">HTTP, JSON y APIS</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Seguridad</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../security/security.html">Seguridad de las Aplicaciones</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../security/cryptography.html">Criptografía</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
Expand Down Expand Up @@ -288,35 +300,11 @@ <h2 id="ambiente-local"><a class="anchor" href="#ambiente-local"></a>Ambiente Lo
por uno o más archivos <strong>Dockerfile</strong> con los componentes como servidores y bases de datos
similares a los usados en producción.</p>
</div>
<div class="listingblock kroki-error">
<div class="title">Actividades en ambiente local</div>
<div class="imageblock kroki">
<div class="content">
<pre>@startuml

skin rose

title Ambiente Local

start
:Historia y definición de la tarea a realizar;

:Clonar o actualizar desde el repositorio principal;
:Crear y utilizar rama para los cambios;
while (¿Pasan las pruebas en ambiente local?) is (No)
:Crear o refactorizar pruebas unitarias;
:Crear o refactorizar pruebas funcionales/de contrato;
:Crear o refactorizar pruebas de integración;
:Crear o refactorizar el código de aplicación;
:Evaluar y cambiar código con pruebas estáticas;
:Almacenar cambios en repositorio local;
endwhile (Sí)

:Enviar cambios al repositorio principal en rama separada;

stop

@enduml</pre>
<img src="_images/diag-ea1c7c27bf34145f91f9e04227c599c6b09db91e.svg" alt="Actividades en ambiente local">
</div>
<div class="title">Figure 1. Actividades en ambiente local</div>
</div>
</div>
</div>
Expand All @@ -330,49 +318,11 @@ <h2 id="ambiente-dev"><a class="anchor" href="#ambiente-dev"></a>Ambiente Dev</h
<div class="paragraph">
<p>Un servidor dev único es creado automáticamente en cada nuevo <em>PR</em> y tiene una duración máxima de 8 horas. Luego es eliminado automáticamente.</p>
</div>
<div class="listingblock kroki-error">
<div class="title">Actividades en ambiente de desarrollo</div>
<div class="imageblock kroki">
<div class="content">
<pre>@startuml

skin rose

title Ambiente Desarrollo

start

:Crear Pull Request con los cambios hacia la rama principal;

if (¿Pruebas estáticas exitosas?) then (Sí)

:Inicio de revisión de código (Code Review);

if (¿Revisión de código Exitoso?) then (Sí)
:Iniciar pruebas en servidor dev;
:Registrar metadatos y enviar notificaciones;
:Ejecutar pruebas unitarias, funcionales, integración;
:Ejecutar pruebas de aceptación;

if (¿Pruebas exitosas en servidor Dev?) then (Sí)
:Obtener última versión de main;
if(¿Hay conflictos de merge?) then (No)
:Aceptar PR;
:Realizar Squash Commits en rama main (usar conventional commits);
:Eliminar rama del PR;
:Iniciar pruebas en ambiente Staging;
stop
endif
endif

endif
endif

:Rechazar PR;
:Volver al ambiente local;
stop

@enduml</pre>
<img src="_images/diag-54029d3ab172e3e7b974486a1bdb620318b08731.svg" alt="Actividades en ambiente de desarrollo">
</div>
<div class="title">Figure 2. Actividades en ambiente de desarrollo</div>
</div>
</div>
</div>
Expand All @@ -383,42 +333,11 @@ <h2 id="ambiente-pruebas-staging"><a class="anchor" href="#ambiente-pruebas-stag
<p>El ambiente staging es un ambiente para realizar pruebas por múltiples equipos. Es el que tiene más recursos que el ambiente dev, pero menos que producción. Tiene una réplica de los datos de producción periódicamente lo que permite realizar pruebas
con datos lo más cercanos a producción. Se recomienda un periodo de función de 24/5. El despliegue es automático en cada commit en la rama <code>main</code> del repositorio principal del proyecto.</p>
</div>
<div class="listingblock kroki-error">
<div class="title">Actividades en ambiente de pruebas</div>
<div class="imageblock kroki">
<div class="content">
<pre>@startuml

skin rose

title Ambiente Pruebas (Staging)

start

:Commit en la rama main;
:Crear nueva versión aumentando número PATCH (tag);
:Iniciar pruebas estáticas;
:Ejecutar pruebas unitarias, funcionales, integración;

if (¿Pruebas exitosas?) then (Sí)

:Iniciar proceso de despliegue a Staging;
:Registrar metadatos y enviar notificaciones;
:Iniciar pruebas en servidor staging;

:Ejecutar pruebas de aceptación;

if (¿Pruebas exitosas en servidor Staging?) then (Sí)
:Marcar versión como aprobada para Prod;
:Iniciar proceso de Despliegue a Prod;
stop
endif
endif

:Marcar versión como fallida;
stop

@enduml</pre>
<img src="_images/diag-0cd9c47b98bcb7b263865989dcc11612b0c0bdd3.svg" alt="Actividades en ambiente de pruebas">
</div>
<div class="title">Figure 3. Actividades en ambiente de pruebas</div>
</div>
</div>
</div>
Expand All @@ -428,52 +347,11 @@ <h2 id="ambiente-producción"><a class="anchor" href="#ambiente-producción"></a
<div class="paragraph">
<p>Es el ambiente donde se ejecuta el sistema y el más critico. Todo cambio enviado debe ser aprobado y documentado por personas autorizadas y correctamente informado en los canales de comunicación oficiales. El despliegue es automatizado, pero debe ser autorizado de forma manual. Para el proceso productivo se recomienda utilizar <strong>Canary Deployments</strong>, sobre todo si son sistemas <strong>Tier 0</strong>.</p>
</div>
<div class="listingblock kroki-error">
<div class="title">Actividades en ambiente de producción</div>
<div class="imageblock kroki">
<div class="content">
<pre>@startuml

skin rose

title Ambiente Producción

start

:Versión aprobada en Staging;
:Iniciar pruebas estáticas;
:Ejecutar pruebas unitarias, funcionales, integración;

if (¿Pruebas exitosas?) then (Sí)

:Iniciar proceso de despliegue a Producción;

if (¿Proceso de Aprobación Manual Iniciado?)
:Iniciar pruebas en servidor producción;
:Registrar metadatos y enviar notificaciones;
:Ejecutar pruebas de humo;
:Ejecutar pruebas E2E;
:Ejecutar pruebas de aceptación;

if (¿Pruebas exitosas?) then (Sí)
:Despliegue a producción exitoso;
:Marcar versión como última disponible en producción;
:Ejecutar pruebas de desempeño (opcional, perfomance);
stop
else
:Marcar versión como fallida;
stop
endif
endif

:Esperar la aprobación manual;
stop
endif

:Marcar versión como fallida;
stop

@enduml</pre>
<img src="_images/diag-a95518798f2ceffadc8a055bec12b25248908a85.svg" alt="Actividades en ambiente de producción">
</div>
<div class="title">Figure 4. Actividades en ambiente de producción</div>
</div>
</div>
</div>
Expand Down
Loading