cloud computing - pratices & patterns

16
Cloud Computing patterns & practices V 1.0 Alan Carlos, Cloud Specialist

Upload: alan-carlos

Post on 21-Jan-2018

321 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Cloud Computing - Pratices & Patterns

Cloud Computingpatterns & practices

V 1.0

Alan Carlos, Cloud Specialist

Page 2: Cloud Computing - Pratices & Patterns

RESILIÊNCIACAPACIDADE DE VOLTAR AO SEU

ESTADO NATURAL, APÓS

ALGUMA SITUAÇÃO CRÍTICA E

FORA DO

COMUM

Page 3: Cloud Computing - Pratices & Patterns

Implante várias instâncias de serviços e recursos da sua aplicação,

evitando-se pontos de falhas únicos.

Arquitete seu aplicativo para que ele possua o mínimo de dependências

possíveis (de aplicações ou plataformas terceiras) e que as mesmas sejam

bem definidas.

Module seu aplicativo em features conforme a criticidade e nível de

serviço, oportunizando o reestabelecimento do funcionamento de seu

aplicativo pelo time de Operações, apenas do que é mais critico.

Patterns & practices

Disponibilidade

Page 4: Cloud Computing - Pratices & Patterns

Repita operações de forma consistente, quando um recurso apresentar

uma falha momentânea.

Decomponha sua aplicação em bancos de dados diferentes, como

configuração, processamento e armazenamento, utilizando-se de tabelas

separadas também, com o mínimo possível de relacionamento,

oportunizando um backup consistente, com planos diferenciados e

garantia de DR efetiva.

Patterns & practices

Disponibilidade

Page 5: Cloud Computing - Pratices & Patterns

Utilize agentes de mensagens com semântica (N + 1) gerando alta

disponibilidade no processamento de dados críticos, evitando-se perdas.

Por exemplo: serviços de barramento de mensagens.

Projete seu aplicativo para trabalhar com enfileiramento de mensagens,

novas tentativas, momentos de picos, paralelismo de processamento,

“auto degradação”, processamento lento, conseguindo gerar retornos de

mensagens entre si e integrações com outros aplicativos para que ele

possa estar preparado para ambientes elásticos, ou seja, que aumentam

seus recursos conforme a necessidade de mais processamento ou

quando há picos.

Patterns & practices

Disponibilidade

Page 6: Cloud Computing - Pratices & Patterns

Sempre que possível, utilize técnicas de aplicação de updates e correções

de sua aplicação sem a necessidade do reinicio de instâncias, serviços ou

sistemas operacionais.

Considere o estudo da plataforma em que seu aplicativo irá trabalhar,

inclusive as opções atuais de DR (Disaster Recovery) e HA (High

Available), custos para implantação e realidades de uso para o seu

negócio, trazendo para seu aplicativo a capacidade de recuperação sem

necessidades de FCI (Failover Cluster Instances), NBL (Network Load

Balancing), ou similar.

Patterns & practices

Disponibilidade

Page 7: Cloud Computing - Pratices & Patterns

Divida a carga de trabalho de sua aplicação em serviços, threads,

executores, tarefas, pensando em distribuição de carga entre ambientes,

como sistemas operacionais distintos

Projete seu aplicativo para trabalhar com o redimensionamento de

recursos, como o aumento de processos dentro de um Web Farm,

aumento de paralelismo de processamento de um banco de dados, bem

como a redução dos mesmos.

Arquitete sua aplicação para responder a definições de unidades de

escala a serem usadas para definir o uso de recursos.

Patterns & practices

Escalabilidade

Page 8: Cloud Computing - Pratices & Patterns

Sempre que possível, evite a afinidade de cliente, dando a opção das

operações serem roteadas para qualquer instância.

Projete sua aplicação para trabalhar com prioridades e tarefas em

segundo plano. Evite que tarefas menos importantes, consumam os

recursos de E/S e CPU de tarefas essenciais para um funcionamento

adequado de sua aplicação.

Considere o estudo da prática “Nada Compartilhado”. Por exemplo, evitar

o uso do estado de sessão do servidor, afinidade de cliente e

particionamento de dados são bons exemplos.

Patterns & practices

Escalabilidade

Page 9: Cloud Computing - Pratices & Patterns

Projete sua aplicação para trabalhar com retenção de dados a longo

prazo, operando-os em locais distintos ao de processamento e consultas

mais atuais. Assim, além de dar condições de um processamento mais

eficiente de sua aplicação, oportunizará a guarda dos dados antigos em

locais de retenção a longo prazo e baixo consumo, tornando seu

aplicativo com um custo mais atrativo para armazenamento em nuvem e

onpremise no cliente.

Minimize o volume de dados recuperados, especificando colunas e

critérios bem definidos de consulta. Busque boas práticas de consultas

para não impactar no aprendizado de sistemas como SGBD.

Patterns & practices

Escalabilidade

Page 10: Cloud Computing - Pratices & Patterns

Use caching sempre que possível para reduzir o custo de carga de

serviços e recursos.

Otimize e ajuste consultas e índices SQL. Algumas instruções ou

construções T-SQL podem ter um impacto no desempenho que pode ser

reduzido otimizando-se o código em um procedimento armazenado. Por

exemplo, evite a conversão de tipos datetime em varchar antes de

comparar com um valor literal datetime.

Considere seu aplicativo assumir em gerenciar a integridade referencial

de dados tornando a organização mais assertiva e confiável.

Patterns & practices

Escalabilidade

Page 11: Cloud Computing - Pratices & Patterns

Considere usar chamadas assíncronas para acessar recursos e serviços.

Lembre-se que diversos ambientes podem apresentar latência de

comunicação e afunilamento de recursos.

“Empodere” o administrador de seu aplicativo no gerenciamento de

escalabilidade dando opções como: compactação de dados em locais de

alta latência e link reduzido, definição de números de threads de

processamento de serviços, tempo de conexão, tempo de espera de

processamento.

Minimize o uso de conexões e recursos o máximo possível.

Patterns & practices

Escalabilidade

Page 12: Cloud Computing - Pratices & Patterns

Evite armazenar estado de sessão no servidor.

Envie dados em lotes.

Minimize o uso de conexões e recursos o máximo possível.

Execute testes de perfil e desempenho constantemente.

Considere utilizar um sistema de monitoramento para avaliar a

disponibilidade de um recurso, integração com terceiros, serviços,

inclusive disponibilizar esse “farol” ao seu administrador.

Patterns & practices

Escalabilidade

Page 13: Cloud Computing - Pratices & Patterns

Sempre que possível, desenvolva sua aplicação com o menos de

dependência possível de uso de usuários administrativos ou de sistema.

Considere em sua aplicação o uso de configurações via Web App, WMI

ou similar, sem a necessidade de configuração direta na console dos

servidores.

Considere a implantação de logs de rastreio em ações ou atividades que

possuem um SLA de segurança elevado, como criação de novos logins,

mudanças de perfil de usuários, transações financeiras.

Patterns & practices

Segurança

Page 14: Cloud Computing - Pratices & Patterns

Considere usar perfis de usuários e senhas distintas e quando necessário,

com opções de complexidade elevada, dificultando assim, o acesso

indevido.

Considere utilizar criptografia nas transações e armazenamento de dados

de sua aplicação.

Considere o uso de portas de acesso TCP/UDP randômicas ou

alternativas aos padrões mundiais (HTTP/80), atendendo assim normas de

clientes e empresas com SLA de segurança elevados.

Patterns & practices

Segurança

Page 16: Cloud Computing - Pratices & Patterns

Obrigado.