20

Click here to load reader

Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Embed Size (px)

Citation preview

Page 1: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Overview sobre Arquitetura de

Software na prática

Page 2: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Agenda

• O que é ?

• Como fazer ?

– ATAM

– Risk-Driven Approach

• Critérios ?

– Modificabilidade

– Disponibilidade

– Performance

Page 3: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

O que é ?

- Arquitetura

de Software

de Sistemas

Corporativa

Page 4: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

O que é ? (2)

- Papel do Arquiteto

Analista de Requisitos, Tester e QA

Qualidade

Gerente do projeto

Tempo

Custo

Desenvolvedores

Rápido e divertido

Page 5: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

O que é ? (3)

“Modele as relações, não os componentes!”

- Todo sistema precisa de uma definição forma de

arquitetura ?

- Arquitetura Evolutiva e Design Emergente

Page 6: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Como fazer ?

- ATAM: Architecture Tradeoff Analysis Method

- Risk-Driven Approach

Page 7: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Risk-Driven Approach (1)

- Tipos de Riscos quanto as incertezas:

Coisas que você sabe

(Known)

Coisas que você sabe que não sabe

(Known Unknown)

Coisas que você não sabe que não sabe

(Unknown Unknown)

Page 8: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Risk-Driven Approach (2)

- Tipos de Riscos quanto a disciplina:

de Projeto

de Arquitetura

Page 9: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Risk-Driven Approach (3)

- Tipos de Respostas ao Risco:

Evitar

Transferir

Mitigar

Aceitar

Page 10: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Critérios ?

- Modificabilidade

- Disponibilidade

- Performance

- Segurança

- Usabilidade

Page 11: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Modificabilidade

- Metas

Manter Coerência Semântica

Antecipar mudanças esperadas

Evitar Efeito Ripple

Page 12: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Modificabilidade (2)- Técnicas: SOLID

Single responsibility principle

Open/closed principle

Liskov substitution principle

Interface segregation principle

Dependency inversion principle

Page 13: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Modificabilidade

- Ferramentas: Exemplo Simples

Page 14: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Disponibilidade- Detectar

Ping/Echo

Exceptions

- Recuperar

Redundância ativa

Redundância passiva

- Prevenir

Monitoramento e análise de indicadores com estimativa de

crescimento: CPU, Memória, Disco, Rede

Page 15: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Disponibilidade (2)- Detectar

Analisar baseado em uma métrica: 40% a 60%

- Recuperar

Redundância ativa e/ou passiva

- Prevenir

Load Balancer e/ou Cluster

Virtualização e/ou Nugem

Page 16: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Performance- Tempo de resposta : O que contribui para o tempo de resposta ?

- Consumo de Recurso

CPU, Memória, Disco, Rede, etc

- Aumentar o recurso

- Otimizar o uso do recurso

- Tempo bloqueado

Contenção, Disponibilidade, Dependência do recurso

- Introduzir concorrência

- Manter múltiplas cópias

Page 17: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Performance (2)- Técnicas e Ferramentas

CPU: JProfiler e jvisualvm

Memory: Eclipse Memory Analyzer

Resource: JProfiler (ej-technologies), AppDynamics, etc

- Dicas para implementação

Stateless

Callback para gerenciar um recurso

Stream é bom!!! Evitar ByteArray[Input|Output]Stream

Page 18: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Performance (3)- Configuração em Servidores de Aplicação

Memória: Xmx, Xms, PermSize

GC: Paralelo e/ou Concorrente para Old e New Generation

ThreadPool

DataSource Connection Pool

GZip compression

Page 19: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Referências

Software Architecture in Practice, Second

Edition Len Bass, Paul Clements, Rick Kazman

Pattern-Oriented Software Architecture (POSA)

Frank Buschmann, Regine Meunier,

Hans Rohnert, Peter Sommerlad

Just Enough Software Architecture: A Risk-

Driven Approach

George H. Fairbanks

Page 20: Overview sobre Arquitetura de Sofware na Prática - CEJUG - Naskar - 13-09-2014

Obrigado!!!

www.naskar.com.br

[email protected]