SlideShare a Scribd company logo
1 of 74
FACULDADE DE TECNOLOGIA DE SÃO PAULO - FATECSP,[object Object],Pós-graduação em Tecnologia em Análise eProjeto de Sistemas - Turma 20 - 2009,[object Object],AVALIAÇÃO DE MODELOS DE ARQUITETURA DE WEB SITES DE ALTA ESCALABILIDADE,[object Object],DAVID LOJUDICE SOBRINHO,[object Object],Orientador: prof. Eduardo Endo,[object Object]
FACULDADE DE TECNOLOGIA DE SÃO PAULO - FATECSP,[object Object],Pós-graduação em Tecnologia em Análise eProjeto de Sistemas - Turma 20 - 2009,[object Object],Monografia apresentada à Fatec SP, como requisito para obtenção do título de especialista em Tecnologia de Análise e Projeto de Sistemas.,[object Object],AVALIAÇÃO DE MODELOS DE ARQUITETURA DE WEB SITES DE ALTA ESCALABILIDADE ,[object Object],DAVID LOJUDICE SOBRINHO,[object Object],Orientador: prof. Eduardo Endo,[object Object]
Contextualização,[object Object],Mais de 1 bilhão de pessoas acessam a Internet no mundo (1),[object Object],O Brasil é o 9º pais com mais acessos: 27 milhões (1),[object Object],Acesso a internet cresceu 10% em Julho/2009 em relação ao mês anterior  (2),[object Object],(1) http://www.techcrunch.com/2009/01/23/comscore-internet-population-passes-one-billion-top-15-countries/  (23/01/2009),[object Object],(2) http://portalimprensa.uol.com.br/portal/ultimas_noticias/2009/08/21/imprensa30262.shtml (21/08/2009),[object Object],Introdução,[object Object],3,[object Object]
Problematização,[object Object],Como atender este número crescente de usuários?,[object Object],Os usuários podem chegar ao web site sem previsão e em grande número, sendo que atender todos eles é fator crucial para o sucesso do site.,[object Object],Como os grandes web sites conseguem atender estes usuários?,[object Object],Como a Arquitetura de Software pode influenciar neste requisito?,[object Object],Introdução,[object Object],4,[object Object]
Escolha do Tema ,[object Object],Como Escalar...,[object Object],...utilizando modelos conhecidos ...,[object Object],...de arquitetura de software... ,[object Object],...de grandes aplicações Web?,[object Object],Introdução,[object Object],5,[object Object]
Escolha do Tema ,[object Object],Boas praticas para Aplicações Web Internet são diferentes de aplicações comerciais (setor financeiro, por exemplo),[object Object],Diferentes requisitos!,[object Object],Introdução,[object Object],6,[object Object]
Campo de Investigação,[object Object],Está no escopo deste projeto:,[object Object],Escalabilidade,[object Object],Arquitetura de Software,[object Object],Server-side,[object Object],Aplicação Web,[object Object],Introdução,[object Object],7,[object Object]
Campo de Investigação,[object Object],Não está no escopo deste projeto:,[object Object],Outros requisitos não funcionais: alta-disponibilidade e performance,[object Object],Arquitetura de Infra-estrutura,[object Object],Client-side,[object Object],Outros tipos de aplicação que não seja uma aplicação Web.,[object Object],Introdução,[object Object],8,[object Object]
Sites estudados,[object Object],Introdução,[object Object],9,[object Object]
O que é uma Aplicação Web?,[object Object],Uma aplicação web é a junção da idéia de um web site estático e uma aplicação desktop (Henderson, 2006):,[object Object],Permite interação e personalização,[object Object],Permite  acesso e distribuição via web ,[object Object],Aplicação Web,[object Object],10,[object Object]
Padrão de utilização de uma Aplicação Web,[object Object],Um dos fatores mais importantes para entender onde escalar uma aplicação web é entender como ela é utilizada pelos seus usuários e sistemas clientes. ,[object Object],Normalmente, as aplicações web tem 80% de leitura e 20% de gravação, sendo que esse número varia dependendo principalmente do tipo da aplicação web. ,[object Object],Os acessos também se concentram em poucas páginas, normalmente seguindo a distribuição parecida com a distribuição Zipf (Breslau, 1999, Padmanabhan 2000).,[object Object],Aplicação Web,[object Object],11,[object Object]
O que é Arquitetura de Software?,[object Object],Segundo Fowler (2000):,[object Object],Arquitetura de software é a quebra de um sistema em partes menores, porém ainda com uma visão abstrata. ,[object Object],Arquitetura de software é onde mora as "decisões difíceis de serem alteradas“,[object Object],É importante para a escalabilidade de uma app web:,[object Object],porque pode alterar o modo como a aplicação escala (Ebay, 2009)  tornando mais eficaz o uso de recursos ,[object Object],porque pode ser o limitador da capacidade de escalar,[object Object],Arquitetura de Software,[object Object],12,[object Object]
O que é Escalabilidade?,[object Object],Existem algumas definições para escalabilidade:,[object Object],Um sistema é escalável quando sua performance melhora depois da adição de hardware, sendo essa melhora proporcional ao poder computacional do hardware adicionado (Hill, 1990),[object Object],Porém, segundo (Henderson, 2006, p.204), escalabilidade não tem relação com performance e sim com a capacidade de acomodar o aumento do uso do sistema e da quantidade de dados adicionando hardware, sem perder a manutenibilidade.,[object Object],Escalabilidade,[object Object],13,[object Object]
De forma mais ampla...,[object Object],Escalar significa quão bem uma solução particular se encaixa em um problema enquanto o escopo do problema aumenta (Schlossnagle, 2006, p.5),[object Object],Escalabilidade,[object Object],14,[object Object]
Para este trabalho...,[object Object],Problema: o aumento de utilização de recursos computacionais causado pelo aumento de acessos e/ou aumento de personalização da aplicação web.,[object Object],Logo, escalar não implica necessariamente adição de mais hardware, pois a melhor utilização dos recursos computacionais existentes através da arquitetura de software pode também ser uma possível solução ao problema proposto.,[object Object],Escalabilidade,[object Object],15,[object Object]
Escalabilidade Vertical,[object Object],Chamamos de escalabilidade vertical quando um sistema aumenta sua capacidade trocando o servidor que o hospeda por um servidor mais potente (mais memória RAM, harddisk ou CPU).,[object Object],Escalabilidade,[object Object],16,[object Object]
Escalabilidade Horizontal,[object Object],A escalabilidade horizontal se difere da escalabilidade vertical, pois ao invés de substituir os hardwares atuais utilizado pela aplicação, apenas adiciona-se mais servidores, sem substituição.,[object Object],Escalabilidade,[object Object],17,[object Object]
Vertical vs Horizontal - Custo,[object Object],Fonte: Henderson, 2006, p.204,[object Object],Escalabilidade,[object Object],18,[object Object]
19,[object Object],Estratégias de Escalabilidade,[object Object]
Estratégias de Escalabilidade,[object Object],Camadas: Como a divisão das camadas, seja lógica ou fisicamente, influencia na escalabilidade e na arquitetura de uma aplicação web.,[object Object],Reutilização Computacional: Quais formas de reutilização computacional foram empregadas pelos web sites estudados e como isso possibilitou receber maior tráfego.,[object Object],Particionamento de Dados: Quais as formas de particionamento de dado empregadas pelos web sites estudados e porque particionar é importante para escalar uma aplicação.,[object Object],Estratégias,[object Object],20,[object Object]
21,[object Object],Camadas,[object Object]
Camadas,[object Object],A separação das responsabilidades é peça chave no processo de pensar um sistema. A intenção é sempre quebrar um problema maior em partes menores (Fowler, 2002), com responsabilidades bem definidas.,[object Object],	... the hardest part of a layered architecture is deciding what layers to have and what the responsibility of each layer should be. Fowler(2002),[object Object],No caso de uma aplicação web, a distribuição das responsabilidades das camadas e como elas se comunicam influencia também na sua escalabilidade.,[object Object],Estratégias > Camadas,[object Object],22,[object Object]
Flexibilidade, Manutenibilidade,[object Object],Quanto mais camadas uma aplicação tem, maior será a sua manutenibilidade, porém com menor flexibilidade (Henderson, 2006, p.13).,[object Object],Uma aplicação com muitas camadas tem maior facilidade de manutenção, mas terá pouca flexibilidade em utilizar funcionalidades que as camadas abaixo não expõem.,[object Object],Estratégias > Camadas,[object Object],23,[object Object]
Flexibilidade, Manutenibilidade e Escalabilidade,[object Object],Dependendo da necessidade de escalabilidade, pode tomar responsabilidades que normalmente não lhe seriam atribuídas. Além disso, a manutenibilidade teve menos prioridade comparado com a capacidade que a aplicação tem de escalar.,[object Object],Encontrar o balanceamento entre manutenibilidade e flexibilidade, e ainda assim manter o sistema escalável, é o motivo pelo qual o estudo das camadas e sua arquitetura é importante para uma aplicação web.,[object Object],Estratégias > Camadas,[object Object],24,[object Object]
Distribuição entre os servidores,[object Object],Estratégias > Camadas  > Distribuição entre os servidores,[object Object],25,[object Object]
SharedNothing,[object Object],Remoção de Recursos Compartilhados,[object Object],Escalonamento (quase) linear,[object Object],Difícil de se conseguir na prática,[object Object],Ainda assim, quanto menor a dependência entre os servidores, maior a possibilidade de escalabilidade.,[object Object],Estratégias > Camadas  > Distribuição entre os servidores,[object Object],26,[object Object]
SharedNothing,[object Object],SharedNothing + Banco de Dados separado,[object Object],Estratégias > Camadas > Distribuição Entre Os Servidores,[object Object],27,[object Object]
Por Camada ,[object Object],Uma forma bastante usada para escalar uma aplicação foi a distribuição das três camadas em servidores distintos, um para cada camada,[object Object],Estratégias > Camadas > Distribuição Entre Os Servidores,[object Object],28,[object Object]
Por Camada ,[object Object],Dificuldade em manter estado,[object Object],Complexidade do software aumenta, pois é necessário criar uma camada para abstrair as chamadas remotas (RPC, SOAP, etc.).,[object Object],Foi observado entre os sites estudados que este tipo de distribuição não é a mais usada, porém algumas camadas ainda hoje são mais fáceis de escalar se isoladas, como é o caso de banco de dados.,[object Object],Estratégias > Camadas > Distribuição Entre Os Servidores,[object Object],29,[object Object]
SOA - Service-orientedarchitecture,[object Object],A idéia de utilizar SOA para escalabilidade de uma aplicação web é separar responsabilidades, e não camadas, da aplicação e escalar individualmente essas partes. ,[object Object],Estratégias > Camadas > Distribuição Entre Os Servidores,[object Object],30,[object Object]
Pragmatismo,[object Object],Shared Nothing + Por Camada + SOA,[object Object],Estratégias > Camadas > Distribuição Entre Os Servidores,[object Object],31,[object Object]
Mensagens Assíncronas,[object Object],Estratégias > Camadas > Mensagens Assíncronas ,[object Object],32,[object Object]
Mensagens Assíncronas,[object Object],Normalmente, quando uma funcionalidade de uma das camadas é chamada, espera-se um resultado o mais rápido possível.,[object Object],Estratégias > Camadas > Mensagens Assíncronas ,[object Object],33,[object Object]
Mensagens Assíncronas,[object Object],Porém, em alguns cenários, nem sempre é preciso ter um retorno rápido ou mesmo ter um retorno em si. Um exemplo é o envio de um recado aos amigos em uma rede social. ,[object Object],Estratégias > Camadas > Mensagens Assíncronas ,[object Object],34,[object Object]
Mensagens Assíncronas,[object Object],Camada consumidora da mensagem tem flexibilidade para consumir essas mensagens conforme sua capacidade,[object Object],Como o produtor da mensagem não espera a finalização da requisição, liberam-se recursos para atender novas requisições do lado do produtor,[object Object],Estratégias > Camadas > Mensagens Assíncronas ,[object Object],35,[object Object]
36,[object Object],Reutilização,[object Object],Computacional,[object Object]
Reutilização Computacional,[object Object],Guardar um valor que foi previamente calculado para futuro reuso,[object Object],Poupar recursos para atender maior número de requisições,[object Object],Principal recurso a ser poupado: Banco de Dados, pois é o mais difícil de escalar,[object Object],Estratégias > Reutilização Computacional,[object Object],37,[object Object]
Desnormalização ,[object Object],Estratégias > Reutilização Computacional > Desnormalização ,[object Object],38,[object Object]
Desnormalização ,[object Object],A utilização de RDBMS de forma rigorosa, utilizando apenas dados normalizados e depois usar “Join” e “GroupBy” pode ser muito custosa.,[object Object],Gravar os dados de forma normalizada, mas também gravar de forma desnormalizada,[object Object],Custo computacional acontece no momento da inserção,[object Object],Estratégias > Reutilização Computacional > Desnormalização ,[object Object],39,[object Object]
Desnormalização – TagCloud,[object Object],Estratégias > Reutilização Computacional > Desnormalização ,[object Object],40,[object Object]
Desnormalização – TagCloud,[object Object],Estratégias > Reutilização Computacional > Desnormalização ,[object Object],41,[object Object]
Cache,[object Object],Estratégias > Reutilização Computacional > Cache,[object Object],42,[object Object]
Cache,[object Object],Cache é um mecanismo de reutilização computacional que grava em uma área temporária dados que possuem uma grande probabilidade de serem utilizados novamente,[object Object],Na arquitetura de uma aplicação web, o cache tem papel fundamental, sendo talvez a estratégia com o melhor custo/benefício em termos de ganhos para uma aplicação (Slashdot, 2009). ,[object Object],Estratégias > Reutilização Computacional > Cache,[object Object],43,[object Object]
O que colocar no cache? ,[object Object],Dados processados por qualquer uma das camada,[object Object],Interface,[object Object],Aplicação,[object Object],Persistência,[object Object],Etc.,[object Object],Mas como o banco de dados é o mais difícil de escalar, normalmente esta camada é a primeira a fazer utilização do cache ,[object Object],Estratégias > Reutilização Computacional > Cache,[object Object],44,[object Object]
Localização do Cache ,[object Object],Local  (utilizando recurso do servidor),[object Object],Distribuído (utilizando servidores especializados em cache),[object Object],Estratégias > Reutilização Computacional > Cache,[object Object],45,[object Object]
Localização do Cache - Local ,[object Object],[object Object]
Desvantagem: Difícil invalidação, limitado ao servidorEstratégias > Reutilização Computacional > Cache,[object Object],46,[object Object]
Localização do Cache - Distribuído ,[object Object],Vantagem: Fácil Invalidação e Escalabilidade,[object Object],Desvantagem: I/O Rede,[object Object],Estratégias > Reutilização Computacional > Cache,[object Object],47,[object Object]
Política de troca,[object Object],Como saber o que é mais relevanta para o cache?,[object Object],A melhor política de troca de um cache seria aquela que soubesse qual dado seria utilizado no futuro, assim mante-lo armazenado.,[object Object],Política mais comum para aplicações web,[object Object],LRU (elemento recentemente menos usado),[object Object],Estratégias > Reutilização Computacional > Cache,[object Object],48,[object Object]
Invalidação,[object Object],O maior problema na utilização de um cache é saber quando aquele conteúdo que está no cache não é mais válido. ,[object Object],Por exemplo: um site de notícias que aceite que seus usuários comentem nos artigos disponíveis. Para evitar ler os comentários diretamente do banco de dados para cada requisição, coloca-se os comentários em cache. Porém, qual é o melhor momento de invalidar este valor no cache e pegar os comentários mais atuais?,[object Object],Estratégias > Reutilização Computacional > Cache,[object Object],49,[object Object]
Invalidação,[object Object],Opções,[object Object],A cada nova ação que altera o dado,[object Object],Por tempo,[object Object],Importante notar aqui que, seja qual for o modo de invalidação do cache, um requisito não-funcional, que é a escalabilidade da aplicação web, influencia diretamente na forma como o conteúdo é exibido ao usuário.,[object Object],Estratégias > Reutilização Computacional > Cache,[object Object],50,[object Object]
Conteúdo Estático ,[object Object],Estratégias > Reutilização Computacional > Conteúdo Estático ,[object Object],51,[object Object]
Conteúdo Estático ,[object Object],Não existe nada mais econômico em termos de processamento para uma aplicação web do que servir um arquivo simples,[object Object],Diferença entre gerar conteúdo estático e um cache ,[object Object],O conteúdo estático não precisa ser descartado, podendo permanecer no disco até que o conteúdo sofra uma alteração,[object Object],Todos os servidores web sabem naturalmente como servir um arquivo estático diretamente, ao passo que o cache deve ser lido por uma aplicação,[object Object],Estratégias > Reutilização Computacional > Conteúdo Estático ,[object Object],52,[object Object]
Conteúdo Estático ,[object Object],Cenários:,[object Object],Página principal (ex: um portal),[object Object],Site com pouca interação ou personalização (ex: Wikipedia),[object Object],Site de imagens (ex: Flickr),[object Object],Estratégias > Reutilização Computacional > Conteúdo Estático ,[object Object],53,[object Object]
Conteúdo Estático - CDN,[object Object],Aliviar a carga dos servidores de conteúdos estáticos,[object Object],Melhorar o tempo de entrega desses conteúdos para usuários distribuídos no globo,[object Object],Difícil Invalidação,[object Object],Estratégias > Reutilização Computacional > Conteúdo Estático ,[object Object],54,[object Object]
55,[object Object],Particionamento de Dados,[object Object]
Particionamento de Dados,[object Object],Um dos desafios para uma aplicação web é como escalar o processamento e armazenamento dos dados. ,[object Object],A escalabilidade vertical pode ser usada nos servidores de banco de dados ou repositórios, mas quando o volume de dados é muito alto o particionamento (ou escalabilidade horizontal) é inevitável.,[object Object],Estratégias > Particionamento de Dados,[object Object],56,[object Object]
Consistência e Disponibilidade ,[object Object],Estratégias > Particionamento de Dados > Consistência e Disponibilidade ,[object Object],57,[object Object]
Consistência e Disponibilidade ,[object Object],CAP (consistent, available e partition-tolerant),[object Object],Consistência,[object Object],Disponibilidade,[object Object],Tolerância a particionamento,[object Object],Um sistema pode ter no máximo duas dessas três características, sendo impossível ter as três ao mesmo tempo,[object Object],Estratégias > Particionamento de Dados > Consistência e Disponibilidade ,[object Object],58,[object Object]
Consistência e Disponibilidade ,[object Object],Mas se o particionamento é obrigatório?,[object Object],ACID vs. BASE,[object Object],ACID: Atomicity, Consistency, Isolation, Durability,[object Object],BASE: Basically available, soft state, eventually consistent,[object Object],Estratégias > Particionamento de Dados > Consistência e Disponibilidade ,[object Object],59,[object Object]
Sharding,[object Object],Estratégias > Particionamento de Dados > Sharding,[object Object],60,[object Object]
Sharding,[object Object],Quando o número de registros ou o número de operações para ler ou gravar em um banco de dados supera a capacidade de um único servidor é necessário escalar este banco. Para isto é necessário dividir os dados em partes menores e distribuir essas partes pelos servidores (Digg, 2009), também chamados de shards.,[object Object],Estratégias > Particionamento de Dados > Sharding,[object Object],61,[object Object]
Sharding - Vertical ,[object Object],Estratégias > Particionamento de Dados > Sharding,[object Object],62,[object Object]
Sharding - Horizontal,[object Object],Estratégias > Particionamento de Dados > Sharding,[object Object],63,[object Object]
64,[object Object],Evolução da Arquitetura,[object Object]
Evolução da Arquitetura,[object Object],Monitoramento ,[object Object],Modelos Prematuros ,[object Object],Evolução da Arquitetura,[object Object],65,[object Object]
66,[object Object],Conclusão,[object Object]
Conclusão,[object Object],Neste trabalho foram estudados aspectos e soluções de escalabilidade na arquitetura de software de web sites diversos, alguns representativos na internet em volume de trafego e outros web sites menores, mas que apresentaram informações igualmente valiosas sobre sua respectivas arquitetura de software. ,[object Object],Conclusão,[object Object],67,[object Object]
Conclusão,[object Object],Por soluções de escalabilidade para aplicações web, conclui-se que estas soluções são as que auxiliam uma aplicação web a receber um tráfego de crescimento continuo, podendo-se alcançar isto através do processamento distribuído ou por maximizar o uso de cada um dos servidores, sendo que ambas as soluções foram empregadas nas aplicações web estudadas.,[object Object],Conclusão,[object Object],68,[object Object]
Conclusão,[object Object],Uma classificação possível foi apresentada para as estratégias de escalabilidade estudadas, onde se examinou:,[object Object],Camadas,[object Object],Reutilização Computacional,[object Object],Particionamento de dados,[object Object],Conclusão,[object Object],69,[object Object]
Conclusão,[object Object],Camadas,[object Object],a importância da distribuição e comunicação das camadas da arquitetura do web site. Verificou-se que quanto menor a dependência entre os servidores, maior a possibilidade de escalabilidade. Porém, dada a complexidade das camadas, nem sempre é possível eliminar essa dependência.,[object Object],Conclusão,[object Object],70,[object Object]
Conclusão,[object Object],Reutilização Computacional,[object Object],Escolhendo por usar conteúdos estáticos, vai-se na direção da alta escalabilidade, porém com baixa flexibilidade. ,[object Object],Já, por outro lado, escolher por conteúdo extremamente personalizado, exige uma arquitetura de software com maior uso de reutilização computacional para se conseguir escalabilidade. ,[object Object],Outro ponto importante é que um requisito não-funcional, que é a escalabilidade da aplicação web, pode influenciar diretamente na forma como o usuário interage com a aplicação web,[object Object],Conclusão,[object Object],71,[object Object]
Conclusão,[object Object],Particionamento de dados,[object Object],O particionamento é sempre uma opção que não pôde ser descartada,[object Object],Escolhendo pela consistência, os sistemas tiveram que rejeitar ou por em espera interações com os dados. ,[object Object],Escolhendo pela disponibilidade, os sistemas tiveram que estar preparados para lidar com o fato de que algumas das suas respostas podem, mais tarde, revelarem-se inconsistentes.,[object Object],Conclusão,[object Object],72,[object Object]
Conclusão,[object Object],Evolução da Arquitetura ,[object Object],A arquitetura de uma aplicação web deve receber as mudanças, para que se torne escalável, de forma gradual e constante, assim que os problemas de escalabilidade sejam identificados, evitando modelos prematuros,[object Object],Porém, algumas estratégias podem ser aplicadas na arquitetura inicial, dado a facilidade de implementação e o ganho de escalabilidade que a estratégia trará.,[object Object],Conclusão,[object Object],73,[object Object]

More Related Content

Similar to AVALIAÇÃO DE MODELOS DE ARQUITETURA DE WEB SITES DE ALTA ESCALABILIDADE

Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Renato Groff
 
Introdução ao 12 Factors APP
Introdução ao 12 Factors APPIntrodução ao 12 Factors APP
Introdução ao 12 Factors APPDouglas Alonso
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 
Artigo_Thiago_Lenz_versao2.3-Final
Artigo_Thiago_Lenz_versao2.3-FinalArtigo_Thiago_Lenz_versao2.3-Final
Artigo_Thiago_Lenz_versao2.3-Finalthiago.lenz
 
Saa s software como serviço (slides)
Saa s   software como serviço (slides)Saa s   software como serviço (slides)
Saa s software como serviço (slides)Daniela Nunes
 
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de DadosAlta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de DadosAlex Camargo
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Flávio Lisboa
 
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOCOMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOAllan Reis
 
Riscos de segurança em cloud computing - Parte 4
Riscos de segurança em cloud computing - Parte 4Riscos de segurança em cloud computing - Parte 4
Riscos de segurança em cloud computing - Parte 4Fristtram Helder Fernandes
 
O desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosO desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosGraziella Bonizi
 
Armazenamento de Dados Aplicado à Computação em Nuvem
Armazenamento de Dados Aplicado à Computação em NuvemArmazenamento de Dados Aplicado à Computação em Nuvem
Armazenamento de Dados Aplicado à Computação em NuvemDaniel Rossi
 
Desenvolvimento_Distribuído_Google_Estudo_de_caso.pdf
Desenvolvimento_Distribuído_Google_Estudo_de_caso.pdfDesenvolvimento_Distribuído_Google_Estudo_de_caso.pdf
Desenvolvimento_Distribuído_Google_Estudo_de_caso.pdfssuserb64840
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Renato Groff
 
Precisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesPrecisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesJackson F. de A. Mafra
 
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
 

Similar to AVALIAÇÃO DE MODELOS DE ARQUITETURA DE WEB SITES DE ALTA ESCALABILIDADE (20)

Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
Introdução ao 12 Factors APP
Introdução ao 12 Factors APPIntrodução ao 12 Factors APP
Introdução ao 12 Factors APP
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Artigo_Thiago_Lenz_versao2.3-Final
Artigo_Thiago_Lenz_versao2.3-FinalArtigo_Thiago_Lenz_versao2.3-Final
Artigo_Thiago_Lenz_versao2.3-Final
 
Saa s software como serviço (slides)
Saa s   software como serviço (slides)Saa s   software como serviço (slides)
Saa s software como serviço (slides)
 
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de DadosAlta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
 
Oficina cake php
Oficina cake phpOficina cake php
Oficina cake php
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3
 
Blue coat 4 steps_high_performance_wan_internet-por-br
Blue coat 4 steps_high_performance_wan_internet-por-brBlue coat 4 steps_high_performance_wan_internet-por-br
Blue coat 4 steps_high_performance_wan_internet-por-br
 
Artigo cloud computing pdf
Artigo cloud computing pdfArtigo cloud computing pdf
Artigo cloud computing pdf
 
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOCOMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
 
Riscos de segurança em cloud computing - Parte 4
Riscos de segurança em cloud computing - Parte 4Riscos de segurança em cloud computing - Parte 4
Riscos de segurança em cloud computing - Parte 4
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
O desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosO desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicos
 
Armazenamento de Dados Aplicado à Computação em Nuvem
Armazenamento de Dados Aplicado à Computação em NuvemArmazenamento de Dados Aplicado à Computação em Nuvem
Armazenamento de Dados Aplicado à Computação em Nuvem
 
Ria
RiaRia
Ria
 
Desenvolvimento_Distribuído_Google_Estudo_de_caso.pdf
Desenvolvimento_Distribuído_Google_Estudo_de_caso.pdfDesenvolvimento_Distribuído_Google_Estudo_de_caso.pdf
Desenvolvimento_Distribuído_Google_Estudo_de_caso.pdf
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
 
Precisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesPrecisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicações
 
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
 

AVALIAÇÃO DE MODELOS DE ARQUITETURA DE WEB SITES DE ALTA ESCALABILIDADE

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.