0
Case CMS Abril <ul><li>System of Systems e  </li></ul><ul><li>Arquitetura (quase) caótica </li></ul>
Case Requisitos Contexto Empresa Complexa Arquitetura Empregada Distribuída System of Systems REST Case CMS Abril System o...
CASE Criar  um  gerenciador  e  publicador  de conteúdo digital para o  Grupo Abril Case CMS Abril System of Systems e Arq...
REQUISITOS Matérias Criar um gerenciador e publicador de  conteúdo digital  para o Grupo Abril qual? Chamadas Estabelecime...
Criar um gerenciador e publicador de  conteúdo digital  para o Grupo Abril publicar onde? Web site Mobile iPad Web API It ...
E o que mais temos que fazer? Funcionalidades cross marcas Case CMS Abril System of Systems e Arquitetura (quase) Caótica ...
Escalar! Case CMS Abril System of Systems e Arquitetura (quase) Caótica REQUISITOS Aproximadamente 300 milhões Pageview/Mê...
 
 
 
 
 
 
CONTEXTO Grupo Abril 15 Unidades de Negócio 85 Marcas 113 Sites                                 Muitos requisitos! Fonte: ...
Um sistema complexo? Case CMS Abril System of Systems e Arquitetura (quase) Caótica CONTEXTO
Sistemas Adaptativos Complexos (CAS) Descentralizado Emergência Co-evolução Sub ideal Variedade Auto-organização Conectivi...
CAS: Web http://en.wikipedia.org/wiki/Internet CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
CAS: Revoadas CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
CAS: Empresa <ul><li>Complexas no sentido de que são diversas e feitas de múltiplos elementos interconectados; </li></ul><...
Forças sobre uma empresa Competição Aquisições Otimização de Negócio Business Economia Órgãos Regulatórios Desastre Natura...
É preciso… Escalar em requisitos de negócio Absorver os mais diversos requisitos  Escalabilidade e performance Evolutivo, ...
CMS:   Linked Data CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
  Qual arquitetura que melhor acomoda esses requisitos e esse dinamismo? #comofaz? ARQUITETURA Case CMS Abril System of Sy...
  <ul><li>Sistema Centralizado, Monolítico </li></ul><ul><li>(Engenharia de Software) ?   ou     Sistema Descentralizado, ...
  <ul><li>...organizations which design systems ... are constrained to produce designs which are copies of the communicati...
Winner is:  System of Systems (SoS) (Engenharia de Sistemas) …  dividir para conquistar ARQUITETURA Case CMS Abril System ...
System of Systems <ul><ul><li>Independência operacional e gerencial dos sistemas  </li></ul></ul><ul><ul><li>Desenvolvimen...
+ REST: Interconectados Client–server Stateless Cacheable Layered system Uniform interface  A Web é REST! ARQUITETURA Case...
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 ma...
Alguns sistemas que já temos... ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
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><...
Alguns sistemas que já conhecemos... CMS  Descentralizado Distribuído! REST, HTTP... ARQUITETURA Case CMS Abril System of ...
Identificação e Localização de um conteúdo (recursos) http://editorial.api.abril.com.br / materias /lula-inaugura-nova-hid...
Identificação e Localização de um conteúdo (recursos) <ul><li>{     &quot;id&quot;: &quot; http://editorial.api.abril.com....
Hypermedia as the engine of application state (HATEOAS) {      &quot;link&quot;: [ {              &quot;href&quot;: &quot;...
Baixo acoplamento <ul><li>entry_point = Restfulie.at( ANOTACOES_ENTRYPOINT ).get! </li></ul><ul><li>if entry_point.links.i...
Liberdade de implementação ... independência! Times pequenos...  ARQUITETURA Case CMS Abril System of Systems e Arquitetur...
Escalabilidade e tolerância a falha HTTP Cache-Control: Max-age=60 ARQUITETURA Case CMS Abril System of Systems e Arquitet...
Monitoramento Webaliser ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
Pulveriza requisitos, paraleliza desenvolvimento Imagens: http://dryicons.com ARQUITETURA Case CMS Abril System of Systems...
ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica evolução?
ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica evolução?
O Ecossistema decide quem sobrevive... ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica Evolução!
<ul><ul><li>Arquitetura Emergente: A arquitetura não deve focar num sistema, mas sim no ecossistema </li></ul></ul><ul><ul...
That's all <ul><li>QUESTIONS? </li></ul>David Lojudice Sobrinho [email_address] @dalssoft Julio César Lima [email_address]...
Upcoming SlideShare
Loading in...5
×

Case CMS Abril - System of Systems e Arquitetura (quase) Caótica.

6,877

Published on

Ao aceitar que organizações são sistemas amplos, orgânicos e complexos, devemos adaptar nossa arquitetura a esta realizade. Como viabilizar um enterprise system que se adapte com a velocidade necessária as mudanças de requisitos, conflitos de necessidades dentro deste paradigma?

Para tanto, será explorada a teoria de Sistemas Complexos Adaptáveis e Emergência x BDUF, System of Systems e REST Archtectural Style e como estes conceitos estão ajudando a Abril a construir o parque de aplicações que suporta a publicação de mais de 100 sites e provê mais de 300 milhões de requests/mês.

http://www.qconsp.com/palestra/david-lojudice-sobrinho/case-cms-abril-system-of-systems-e-arquitetura-quase-caotica

Published in: Technology
1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total Views
6,877
On Slideshare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
39
Comments
1
Likes
5
Embeds 0
No embeds

No notes for slide
  • 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 &amp; 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 &amp; 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 -&gt; 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 -&gt; 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.
  • Transcript of "Case CMS Abril - System of Systems e Arquitetura (quase) Caótica."

    1. 1. Case CMS Abril <ul><li>System of Systems e  </li></ul><ul><li>Arquitetura (quase) caótica </li></ul>
    2. 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. 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. 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. 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. 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. 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
    8. 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
    9. 15. Um sistema complexo? Case CMS Abril System of Systems e Arquitetura (quase) Caótica CONTEXTO
    10. 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
    11. 17. CAS: Web http://en.wikipedia.org/wiki/Internet CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    12. 18. CAS: Revoadas CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    13. 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
    14. 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
    15. 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
    16. 22. CMS: Linked Data CONTEXTO Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    17. 23.   Qual arquitetura que melhor acomoda esses requisitos e esse dinamismo? #comofaz? ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    18. 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
    19. 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
    20. 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
    21. 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
    22. 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
    23. 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
    24. 30. Alguns sistemas que já temos... ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    25. 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
    26. 32. Alguns sistemas que já conhecemos... CMS  Descentralizado Distribuído! REST, HTTP... ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    27. 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
    28. 34. Identificação e Localização de um conteúdo (recursos) <ul><li>{     &quot;id&quot;: &quot; http://editorial.api.abril.com.br/materias/critico-olhar- estrangeiro &quot;,     ...         &quot;link&quot;: [         {             &quot;href&quot;: &quot; http://editorial.api.abril.com.br/materias/critico- olhar-estrangeiro &quot;,             &quot;rel&quot;: &quot;self&quot;,             &quot;type&quot;: &quot;application/json&quot;         },         ...     ] } </li></ul>ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    29. 35. Hypermedia as the engine of application state (HATEOAS) {      &quot;link&quot;: [ {              &quot;href&quot;: &quot;http://anotacoes.api.abril.com.br/comentarios&quot;,              &quot;rel&quot;: &quot; self &quot;,              &quot;type&quot;: &quot;application/json&quot;          },          {              &quot;href&quot;: &quot;http://anotacoes.api.abril.com.br/comentarios/novo&quot;,              &quot;rel&quot;: &quot; novo &quot;,              &quot;type&quot;: &quot;application/json&quot;          },          {              &quot;href&quot;:&quot;http://anotacoes.api.abril.com.br/comentarios/busca/des criptor&quot;,              &quot;rel&quot;: &quot; search &quot;,              &quot;type&quot;: &quot;application/opensearchdescription+xml&quot;          }      ] } ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    30. 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
    31. 37. Liberdade de implementação ... independência! Times pequenos... ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    32. 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
    33. 39. Monitoramento Webaliser ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    34. 40. Pulveriza requisitos, paraleliza desenvolvimento Imagens: http://dryicons.com ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
    35. 41. ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica evolução?
    36. 42. ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica evolução?
    37. 43. O Ecossistema decide quem sobrevive... ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica Evolução!
    38. 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 &quot;Conway's Law&quot; </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
    39. 45. That's all <ul><li>QUESTIONS? </li></ul>David Lojudice Sobrinho [email_address] @dalssoft Julio César Lima [email_address] @jcmlima
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×