-
1.
Case CMS Abril <ul><li>System of Systems e </li></ul><ul><li>Arquitetura (quase) caótica </li></ul>
-
2.
Case Requisitos Contexto Empresa Complexa Arquitetura Empregada Distribuída System of Systems REST Case CMS Abril System of Systems e Arquitetura (quase) Caótica AGENDA
-
3.
CASE Criar um gerenciador e publicador de conteúdo digital para o Grupo Abril Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
4.
REQUISITOS Matérias Criar um gerenciador e publicador de conteúdo digital para o Grupo Abril qual? Chamadas Estabelecimentos Imagens Atrações Carros Famosos Etc. Etc. Etc. Receitas Jogos Infográficos Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
5.
Criar um gerenciador e publicador de conteúdo digital para o Grupo Abril publicar onde? Web site Mobile iPad Web API It doesn’t matter... Case CMS Abril System of Systems e Arquitetura (quase) Caótica REQUISITOS
-
6.
E o que mais temos que fazer? Funcionalidades cross marcas Case CMS Abril System of Systems e Arquitetura (quase) Caótica Anotação de conteúdo (Ranking, Comentários, etc.) Segurança e… Discovery Métricas Search Categorização Autenticação REQUISITOS
-
7.
Escalar! Case CMS Abril System of Systems e Arquitetura (quase) Caótica REQUISITOS Aproximadamente 300 milhões Pageview/Mês Entre os 600 maiores sites do mundo
-
14.
CONTEXTO Grupo Abril 15 Unidades de Negócio 85 Marcas 113 Sites Muitos requisitos! Fonte: http://www.grupoabril.com.br / http://www.google.com/adplanner/static/top1000/ Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
15.
Um sistema complexo? Case CMS Abril System of Systems e Arquitetura (quase) Caótica CONTEXTO
-
16.
Sistemas Adaptativos Complexos (CAS) Descentralizado Emergência Co-evolução Sub ideal Variedade Auto-organização Conectividade Regras simples Sistemas Aninhados À beira do caos Fronteiras CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
17.
CAS: Web http://en.wikipedia.org/wiki/Internet CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
18.
CAS: Revoadas CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
19.
CAS: Empresa <ul><li>Complexas no sentido de que são diversas e feitas de múltiplos elementos interconectados; </li></ul><ul><li>Adaptativos porque têm a capacidade de mudar e aprender com experiências passadas </li></ul>CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
20.
Forças sobre uma empresa Competição Aquisições Otimização de Negócio Business Economia Órgãos Regulatórios Desastre Natural Externa Processos Infra-estrutura Pessoas Interna CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
21.
É preciso… Escalar em requisitos de negócio Absorver os mais diversos requisitos Escalabilidade e performance Evolutivo, emergente e incremental CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
22.
CMS: Linked Data CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
23.
Qual arquitetura que melhor acomoda esses requisitos e esse dinamismo? #comofaz? ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
24.
<ul><li>Sistema Centralizado, Monolítico </li></ul><ul><li>(Engenharia de Software) ? ou Sistema Descentralizado, Distribuído </li></ul><ul><li>(Engenharia de Sistemas) ? </li></ul>ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
25.
<ul><li>...organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations. </li></ul><ul><li>Conway's Law </li></ul><ul><li>RESPEITE SEMPRE! </li></ul>ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
26.
Winner is: System of Systems (SoS) (Engenharia de Sistemas) … dividir para conquistar ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
27.
System of Systems <ul><ul><li>Independência operacional e gerencial dos sistemas </li></ul></ul><ul><ul><li>Desenvolvimento evolutivo </li></ul></ul><ul><ul><li>Comportamento emergente </li></ul></ul><ul><ul><li>Sistemas heterogênios </li></ul></ul><ul><ul><li>Interconectados </li></ul></ul>ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
28.
+ REST: Interconectados Client–server Stateless Cacheable Layered system Uniform interface A Web é REST! ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
29.
Não só REST, mas também HTTP <ul><ul><li>HTTP como protocolo de aplicação </li></ul></ul><ul><ul><li>Um dos protocolos mais bem sucedidos da história </li></ul></ul><ul><ul><li>Infra amplamente disponível (proxies, caches, libs, etc) </li></ul></ul><ul><ul><li>Suportado por qualquer linguagem </li></ul></ul><ul><ul><li>Conhecimento disseminado (mas muitas vezes não tão bem entendido) </li></ul></ul>O HTTP é rei na Web! ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
30.
Alguns sistemas que já temos... ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
31.
Independência de um sistema no SoS <ul><li>Cada um com suas próprias : </li></ul><ul><ul><li>Features </li></ul></ul><ul><ul><li>Responsabilidades </li></ul></ul><ul><ul><li>Tecnologia </li></ul></ul><ul><ul><li>Equipe </li></ul></ul><ul><ul><li>Ciclo de releases e deploy </li></ul></ul><ul><ul><li>Ciclo de produto </li></ul></ul>ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
32.
Alguns sistemas que já conhecemos... CMS Descentralizado Distribuído! REST, HTTP... ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
33.
Identificação e Localização de um conteúdo (recursos) http://editorial.api.abril.com.br / materias /lula-inaugura-nova-hidroeletrica http://editorial.api.abril.com.br / listas-editoriais /veja-10-mais http://media.api.abril.com.br / imagens /482840AC3242 http://anotacoes.api.abril.com.br / comentarios /48284719280182 http://aapg.api.abril.com.br / usuarios /jcmlima http://search.api.abril.com.br / indices /veja ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
34.
Identificação e Localização de um conteúdo (recursos) <ul><li>{ "id": " http://editorial.api.abril.com.br/materias/critico-olhar- estrangeiro ", ... "link": [ { "href": " http://editorial.api.abril.com.br/materias/critico- olhar-estrangeiro ", "rel": "self", "type": "application/json" }, ... ] } </li></ul>ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
35.
Hypermedia as the engine of application state (HATEOAS) { "link": [ { "href": "http://anotacoes.api.abril.com.br/comentarios", "rel": " self ", "type": "application/json" }, { "href": "http://anotacoes.api.abril.com.br/comentarios/novo", "rel": " novo ", "type": "application/json" }, { "href":"http://anotacoes.api.abril.com.br/comentarios/busca/des criptor", "rel": " search ", "type": "application/opensearchdescription+xml" } ] } ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
36.
Baixo acoplamento <ul><li>entry_point = Restfulie.at( ANOTACOES_ENTRYPOINT ).get! </li></ul><ul><li>if entry_point.links.include?( :search ) open_search_descriptor = entry_point.links.search.get! </li></ul><ul><li> url_search = open_search_descriptor.replace( conteudo_anotado => conteudo).url </li></ul><ul><li> anotacoes = Restfulie.at(url_search).get!.first </li></ul><ul><li> return anotacoes. comentarios </li></ul><ul><li>end </li></ul>Restfulie tem contribuição da Abril ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
37.
Liberdade de implementação ... independência! Times pequenos... ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
38.
Escalabilidade e tolerância a falha HTTP Cache-Control: Max-age=60 ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
39.
Monitoramento Webaliser ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
40.
Pulveriza requisitos, paraleliza desenvolvimento Imagens: http://dryicons.com ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
-
41.
ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica evolução?
-
42.
ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica evolução?
-
43.
O Ecossistema decide quem sobrevive... ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica Evolução!
-
44.
<ul><ul><li>Arquitetura Emergente: A arquitetura não deve focar num sistema, mas sim no ecossistema </li></ul></ul><ul><ul><ul><li>CAS e Web como inspiração </li></ul></ul></ul><ul><ul><ul><li>Deixe o ecossistema decidir </li></ul></ul></ul><ul><ul><ul><li>... mas sendo pragmático </li></ul></ul></ul><ul><li> </li></ul><ul><ul><li>SoS, REST, HTTP para permitir a evolução do ecosistema </li></ul></ul><ul><li> </li></ul><ul><ul><li>Nunca substime a "Conway's Law" </li></ul></ul><ul><ul><ul><li>No BDUF </li></ul></ul></ul><ul><ul><ul><li>but isn't a no design up front </li></ul></ul></ul><ul><ul><li>Usar padrões abertos: Não reinvente a roda! </li></ul></ul><ul><li> </li></ul>Case CMS Abril System of Systems e Arquitetura (quase) Caótica CONCLUSÃO
-
45.
That's all <ul><li>QUESTIONS? </li></ul>David Lojudice Sobrinho [email_address] @dalssoft Julio César Lima [email_address] @jcmlima
Grandes topicos: - Arquitetura Emergente tentar mostrar que Arquitetura também pode ser evolutiva e Arq != BDUF - Arquitetura de Sistemas Distribuidos O que nos levou a usar essa abordagem - Reforcar: Conhecer RESTFUL
Requisitos e contexto: tentar explicar a bucha... :) ... vamos viajar um pouco na maionese pra entender nossa empresa.
Pq não utilizar soluções de mercado? Necessidades especificas de requisitos, escalabilidade e principalmente extensibilidade .alem de ser estratégico
Conteúdo na Abril é o nosso maior asset. Centenas de jornalistas, blogueiros, colunistas, etc - Maior grupo de mídia impressa do país e um dos maiores do mundo Grande variedade de conteúdo, desde fichas de carros, fotos de modelos, notícias políticas, resenhas de atrações, infantil, saude, adulto, etc, etc, etc, etc - Conteúdo de nicho ! Calda Longa !
O conteudo deve ser apresentado em varias formas Explorar o melhor de cada media
A Abril é uma corporcao formada por diversas empresas, que cuidam de 1 ou mais marcas, Sinergia existe mas nao é tao explorada no paper & ink Muitas Culturas Nichos Requisitos
A Abril é uma corporcao formada por diversas empresas, que cuidam de 1 ou mais marcas, Sinergia existe mas nao é tao explorada no paper & ink Muitas Culturas Nichos Requisitos
Empresa decentralizada! As unidades de negócios + Marcas + Pessoas: formam um sistema É facil ver que a quantidade de requisito é : - Gigante - Evolutivos - Dinamicos (e mutaveis!) - CONFLITANTES!
Não é um sistema computacional... mas sistema na definicao: é um conjunto de elementos interconectados para formar algo : CORPORACAO ABRIL
Assim como a revoada, temos forcas agindo na abril - BUSINESS : Inerentes ao Negocio - EXTERNAS : Inerentes a Sociedade onde a empresa atua - INTERNAS
Requisitos conflitantes, requisitos não incrementais. Equipe grande -> necessidade de um esforço grande de orquestração e gerenciamento
Os dados precisam estar relacionados para: - Descoberta + organica - Search Recomendacao Retenção ! Cross pollination
- A WEB é ASSIM !!!
QUE É SoS ?? Dividir para conquistar ! Varios sistemas em que CADA UM tem as caracteristicas acima
- Cada sistema pode ser um client e/ou um server. - HTTP é um protocolo Stateless = Escalabilidade horizontal ( REQUISITO ATENDIDO : ESCALABILIDADE) - Cacheable pois os recursos podem ser cacheados em camadas intermediarias = varnishd (REQUISITO : ESCALABILIDADE + TOLERANCIA FALHA) - Layerd System = Dominios , Camada de Cache, Sites, Caches, CDN Web so escala por causa disto! Code on demand = not yet Uniform Interface = Utilizamos HTTP como protocolo de aplicacao e nao como protocolo de transporte.
HTTP é o nosso portugues... nossa uniform interface Latencia pode ser alta, porém infra adequada ajuda….. Nao deve ser transparente aos desenvolvedores…. Rede importa!
Um CMS distribuido! O conteudo esta em varios sistemas. Não exite centralizador. Não entrar em detalhe de cada sistema... só para entender o tamanho do SoS
Sistemas do SoS: um elemento do sistema É autonomo, mas pode ter dependencias
Os sistemas emergem das necessidades de negócio. Separation of concern, porém duplicidade podem existir, assim como conflito.
PQ? Porque não ter um ID e um Localizador? Porque não existe um repositório central para fazer o de-para (sistema descentralizado). Tambem garante um unico ID em todo o sistemas (se localiza, identifica).
Lembrar que é um Json
- Linkagem de dados - Navegacao entre dados é semantica (via rel)
Codigo ruim! Sem maquina de estado! Apenas demostracao. - FACIL DE LER - FACIL DE MANTER Conhece: - Entry point - Navegacao possivel - Um pouco do conteudo (hash) - HTTP verbs Nao conhece: - Estrutura do objeto predefinida - Estrutura dos metodos - Content-type - URLs - Estruturas intermediarias
Equipe grande -> necessidade de um esforço grande de orquestração e gerenciamento Aqui tem Eng. De Software!
É premissa que sistemas falham, logo uma aplicacao que utilize-se de outra deve estar pronta para trabalhar com a provavel falha ou indiponibilidade de outra aplicacao (como indisponiblidade)
Faz décadas que monitoramos HTTP!!!!!! Monitoramento interno do SoS === Monitoramento Externo! Ferramentas + Know how disponivel!
SoS permite PARALELIZAR requisitos 1 MACRO FEATURE = DIVERSAR features pequenos em diversos sistemas…. LEMBRA SEMPRE DE SEPARATION OF CONCERNS! ALGUEM TEM QUE TER VISAO DO TODO Porem implica em mais cuidado no gerenciamento de dependencias!
Falar da idéia de sistemas intercontectados…
Existem muitas variaveis no ecosistema: Politica, cultura, novas tecnologias, moda, etc.