Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Twelve-Factor App: Review and lessons learned

The Twelve-Factor App: Review and lessons learned

Over the years, microservice architecture has been widely adopted, as it provides numerous advantages such as technological heterogeneity, scalability, decoupling, etc.

However, like everything in technology, we have advantages and disadvantages and to mitigate them, 12 good software practices called: The Twelve-Factor App was developed.

In this talk, we will review these best practices and share our experiences on projects over the past few years using Microservice architecture.

Luram Archanjo

August 20, 2020
Tweet

More Decks by Luram Archanjo

Other Decks in Technology

Transcript

  1. Cloud Native App Os aplicativos nativos da nuvem são uma

    coleção de serviços pequenos, independentes e fracamente acoplados. O nativo da nuvem é uma abordagem para construir e executar aplicativos que explora as vantagens do modelo de entrega de computação em nuvem. As tecnologias nativas da nuvem capacitam as organizações a criar e executar escalonáveis aplicativos em ambientes modernos e dinâmicos, como público, privado e nuvens híbridas.
  2. Cloud Native App Um conjunto de boas práticas para otimizar

    um aplicativo na nuvem por meio de: • Conteinerização • Orquestração • Automação By: Otávio Santana
  3. The Twelve-Factor App Metodologia para construção de software como serviço:

    • Portabilidade • Escalabilidade • Divergência mínima • Declarativo
  4. I. Base de Código Uma base de código com rastreamento

    utilizando controle de revisão e muitos deploys
  5. III. Configurações application.yaml spring: application: name: ${APPLICATION_NAME:app-demo} jpa: datasource: platform:

    ${DATABASE:mysql} url: ${DATASOURCE_URL} username: ${DB_USERNAME} password: ${DB_PASSWORD}
  6. III. Configurações app-deployment.yaml apiVersion: apps/v1 kind: Deployment template: spec: containers:

    - name: app image: app:v1 env: - name: DATASOURCE_URL value: "jdbc:mysql://localhost:3306/database" - name: DB_USERNAME value: "username" - name: DB_PASSWORD value: "password"
  7. V. Construa, lance, execute • Blue \ Green • Zero

    downtime • Canary \ Dark launch • 90% v1 • 10% v2 • Traffic Mirroring
  8. VI. Processos • Escalabilidade Horizontal • Balanceador de carga •

    Escala automática • Docker • Kubernetes • Openshift • Os dados devem ser armazenados em um serviço de apoio com estado, normalmente um banco de dados!
  9. IX. Descartabilidade Referência: https://spring.io/blog/2020/05/15/spring-boot-2-3-0-available-now Microservice Microservice O desligamento normal é

    compatível com todos os quatro servidores da Web incorporados (Jetty, Reactor Netty, Tomcat e Undertow) e com aplicativos da Web reativos e baseados em Servlet.
  10. Resumo I. Base de Código II. Dependências III. Configurações IV.

    Serviços de Apoio V. Construa, lance, execute VI. Processos VII. Vínculo de porta VIII. Concorrência IX. Descartabilidade X. Dev/prod semelhantes XI. Logs XII. Processos de Admin Construir & Implantar Design & Arquitetura
  11. Onde aprender mais? Z U P . C O M

    . B R / B L O G ONDE APRENDER MAIS OPENSOURCE.ZUP.COM.BR