Skip to content

Tecnologia

Continuous Learning (Aprendizado Contínuo)

É o processo de aprendizado constante, onde indivíduos e organizações buscam adquirir e aprimorar conhecimentos e habilidades ao longo do tempo.

Pílula do Conhecimento

São conteúdos curtos e direcionados para aprendizado rápido e objetivo sobre um tema específico.

Carreira

flowchart TD
  id1(Autoaprendizagem) --> id2(Tutoriais)
  id1  --> id3(Certificações)
  id1  --> id4(Projetos)

Tecnologia da Informação

flowchart TD
  id1(Profissional</br>Tecnologia</br>da Informação) --> id2(Continuous Learning)
  subgraph Requisitos
    direction LR
    id10(Processos Ágeis)
    id12(Documentação)
  end
  subgraph Desenvolvedor
   direction LR
   id5(Source</br>Control)
   id13(Linguagem)
   id7(Container)
   id8(Workflow)
  end
  subgraph SRE
    direction LR
    id3(Linux)
    id4(Cloud)
    id6(IaC)
    id9(Configuration</br>Management)
    id11(Observabilidade)
  end
  id2 --> Requisitos & Desenvolvedor & SRE

Linux

flowchart TD
  id3(Linux)    --> id30(Distribuição</br>Ubuntu,Fedora)
  id30          --> id3001(Terminal)
  id3001        --> id300101(FileSystem</br>df,du,chgrp) & id300102(Base CLI</br>ls,cd,pwd) & id300103(Process</br>ps,kill,top) & id300104(Package</br>apt,yum)  & id300105(Scripting</br>bash)

Cloud

flowchart TD
id4(Cloud)   --> id401(GCP,AZ,AWS,OCI)
id401         --> id40101(IaM/IdM) & id40102(Compute EC2) & id40103(Object Storage)

Controle de Versão

flowchart TD
   id5(Source</br>Control) --> id501(Azure-Devops</br>Github)
   id501        --> id501000(Monorepo </br>Polyrepo) & id5010001(Branch</br>Estratégia)
   id501        -->id50101(Basic</br>Clone,Add,Commit</br>Push,Pull,Submodule)
   id501        -->id50102(Access,Proteção Branch</br>Regras)
   id501        -->id50103(Merge,Pull Request)

Infraestrutura como Código

flowchart TD
   id6(IaC)     --> id601(Terraform)
   id601        --> id60101(Basic) & id60102(Criar Servidores) & id60103(Create Multiplos</br> Servidores) & id60104(Criar Recursos) & id60105(Modulos)

Container

flowchart TD
   id7(Container)   --> id701(Docker) & id702(Orquestração)

  subgraph Orquestradores
    direction LR
   id130101(Nomad HashiCorp)
   id130102(Kubernetes K8s)
   id130103(OpenShift)
   id130104(Docker Swarm)
   id130105(Rancher)
  end
  subgraph ContainerBasico
   direction LR
   id70101(Arquitetura Básica)
   id70102(Docker CLI)
   id70103(DockerFile)
   id70104(Docker Compose)
   id70105(Docker CI/CD)
  end
  id701 --> ContainerBasico
  id702 --> Orquestradores

Pipelines/Workflows

flowchart TD
   id8(Workflow)  --> id801(Azure Pipeline) & id802(GitHub Workflow) & id803(Estratégia</br>Implantação)
   subgraph Estrategia
    direction LR
    id80301(Big Bang) & id80302(A/B Testing) & id80303(Canary</br>Deployment) & id80304(Blue/Green</br>Deployment) & id80305(Feature Flags) & id80306(Rolling</br>Deployment) & id80307(Shadow</br>Deployment)
   end
   subgraph workflow
    id80400(EVENTO) --> id80401(JOBS) --> id80402(JOB_NAME) --> id80403(RUNNERS) --> id80404(STEPS) & id80405(ACTIONS)
   end
   subgraph Pipeline
    id80200(trigger) --> id80201(stages) --> id80202(stage) --> id80203(jobs) --> id80204(job)
   end
   id803 --> Estrategia
   id802 --> workflow
   id801 --> Pipeline

Gerenciamento de Configuração

flowchart TD
   id9(Configuration</br>Management) --> id901(Ansible) & id902(Chef)  & id903(Terraform) & id904(SaltStack)

Processos Ágeis

flowchart TD
id10(Processos Ágeis) --> id1001(Manifesto Ágil) & id1002(Metodologias</br>Ágeis) & id1003(Papéis Responsabilidades) & id1004(Ferramentas</br>Ágeis) & id1005(Métricas e</br> Indicadores) & id1006(Cultura Ágil)
subgraph Manifesto
  direction LR
  id100101(Valores)
  id100102(Princípios)
end
subgraph Framework
   direction LR
   id100202(KanBan)
   id100203(Lean)
   id100204(XP)
   id100201(Scrum) --> id10020101(Papéis) & id10020102(Eventos) & id10020103(Artefatos)
end
subgraph Ferramentas
  direction LR
  id100401(Azure DevOps)
  id100402(Trello)
end
subgraph Papel
direction LR
id100301(Stakeholders)
id100302(Product Owner_Manager)
id100303(SCRUM Master)
id100304(Time)
end
subgraph Metricas
direction LR
id100501(DORA)
id100502(Agile Fluency Model)
id100503(Evidence-Based Management)
id100504(SPACE)
id100505(Four Key Metrics)
id100506(Code Quality)
end
subgraph Cultura
  direction LR
  id100601(Colaboração</br>Transparência)
  id100602(Adaptação</br>Mudanças)
  id100603(Autonomia</br>Responsabilidade)
  id100604(Ciclos Curtos</br>Iterativos)
  id100605(Melhoria Contínua)
end
id1001 --> Manifesto
id1002 --> Framework
id1003 --> Papel
id1004 --> Ferramentas
id1005 --> Metricas
id1006 --> Cultura

Documentação

flowchart TD
id12(Documentação) --> id1201(Markdown) & id1202(CSS) & id1203(HTML) & id1204(JavaScript)  & id1205(Sites) & id1206(Wiki)
subgraph SSG
  direction LR
 id120501(MkDocs)
 id120502(Hugo)
 id120503(Jekyll)
 id120504(Gatsby)
end
id1205 --> SSG

Linguagem Tecnologia

flowchart
id13(Linguagem)  --> id1301(Oracle) & id1302(Supravisio) & id1303(PHP)
  subgraph Oracle
    id130101(SQL Developer)
    id130102(SQL DataModeler)
    id130103(Apex)
    id130104(ORDS)
    id130105(Forms)
    id130106(XML Publisher)
    id130107(ODI)
    id130108(SQLcl)
  end
  subgraph Supravisio
   id130201(Python)
   id130202(C/C++)
   id130203(Java)
   id130204(SQL/PLSQL)
   id130205(Ladder/Structured Text)
   id130206(BPMN)
  end
  subgraph PHP
   id130301(Laravel)
   id130302(Symfony)
   id130303(Zend Framework)
   id130304(CMS-Joomla)
   id130305(CMS-WordPress)
  end
  id1301   --> Oracle
  id1302   --> Supravisio
  id1303  --> PHP

Linguagem Tecnologia

flowchart TD
id01(PDTIC) & id02(Teams) & id03(Ticket) --> id04(Produto</br>Projeto)
id04 --> id05(Boards) & id06(Repos) & id07(Test Plan)
id05 --> id0501(Épico) --> id0502(Feature)--> id0503(PBI) --> id0504(Tarefa)
id06 --> id0601(FrontEnd) & id0602(BackEnd) & id0603(IaC) & id0604(Docs)
id07 --> id0701(Test Plan) & id0702(Test Case)

Integração Contínua e Entrega Contínua

flowchart TD
cd01(Codigo) --> cd0101(Compilar</br>Construir) & cd0102(Teste</br>Unitário) & cd0103(Cobertura</br>Código)  & cd0104(Software</br>Composition</br>Analysis) & cd0105(Static Application</br>Security Testing) & cd0106(Quality Gates) & cd0107(Build</br>Docker Image) & cd0108(Scan Docker</br>Image) & cd0109(Smoke Test)

Observabilidade

flowchart TD
id11(Observabilidade) --> id1101(Logs) & id1102(Métricas) & id1103(Traces) & id1104(Ferramentas)
id1104                --> id110401(Coleta de Dados) & id110402(Armazenamento e Processamento) & id110403(Visualização e Dashboard) & id110404(Tracing) & id110405(Alertas e Notificações)
id110401 --> id11040101(Prometheus) & id11040102(Fluentd) & id11040103(Logstash)
id110402 --> id11040201(Elasticsearch) & id11040202(InfluxDB) & id11040203(VictoriaMetrics)
id110403 --> id11040301(Grafana) & id11040302(Kibana) & id11040303(Datadog)
id110404 --> id11040401(Jaeger)  & id11040402(Zipkin) & id11040403(OpenTelemetry)
id110405 --> id11040501(Alertmanager)  & id11040502(PagerDuty) & id11040503(OpsGenie)

Estratégia de Branch

gitGraph
   commit id: "git flow init"
   branch develop
   checkout develop
   commit id: "flow feature start feat"
   branch feature/feat-pbi
   checkout feature/feat-pbi
   commit id: "flow feature finish feat"
   checkout develop
   merge feature/feat-pbi id: "flow release start x.x.x"
   branch release/x.x.x
   checkout release/x.x.x
   commit id: "Code Review"
   checkout main
   merge release/x.x.x id: "flow release finish 'x.x.x'"
   commit id: "flow hotfix start bug-ticket"
   branch hotfix/bug-ticket
   checkout hotfix/bug-ticket
   commit id: "Acerta BUG"
   checkout main
   merge hotfix/bug-ticket id: "flow hotfix finish bug-ticket"
   checkout develop
   merge main
name: CI/CD - GitFlow Go App

on:
  push:
    branches:
      - main
      - develop
      - 'feature/*'
      - 'release/*'
      - 'hotfix/*'
  pull_request:
    branches:
      - main
      - develop
      - 'release/*'
      - 'hotfix/*'

jobs:
  sca-security:
    name: SCA Security Scan
    runs-on: ubuntu-latest

    steps:
      - name: Checkout do código
        uses: actions/checkout@v4

      - name: Instalar Trivy (Ferramenta SCA)
        run: |
          sudo apt update
          sudo apt install -y wget
          wget https://github.com/aquasecurity/trivy/releases/latest/download/trivy_0.50.1_Linux-64bit.tar.gz
          tar zxvf trivy_0.50.1_Linux-64bit.tar.gz
          sudo mv trivy /usr/local/bin/

      - name: Rodar análise SCA
        run: |
          trivy fs --exit-code 1 --severity HIGH,CRITICAL .

  unit-tests:
    name: Testes Unitários
    runs-on: ubuntu-latest
    needs: sca-security  # Só roda após a análise SCA passar

    steps:
      - name: Checkout do código
        uses: actions/checkout@v4

      - name: Configurar Go
        uses: actions/setup-go@v5
        with:
          go-version: '1.21'

      - name: Instalar dependências
        run: go mod tidy

      - name: Rodar testes unitários
        run: go test ./... -v -cover

  docker-build:
    name: Build Docker Image
    runs-on: ubuntu-latest
    needs: unit-tests  # Só roda após os testes unitários passarem

    steps:
      - name: Checkout do código
        uses: actions/checkout@v4

      - name: Build da imagem Docker
        run: docker build -t my-go-app:latest .

      - name: Testar execução do container
        run: docker run --rm my-go-app:latest

  deploy:
    name: Deploy (Somente em releas
gitGraph
   commit id: "checkout -b feature/feat-01"
   branch feature/feat-01
   checkout feature/feat-01
   commit id: "Tarefa 01 - Feature Flah - git push origin feature/feat-01"
   checkout main
   merge feature/feat-01 id: "Pull Requiest - Check"
   branch feature/feat-02
   checkout feature/feat-02
   commit id: "Tarefa 01 - Feature Flah - git push origin feature/feat-02"
   checkout main
   merge feature/feat-02 id: "Merge feature 2 into main"
   commit id: "Release"

Exemplo de Workflow

.
├── .github/workflows/ci.yml  # Workflow do GitHub Actions
├── Dockerfile                # Dockerfile para build da aplicação
├── go.mod                    # Dependências do projeto Go
├── main.go                   # Código principal
├── app/                      # Código fonte
└── tests/                    # Testes unitários
# Usa a imagem base do Golang
FROM golang:1.21

# Define o diretório de trabalho
WORKDIR /app

# Copia os arquivos do projeto
COPY . .

# Baixa as dependências
RUN go mod tidy

# Compila a aplicação
RUN go build -o main .

# Define o comando de execução
CMD ["/app/main"]
name: CI - Go App

on:
  push:
    branches:
      - main
      - 'feature/*'
  pull_request:
    branches:
      - main

jobs:
  sca-security:
    name: SCA Security Scan
    runs-on: ubuntu-latest

    steps:
      - name: Checkout do código
        uses: actions/checkout@v4

      - name: Instalar Trivy (Ferramenta SCA)
        run: |
          sudo apt update
          sudo apt install -y wget
          wget https://github.com/aquasecurity/trivy/releases/latest/download/trivy_0.50.1_Linux-64bit.tar.gz
          tar zxvf trivy_0.50.1_Linux-64bit.tar.gz
          sudo mv trivy /usr/local/bin/

      - name: Rodar análise SCA
        run: |
          trivy fs --exit-code 1 --severity HIGH,CRITICAL .

  unit-tests:
    name: Testes Unitários
    runs-on: ubuntu-latest
    needs: sca-security  # Só roda após a análise SCA passar

    steps:
      - name: Checkout do código
        uses: actions/checkout@v4

      - name: Configurar Go
        uses: actions/setup-go@v5
        with:
          go-version: '1.21'

      - name: Instalar dependências
        run: go mod tidy

      - name: Rodar testes unitários
        run: go test ./... -v -cover

  docker-build:
    name: Build Docker Image
    runs-on: ubuntu-latest
    needs: unit-tests  # Só roda após os testes unitários passarem

    steps:
      - name: Checkout do código
        uses: actions/checkout@v4

      - name: Build da imagem Docker
        run: docker build -t my-go-app:latest .

      - name: Testar execução do container
        run: docker run --rm my-go-app:latest

mvn liquibase:validate
mvn liquibase:update -Dliquibase.labels=v1.2.0 -Dliquibase.contexts=hml

# This is a basic workflow to help you get started with Actions

name: Liquibase_Maven_GitHub-Hosted

on: [push]

# For more control over when the action will run, comment out (or delete) the above and trigger the workflow on master-branch push or pull request
# by uncommenting the appropriate section below.
# on:
# workflow_dispatch:
#   push:
#     branches: [ main ]
#   pull_request:
#     branches: [ main ]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains jobs called "LBJobMaven"
  LBJobMaven:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:

      - name: RunLiquibaseMavenCommands
        uses: actions/checkout@v2
      - run: |
          cd extra/SalesManager_h2_version
          mvn -version
          mvn clean package
          #Uncomment the line below to save changes.  Also, see environment variables under "env" and assign variables accordingly
          #git config --global user.email $user.email; git config --global user.name $user.name; git config pull.rebase false; git add .; git commit -m $"message"; git push -u origin $branch
          mvn liquibase:status -Dliquibase.verbose
          mvn liquibase:updateTestingRollback


        env:
            user.email: "<email>"
            user.name: "<user name>"
            message: "<commit message>"
            branch: "<branch name>"