Skip to content

Commit

Permalink
docs: finalizando documentação sobre recursos provisionados e inician…
Browse files Browse the repository at this point in the history
…do doc sobre etapas do processo
  • Loading branch information
ThiagoPanini committed Feb 23, 2024
1 parent 01283c4 commit d8ef717
Show file tree
Hide file tree
Showing 8 changed files with 367 additions and 7 deletions.
3 changes: 1 addition & 2 deletions docs/quickstart/instalacao.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
<br><img src="https://github.com/ThiagoPanini/pynvest/blob/v0.1.x/docs/assets/imgs/logo/logo-com-nome.png?raw=true" width=200 alt="pynvest-logo">
</div>

<div align="center">
<br>
<div align="center">

<a href="https://pypi.org/project/pynvest/">
<img src="https://img.shields.io/pypi/v/pynvest?style=flate&logo=python&logoColor=FFFFFF&color=22C7FF" alt="PyPi shield">
Expand Down
19 changes: 19 additions & 0 deletions docs/tools/arquitetura.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Arquitetura de Solução

Agora que temos uma noção sobre o que é o módulo `pynvest-tools` e os principais benefícios atrelados ao seu uso, vamos iniciar um aprofundamento técnico sobre o que está por trás da solução.

Iniciando pela arquitetura, a imagem abaixo traz uma visão detalhada da solução contendo toda a dinâmica de serviços e integrações disponibilizadas para o usuário.

<small>
:octicons-light-bulb-16:
**Dica:** clique na imagem para uma melhor visualização dos elementos.
</small>

![Arquitetura de Solução](https://github.com/ThiagoPanini/pynvest-tools/blob/v0.2.x/docs/drawio/pynvest-tool-diagram-print.png?raw=true)

Em essência, o diagrama acima contempla todos os serviços AWS entregues pelo módulo Terraform e, além disso, traz a visão de todas as integrações entre os recursos.

Toda a dinâmica de implantação do módulo é baseada em **6 macro etapas** que, em linhas gerais, contemplam toda a lógica de extração, preparação e atualização agendada dos dados financeiros disponibilizados ao usuário em seu próprio ambiente AWS.

Ao longo desta seção de detalhamento, será possível observar todas as nuances e particularidades dos [recursos provisionados](./recursos.md) e das [etapas de processamento da solução](./processo.md).

42 changes: 42 additions & 0 deletions docs/tools/processo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Etapas do Processamento

A solução `pynvest-tools` abrange a implantação de uma série de recursos AWS que, juntos, comportam uma série de atividades previamente definidas e designadas para um propósito único: disponibilizar dados confiáveis e recorrentemente atualizados contendo indicadores financeiros de ações e fundos imobiliários.

Para que isso seja possível, um total de **6 macro etapas** foram desenhadas de modo pontual. Nesta seção, o usuário poderá encontrar detalhes sobre cada uma das etapas de processamento dos recursos do módulo.

??? tip "Lembrete: arquitetura da solução"
Expanda esse bloco sempre que precisar relembrar o desenho de arquitetura de solução.

<small>
:octicons-light-bulb-16:
**Dica:** clique na imagem para uma melhor visualização dos elementos.
</small>

![Arquitetura de Solução](https://github.com/ThiagoPanini/pynvest-tools/blob/v0.2.x/docs/drawio/pynvest-tool-diagram-print.png?raw=true)

<small>
:octicons-light-bulb-16:
**Dica:** visando facilitar o detalhamento das etapas, cada ação a ser exemplificada está identificada, nas imagens de arquitetura disponibilizadas, com índices que se referem à macro etapa. Por exemplo, a etapa 1 definida como "eliminação de partições do dia" contemplam os passos 1.1, 1.2 e 1.3. Cada um desses passos será detalhado para o usuário.
</small>

## Etapa 1: Eliminação das Partições do Dia

![Desenho de arquitetura contendo apenas a primeira etapa do processamento](https://github.com/ThiagoPanini/pynvest-tools/blob/v0.2.x/docs/imgs/arquitetura-etapas/etapa-01.png?raw=true)

O primeiro passo

## Etapa 2: Envio de Códigos de Ativos para Fila SQS

![Desenho de arquitetura contendo apenas a segunda etapa do processamento](https://github.com/ThiagoPanini/pynvest-tools/blob/v0.2.x/docs/imgs/arquitetura-etapas/etapa-02.png?raw=true)


## Etapa 3: Processamento de Tabelas SoR


## Etapa 4: Processamento de Tabelas SoT


## Etapa 5: Processamento de Tabela Spec


## Etapa 6: Deduplicação de Registros
42 changes: 42 additions & 0 deletions docs/tools/quickstart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Primeiros Passos

Agora que sabemos exatamente o que é o módulo pynvest-tools, vamos detalhar como utilizar e extrair o melhor de suas funcionalidades.

## Pré Requisitos

- ☁️ [Conta AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/) disponível para uso
- 🔑 [Acesso programático](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) à conta com chaves de acesso
-[Terraform](https://www.terraform.io/) instalado
- 🪣 [Buckets S3](https://aws.amazon.com/s3/) existentes na conta AWS para armazenamento de dados brutos (SoR), preparados (SoT) e especializados (Spec)

## Chamando o Módulo Terraform

Uma vez cumprido os pré requisitos, o usuário poderá obter todos os insumos já detalhados através de uma [chamada de módulo Terraform](https://developer.hashicorp.com/terraform/language/modules/syntax) no seguinte formato:

```python
# Chamada de módulo pynvest-tools em arquivo main.tf
module "pynvest-tools" {
source = "git::https://github.com/ThiagoPanini/pynvest-tools?ref=main"

bucket_names_map = {
"sor" = "some-bucket-name-to-store-sor-data",
"sot" = "some-bucket-name-to-store-sot-data",
"spec" = "some-bucket-name-to-store-spec-data"
}
}
```

???+ question "Quais variáveis o usuário necessita passar para o módulo?"
Como esperado, um módulo Terraform pode ser configurado através de variáveis que guiam regras específicas dentro da lógica embutida no módulo.

No `pynvest-tools`, muitas das variáveis já tão fornecidas com um valor padrão, não exigindo qualquer tipo de ação por parte do usuário, exceto se o mesmo deseja configurar comportamentos específicos dos recursos provisionados.

A exceção fica por conta da variável `bucket_names_map` que, essencialmente, tem a função de configurar toda a lógica de armazenamento dos dados obtidos nas aplicações criadas pelo módulo. Esta é a **única variável obrigatória** exigida pelo módulo e seu preenchimento deve ser feito através de um dicionário (map type, no Terraform) contendo as chaves "sor", "sot" e "spec", cujos valores devem representar nomes válidos para buckets S3 responsáveis por armazenar dados nessas três camadas.

Após configurar a chamada ao módulo, basta executar os seguintes comandos Terraform para implantar a infraestrutura relacionada:

- `terraform init` para inicialização do módulo
- `terraform plan` para validar o plano de implantação
- `terraform apply` para aplicar a implantação na conta AWS alvo

Pronto! Você agora terá em sua conta AWS todo um conjunto de serviços para extrair, preparar e armazenar diariamente indicadores de Ações e Fundos Imobiliários da B3! Para saber mais sobre os recursos disponibilizados, não deixe de chegar a página contendo os [detalhes da solução]()
Loading

0 comments on commit d8ef717

Please sign in to comment.