DevOps 

Contínuos Delivery

Contínuos Integration

** Imagine 2.0 Case **

O problema!

Dev(developers) vs Ops (infra)

ps: Todos perdem principalmente a empresa.

  • Baixa qualidade de código.

  • Falta de testes.

  • Diferença de ambientes de dev / qa / prod.

  • Dificuldade em fazer deploys.

  • Não monitoramento do comportamento do sistemas após novos deploys.

Principais problemas

FALTA DE AGILIDADE

A solução

  • é uma cultura

  • é uma metodologia

  • é trabalho em equipe

  • é autonomia 

  • é ser agil 

  • é aumentar a eficiência e a qualidade

DevOps

DevOps

DevOps

Ferramentas

Versionamento

  • Github

  • Bitbucket

  • Mercurial

  • Visual studio online

Contínuos Delivery

 

  • CircleCi

  • Visual Studio Online - Team Build

  • Drone.io

  • Codeship

  • BitbucketPipeline

ps: Algumas ferramentas de continuos delivery executam testes antes do deploy.

Criação de Ambientes

  • Docker

  • Vgrant

  • Aws Cloud Formations (Infraestructure as Code)

Monitoração

  • NewRelic

  • Applications Insights

  • Pm2

  • Aws Cloud Watch

Testes

  • Mocha

  • Jasmine

  • Selenium

  • Istanbul

  • Nunit

Code Quality

  • Codacy

  • Code Climate

  • SonarQube

Imagine 2.0

Imagine 2.0

Arquitetura Imagine 2.0

Arquitetura Imagine 2.0

  • Front End Angular 4 hospedado no NgInx

  • Api Rest StateLess com NodeJs Koa1 - Generators / Async-Await

  • Banco de Dados MongoDB rodando em Docker

  • Bitbucket - Versionador de Códigos

  • Bitbucket Pipeline - Serviço de build integrado com Continuos Integrations

  • SendGrid - Serviço de Envio de Emails

  • Application Insigths - Monitoração da Api

  • Azure - Serviço de Cloud

Continuos Integration

Continuos Integration

image: carlosrodriguesjunior/imagine_ci
pipelines:
  default:
    - step:
        script:
          - echo "This script runs on all branches that don't have any specific pipeline assigned in 'branches'."
  branches:
    master:
      - step:
          caches:
            - node
          script:
            - npm install
            - npm run seedTest
            - npm test
            - rsync -avz -e "ssh" * imagine@191.232.181.15:/home/imagine/imagine-api
            - ssh imagine@191.232.181.15 "bash -i -c 'pm2 restart Imagine-Api'"
    dev:
      - step:
          script:
            - npm install
            - npm run seedTest
            - npm run unitTests
            - npm run integratedTests
            - npm run unitTestsCoverage
            - npm run checkCoverage
            - rsync -avz -e "ssh" * imagine@191.232.181.15:/home/imagine/imagine-api-alpha
            - ssh imagine@191.232.181.15 "bash -i -c 'pm2 restart Imagine-Api-Alpha'"

Bitbucket Pipeline

Bitbucket Pipeline

Bitbucket Pipeline

Obrigado.

DevOps Imagine 2.0

By Carlos de Souza Rodrigues Junior

DevOps Imagine 2.0

  • 186