cloud computing e arquiteturas shared disk e shared-nothing

Post on 15-Dec-2014

454 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Minha short talk sobre shared-disk e shared-nothing no QCon 2013

TRANSCRIPT

Cloud computing e arquiteturas shared-disk e

shared-nothingAlexandre Saudate (@alesaudate)–

Quem sou eu?• Arquiteto SOA e instrutor na SOA|Expert, com oito

anos de experiência• Autor dos livros “SOA Aplicado: integrando com

web services e além” e “REST: Construa API’s inteligentes de maneira simples”

Porquê utilizamos cloud computing?

Porque temos custos variáveis!• Sazonalidade (diária ou por épocas do ano)• Crescimento inesperado ou incerto• Utilização de recursos apenas por um período de

tempo• Etc.

Se os custos são variáveis, e usar cloud é bom porquê o número de máquinas também é variável...

... Precisamos de uma arquitetura que ofereça o

mesmo grau de flexibilidade

Como funciona uma arquitetura tradicional

Ou, ainda pior:

Ambos os modelos são péssimos!

Qual a solução?

A arquitetura shared-disk prevê que os nós são stateless, ou seja, não importa qual nó será utilizado para atender à requisição.

Desta forma, ou parte do estado é persistido em disco ou no próprio cliente.

Falar em sessões, nesta arquitetura, não faz sentido.

Este modelo possibilita que, na camada de aplicação, seja possível adicionar nós à vontade.

Mas... ainda há um problema: o banco de dados é compartilhado entre as máquinas, tornando –se um single point of failure (ponto único de falha), e limitando a escalabilidade.

Solução: não compartilhar nada, nem mesmo o banco de dados.

Complexo?

Para que a arquitetura seja shared- nothing, basta que a camada de dados também seja shared-nothing.

Temos vários representantes de gerenciadores de dados que seguem essa arquitetura, como o Apache Cassandra, VMWare GemFire, Apache Hadoop, etc.

Exemplo: shared-nothing com GemFire

Ou, simplesmente...

Tanto em shared-disk quanto em shared-nothing, usar SOA é fundamental

Os nós conversam uns com os outros utilizando serviços, e não através de compartilhamento de sessão.

Assim, cada máquina (ou grupo de máquinas) da aplicação corresponde a uma faceta desta.

Mas Alexandre, isso me parece muito teórico!

Quem usa isso?

Conclusão• Utilizar shared-disk e/ou shared-nothing em cloud

não é simplesmente uma boa alternativa, é item obrigatório

• Também é fortemente recomendado utilizar SOA para obter dados:

“Create a shared nothing infrastructure. Infrastructure can become a shared resource for development and deployment with the same downsides as shared resources in your logic and data tiers. It can cause locking and blocking and dead lock. A service oriented architecture allows the creation of a parallel and isolated development process that scales feature development to match your growth.”

(http://highscalability.com/amazon-architecture )

Dúvidas?

Obrigado!

top related