1. O documento discute os 12 e 15 Fatores que definem aplicações prontas para a nuvem. Estes fatores incluem estadoless, portabilidade, descartabilidade e outros princípios para construir software escalável.
2. O documento fornece uma breve história dos 12 Fatores, originalmente criados por Adam Wiggins para Heroku.
3. Os principais fatores discutidos incluem configurações como variáveis de ambiente, logs efêmeros, serviços de apoio declarativos e ambientes de desenvolvimento e produção similares.
O documento resume uma apresentação sobre o RAD Studio da Embarcadero. Apresenta recursos como produtividade da IDE, desenvolvimento para Windows 10, banco de dados com FireDAC e criação de APIs REST para mobile e IoT. Inclui novidades como suporte para Windows Store, desenvolvimento Linux com Delphi e melhorias na arquitetura do Android.
O BACK-END PERFEITO PARA APLICAÇÕES DELPHI E C++ BUILDERFernando Rizzato
O documento descreve o RAD Server da Embarcadero Technologies, uma plataforma back-end completa para distribuir serviços de aplicações Delphi e C++Builder. O RAD Server fornece APIs, serviços embutidos, integrações e ferramentas de gerenciamento para criar soluções multi-tier simplificadas. Ele pode ser implantado localmente ou na nuvem e oferece opções de licenciamento flexíveis.
Este documento resume o programa de licenças acadêmicas gratuitas da Embarcadero, que fornece ferramentas de desenvolvimento para instituições de ensino credenciadas ao MEC. O programa oferece o pacote RAD Studio Architect Academic por um ano para uso em cursos de computação. A documentação e suporte técnico também estão incluídos.
O documento descreve um programa de licenças educacionais da Embarcadero que fornece ferramentas de desenvolvimento para instituições de ensino brasileiras. O programa oferece licenças anuais para laboratórios e licenças de 9 meses para alunos, incluindo produtos como Delphi, C++ Builder e HTML5 Builder. O objetivo é apoiar o ensino e a aprendizagem de desenvolvimento de aplicativos.
A Apprenda foi fundada em 2007 e oferece uma plataforma como serviço (PaaS) que suporta inicialmente .NET e posteriormente adiciona Java. Em 2014, a Apprenda se junta à Microsoft para oferecer PaaS híbrido entre datacenter próprio e Azure. A conclusão é que a Apprenda é uma opção líder para aplicações .NET em PaaS privado.
Expondo APIs de back-ends legados e travadosFábio Rosato
Sistemas legados podem ser muito complexos e travados em capacidade de evolução rápida e conectividade. Com a necessidade de inovação e digitalização dos negócios, grandes empresas estão enxergando uma camada de APIs como forma de destravar back-ends legados – com objetivo de trazer flexibilidade de arquitetura. As APIs funcionam como catalisador dessa estratégia.
Nesta apresentação, vamos mergulhar em padrões de design e técnicas para exposição de APIs a partir de sistemas complexos. Entre os temas cobertos:
- Estratégias de design para a definição das APIs com vantagens e desvantagens de cada uma das abordagens;
Como atacar questões de diversidade de protocolos de acesso aos back-ends;
- Formas de lidar com as limitações e inflexibilidades do back-end legado;
- Como implementar o pattern API Facade na prática;
- Como uma camada de API Gateway pode ser utilizada na composição da arquitetura, aumentando a flexibilidade;
- Exposição de APIs a partir de sistemas mainframe;
- Como solucionar problemas arquiteturais como logging, exceções e monitoramento;
- Como conduzir a operação e evolução de APIs nesta abordagem.
Repensando o ESB: sua arquitetura SOA, usando APIsFábio Rosato
1. Apresenta alternativas para arquiteturas SOA usando APIs internas em vez de ESB.
2. ESB não é necessário e pode ter limitações para cenários digitais atuais.
3. APIs internas habilitam o backend para uso em aplicações modernas de forma mais simples sem ESB.
O documento descreve a empresa Apprenda, fundada em 2007 para fornecer plataforma como serviço (PaaS). A Apprenda lançou inicialmente suporte a .NET e posteriormente adicionou Java, integrando-se com plataformas como Microsoft Azure e Docker. O texto também explica como a Apprenda funciona para fornecer infraestrutura como serviço de forma elástica e integrada a nuvens públicas e privadas.
O documento resume uma apresentação sobre o RAD Studio da Embarcadero. Apresenta recursos como produtividade da IDE, desenvolvimento para Windows 10, banco de dados com FireDAC e criação de APIs REST para mobile e IoT. Inclui novidades como suporte para Windows Store, desenvolvimento Linux com Delphi e melhorias na arquitetura do Android.
O BACK-END PERFEITO PARA APLICAÇÕES DELPHI E C++ BUILDERFernando Rizzato
O documento descreve o RAD Server da Embarcadero Technologies, uma plataforma back-end completa para distribuir serviços de aplicações Delphi e C++Builder. O RAD Server fornece APIs, serviços embutidos, integrações e ferramentas de gerenciamento para criar soluções multi-tier simplificadas. Ele pode ser implantado localmente ou na nuvem e oferece opções de licenciamento flexíveis.
Este documento resume o programa de licenças acadêmicas gratuitas da Embarcadero, que fornece ferramentas de desenvolvimento para instituições de ensino credenciadas ao MEC. O programa oferece o pacote RAD Studio Architect Academic por um ano para uso em cursos de computação. A documentação e suporte técnico também estão incluídos.
O documento descreve um programa de licenças educacionais da Embarcadero que fornece ferramentas de desenvolvimento para instituições de ensino brasileiras. O programa oferece licenças anuais para laboratórios e licenças de 9 meses para alunos, incluindo produtos como Delphi, C++ Builder e HTML5 Builder. O objetivo é apoiar o ensino e a aprendizagem de desenvolvimento de aplicativos.
A Apprenda foi fundada em 2007 e oferece uma plataforma como serviço (PaaS) que suporta inicialmente .NET e posteriormente adiciona Java. Em 2014, a Apprenda se junta à Microsoft para oferecer PaaS híbrido entre datacenter próprio e Azure. A conclusão é que a Apprenda é uma opção líder para aplicações .NET em PaaS privado.
Expondo APIs de back-ends legados e travadosFábio Rosato
Sistemas legados podem ser muito complexos e travados em capacidade de evolução rápida e conectividade. Com a necessidade de inovação e digitalização dos negócios, grandes empresas estão enxergando uma camada de APIs como forma de destravar back-ends legados – com objetivo de trazer flexibilidade de arquitetura. As APIs funcionam como catalisador dessa estratégia.
Nesta apresentação, vamos mergulhar em padrões de design e técnicas para exposição de APIs a partir de sistemas complexos. Entre os temas cobertos:
- Estratégias de design para a definição das APIs com vantagens e desvantagens de cada uma das abordagens;
Como atacar questões de diversidade de protocolos de acesso aos back-ends;
- Formas de lidar com as limitações e inflexibilidades do back-end legado;
- Como implementar o pattern API Facade na prática;
- Como uma camada de API Gateway pode ser utilizada na composição da arquitetura, aumentando a flexibilidade;
- Exposição de APIs a partir de sistemas mainframe;
- Como solucionar problemas arquiteturais como logging, exceções e monitoramento;
- Como conduzir a operação e evolução de APIs nesta abordagem.
Repensando o ESB: sua arquitetura SOA, usando APIsFábio Rosato
1. Apresenta alternativas para arquiteturas SOA usando APIs internas em vez de ESB.
2. ESB não é necessário e pode ter limitações para cenários digitais atuais.
3. APIs internas habilitam o backend para uso em aplicações modernas de forma mais simples sem ESB.
O documento descreve a empresa Apprenda, fundada em 2007 para fornecer plataforma como serviço (PaaS). A Apprenda lançou inicialmente suporte a .NET e posteriormente adicionou Java, integrando-se com plataformas como Microsoft Azure e Docker. O texto também explica como a Apprenda funciona para fornecer infraestrutura como serviço de forma elástica e integrada a nuvens públicas e privadas.
The twelve factor app - Princípios e boas práticas aplicados no mundo realJosé Filipe Lyra
O sucesso no desenvolvimento de software se baseia em boas práticas e simplicidade acima de tudo.
Assim, desenvolvemos nossos projetos baseados nos princípios do "The twelve factor app" (https://12factor.net).
Nesta apresentação mostramos como usamos estes princípios no desenvolvimento da API de anúncios do VivaReal usando tecnologias como Spring Boot, Docker e Kubernetes.
Autores: Glendon Leitão e José Filipe Lyra
O documento apresenta os princípios dos 12 Fatores para o desenvolvimento de aplicações na nuvem. Descreve a evolução dos sistemas, da arquitetura monolítica para microserviços, e introduz os 12 fatores como uma metodologia para construir aplicações SAAS de forma portátil e resiliente.
Desenvolvimento de sistemas com mensageriaPaula Santana
A apresentação discute arquitetura de sistemas com mensageria, incluindo padrões como event-driven e microsserviços. Apresenta como o Java Message Service (JMS) resolveu problemas de integração entre aplicações e define uma API padronizada. Explica como implementar sistemas de mensageria usando JMS com conexões, filas e tópicos.
Architecture In a Box - Plataforma de AplicaçõesMarkus Christen
O documento discute a evolução e arquitetura das plataformas de aplicações, desde sistemas centralizados até a nuvem. Apresenta como as plataformas apoiam a estratégia de negócios ao permitir o desenvolvimento rápido de aplicações customizadas. Descreve os principais componentes de uma plataforma, incluindo desenvolvimento, integração, processos e infraestrutura.
Cloud-Native Applications nada mais é que uma abordagem para construção e execução de aplicações que exploram ao máximo as vantagens provenientes do modelo de Cloud Computing.
APOS Enterprise Linux - Sistema operacional para point-of-serviceGabriel Fernandes
O documento descreve o sistema operacional AmeliaPOS Enterprise Linux, desenvolvido para atender o varejo brasileiro. Ele fornece uma plataforma confiável, flexível e de código aberto com documentação em português, para pontos de venda e outros dispositivos. O sistema oferece experiências ricas para clientes e parceiros desde a implantação, promovendo respostas rápidas às necessidades dos clientes.
O documento discute o OpenShift, um PaaS da Red Hat que permite aos desenvolvedores implantar e escalar aplicativos na nuvem facilmente. O OpenShift oferece suporte a várias linguagens de programação, integração contínua e ferramentas de implantação, sem travar os desenvolvedores em um hypervisor, middleware ou provedor de nuvem específico. O OpenShift Origin é a versão de código aberto do OpenShift.
O documento discute o desenvolvimento com ferramentas open-source em Java. Apresenta o que é open-source e como o código aberto permite maior liberdade aos desenvolvedores. Lista diversos frameworks, IDEs, servidores e softwares de apoio open-source populares para Java, como Eclipse, NetBeans, Struts, Hibernate, Tomcat e JBoss.
CakeSP - Specta Platform: CakePHP, Flex, FakeSpecta TI
O documento resume uma apresentação sobre o desenvolvimento de uma plataforma de desenvolvimento rápido (RAD) utilizando as tecnologias CakePHP, Flex e Fake. A plataforma foi desenvolvida em 7 meses por 2 pessoas e serviu como base para um sistema de gestão empresarial.
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesiMasters
1) O documento discute estratégias e abordagens para o desenvolvimento e design de APIs, incluindo API First, REST, status codes e otimização.
2) É destacada a importância de APIs bem projetadas para integrações e transformações digitais, assim como a necessidade de focar na experiência do desenvolvedor.
3) São apresentados casos de uso comuns de APIs em plataformas, ecossistemas, clientes e dispositivos múltiplos.
O documento discute as vantagens de se trabalhar com ALM (Application Lifecycle Management) na nuvem. Ele descreve como a nuvem permite agilidade, escalabilidade e economia ao longo do ciclo de vida de aplicativos, permitindo ambientes de desenvolvimento e testes sob demanda.
I. O documento discute os princípios do Twelve-Factor App para construção de aplicações SaaS escaláveis e portáveis. II. Doze princípios são apresentados, incluindo código versionado, dependências declaradas, configurações como variáveis de ambiente e logs como fluxos de eventos. III. Seguindo esses princípios, aplicações podem ser desenvolvidas para fácil implantação contínua e escalabilidade.
A Economia das APIs vem causando transformações nas empresas: serviços na nuvem, aplicações mobile, microserviços, internet das coisas são apenas algumas das razões para a crescente demanda por APIs. Requisitos como segurança, autenticação, analytics, monetização e controle de tráfego, são comuns ao lidarmos com aplicações dessa natureza.
Nessa apresentação será demonstrado como as soluções de API Management podem ser um valioso aliado para atingir esses requisitos e as principais soluções existentes, como por exemplo os projetos open source Tyk, Kong e API Umbrella e os produtos APIGee e 3scale.
Além disto, veremos porque tecnologias como NGINX estão presentes em grande parte das soluções; onde estas soluções diferem, onde convergem e quais são as diferenças entre as técnicas de API Gateway, API Proxy e API Management. Ao final, será realizado um comparativo entre a experiência adquirida em um projeto cujo gerenciamento e exposição da API foi desenvolvidos internamente, e um onde uma solução de API Management e microserviços foi utilizada.
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisÉdipo Souza
O documento faz uma análise comparativa de três frameworks de desenvolvimento multiplataforma para dispositivos móveis: PhoneGap, Sencha Touch e Titanium. Descreve as funcionalidades, modelos de desenvolvimento e resultados de uma aplicação prova de conceito feita com cada um. O documento conclui que o Titanium foi o framework mais eficiente considerando fatores como curva de aprendizado, desempenho e esforço de desenvolvimento.
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Marcus Garcia
O documento discute as vantagens de trabalhar com ALM (Application Lifecycle Management) na nuvem, incluindo maior agilidade, redução de custos e melhoria na entrega contínua de aplicativos. É destacado que a computação em nuvem permite provisionar ambientes de desenvolvimento e testes rapidamente sob demanda.
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...tdc-globalcode
1. O documento discute os princípios e fatores dos 12 Fatores Apps, uma metodologia para construção de serviços prontos para produção.
2. Os fatores são agrupados em três categorias: fatores de design, fatores de build e release, e fatores de gerenciamento.
3. A metodologia promove a portabilidade, escalabilidade e paridade entre desenvolvimento e produção para aplicações modernas.
1. O documento discute boas práticas para construção de serviços de acordo com a metodologia 12 Factor Apps.
2. Os 12 Fatores são agrupados em fatores de design, build & release e gerenciamento, cobrindo princípios como port binding, processos sem estado, configurações externas e parity entre desenvolvimento e produção.
3. A palestrante irá demonstrar uma aplicação .NET que segue os 12 Fatores e discutirá possíveis fatores adicionais para a metodologia.
O documento apresenta uma introdução sobre arquitetura RIA usando o .NET RIA Services. Discute os conceitos de arquitetura RIA, apresenta as camadas do .NET RIA Services e conclui demonstrando como ele facilita a construção de aplicações RIA unificando a lógica do cliente e servidor.
Mais conteúdo relacionado
Semelhante a Construindo aplicações saudáveis e prontas para envelhecer The 12ou15 Factors
The twelve factor app - Princípios e boas práticas aplicados no mundo realJosé Filipe Lyra
O sucesso no desenvolvimento de software se baseia em boas práticas e simplicidade acima de tudo.
Assim, desenvolvemos nossos projetos baseados nos princípios do "The twelve factor app" (https://12factor.net).
Nesta apresentação mostramos como usamos estes princípios no desenvolvimento da API de anúncios do VivaReal usando tecnologias como Spring Boot, Docker e Kubernetes.
Autores: Glendon Leitão e José Filipe Lyra
O documento apresenta os princípios dos 12 Fatores para o desenvolvimento de aplicações na nuvem. Descreve a evolução dos sistemas, da arquitetura monolítica para microserviços, e introduz os 12 fatores como uma metodologia para construir aplicações SAAS de forma portátil e resiliente.
Desenvolvimento de sistemas com mensageriaPaula Santana
A apresentação discute arquitetura de sistemas com mensageria, incluindo padrões como event-driven e microsserviços. Apresenta como o Java Message Service (JMS) resolveu problemas de integração entre aplicações e define uma API padronizada. Explica como implementar sistemas de mensageria usando JMS com conexões, filas e tópicos.
Architecture In a Box - Plataforma de AplicaçõesMarkus Christen
O documento discute a evolução e arquitetura das plataformas de aplicações, desde sistemas centralizados até a nuvem. Apresenta como as plataformas apoiam a estratégia de negócios ao permitir o desenvolvimento rápido de aplicações customizadas. Descreve os principais componentes de uma plataforma, incluindo desenvolvimento, integração, processos e infraestrutura.
Cloud-Native Applications nada mais é que uma abordagem para construção e execução de aplicações que exploram ao máximo as vantagens provenientes do modelo de Cloud Computing.
APOS Enterprise Linux - Sistema operacional para point-of-serviceGabriel Fernandes
O documento descreve o sistema operacional AmeliaPOS Enterprise Linux, desenvolvido para atender o varejo brasileiro. Ele fornece uma plataforma confiável, flexível e de código aberto com documentação em português, para pontos de venda e outros dispositivos. O sistema oferece experiências ricas para clientes e parceiros desde a implantação, promovendo respostas rápidas às necessidades dos clientes.
O documento discute o OpenShift, um PaaS da Red Hat que permite aos desenvolvedores implantar e escalar aplicativos na nuvem facilmente. O OpenShift oferece suporte a várias linguagens de programação, integração contínua e ferramentas de implantação, sem travar os desenvolvedores em um hypervisor, middleware ou provedor de nuvem específico. O OpenShift Origin é a versão de código aberto do OpenShift.
O documento discute o desenvolvimento com ferramentas open-source em Java. Apresenta o que é open-source e como o código aberto permite maior liberdade aos desenvolvedores. Lista diversos frameworks, IDEs, servidores e softwares de apoio open-source populares para Java, como Eclipse, NetBeans, Struts, Hibernate, Tomcat e JBoss.
CakeSP - Specta Platform: CakePHP, Flex, FakeSpecta TI
O documento resume uma apresentação sobre o desenvolvimento de uma plataforma de desenvolvimento rápido (RAD) utilizando as tecnologias CakePHP, Flex e Fake. A plataforma foi desenvolvida em 7 meses por 2 pessoas e serviu como base para um sistema de gestão empresarial.
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesiMasters
1) O documento discute estratégias e abordagens para o desenvolvimento e design de APIs, incluindo API First, REST, status codes e otimização.
2) É destacada a importância de APIs bem projetadas para integrações e transformações digitais, assim como a necessidade de focar na experiência do desenvolvedor.
3) São apresentados casos de uso comuns de APIs em plataformas, ecossistemas, clientes e dispositivos múltiplos.
O documento discute as vantagens de se trabalhar com ALM (Application Lifecycle Management) na nuvem. Ele descreve como a nuvem permite agilidade, escalabilidade e economia ao longo do ciclo de vida de aplicativos, permitindo ambientes de desenvolvimento e testes sob demanda.
I. O documento discute os princípios do Twelve-Factor App para construção de aplicações SaaS escaláveis e portáveis. II. Doze princípios são apresentados, incluindo código versionado, dependências declaradas, configurações como variáveis de ambiente e logs como fluxos de eventos. III. Seguindo esses princípios, aplicações podem ser desenvolvidas para fácil implantação contínua e escalabilidade.
A Economia das APIs vem causando transformações nas empresas: serviços na nuvem, aplicações mobile, microserviços, internet das coisas são apenas algumas das razões para a crescente demanda por APIs. Requisitos como segurança, autenticação, analytics, monetização e controle de tráfego, são comuns ao lidarmos com aplicações dessa natureza.
Nessa apresentação será demonstrado como as soluções de API Management podem ser um valioso aliado para atingir esses requisitos e as principais soluções existentes, como por exemplo os projetos open source Tyk, Kong e API Umbrella e os produtos APIGee e 3scale.
Além disto, veremos porque tecnologias como NGINX estão presentes em grande parte das soluções; onde estas soluções diferem, onde convergem e quais são as diferenças entre as técnicas de API Gateway, API Proxy e API Management. Ao final, será realizado um comparativo entre a experiência adquirida em um projeto cujo gerenciamento e exposição da API foi desenvolvidos internamente, e um onde uma solução de API Management e microserviços foi utilizada.
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisÉdipo Souza
O documento faz uma análise comparativa de três frameworks de desenvolvimento multiplataforma para dispositivos móveis: PhoneGap, Sencha Touch e Titanium. Descreve as funcionalidades, modelos de desenvolvimento e resultados de uma aplicação prova de conceito feita com cada um. O documento conclui que o Titanium foi o framework mais eficiente considerando fatores como curva de aprendizado, desempenho e esforço de desenvolvimento.
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Marcus Garcia
O documento discute as vantagens de trabalhar com ALM (Application Lifecycle Management) na nuvem, incluindo maior agilidade, redução de custos e melhoria na entrega contínua de aplicativos. É destacado que a computação em nuvem permite provisionar ambientes de desenvolvimento e testes rapidamente sob demanda.
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...tdc-globalcode
1. O documento discute os princípios e fatores dos 12 Fatores Apps, uma metodologia para construção de serviços prontos para produção.
2. Os fatores são agrupados em três categorias: fatores de design, fatores de build e release, e fatores de gerenciamento.
3. A metodologia promove a portabilidade, escalabilidade e paridade entre desenvolvimento e produção para aplicações modernas.
1. O documento discute boas práticas para construção de serviços de acordo com a metodologia 12 Factor Apps.
2. Os 12 Fatores são agrupados em fatores de design, build & release e gerenciamento, cobrindo princípios como port binding, processos sem estado, configurações externas e parity entre desenvolvimento e produção.
3. A palestrante irá demonstrar uma aplicação .NET que segue os 12 Fatores e discutirá possíveis fatores adicionais para a metodologia.
O documento apresenta uma introdução sobre arquitetura RIA usando o .NET RIA Services. Discute os conceitos de arquitetura RIA, apresenta as camadas do .NET RIA Services e conclui demonstrando como ele facilita a construção de aplicações RIA unificando a lógica do cliente e servidor.
Semelhante a Construindo aplicações saudáveis e prontas para envelhecer The 12ou15 Factors (20)
2. 12 Factor App
- Foi criada por Adam Wiggins enquanto trabalhava no Heroku por volta de
novembro de 2012
- Crescimento orgânico de uma aplicação pelo tempo
- Altera a dinâmica de colaboração entre os desenvolvedores
- Software As a Service (Software como um Serviço)
- Auxilia você a medir o quanto a sua aplicação está pronta para o Cloud
- Revisitado pela Pivotal em 2016 - Beyond the 12 Factor App (Kevin
Hoffman)
3. 12 Factor App
● ESCALABILIDADE ELÁSTICA
● SISTEMA DE ARQUIVOS EFÊMERO
● STATELESSNESS (SEM ESTADO.)
● TRATE TUDO COMO SERVIÇO
● ESCALE E FAÇA DEPLOY RAPIDAMENTE
4. A promessa
“Java Servlet API 2.2 includes one new feature so significant it may change the way
Web works. That feature: Web applications.”
“With Web apps, the entire application can be contained in a single archive file and
deployed by placing the file into a specific directory.”
- Javaworld.com, 1999
5. OS 12 FATORES
● Base de Código
● Dependências
● Configurações
● Serviços de Apoio
● Build, release and run
● Processos
● Port Binding
● Concorrência
● Descartabilidade
● Dev/Prod Semelhantes
● Logs
● Processos de Admin
6. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
7. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
8. Um Repositório, Um App
Repositório de código ÚNICO para MÚLTIPLOS RELEASES IMUTÁVEIS um para
cada ambiente
Múltiplas aplicações com o um único código fonte é geralmente um sinal de que
muitos times estão trabalhando no mesmo código
"organizations which design systems ... are constrained to produce designs which are
copies of the communication structures of these organizations" Conway's Law - Circa
1968
9. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
10. API First
Integrações do inferno, os ambiente não tem arco-iris nem tampouco unicornios
Extensão do "Contract First Pattern"
Desenvolvedores mantém uma interface coerente e com o auxílio de Continuous
Integration valida as comunicações
API Mock
Mobile First
11. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
12. Gerenciamento de Dependências
Servidor da Mamãe, nele temos o application server, o gerenciador de filas, o
gerenciador de backup, o firewall e a NOSSA APLICAÇÃO
Modelo Enterprise (criança) - Cloud (papai)
Aplicações precisam amadurecer para tirar melhor vantagens do ambiente
Gerenciadores de dependencias explícitos como: Maven, Gradle, NPM, CPAN e outros
...
13. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
14. Design, Build, Release and Run
Design: Mapeamento de
Dependências
Build: Compilação e
produção do artefato
Release: Empacota a
aplicação com suas
configurações
Run: Deploy
18. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
19. Configurações, Credenciais e Código
Configurações são parâmetros que MUDAM quando o AMBIENTE muda
Arquivos properties, XML ou YAML nem sempre são a melhor opção
Utilize uma mescla de arquivos de configuração + variáveis de ambiente
Uma boa prática é usar um servidor de configuração capaz de fornecer as
configurações para as aplicações em tempo de execução (Spring Cloud Config, Consul,
etc …)
22. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
23. Logs
Trate logs de forma efêmera, o ambiente é responsável por gerenciar o local de
armazenamento dos logs e a sua rotatividade
Pense em logs como eventos de informações relacionadas a sua aplicação
Utilize ferramentas como agregaçõa de logs como Elasticsearch Logstash Kibana e/ou
Splunk
24. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
25. Descartabilidade
Aplicações não devem manter ESTADO em memória
Aplicações podem ir e vir com intervenção ou exceções
Aplicações devem iniciar em segundos e não minutos (aumentar o timeout não resolve
o problema)
Aplicação devem morrer de forma graciosa
Nos permite extender a aplicação rapidamente no ambiente de Cloud
26. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
27. Serviços de Apoio (Backing Services)
Todo o serviço que sua
aplicação depende para
funcionar
Outras aplicações devem ser
tratadas como Serviços de
Apoio
Essas dependências devem ser
DECLARATIVAS
Banco de dados, ftp, smtp,
gerenciadores de filas, etc ….
28. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
29. Dev/Prod Semelhantes - Every Commit Is a Candidate for Deployment
"Funciona na minha maquina" - Programador desavisado
Manter de forma DECLARATIVA as dependências para construir o ambiente
Tempo: Espaço de tempo muito grande entre o código e o deploy
Pessoas: Deploy e/ou tarefas de provisionamento são feitas por humanos criando um
mar de possíveis erros
Recursos: Manter um ambiente local o mais próximo da produção inclusive com
ferramentas, etc ….
34. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
36. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
37. Port Binding
Platform as a Service
Evite containers que gerencia aplicações enterprise, quando usar sempre manter 1:1
Container:Aplicação
Rode seus serviços anexando PORTAS e use DNS para facilitar a vida dos usuários
Aplicações são Backing Services (Serviços de Apoio)
38. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
39. Processos Stateless (Sem Estado)
Não deve depender dos dados em memória para iniciar o seu processamento
Todos os ESTADOS que devem ser persistidos por algum tempo devem estar em
Backing Services/Serviços de Apoio
"Sharing Nothing Pattern": O sistema de arquivos não é um Backing Service e não deve
ser usado para troca de informações. Ele é efêmero.
Data Caching: Não use cache em sua aplicação pode acabar com a sua RAM. Use um
serviço especializado (Backing Service) para a tarefa (Gemfire, Redis, etc ….)
40. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
41. Concorrência
Se você aumenta Memória, CPU e/ou RAM você está "Escalando Verticalmente"
Quando você tem muitas instâncias da sua aplicação você está
"Scaling Out" ou "Escalando Horizontalmente"
Se você segue os princípios de Descartabilidade, Stateless e Share-nothing suas
aplicações estão prontas para "Escalar Horizontalmente"
42. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
44. OS 15 FATORES
Um Repositório, Um App
API First
Gerenciamento de Dependências
Design, Build, Release and
Run
Configurações, Credenciais e
Código
Logs
Descartabilidade
Serviços de Apoio
Dev/Prod Semelhantes
Processos Administrativos
Port Binding
Processos Stateless (Sem
Estado)
Concorrência
Telemetria
Autenticação e autorização
45. Autenticação e Autorização
Pense no inicio, hoje toda aplicação carrega consigo o requisito funcional de segurança
Não deixe a confiança te trair
Faça um vasto uso de criptografia
RBAC - Role-Based access control
Padrões são bem vindos para a implementação (OAUTH2, OpenID, etc …)
46. RESUMO
1. Desacople os dados. Você não os quer dentro do seu sistema
2. Resiliência - Componentes "fazendo uma coisa e fazendo muito bem" (Do one thing
and do it well)
3. Mantenha a comunicação a um mínimo possível. Você tem que ter acesso aos dados
mesmo se os componentes morrerem
3. Pense em como vai performar com alto volume
4. Segurança - Pense nisso desde o inicio. SÉRIO !
47. UM POUCO DE HISTÓRIA
The Unix Philosophy foi iniciado com o Ken Thompson
Um conjunto de normas culturais e uma abordagem filosófica para o
- minimalismo computacional: usar o mínimo de software e hardware o possível
"This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together.
Write programs to handle text streams, because that is a universal interface." - Peter H. Salus
The Art of Unix Programming - Eric Steven Raymond
Worse is Better - Richard Gabriel - less functionality is better usability