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

  • 6,466 views
Uploaded 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 …

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,466
On Slideshare
0
From Embeds
0
Number of Embeds
20

Actions

Shares
Downloads
38
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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 & 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.

Transcript

  • 1. Case CMS Abril
    • System of Systems e 
    • Arquitetura (quase) caótica
  • 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
  • 8.  
  • 9.  
  • 10.  
  • 11.  
  • 12.  
  • 13.  
  • 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
    • Complexas no sentido de que são diversas e feitas de múltiplos elementos interconectados;
    • Adaptativos porque têm a capacidade de mudar e aprender com experiências passadas
    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.  
    • Sistema Centralizado, Monolítico
    • (Engenharia de Software) ?   ou     Sistema Descentralizado, Distribuído
    • (Engenharia de Sistemas) ?
    ARQUITETURA Case CMS Abril System of Systems e Arquitetura (quase) Caótica
  • 25.  
    • ...organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.
    • Conway's Law
    • RESPEITE SEMPRE!
    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
      • Independência operacional e gerencial dos sistemas
      • Desenvolvimento evolutivo
      • Comportamento emergente
      • Sistemas heterogênios
      • Interconectados
    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
      • HTTP como protocolo de aplicação
      • Um dos protocolos mais bem sucedidos da história 
      • Infra amplamente disponível (proxies, caches, libs, etc)
      • Suportado por qualquer linguagem
      • Conhecimento disseminado (mas muitas vezes não tão bem entendido)
    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
    • Cada um com suas próprias :
      • Features
      • Responsabilidades
      • Tecnologia
      • Equipe
      • Ciclo de releases e deploy
      • Ciclo de produto
    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)
    • {     "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"         },         ...     ] }
    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
    • entry_point = Restfulie.at( ANOTACOES_ENTRYPOINT ).get!
    • if entry_point.links.include?( :search )      open_search_descriptor = entry_point.links.search.get!
    •      url_search = open_search_descriptor.replace( conteudo_anotado => conteudo).url
    •      anotacoes = Restfulie.at(url_search).get!.first
    •      return anotacoes. comentarios
    • end
    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.
      • Arquitetura Emergente: A arquitetura não deve focar num sistema, mas sim no ecossistema
        • CAS e Web como inspiração
        • Deixe o ecossistema decidir
        • ... mas sendo pragmático 
    •  
      • SoS, REST, HTTP para permitir a evolução do ecosistema
    •      
      • Nunca substime a "Conway's Law"
        • No BDUF
        • but isn't a no design up front
      • Usar padrões abertos: Não reinvente a roda!
    •  
    Case CMS Abril System of Systems e Arquitetura (quase) Caótica CONCLUSÃO
  • 45. That's all
    • QUESTIONS?
    David Lojudice Sobrinho [email_address] @dalssoft Julio César Lima [email_address] @jcmlima