09- BackEnd patterns.pdf - Google Drive

0 downloads 156 Views 2MB Size Report
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to op
Arquitetura de Aplicações para Dispositivos móveis Prof. Rogério Celestino

Conteúdo:

7. Mobile Applications – Padrões de Arquitetura back-end

7

Mobile Applications Padrões de arquitetura back-end

7. Padrões de arquitetura back-end •  Gerenciando sobrecarga.

•  Escalabilidade Vertical vs Escalabilidade Horizontal

•  Trade-offs de Escalabilidade – Performance vs Escalabilidade – Latência vs Throughput – Disponibilidade vs Consistência

7. Padrões de arquitetura back-end •  Como você sabe se tem um problema de performance? Se seu sistema é lento para apenas um usuário.

7. Padrões de arquitetura back-end •  Como você sabe se tem um problema de escalabilidade? Se seu sistema é rápido para apenas um usuário mas lento para vários usuários.

7. Padrões de arquitetura back-end

Você deve se esforçar para ter o mínimo de throughput com uma latência aceitável.

7. Padrões de arquitetura back-end •  Disponibilidade vs Consistência –  Teorema CAP •  Consistency, Availability, Partition

–  Teorema ACID •  Atomicity, Consistency, Isolation, Durability

–  Teorema BASE •  Basically Available Soft state Enventual consistency

Propriedade CAP •  Consistency - Consistência –  Significa se um sistema esta consistente, após a execução de uma operação. Por exemplo um sistema é considerado consistente se depois da atualização de um dado, todos os usuários que tem acesso a esse dado, possam acessá-lo em tempo real.

Propriedade CAP •  Availability -Disponibilidade –  Refere-se á concepção e implementação deum sistema de modo que seja assegurado que esse permanece ativo durante um determinado período de tempo.

Propriedade CAP •  Partition tolerance – Tolerância ao particionamento –  Refere-se a capacidade de um sistema continuar operando mesmo depois uma falha na rede.

Propriedades ACID: •  Atomicidade: A transação será executada totalmente ou não será executada. •  Consistência: Garante que o banco de dados passará de uma forma consistente para outra forma consistente. •  Isolamento: Garante que a transação não será interferida por nenhuma outra transação concorrente. •  Durabilidade: Garante que o que foi salvo, não será mais perdido.

Propriedades BASE •  Basically Available – Basicamente Disponível. •  Soft-State – Estado Leve •  Eventually Consistent – Eventualmente Consistente •  Uma aplicação funciona basicamente todo o tempo (Basicamente Disponível), não tem de ser consistente todo o tempo (Estado Leve) e o sistema torna-se consistente no momento devido (Eventualmente Consistente).

7. Padrões de arquitetura back-end •  Pense sobre seus dados –  Quando você precisa de ACID? –  Quando Enventualmente Consistente (BASE) é a melhor escolha?

7. Padrões de arquitetura back-end

Tipos diferentes de dados possuem necessidade diferentes O que deve te guiar na decisão é como seus dados são acessados

7. Padrões de arquitetura back-end •  Padrões de Escalabilidade –  Particionamento –  HTTP caching –  RDBMS sharding –  NoSql –  Data Grids –  Concorrência

7. Padrões de arquitetura back-end Quando  se  trata  de  execução  de  aplica8vos,  as   organizações  enfrentam  hoje  uma  tensão  entre   controle  e  economia  de  escala  

Alto   Baixo  

Controle   Economia  de  escala  

Baixo   Alto  

7. Padrões de arquitetura back-end Aplicação  rodando     on-­‐premises       Compre  seu  próprio   hardware  e  gerencie   seu  próprio  data   center  

Alto   Baixo  

Aplicação  rodando   em  um  hoster    

  Pague  para  algum   provedor  de  hospe-­‐   dagem  para  hopedar   minha  aplicação  usando   o  hardware  que  eu   especifico  

Controle   Economia  de  escala  

Aplicação  rodando   usando  a  plataforma   cloud     Pague  para  algum   provedor  hospedar   minha  aplicação  sem   especificar  o  hardware   (a  promessa  é  de  ser   “infinito”,  escalável)  

Baixo   Alto  

7. Padrões de arquitetura back-end

Mobile Client

Mobile

Native

Hybrid

Web

Application Services Static Content Video

Images

RESTful Services

Streaming

Data Store

Messaging

Push Notifications

Social

Analytics

Location

User Manager

Infrastructure Services Storage NoSql

Relational

Identity & Access Unstructured

Infrastructure

Authentication

Authorization

Scalability Replication

Elastic

Compute Physical, Dedicated

On Premises

Physical, Shared

Hoster

Virtual, Single

Virtual, Fabric

Cloud

Resumo e Conclusões da Aula •  Nesta aula fizemos uma visão geral sobre gerenciamento de carga em uma a arquitetura back-end mobile. •  Apresentamos estratégias diferentes de escalabilidade. •  Discutimos sobre controle vs economia de escala. •  Finalizamos com a demonstração das camadas de um back-end mobile.