Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021

Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
DEVELOPMENT
Twelve-Factor App
Boas Práticas em Aplicações na Nuvem
Renato Groffe
Robson Rocha de Araújo
MINI-BIO
RENATO
GROFFE
MINI-BIO
@renatogroffe
Atua como consultor em atividades voltadas ao desenvolvimento
de sistemas há mais de 20 anos. Bacharel em Sistemas de
Informação, com Especialização em Engenharia de Software e
MBA em Business Intelligence. Também é palestrante e autor
técnico em portais e revistas especializadas, com foco em
tecnologias Microsoft como (.NET, C#, ASP.NET Core, Azure) e
boas práticas na área de software. Participo frequentemente em
iniciativas do Canal .NET, Azure na Prática e Coding Night.
@renatogroffe
@canaldotnet
@RenatoGroff
renato.groffe@yahoo.com.br
renatogroffe.medium.com
MINI-BIO
Robson Araújo
MINI-BIO
@robsonrochaaraujo
39 Anos, Casado, 3 filhos. Microsoft MVP na categoria Microsoft Azure
(2019, 2020, 2021-2022). Microsoft MCT desde 2011. 24+ anos de
experiência no Stack Microsoft. 33 Certificações Microsoft (e mais
algumas outras). Fundador e Instrutor da ProCoding (Brasil). Senior
Cloud Architect na Capgemini Netherland B.V. (Países Baixos)
@robsonrox
@RobsonAraujoProCoding
@RobsonROX
robsonrochaaraujo@hotmail.com
about.me/robsonaraujo
AGENDA
• Twelve Factor Apps: uma visão geral e princípios
• Alternativas do Azure úteis no desenvolvimento de
aplicações
INSIRA A TECNOLOGIA MICROSOFT AQUI
• Concebida dentro da Heroku
• Software as a Service (SaaS)
• Metodologia agnóstica para construção de
aplicações robustas
• Princípios com recomendações muito úteis
para aplicações em nuvem
• Site: https://12factor.net/
INSIRA A TECNOLOGIA MICROSOFT AQUI
Uma base de código (repositório) num
controlador de versões, múltiplos
deploys
INSIRA A TECNOLOGIA MICROSOFT AQUI
• Versionamento de código é essencial
• Codebase = Base de Código = repositório de
código de uma única aplicação
• O uso de um monorepo é uma violação deste
princípio
• A importância do uso de branchs
• Git, GitHub e Azure Repos (Azure DevOps) são
soluções populares
INSIRA A TECNOLOGIA MICROSOFT AQUI
Declare e isole explicitamente as dependências
INSIRA A TECNOLOGIA MICROSOFT AQUI
• Devemos ter a capacidade de restaurar
dependências de um projeto com facilidade (uso
de arquivos declarando as mesmas)
• Pare de copiar pacotes, bibliotecas para um projeto!
• Reaproveitamento de código
• NuGet, npm...
• Possibilidade de uso de repositórios privados
INSIRA A TECNOLOGIA MICROSOFT AQUI
Armazene as configurações no ambiente
INSIRA A TECNOLOGIA MICROSOFT AQUI
• Priorizar o uso de variáveis de
ambiente
• Evitar ao extremo arquivos de
configuração
• Azure App Configuration, Azure Key
Vault
INSIRA A TECNOLOGIA MICROSOFT AQUI
Trate serviços de apoio como
recursos anexados
INSIRA A TECNOLOGIA MICROSOFT AQUI
• É extremamente importante termos a
capacidade de se trocar um serviço por
outro (BD, mensageria…) sem que isto
implique em grandes mudanças de código
• Configurações definem o uso de um
serviço ou outro
• Importância do princípio de Inversão de
Controle, com uso de Injeção de
Dependências
INSIRA A TECNOLOGIA MICROSOFT AQUI
Separe estritamente os estágios de build, release e execução
INSIRA A TECNOLOGIA MICROSOFT AQUI
• Geração de artefatos, packages e
imagens no Build com uma solução de
automação
• Deployment automatizado
• Gerenciamento de configurações por
ambiente
• Azure DevOps, GitHub Actions
INSIRA A TECNOLOGIA MICROSOFT AQUI
Execute a aplicação como um ou
mais processos que não armazenam
estado
INSIRA A TECNOLOGIA MICROSOFT AQUI
• Priorizar o desenvolvimento stateless
viabilizando a escalabilidade da
aplicação
• Uso de serviços de apoio para
armazenar estado
• Redis é uma das principais alternativas
para cache distribuído
INSIRA A TECNOLOGIA MICROSOFT AQUI
Exporte serviços via vínculo de
portas
INSIRA A TECNOLOGIA MICROSOFT AQUI
• Aplicações auto-contidas (self-
contained)
• Exposição das portas acessíveis
• Outras portas além de HTTP
• Evitar lock-in com soluções de
hospedagem
INSIRA A TECNOLOGIA MICROSOFT AQUI
Escalabilidade horizontal de
aplicações
• Prioridade para implementações stateless
• Inúmeras instâncias
• Worker Processes para processamentos de longa duração
• Uso de serviços de apoio
INSIRA A TECNOLOGIA MICROSOFT AQUI
Maximize robustez com
inicialização rápida e
desligamento gracioso
• Containers, Pods com as instâncias
de uma aplicação são estruturas
efêmeras
• Parada graciosa de uma aplicação, sem
interrupção abrupta
• Código otimizado para execução de uma
aplicação
• Uso de estratégias como Blue Green,
Release Canary
INSIRA A TECNOLOGIA MICROSOFT AQUI
Mantenha o desenvolvimento,
homologação e produção o mais
similares possível
INSIRA A TECNOLOGIA MICROSOFT AQUI
• Evitar surpresas devido a diferenças entre
ambientes
• Containers, Docker Compose, Charts do
Helm e mesmo serviços em nuvem (no
próprio Microsoft Azure) podem ser de
grande valia para emular ambientes em
nuvem ou que requerem uma infraestrutura
robusta
INSIRA A TECNOLOGIA MICROSOFT AQUI
Trate logs como fluxos de eventos
INSIRA A TECNOLOGIA MICROSOFT AQUI
• Observabilidade
• Telemetria, métricas, dashboards de
monitoramento
• É comum que o tratamento de logs seja delegado
a um serviço externo (arquivos na maioria dos
casos são inviáveis hoje)
• Application Insights e Prometheus constituem
um excelentes exemplos
INSIRA A TECNOLOGIA MICROSOFT AQUI
Rode tarefas de
administração/gestão em processos
pontuais
INSIRA A TECNOLOGIA MICROSOFT AQUI
• Scripts de tarefas pontuais, Migrations
• Necessidade de documentação
• Versionamento do código
• É comum o uso de soluções de script como
PowerShell e Bash
• Azure Automation é uma alternativa para gerenciar
ações deste tipo
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
1 de 32

Recomendados

Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021 por
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Renato Groffe
262 visualizações29 slides
Aplicações Distribuídas com .NET e Apache Kafka por
Aplicações Distribuídas com .NET e Apache KafkaAplicações Distribuídas com .NET e Apache Kafka
Aplicações Distribuídas com .NET e Apache KafkaGustavo Bellini Bigardi
318 visualizações23 slides
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021 por
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Renato Groffe
313 visualizações27 slides
Azure Event Hubs: processando eventos em tempo real | MVPConf Latam 2021 por
Azure Event Hubs: processando eventos em tempo real | MVPConf Latam 2021Azure Event Hubs: processando eventos em tempo real | MVPConf Latam 2021
Azure Event Hubs: processando eventos em tempo real | MVPConf Latam 2021Renato Groffe
263 visualizações15 slides
O novo ASP.NET - Stone Tech Saturday - Março/2017 por
O novo ASP.NET - Stone Tech Saturday - Março/2017O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017Renato Groff
482 visualizações22 slides
Mulesoft Meetup Latam Summit Brazil por
Mulesoft Meetup Latam Summit BrazilMulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit BrazilGuilherme Pereira Silva
512 visualizações67 slides

Mais conteúdo relacionado

Mais procurados

JBoss Fuse Service Works - O Fuse além da integração - PT-BR por
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
1.5K visualizações45 slides
Apresentação sobre Zabbix na iDEZ 2012 por
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Aécio Pires
5.2K visualizações21 slides
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl... por
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...iMasters
753 visualizações21 slides
DevCommerce Conference 2016: React para aplicações web e mobile como platafor... por
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...iMasters
723 visualizações71 slides
Falando sobre DevOps no azure por
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azureRicardo Martins ☁
347 visualizações62 slides
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ... por
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...Bruno Luiz Pereira da Silva
1.4K visualizações35 slides

Mais procurados(20)

JBoss Fuse Service Works - O Fuse além da integração - PT-BR por Elvis Rocha
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
Elvis Rocha1.5K visualizações
Apresentação sobre Zabbix na iDEZ 2012 por Aécio Pires
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012
Aécio Pires5.2K visualizações
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl... por iMasters
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
iMasters753 visualizações
DevCommerce Conference 2016: React para aplicações web e mobile como platafor... por iMasters
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
iMasters723 visualizações
Falando sobre DevOps no azure por Ricardo Martins ☁
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
Ricardo Martins ☁347 visualizações
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ... por Bruno Luiz Pereira da Silva
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
Bruno Luiz Pereira da Silva1.4K visualizações
Segurança e automação na Amazon: Lições das trincheiras por Bruno Luiz Pereira da Silva
Segurança e automação na Amazon: Lições das trincheirasSegurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheiras
Bruno Luiz Pereira da Silva1.9K visualizações
De zero a cem em cloud computing transformando idéias em aplicações em pouco... por Ricardo Martinelli de Oliveira
De zero a cem em cloud computing  transformando idéias em aplicações em pouco...De zero a cem em cloud computing  transformando idéias em aplicações em pouco...
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
Ricardo Martinelli de Oliveira832 visualizações
Bibliotecas de interface rica no jsf 2 por Pablo Nóbrega
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
Pablo Nóbrega9.4K visualizações
WebAssembly além da Web - Casos de Uso em IoT por GDGFoz
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoT
GDGFoz231 visualizações
Explicando DevOps por s4nx
Explicando DevOpsExplicando DevOps
Explicando DevOps
s4nx 1.1K visualizações
GABC 2018 - Hands-On: DevOps, CI e CD por Jaqueline Ramos
GABC 2018 - Hands-On: DevOps, CI e CDGABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CD
Jaqueline Ramos155 visualizações
Automatizando a implantação e operação de aplicações conteinerizadas no... por Elo7
Automatizando a implantação e operação de aplicações conteinerizadas no...Automatizando a implantação e operação de aplicações conteinerizadas no...
Automatizando a implantação e operação de aplicações conteinerizadas no...
Elo71.6K visualizações
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010 por Rodrigo Kono
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Rodrigo Kono1.4K visualizações
Phprs meetup - deploys automatizados com gitlab por Jackson F. de A. Mafra
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
Jackson F. de A. Mafra339 visualizações
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ... por iMasters
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
iMasters599 visualizações
Mule Meetup Cache Redis por Fabrício Catae
Mule Meetup Cache RedisMule Meetup Cache Redis
Mule Meetup Cache Redis
Fabrício Catae363 visualizações
Microsserviços com Serverles e Azure Functions por Gustavo Bellini Bigardi
Microsserviços com Serverles e Azure FunctionsMicrosserviços com Serverles e Azure Functions
Microsserviços com Serverles e Azure Functions
Gustavo Bellini Bigardi27 visualizações
Arquitetura de microsserviços por Raphael Almeida
Arquitetura  de  microsserviçosArquitetura  de  microsserviços
Arquitetura de microsserviços
Raphael Almeida2.6K visualizações

Similar a Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021

Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack... por
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Renato Groff
956 visualizações30 slides
Um método para o desenvolvimento de software baseado em microsserviços por
Um método para o desenvolvimento de software baseado em microsserviçosUm método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosThiago Pereira
3.4K visualizações40 slides
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem... por
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...Renato Groff
421 visualizações22 slides
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane... por
 Alternativas para a Implementação de Microservices no Microsoft Azure - Jane... Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...Renato Groff
299 visualizações23 slides
Computação em nuvem e Windows Azure por
Computação em nuvem e Windows AzureComputação em nuvem e Windows Azure
Computação em nuvem e Windows AzureRicardo Guerra Freitas
615 visualizações37 slides
.NET Core e ASP.NET Core: Dicas e Truques por
.NET Core e ASP.NET Core: Dicas e Truques.NET Core e ASP.NET Core: Dicas e Truques
.NET Core e ASP.NET Core: Dicas e TruquesRenato Groff
1.2K visualizações24 slides

Similar a Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021(20)

Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack... por Renato Groff
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Renato Groff956 visualizações
Um método para o desenvolvimento de software baseado em microsserviços por Thiago Pereira
Um método para o desenvolvimento de software baseado em microsserviçosUm método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviços
Thiago Pereira3.4K visualizações
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem... por Renato Groff
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Renato Groff421 visualizações
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane... por Renato Groff
 Alternativas para a Implementação de Microservices no Microsoft Azure - Jane... Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
Renato Groff299 visualizações
Computação em nuvem e Windows Azure por Ricardo Guerra Freitas
Computação em nuvem e Windows AzureComputação em nuvem e Windows Azure
Computação em nuvem e Windows Azure
Ricardo Guerra Freitas615 visualizações
.NET Core e ASP.NET Core: Dicas e Truques por Renato Groff
.NET Core e ASP.NET Core: Dicas e Truques.NET Core e ASP.NET Core: Dicas e Truques
.NET Core e ASP.NET Core: Dicas e Truques
Renato Groff1.2K visualizações
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019 por Renato Groff
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Renato Groff353 visualizações
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -... por Renato Groff
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Renato Groff1.1K visualizações
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -... por Renato Groff
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Renato Groff165 visualizações
Docker para Desenvolvedores .NET - .NET SP - Abril-2018 por Renato Groff
Docker para Desenvolvedores .NET - .NET SP - Abril-2018Docker para Desenvolvedores .NET - .NET SP - Abril-2018
Docker para Desenvolvedores .NET - .NET SP - Abril-2018
Renato Groff57 visualizações
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia por Rodrigo Marques Teixeira
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Rodrigo Marques Teixeira159 visualizações
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv... por Renato Groff
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Renato Groff5K visualizações
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party... por Renato Groff
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Renato Groff3.9K visualizações
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -... por Renato Groff
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Renato Groff11.6K visualizações
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018 por Renato Groff
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Renato Groff55 visualizações
Cloud Solutions com o Microsoft Azure - TDC Online Especial BH por Renato Groff
Cloud Solutions com o Microsoft Azure - TDC Online Especial BHCloud Solutions com o Microsoft Azure - TDC Online Especial BH
Cloud Solutions com o Microsoft Azure - TDC Online Especial BH
Renato Groff336 visualizações
Microserviços - Universidade Metodista - EETI 2016 por Renato Groff
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
Renato Groff451 visualizações
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018 por Renato Groff
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Renato Groff151 visualizações
MIT DevOps IaC - Infra como Código por Caio Candido
MIT DevOps IaC - Infra como CódigoMIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como Código
Caio Candido36 visualizações
ASP NET CORE DOCKER LINUX AZURE por Ivan Martinez
ASP NET CORE DOCKER LINUX AZUREASP NET CORE DOCKER LINUX AZURE
ASP NET CORE DOCKER LINUX AZURE
Ivan Martinez176 visualizações

Mais de Renato Groffe

Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4... por
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...Renato Groffe
287 visualizações18 slides
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân... por
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...Renato Groffe
437 visualizações12 slides
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex... por
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...Renato Groffe
381 visualizações6 slides
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer... por
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...Renato Groffe
359 visualizações12 slides
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil por
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation BrazilRenato Groffe
265 visualizações14 slides
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P... por
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...Renato Groffe
310 visualizações10 slides

Mais de Renato Groffe(20)

Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4... por Renato Groffe
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Renato Groffe287 visualizações
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân... por Renato Groffe
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Renato Groffe437 visualizações
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex... por Renato Groffe
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...
Renato Groffe381 visualizações
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer... por Renato Groffe
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...
Renato Groffe359 visualizações
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil por Renato Groffe
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil
Renato Groffe265 visualizações
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P... por Renato Groffe
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...
Renato Groffe310 visualizações
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen... por Renato Groffe
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...
Renato Groffe327 visualizações
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie... por Renato Groffe
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...
Renato Groffe1.5K visualizações
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A... por Renato Groffe
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Renato Groffe476 visualizações
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD... por Renato Groffe
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD....NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
Renato Groffe709 visualizações
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev... por Renato Groffe
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Renato Groffe449 visualizações
.NET + Microsserviços: alternativas open source para descomplicar a sua vida ... por Renato Groffe
.NET + Microsserviços: alternativas open source para descomplicar a sua vida ....NET + Microsserviços: alternativas open source para descomplicar a sua vida ...
.NET + Microsserviços: alternativas open source para descomplicar a sua vida ...
Renato Groffe768 visualizações
Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021 por Renato Groffe
Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021
Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021
Renato Groffe4.4K visualizações
Sobrevoando os serviços do Microsoft Azure | UNIVAG - Agosto-2021 por Renato Groffe
Sobrevoando os serviços do Microsoft Azure | UNIVAG - Agosto-2021Sobrevoando os serviços do Microsoft Azure | UNIVAG - Agosto-2021
Sobrevoando os serviços do Microsoft Azure | UNIVAG - Agosto-2021
Renato Groffe160 visualizações
Microsoft Azure Fundamentals | Everis - Julho-2021 por Renato Groffe
Microsoft Azure Fundamentals | Everis - Julho-2021Microsoft Azure Fundamentals | Everis - Julho-2021
Microsoft Azure Fundamentals | Everis - Julho-2021
Renato Groffe162 visualizações
Sobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - Mackenzie por Renato Groffe
Sobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - MackenzieSobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - Mackenzie
Sobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - Mackenzie
Renato Groffe152 visualizações
Utilizando alternativas Serverless e NoSQL do Azure para criação de games - M... por Renato Groffe
Utilizando alternativas Serverless e NoSQL do Azure para criação de games - M...Utilizando alternativas Serverless e NoSQL do Azure para criação de games - M...
Utilizando alternativas Serverless e NoSQL do Azure para criação de games - M...
Renato Groffe35 visualizações
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie por Renato Groffe
Tecnologias em 2021: no que ficar de olho? | WTT2021 - MackenzieTecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Renato Groffe291 visualizações
Nuvem em 2021: primeiros passos, Azure, tecnologias, carreira - UniFOA | Abri... por Renato Groffe
Nuvem em 2021: primeiros passos, Azure, tecnologias, carreira - UniFOA | Abri...Nuvem em 2021: primeiros passos, Azure, tecnologias, carreira - UniFOA | Abri...
Nuvem em 2021: primeiros passos, Azure, tecnologias, carreira - UniFOA | Abri...
Renato Groffe265 visualizações
Automatizando o build, testes e deployment de websites com GitHub Actions, Se... por Renato Groffe
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...Automatizando o build, testes e deployment de websites com GitHub Actions, Se...
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...
Renato Groffe453 visualizações

Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021

  • 3. DEVELOPMENT Twelve-Factor App Boas Práticas em Aplicações na Nuvem Renato Groffe Robson Rocha de Araújo
  • 4. MINI-BIO RENATO GROFFE MINI-BIO @renatogroffe Atua como consultor em atividades voltadas ao desenvolvimento de sistemas há mais de 20 anos. Bacharel em Sistemas de Informação, com Especialização em Engenharia de Software e MBA em Business Intelligence. Também é palestrante e autor técnico em portais e revistas especializadas, com foco em tecnologias Microsoft como (.NET, C#, ASP.NET Core, Azure) e boas práticas na área de software. Participo frequentemente em iniciativas do Canal .NET, Azure na Prática e Coding Night. @renatogroffe @canaldotnet @RenatoGroff renato.groffe@yahoo.com.br renatogroffe.medium.com
  • 5. MINI-BIO Robson Araújo MINI-BIO @robsonrochaaraujo 39 Anos, Casado, 3 filhos. Microsoft MVP na categoria Microsoft Azure (2019, 2020, 2021-2022). Microsoft MCT desde 2011. 24+ anos de experiência no Stack Microsoft. 33 Certificações Microsoft (e mais algumas outras). Fundador e Instrutor da ProCoding (Brasil). Senior Cloud Architect na Capgemini Netherland B.V. (Países Baixos) @robsonrox @RobsonAraujoProCoding @RobsonROX robsonrochaaraujo@hotmail.com about.me/robsonaraujo
  • 6. AGENDA • Twelve Factor Apps: uma visão geral e princípios • Alternativas do Azure úteis no desenvolvimento de aplicações
  • 7. INSIRA A TECNOLOGIA MICROSOFT AQUI • Concebida dentro da Heroku • Software as a Service (SaaS) • Metodologia agnóstica para construção de aplicações robustas • Princípios com recomendações muito úteis para aplicações em nuvem • Site: https://12factor.net/
  • 8. INSIRA A TECNOLOGIA MICROSOFT AQUI Uma base de código (repositório) num controlador de versões, múltiplos deploys
  • 9. INSIRA A TECNOLOGIA MICROSOFT AQUI • Versionamento de código é essencial • Codebase = Base de Código = repositório de código de uma única aplicação • O uso de um monorepo é uma violação deste princípio • A importância do uso de branchs • Git, GitHub e Azure Repos (Azure DevOps) são soluções populares
  • 10. INSIRA A TECNOLOGIA MICROSOFT AQUI Declare e isole explicitamente as dependências
  • 11. INSIRA A TECNOLOGIA MICROSOFT AQUI • Devemos ter a capacidade de restaurar dependências de um projeto com facilidade (uso de arquivos declarando as mesmas) • Pare de copiar pacotes, bibliotecas para um projeto! • Reaproveitamento de código • NuGet, npm... • Possibilidade de uso de repositórios privados
  • 12. INSIRA A TECNOLOGIA MICROSOFT AQUI Armazene as configurações no ambiente
  • 13. INSIRA A TECNOLOGIA MICROSOFT AQUI • Priorizar o uso de variáveis de ambiente • Evitar ao extremo arquivos de configuração • Azure App Configuration, Azure Key Vault
  • 14. INSIRA A TECNOLOGIA MICROSOFT AQUI Trate serviços de apoio como recursos anexados
  • 15. INSIRA A TECNOLOGIA MICROSOFT AQUI • É extremamente importante termos a capacidade de se trocar um serviço por outro (BD, mensageria…) sem que isto implique em grandes mudanças de código • Configurações definem o uso de um serviço ou outro • Importância do princípio de Inversão de Controle, com uso de Injeção de Dependências
  • 16. INSIRA A TECNOLOGIA MICROSOFT AQUI Separe estritamente os estágios de build, release e execução
  • 17. INSIRA A TECNOLOGIA MICROSOFT AQUI • Geração de artefatos, packages e imagens no Build com uma solução de automação • Deployment automatizado • Gerenciamento de configurações por ambiente • Azure DevOps, GitHub Actions
  • 18. INSIRA A TECNOLOGIA MICROSOFT AQUI Execute a aplicação como um ou mais processos que não armazenam estado
  • 19. INSIRA A TECNOLOGIA MICROSOFT AQUI • Priorizar o desenvolvimento stateless viabilizando a escalabilidade da aplicação • Uso de serviços de apoio para armazenar estado • Redis é uma das principais alternativas para cache distribuído
  • 20. INSIRA A TECNOLOGIA MICROSOFT AQUI Exporte serviços via vínculo de portas
  • 21. INSIRA A TECNOLOGIA MICROSOFT AQUI • Aplicações auto-contidas (self- contained) • Exposição das portas acessíveis • Outras portas além de HTTP • Evitar lock-in com soluções de hospedagem
  • 22. INSIRA A TECNOLOGIA MICROSOFT AQUI Escalabilidade horizontal de aplicações
  • 23. • Prioridade para implementações stateless • Inúmeras instâncias • Worker Processes para processamentos de longa duração • Uso de serviços de apoio
  • 24. INSIRA A TECNOLOGIA MICROSOFT AQUI Maximize robustez com inicialização rápida e desligamento gracioso
  • 25. • Containers, Pods com as instâncias de uma aplicação são estruturas efêmeras • Parada graciosa de uma aplicação, sem interrupção abrupta • Código otimizado para execução de uma aplicação • Uso de estratégias como Blue Green, Release Canary
  • 26. INSIRA A TECNOLOGIA MICROSOFT AQUI Mantenha o desenvolvimento, homologação e produção o mais similares possível
  • 27. INSIRA A TECNOLOGIA MICROSOFT AQUI • Evitar surpresas devido a diferenças entre ambientes • Containers, Docker Compose, Charts do Helm e mesmo serviços em nuvem (no próprio Microsoft Azure) podem ser de grande valia para emular ambientes em nuvem ou que requerem uma infraestrutura robusta
  • 28. INSIRA A TECNOLOGIA MICROSOFT AQUI Trate logs como fluxos de eventos
  • 29. INSIRA A TECNOLOGIA MICROSOFT AQUI • Observabilidade • Telemetria, métricas, dashboards de monitoramento • É comum que o tratamento de logs seja delegado a um serviço externo (arquivos na maioria dos casos são inviáveis hoje) • Application Insights e Prometheus constituem um excelentes exemplos
  • 30. INSIRA A TECNOLOGIA MICROSOFT AQUI Rode tarefas de administração/gestão em processos pontuais
  • 31. INSIRA A TECNOLOGIA MICROSOFT AQUI • Scripts de tarefas pontuais, Migrations • Necessidade de documentação • Versionamento do código • É comum o uso de soluções de script como PowerShell e Bash • Azure Automation é uma alternativa para gerenciar ações deste tipo