Introdução
O objetivo desse estudo foi o de identificar como os portais de documentação atuais foram construídos, suas semelhanças e padrões, afim de melhorá-los e aplicá-los em um site de arquitetura TOTVS. A pagina que será construída é onde guardaremos as documentações de decisões realizadas durante reunião de microsserviços.
Portal de Arquiteturas TOTVS
Arquitetura
draw.io Diagram |
---|
border | true |
---|
viewerToolbar | true |
---|
| |
---|
fitWindow | false |
---|
diagramName | Diagrama sem nome |
---|
simpleViewer | false |
---|
width | |
---|
diagramWidth | 358 |
---|
revision | 3 |
---|
|
Figura 1 - Arquitetura do portal de arquitetura TOTVS, após publicado
Na figura acima, verificamos que o Ingress irá rotear para o portal adequado de acordo com a rede na qual o cliente se encontra.
Acesso realizado na rede da TOTVS será direcionado para o portal interno, caso contrário, DMZ/externo (Este não apresentará documentos que contém informações com maior grau de sensibilidade).
É importante notar que o portal não acessa nenhum recurso externo, o conteúdo completo do site encontra-se no HTML dos componentes Angular.
Os repositórios, builds e releases se encontrarão no Azure Devops.
Estrutura Esperada
- Home: Apresenta o propósito do portal. Indica quais conteúdos podem ser encontrados.
- Conceitos (Menu Superior)
- Microsserviços (Menu Lateral)
- DDD (Menu Lateral)
- Integrações de Aplicações (Menu Lateral)
- Definições (Menu Superior)
- Orquestração (Menu Lateral)
- Mensageria (Menu Lateral)
Engine de Criação de portais TOTVS
Arquitetura
draw.io Diagram |
---|
border | true |
---|
viewerToolbar | true |
---|
| |
---|
fitWindow | false |
---|
diagramName | gerador de portais |
---|
simpleViewer | false |
---|
width | |
---|
diagramWidth | 651 |
---|
revision | 6 |
---|
|
Figura 2 - Arquitetura do gerador de portais
No caso do portal de arquiteturas TOTVS, os repositórios, builds e releases se encontrarão no Azure Devops.A engine gerador de portais é um repositório uma imagem que possui um programa , desenvolvido em Typescript com NestJS, com a missão de gerar um portal completo, seguindo os padrões da TOTVS, a partir de arquivos .md. Vai desde a criação de um novo projeto até mover o código de produção para um servidor web (NGINX), ou seja: uma imagem docker pronta para deploy.
Atividades Identificadas
Criar gerador de portais
- Preparar imagem docker
- Instala Node, Angular/CLI e MD2THF
- Motor de atualização do portal - Typescript/Gulp
- Executa md2thf
- Movimentação e ajuste de arquivos (componentes, rotas e módulos)
- Preparar script "build.sh"
Estudar/Definir necessidades e como criar uma homepage padrão a partir de .mdA mesma poderá ser utilizada através de CLI (localmente) ou através de sua imagem docker, que estará em um pipeline.
Exemplo do dockerfile utilizado no repositório de conteúdos para invocar a engine:
Bloco de código |
---|
|
#Utilizando a imagem padrão do portalBuilder
FROM docker.totvs.io/frame/portalBuilder:1.0.0 as builder
ENV THEME=totvs
ADD ./docs /docs
#Essa parte deve ser substituída pelo uso do programa CLI
#RUN build.sh
#Fazer o build do projeto gerado
#ng build --prod
#Colocando a pasta 'dist' no seu servidor web
FROM docker.totvs.com.br/frame/proxy
COPY --from=builder /dist /sources |
Hierarquia de Componentes
draw.io Diagram |
---|
border | true |
---|
viewerToolbar | true |
---|
| |
---|
fitWindow | false |
---|
diagramName | Niveis |
---|
simpleViewer | false |
---|
width | |
---|
diagramWidth | 441 |
---|
revision | 2 |
---|
|
Figura 3 - Hierarquia dos componentes envolvidos no gerador de portais
Atividades Identificadas
Novas issues foram abertas no Jira com o épico "Knowledge Portals".
Preparar pipeline CI/CD