SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Melhores Práticas para
Arquitetura em Cloud
Computing

http://ZenCloud.co

Daniel Checchia
Consultor de Tecnologia
daniel@ZenCloud.co
Daniel Checchia…. Quem??
•  +30 anos em Tecnologia
•  Passagem por todos os grandes e-Commerce nacionais
(americanas.com, shoptime.com, submarino.com,
pontofrio.com), empresas de internet (imovelweb.com,
zap.com.br) e startups (psafe.com, sitepx.com).
•  Especializado em Arquitetura Corporativa,
Infraestrutura, segurança e Cloud Computing.
•  “T-Rex” evoluído J

2
O que eu faço….
§  Planejamento Estratégico TI
§  Arquitetura Corporativa de TI
§  Consultoria Estratégica
§  Mentoring para Startups
§  CTO Virtual ou On Demand
§  Hands on

§  Lavo
§  Passo
§  Cozinho....
3
Referência desta
Apresentação

4
Próximas Palestras
2013:
12/11 - Melhores Práticas para Hosting de Aplicações na AWS
19/11 - Criando aplicativos tolerantes a falhas na AWS
2014:
20/01 - Framework de Arquitetura para Cloud Computing
* Lançamento do eBook!

5
Licenciamento desta
Apresentação
Atribuição-Uso Não-Comercial-Compatilhamento pela
mesma licença 2.5 Brasil
Você pode:
• copiar, distribuir, exibir e executar a obra
• criar obras derivadas
Sob as seguintes condições:
Atribuição. Você deve dar crédito ao autor original, da forma
especificada pelo autor ou licenciante.
Uso Não-Comercial. Você não pode utilizar esta obra com
finalidades comerciais.
Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra
obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença
idêntica a esta.

6
BENEFÍCIOS FINANCEIROS

7
“Quase” zero de
investimento inicial
Modelo Tradicional:
•  Sala “CPD” (NoBreaks, Geradores, ar condicionado,
segurança física, servidores, roteadores, switches, etc)
Outsourcing:
•  Aquisição servidores, switches, contratação links
Cloud Computing:
•  OPEX

8
Infraestrutura “Just-in-time”
Modelo Tradicional:
•  “Vítima do próprio Sucesso da Aplicação”
•  Dimensionamento no “TOPO” e pelo “pior cenário”
•  Alta ociosidade de infraestrutura
Cloud Computing:
•  Auto-escalonamento em momento de “pico”
•  Pay-as-use

9
BENEFÍCIOS TECNOLÓGICOS

10
Automação
“Scriptable infrastructure”
•  Gestão por APIs (programação em Shell Script)
•  Puppet
•  Opscode Chef
•  (inserir imagem da subida de um servidor na linha de
código)

11
Auto-scaling
• 
• 
• 
• 

Defina parâmetros de utilização
Defina os alarmes
Defina quantidade de instâncias (mínimo e máximo)
Configure o auto-scalling

•  Relax!

12
Ciclo de Desenvolvimento
mais eficiente
•  “Clone” o ambiente de Produção de forma rápida
•  Ciclo de desenvolvimento encurtado e mais ágil
• 
Beanstalk
•  Deploy automatizado com testes unitários
•  Jenkins

13
CONCEITOS CLOUD
COMPUTING
14
Construindo Arquiteturas
escaláveis
Características de um aplicativo verdadeiramente
escalável:
•  Aumento de recursos resulta em um aumento
proporcional no desempenho
•  Um serviço escalável é capaz de lidar com a
heterogeneidade
•  Um serviço escalável é operacionalmente eficiente
•  Um serviço escalável é resiliente
•  Um serviço escalável deve tornar-se mais rentável
quando cresce (Custo unitário diminui à medida que o
número de unidades aumenta)
15
Entendendo a tal de
Elasticidade

16
Entendendo a tal de
Elasticidade

17
Entendendo a tal de
Elasticidade

18
Entendendo a tal de
Elasticidade

19
Entendendo a tal de
Elasticidade

20
Sem medo das Restrições
•  Cloud foi planejada para um modelo on-demand – não
para um moving AS-IS de seu ambiente
•  1 servidor de 64Gb de RAM = X servidores em auto-scalling
•  Muito IO de Leitura = Memcached
•  Busca em banco = CloudSearch (ElasticSearch, Solr)
•  E outras soluções escaláveis!

21
Administração “Virtual”
•  Com a mudança de Paradigma, vem a agilidade
•  Ambiente “ganha” em performance e escalabilidade
•  Equipes Desenvolvimento e Operações “andam” juntas
para gerir o ambiente

22
MELHORES PRÁTICAS
CLOUD COMPUTING
23
Arquitetura Resiliente
“Design for failure and nothing will fail”
Seja um pessimista ao projetar arquiteturas em nuvem;
assuma que as coisas vão falhar.
Em outras palavras, sempre que projetar, inclua a
recuperação automática de falhas (redundância de
regions, de banco e etc) em seu projeto.

24
Arquitetura Resiliente
Assuma que seu hardware irá falhar
Assuma que interrupções ocorrerão (AWS, Links, etc)
Assuma que algum desastre vai atingir a sua aplicação
Assuma que você vai ser atingido com mais do que o
número esperado de solicitações por segundo alguns dias
•  Assuma que, com o tempo, o seu aplicativo falhará
também
• 
• 
• 
• 

Ser pessimista é fundamental para a criação de uma
arquitetura (software e infra) resiliente.

25
Separe seus Componentes
Cloud reforça o princípio de design da SOA, onde quanto mais
segregado e flexível forem os componentes do sistema,
mais ele será escalável.
Fundamental para arquiteturas em nuvem:
•  Segregação dos seus componentes;
•  Construção de sistemas assíncronos;
•  Dimensionamento para crescimento horizontal

26
Separe seus Componentes
u  Trate cada módulo como uma “Caixa Preta”:
•  Engine de Busca
•  Banco de Dados
•  Frontend
•  Backend
•  Banco de dados
u  Use APIs para “Falar” entre cada módulo
u  Sempre que possível, implemente queues e torne sua
aplicação Assincrona.
27
Implemente Elasticidade:
Automatize sua Infraestrutura
•  Use as APIs de gestão Cloud
•  Crie uma biblioteca de “Recipes” – Scripts mais utilizados
•  Gerencie suas configurações e Deploy utilizando-se de
agents dentro de suas AMIs
•  Opscode Chef
•  CFEngine
•  Puppet
•  Git hacks

28
Implemente Elasticidade:
Bootstrap de suas instâncias
•  Crie “Roles” para sua
aplicação (“DBServer”,
“WEBServer”, “DEVServer”,
etc)
•  Busque estas informações
durante o Boot para
configurar sua instância

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html!

29
Pense Paralelo
A beleza da nuvem aparece quando você combina
elasticidade e paralelismo
•  Garanta que sua aplicação seja assincrona e “stateless”
•  Sempre que possível, utilize APIs entre o front e o
Backend
•  Utilize load balance e cache tanto no frontend como no
backend, nas APIs e XMLs

Estes cuidados permitirão o rápido escalonamento de sua
aplicação de forma automatizada
30
Mantenha seus dados perto
das requisições
Keep dynamic data closer to the compute and static data
closer to the end-user
•  Segregue dados dinâmicos do estático por sub-domínios
•  Coloque dados estáticos em uma CDN (ou crie um cache)
•  Mantenha seus servidores de Processamento, banco de
dados e frontend na mesma region – minimize custos e
latência

31
MELHORES PRÁTICAS
SEGURANÇA
32
Proteja os dados em trânsito
• 

Esqueça HTTP – Use sempre HTTPS:
•  Entre Browser e WebServer
•  Entre Front e APIs

• 

Utilize VPNs:
•  Entre seu escritório e seu provedor de Nuvem
•  Entre Notebooks e Tablets e seu provedor de
Nuvem

• 

Faça Segregação de Ambientes:
•  Crie VPCs (=VLANs) entre recursos da AWS
•  Seja rígido nas regras de firewall entre as
VPCs

33
Proteja seus dados
armazenados
Se você está preocupado com o armazenamento de dados
sensíveis e confidenciais na nuvem:
•  Criptografe seus dados sensíveis antes do upload (PGP)
•  Use EFS para armazenar seus dados (windows ou Linux)
•  Ou Criptografe seu Volume (EBS) - EncFS, Loop-AES, dmcrypt, TrueCrypt
•  OpenSolaris suporta ZFS

PROTEJA suas Chaves Criptográficas! Sem elas, você pode
ficar sem seus dados!!!
34
Protect your APIs
credentials
AWS fornece dois tipos de credenciais de segurança:
•  AWS Access Keys
•  Certificados X.509
AWS Access Keys são compostas de dois “pedaços”:
•  access key ID
•  secret access key
Gerenciando Credenciais (atualizado recentemente):
Parte 01:
http://www.elastician.com/2009/06/managing-your-aws-credentials-part-1.html
Parte 02:
http://www.elastician.com/2009/06/managing-your-aws-credentials-part-2.html

35
Protect your APIs
credentials
Access Key são utilizadas para:
•  Comunicação entre serviços via API
•  Comunicação entre sua instância e as APIs
•  Toda comunicação é via HTTPS
Uma boa prática:
•  Crie um usuário específico para uso com as APIs
•  Crie um script de geração periódica de novas chaves
•  Utilize o Bootstrap para armazenar suas Access Keys

Um erro comum: Armazenar as Access Keys em arquivos
na sua própria AMI! Prefira utilizar o processo de Bootstrap
para passar suas Access Keys para as instâncias
36
Manage multiple Users and
their permissions
AWS Identity and Access Management (IAM), é a central
de controle de acessos da AWS.
•  IAM é seguro por natureza. Cada usuário criado inicia
sem acesso. O administrador precisa atribuir quais
serviços e quais privilégios ele terá.
•  Usuários podem habilitar Multi-factor para autenticação
•  Usuários e senhas são distintos das Access Keys

37
Proteja sua Aplicação
Security Groups:
•  Aplicados em instâncias
ou para uma VPC
•  Regras de
“entrada” (ingress Rules)
Configure o Firewall de seu SO:
•  Linux: Netfilter / IPTables
•  Windows Firewall

Seja restritivo entre VPCs

38
Proteja sua Aplicação
•  Crie snapshots de suas AMI para testar os patches
•  Aplique regularmente os patches para seu SO em sua
AMI de testes
•  Revalide sua aplicação após os patches para ver se não
“quebrou” nenhuma funcionalidade após o patch
•  Garanta que TODAS suas AMIs estão com os últimos
patches
•  Invista tempo para criar scripts de validação de
segurança e para automatizar este processo de
validação e atualização

39
Ferramentas Cloud8
Cupom Cloud8 – 60 dias grátis
http://www.cloud8.com.br

DANIEL-888
(válido até 30/11/2013)

40
Referências
AWS (http://aws.amazon.com/pt/architecture/)
Netflix (http://techblog.netflix.com/)
Twitter (https://blog.twitter.com/engineering)
Facebook:
• 
• 
• 
• 

https://www.facebook.com/Engineering
https://www.facebook.com/data
https://www.facebook.com/MemcacheAtFacebook
https://www.facebook.com/MySQLatFacebook

41
Obrigado!!
Daniel Checchia
daniel@zencloud.co
@checchia

Skype: daniel.checchia
(11) 3010-0140

Site pessoal:
http:/
/Checchia.NET

42

Mais conteúdo relacionado

Mais procurados

Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Rodolfo Fadino Junior
 
Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Mathias Brem
 
Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Wagner Bianchi
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureGiovanni Bassi
 
Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021
Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021
Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021Renato Groffe
 
Visão geral do Windows Azure Backup
Visão geral do Windows Azure BackupVisão geral do Windows Azure Backup
Visão geral do Windows Azure BackupFabio Hara
 
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...Luiz Henrique Zambom Santana
 
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows AzureCloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows AzureLuciano Condé
 
Deep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkLuciano Condé
 
Windows Server 2016 | Hyperconvergência
Windows Server 2016 | HyperconvergênciaWindows Server 2016 | Hyperconvergência
Windows Server 2016 | HyperconvergênciaFabio Hara
 
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da OracleOracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da OracleLuciano Condé
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft AzureGeneXus
 
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...Walter Coan
 

Mais procurados (20)

Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016
 
Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7
 
Tendências de Big Data
Tendências de Big DataTendências de Big Data
Tendências de Big Data
 
Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Introdução ao MySQL 5.6
Introdução ao MySQL 5.6
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows Azure
 
Bigdata
BigdataBigdata
Bigdata
 
Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021
Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021
Exame AZ-900 - Azure Fundamentals | TDC Transformation 2021
 
Visão geral do Windows Azure Backup
Visão geral do Windows Azure BackupVisão geral do Windows Azure Backup
Visão geral do Windows Azure Backup
 
4 passos para a Transformação Digital
4 passos para a Transformação Digital4 passos para a Transformação Digital
4 passos para a Transformação Digital
 
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
 
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows AzureCloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
 
Deep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity Framework
 
Windows Server 2016 | Hyperconvergência
Windows Server 2016 | HyperconvergênciaWindows Server 2016 | Hyperconvergência
Windows Server 2016 | Hyperconvergência
 
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da OracleOracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
 
Backup e Disaster Recovery na Nuvem
Backup e Disaster Recovery na NuvemBackup e Disaster Recovery na Nuvem
Backup e Disaster Recovery na Nuvem
 
3 Telas e uma nuvem
3 Telas e uma nuvem3 Telas e uma nuvem
3 Telas e uma nuvem
 
Primeiros Passos na AWS
Primeiros Passos na AWSPrimeiros Passos na AWS
Primeiros Passos na AWS
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
 

Destaque

Arquiteturas Cloud: Uma Introdução
Arquiteturas Cloud: Uma IntroduçãoArquiteturas Cloud: Uma Introdução
Arquiteturas Cloud: Uma IntroduçãoJose Papo, MSc
 
Conhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWSConhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWSAmazon Web Services LATAM
 
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSBancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSAmazon Web Services LATAM
 
Tutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTecla Internet
 
Transformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoTransformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoDarlan Segalin
 
REST: Faça o Serviço Direito
REST: Faça o Serviço DireitoREST: Faça o Serviço Direito
REST: Faça o Serviço DireitoAlexandre Gaigalas
 
Cloud computing e Amazon Web Services
Cloud computing e Amazon Web ServicesCloud computing e Amazon Web Services
Cloud computing e Amazon Web ServicesRafael Biriba
 
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfAAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfMicrosoft Brasil
 

Destaque (17)

Arquiteturas Cloud na AWS: Uma Introducao
Arquiteturas Cloud na AWS: Uma IntroducaoArquiteturas Cloud na AWS: Uma Introducao
Arquiteturas Cloud na AWS: Uma Introducao
 
Arquiteturas Cloud: Uma Introdução
Arquiteturas Cloud: Uma IntroduçãoArquiteturas Cloud: Uma Introdução
Arquiteturas Cloud: Uma Introdução
 
Conhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWSConhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWS
 
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSBancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
 
Cloud Computing
Cloud Computing Cloud Computing
Cloud Computing
 
Bancos de Dados gerenciados na nuvem AWS
Bancos de Dados gerenciados na nuvem AWSBancos de Dados gerenciados na nuvem AWS
Bancos de Dados gerenciados na nuvem AWS
 
Tutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos Linux
 
Arquiteturas de Software para o Século XXI
Arquiteturas de Software para o Século XXIArquiteturas de Software para o Século XXI
Arquiteturas de Software para o Século XXI
 
Transformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoTransformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualização
 
REST: Faça o Serviço Direito
REST: Faça o Serviço DireitoREST: Faça o Serviço Direito
REST: Faça o Serviço Direito
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Curso Sobre Cloud Computing
Curso Sobre Cloud ComputingCurso Sobre Cloud Computing
Curso Sobre Cloud Computing
 
Cloud computing e Amazon Web Services
Cloud computing e Amazon Web ServicesCloud computing e Amazon Web Services
Cloud computing e Amazon Web Services
 
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfAAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
 
Padrões de Arquitetura na Nuvem da AWS
Padrões de Arquitetura na Nuvem da AWSPadrões de Arquitetura na Nuvem da AWS
Padrões de Arquitetura na Nuvem da AWS
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
Apostila de acordes
Apostila de acordesApostila de acordes
Apostila de acordes
 

Semelhante a Melhores práticas para Arquitetura em Cloud Computing

Lista de desejos de um Chief Security Officer
Lista de desejos de um Chief Security OfficerLista de desejos de um Chief Security Officer
Lista de desejos de um Chief Security OfficerAmazon Web Services LATAM
 
Cloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaCloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaRicardo Martins ☁
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...Amazon Web Services
 
AWS - Conceitos, Segurança e Demonstração
AWS - Conceitos, Segurança e DemonstraçãoAWS - Conceitos, Segurança e Demonstração
AWS - Conceitos, Segurança e DemonstraçãoMaurício Harley
 
Arquitetura Serverless na AWS
Arquitetura Serverless na AWSArquitetura Serverless na AWS
Arquitetura Serverless na AWSStefan Horochovec
 
Introdução a Cloud Computing
Introdução a Cloud ComputingIntrodução a Cloud Computing
Introdução a Cloud ComputingFrederico Madeira
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsHoracio Ibrahim
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixNatanael Fonseca
 
Melhores práticas de workloads Microsoft na AWS
Melhores práticas de workloads Microsoft na AWSMelhores práticas de workloads Microsoft na AWS
Melhores práticas de workloads Microsoft na AWSAmazon Web Services LATAM
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
[Workshop] Azure Fundamentals
[Workshop] Azure Fundamentals[Workshop] Azure Fundamentals
[Workshop] Azure FundamentalsJaqueline Ramos
 
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...Dan El Pierre Rezende
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...Amazon Web Services
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...Amazon Web Services LATAM
 

Semelhante a Melhores práticas para Arquitetura em Cloud Computing (20)

Lista de desejos de um Chief Security Officer
Lista de desejos de um Chief Security OfficerLista de desejos de um Chief Security Officer
Lista de desejos de um Chief Security Officer
 
Cloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaCloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à prática
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
 
Segurança
SegurançaSegurança
Segurança
 
AWS - Conceitos, Segurança e Demonstração
AWS - Conceitos, Segurança e DemonstraçãoAWS - Conceitos, Segurança e Demonstração
AWS - Conceitos, Segurança e Demonstração
 
Arquitetura Serverless na AWS
Arquitetura Serverless na AWSArquitetura Serverless na AWS
Arquitetura Serverless na AWS
 
Introdução a Cloud Computing
Introdução a Cloud ComputingIntrodução a Cloud Computing
Introdução a Cloud Computing
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_ics
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud Netflix
 
Melhores práticas de workloads Microsoft na AWS
Melhores práticas de workloads Microsoft na AWSMelhores práticas de workloads Microsoft na AWS
Melhores práticas de workloads Microsoft na AWS
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
[Workshop] Azure Fundamentals
[Workshop] Azure Fundamentals[Workshop] Azure Fundamentals
[Workshop] Azure Fundamentals
 
AWS Segurança e Conformidade
AWS Segurança e ConformidadeAWS Segurança e Conformidade
AWS Segurança e Conformidade
 
Azure Fundamentals
Azure FundamentalsAzure Fundamentals
Azure Fundamentals
 
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
 

Mais de Daniel Checchia

BIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à PraticaBIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à PraticaDaniel Checchia
 
Federal cloud-computing-strategy
Federal cloud-computing-strategyFederal cloud-computing-strategy
Federal cloud-computing-strategyDaniel Checchia
 
Best Practices for Acquiring IT as a Service
Best Practices for Acquiring IT as a ServiceBest Practices for Acquiring IT as a Service
Best Practices for Acquiring IT as a ServiceDaniel Checchia
 
Políticas de Segurança: Verdade ou Mito?
Políticas de Segurança: Verdade ou Mito?Políticas de Segurança: Verdade ou Mito?
Políticas de Segurança: Verdade ou Mito?Daniel Checchia
 
IDM - Gereciamento de Identidades Corporativa
IDM - Gereciamento de Identidades CorporativaIDM - Gereciamento de Identidades Corporativa
IDM - Gereciamento de Identidades CorporativaDaniel Checchia
 
Monitoramento pro-ativo de Serviços
Monitoramento pro-ativo de ServiçosMonitoramento pro-ativo de Serviços
Monitoramento pro-ativo de ServiçosDaniel Checchia
 
Projeto de Backup com Bacula
Projeto de Backup com BaculaProjeto de Backup com Bacula
Projeto de Backup com BaculaDaniel Checchia
 

Mais de Daniel Checchia (9)

Projeto Calico Jack
Projeto Calico JackProjeto Calico Jack
Projeto Calico Jack
 
BIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à PraticaBIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à Pratica
 
Federal cloud-computing-strategy
Federal cloud-computing-strategyFederal cloud-computing-strategy
Federal cloud-computing-strategy
 
Best Practices for Acquiring IT as a Service
Best Practices for Acquiring IT as a ServiceBest Practices for Acquiring IT as a Service
Best Practices for Acquiring IT as a Service
 
The google file system
The google file systemThe google file system
The google file system
 
Políticas de Segurança: Verdade ou Mito?
Políticas de Segurança: Verdade ou Mito?Políticas de Segurança: Verdade ou Mito?
Políticas de Segurança: Verdade ou Mito?
 
IDM - Gereciamento de Identidades Corporativa
IDM - Gereciamento de Identidades CorporativaIDM - Gereciamento de Identidades Corporativa
IDM - Gereciamento de Identidades Corporativa
 
Monitoramento pro-ativo de Serviços
Monitoramento pro-ativo de ServiçosMonitoramento pro-ativo de Serviços
Monitoramento pro-ativo de Serviços
 
Projeto de Backup com Bacula
Projeto de Backup com BaculaProjeto de Backup com Bacula
Projeto de Backup com Bacula
 

Melhores práticas para Arquitetura em Cloud Computing

  • 1. Melhores Práticas para Arquitetura em Cloud Computing http://ZenCloud.co Daniel Checchia Consultor de Tecnologia daniel@ZenCloud.co
  • 2. Daniel Checchia…. Quem?? •  +30 anos em Tecnologia •  Passagem por todos os grandes e-Commerce nacionais (americanas.com, shoptime.com, submarino.com, pontofrio.com), empresas de internet (imovelweb.com, zap.com.br) e startups (psafe.com, sitepx.com). •  Especializado em Arquitetura Corporativa, Infraestrutura, segurança e Cloud Computing. •  “T-Rex” evoluído J 2
  • 3. O que eu faço…. §  Planejamento Estratégico TI §  Arquitetura Corporativa de TI §  Consultoria Estratégica §  Mentoring para Startups §  CTO Virtual ou On Demand §  Hands on §  Lavo §  Passo §  Cozinho.... 3
  • 5. Próximas Palestras 2013: 12/11 - Melhores Práticas para Hosting de Aplicações na AWS 19/11 - Criando aplicativos tolerantes a falhas na AWS 2014: 20/01 - Framework de Arquitetura para Cloud Computing * Lançamento do eBook! 5
  • 6. Licenciamento desta Apresentação Atribuição-Uso Não-Comercial-Compatilhamento pela mesma licença 2.5 Brasil Você pode: • copiar, distribuir, exibir e executar a obra • criar obras derivadas Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Uso Não-Comercial. Você não pode utilizar esta obra com finalidades comerciais. Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. 6
  • 8. “Quase” zero de investimento inicial Modelo Tradicional: •  Sala “CPD” (NoBreaks, Geradores, ar condicionado, segurança física, servidores, roteadores, switches, etc) Outsourcing: •  Aquisição servidores, switches, contratação links Cloud Computing: •  OPEX 8
  • 9. Infraestrutura “Just-in-time” Modelo Tradicional: •  “Vítima do próprio Sucesso da Aplicação” •  Dimensionamento no “TOPO” e pelo “pior cenário” •  Alta ociosidade de infraestrutura Cloud Computing: •  Auto-escalonamento em momento de “pico” •  Pay-as-use 9
  • 11. Automação “Scriptable infrastructure” •  Gestão por APIs (programação em Shell Script) •  Puppet •  Opscode Chef •  (inserir imagem da subida de um servidor na linha de código) 11
  • 12. Auto-scaling •  •  •  •  Defina parâmetros de utilização Defina os alarmes Defina quantidade de instâncias (mínimo e máximo) Configure o auto-scalling •  Relax! 12
  • 13. Ciclo de Desenvolvimento mais eficiente •  “Clone” o ambiente de Produção de forma rápida •  Ciclo de desenvolvimento encurtado e mais ágil •  Beanstalk •  Deploy automatizado com testes unitários •  Jenkins 13
  • 15. Construindo Arquiteturas escaláveis Características de um aplicativo verdadeiramente escalável: •  Aumento de recursos resulta em um aumento proporcional no desempenho •  Um serviço escalável é capaz de lidar com a heterogeneidade •  Um serviço escalável é operacionalmente eficiente •  Um serviço escalável é resiliente •  Um serviço escalável deve tornar-se mais rentável quando cresce (Custo unitário diminui à medida que o número de unidades aumenta) 15
  • 16. Entendendo a tal de Elasticidade 16
  • 17. Entendendo a tal de Elasticidade 17
  • 18. Entendendo a tal de Elasticidade 18
  • 19. Entendendo a tal de Elasticidade 19
  • 20. Entendendo a tal de Elasticidade 20
  • 21. Sem medo das Restrições •  Cloud foi planejada para um modelo on-demand – não para um moving AS-IS de seu ambiente •  1 servidor de 64Gb de RAM = X servidores em auto-scalling •  Muito IO de Leitura = Memcached •  Busca em banco = CloudSearch (ElasticSearch, Solr) •  E outras soluções escaláveis! 21
  • 22. Administração “Virtual” •  Com a mudança de Paradigma, vem a agilidade •  Ambiente “ganha” em performance e escalabilidade •  Equipes Desenvolvimento e Operações “andam” juntas para gerir o ambiente 22
  • 24. Arquitetura Resiliente “Design for failure and nothing will fail” Seja um pessimista ao projetar arquiteturas em nuvem; assuma que as coisas vão falhar. Em outras palavras, sempre que projetar, inclua a recuperação automática de falhas (redundância de regions, de banco e etc) em seu projeto. 24
  • 25. Arquitetura Resiliente Assuma que seu hardware irá falhar Assuma que interrupções ocorrerão (AWS, Links, etc) Assuma que algum desastre vai atingir a sua aplicação Assuma que você vai ser atingido com mais do que o número esperado de solicitações por segundo alguns dias •  Assuma que, com o tempo, o seu aplicativo falhará também •  •  •  •  Ser pessimista é fundamental para a criação de uma arquitetura (software e infra) resiliente. 25
  • 26. Separe seus Componentes Cloud reforça o princípio de design da SOA, onde quanto mais segregado e flexível forem os componentes do sistema, mais ele será escalável. Fundamental para arquiteturas em nuvem: •  Segregação dos seus componentes; •  Construção de sistemas assíncronos; •  Dimensionamento para crescimento horizontal 26
  • 27. Separe seus Componentes u  Trate cada módulo como uma “Caixa Preta”: •  Engine de Busca •  Banco de Dados •  Frontend •  Backend •  Banco de dados u  Use APIs para “Falar” entre cada módulo u  Sempre que possível, implemente queues e torne sua aplicação Assincrona. 27
  • 28. Implemente Elasticidade: Automatize sua Infraestrutura •  Use as APIs de gestão Cloud •  Crie uma biblioteca de “Recipes” – Scripts mais utilizados •  Gerencie suas configurações e Deploy utilizando-se de agents dentro de suas AMIs •  Opscode Chef •  CFEngine •  Puppet •  Git hacks 28
  • 29. Implemente Elasticidade: Bootstrap de suas instâncias •  Crie “Roles” para sua aplicação (“DBServer”, “WEBServer”, “DEVServer”, etc) •  Busque estas informações durante o Boot para configurar sua instância http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html! 29
  • 30. Pense Paralelo A beleza da nuvem aparece quando você combina elasticidade e paralelismo •  Garanta que sua aplicação seja assincrona e “stateless” •  Sempre que possível, utilize APIs entre o front e o Backend •  Utilize load balance e cache tanto no frontend como no backend, nas APIs e XMLs Estes cuidados permitirão o rápido escalonamento de sua aplicação de forma automatizada 30
  • 31. Mantenha seus dados perto das requisições Keep dynamic data closer to the compute and static data closer to the end-user •  Segregue dados dinâmicos do estático por sub-domínios •  Coloque dados estáticos em uma CDN (ou crie um cache) •  Mantenha seus servidores de Processamento, banco de dados e frontend na mesma region – minimize custos e latência 31
  • 33. Proteja os dados em trânsito •  Esqueça HTTP – Use sempre HTTPS: •  Entre Browser e WebServer •  Entre Front e APIs •  Utilize VPNs: •  Entre seu escritório e seu provedor de Nuvem •  Entre Notebooks e Tablets e seu provedor de Nuvem •  Faça Segregação de Ambientes: •  Crie VPCs (=VLANs) entre recursos da AWS •  Seja rígido nas regras de firewall entre as VPCs 33
  • 34. Proteja seus dados armazenados Se você está preocupado com o armazenamento de dados sensíveis e confidenciais na nuvem: •  Criptografe seus dados sensíveis antes do upload (PGP) •  Use EFS para armazenar seus dados (windows ou Linux) •  Ou Criptografe seu Volume (EBS) - EncFS, Loop-AES, dmcrypt, TrueCrypt •  OpenSolaris suporta ZFS PROTEJA suas Chaves Criptográficas! Sem elas, você pode ficar sem seus dados!!! 34
  • 35. Protect your APIs credentials AWS fornece dois tipos de credenciais de segurança: •  AWS Access Keys •  Certificados X.509 AWS Access Keys são compostas de dois “pedaços”: •  access key ID •  secret access key Gerenciando Credenciais (atualizado recentemente): Parte 01: http://www.elastician.com/2009/06/managing-your-aws-credentials-part-1.html Parte 02: http://www.elastician.com/2009/06/managing-your-aws-credentials-part-2.html 35
  • 36. Protect your APIs credentials Access Key são utilizadas para: •  Comunicação entre serviços via API •  Comunicação entre sua instância e as APIs •  Toda comunicação é via HTTPS Uma boa prática: •  Crie um usuário específico para uso com as APIs •  Crie um script de geração periódica de novas chaves •  Utilize o Bootstrap para armazenar suas Access Keys Um erro comum: Armazenar as Access Keys em arquivos na sua própria AMI! Prefira utilizar o processo de Bootstrap para passar suas Access Keys para as instâncias 36
  • 37. Manage multiple Users and their permissions AWS Identity and Access Management (IAM), é a central de controle de acessos da AWS. •  IAM é seguro por natureza. Cada usuário criado inicia sem acesso. O administrador precisa atribuir quais serviços e quais privilégios ele terá. •  Usuários podem habilitar Multi-factor para autenticação •  Usuários e senhas são distintos das Access Keys 37
  • 38. Proteja sua Aplicação Security Groups: •  Aplicados em instâncias ou para uma VPC •  Regras de “entrada” (ingress Rules) Configure o Firewall de seu SO: •  Linux: Netfilter / IPTables •  Windows Firewall Seja restritivo entre VPCs 38
  • 39. Proteja sua Aplicação •  Crie snapshots de suas AMI para testar os patches •  Aplique regularmente os patches para seu SO em sua AMI de testes •  Revalide sua aplicação após os patches para ver se não “quebrou” nenhuma funcionalidade após o patch •  Garanta que TODAS suas AMIs estão com os últimos patches •  Invista tempo para criar scripts de validação de segurança e para automatizar este processo de validação e atualização 39
  • 40. Ferramentas Cloud8 Cupom Cloud8 – 60 dias grátis http://www.cloud8.com.br DANIEL-888 (válido até 30/11/2013) 40
  • 41. Referências AWS (http://aws.amazon.com/pt/architecture/) Netflix (http://techblog.netflix.com/) Twitter (https://blog.twitter.com/engineering) Facebook: •  •  •  •  https://www.facebook.com/Engineering https://www.facebook.com/data https://www.facebook.com/MemcacheAtFacebook https://www.facebook.com/MySQLatFacebook 41