Fandom

Wiki Community

Comentário1

Apresentando a Arquitetura Orientada a Serviços

Vchiea 7 de Setembro de 2016 Blogue do utilizador: Vchiea

Interferência de bloqueador de anúncios detectada!


A Wikia é um site grátis que ganha dinheiro com publicidade. Nós temos uma experiência modificada para leitores usando bloqueadores de anúncios

A Wikia não é acessível se você fez outras modificações. Remova o bloqueador de anúncios personalizado para que a página carregue como esperado.

Pense em todas as coisas que você pode fazer na Wikia: editar artigos, bate-papo ao vivo com outros usuários, coletar medalhas, organizar conteúdo ou passar horas e horas lendo sobre seus tópicos favoritos. Amplie isso através de nossas 360.000 comunidades, cada uma com seu próprio design e conteúdo único e você poderá ver quanta variedade temos aqui.

Nossas comunidades são construídas sobre isso. O que passa despercebido pelas comunidades, porém, é como uma grande variedade pode trazer grandes desafios de codificação para os nossos engenheiros e gerentes de produto. Tendo em vista tudo o que a Wikia pode fazer, construímos uma enorme base de códigos ao longo dos anos.

Há alguns anos, alguns dos nossos engenheiros mais experientes reuniram-se e perguntaram se havia uma maneira de cortar a base de código. Eles queriam ver se havia uma maneira mais fácil de manter toda a codificação e características que ajudam a Wikia a prosperar. Afinal, isso permitiria um desenvolvimento de software mais rápido e eficiente. Estou feliz em dizer que estamos fazendo grandes progresso com isso!

A solução é o que é conhecido como arquitetura orientada a serviços (SOA) e, como editor veterano de wikis (eu comemorei meu aniversário de 10 anos em edição de wikis!) e programador de computador, fico feliz em explicar a nossa abordagem e compartilhar o que está acontecendo nos bastidores do desenvolvimento de software da Wikia.

Termos para saber

Para melhor explicar as alterações técnicas nas quais a Wikia tem trabalhado, permitam-me definir alguns conceitos importantes primeiro.

MediaWiki: MediaWiki é o motor principal que tem sido a espinha dorsal da Wikia, desde que lançamos em 2006. MediaWiki é parte integrante da criação do conceito wiki e é melhor identificável pela facilidade de edição, pela apresentação do conteúdo criado pelo usuário, pela estrutura de grupo de usuário simples e pela capacidade de controlar histórias editadas.

A Wikia é executada em uma versão do MediaWiki de número 1.19 e é improvável que faremos uma atualização em grande escala para uma versão mais recente. Uma razão principal para isso é que MediaWiki é considerada uma peça monolítica de software. Isso significa que a codificação e o design da MediaWiki controla tudo. A mesma função que permite salvar uma edição, por exemplo, também é responsável por excluir uma página. Isto é feito principalmente através de PHP e JavaScript.

Um serviço, em termos tecnológicos, é um pequeno pedaço de software responsável por fazer uma tarefa simples, comum. Ele pode ser codificado em qualquer idioma. A arquitetura orientada a serviços, é, portanto, um sistema que permite que todas as tarefas de um site tarefas sejam manipuladas por serviços individuais que trabalham juntos, em vez de um pedaço gigante de software que faz tudo.

Então, qual é o problema?

Na tentativa de compreender as vantagens de usar um modelo SOA versus o modelo da MediaWiki, imaginemos que o monolito MediaWiki é uma cidade. Todos os seus cidadãos são responsáveis pela manipulação de todos os negócios da cidade, desde a construção ao policiamento até os lojistas. Toda a atividade diária é feita pela cidade, mas, nos caso de um incêndio, seria meio estranho pensar que um trabalhador da construção civil, policial ou lojista será responsável por combater o fogo em vez de bombeiros que são especificamente dedicados ao combate a incêndios.

Continuando nossa analogia, vamos analisar o que uma cidade orientada para serviços poderia oferecer. Nessa cidade, você teria cidadãos especificamente responsáveis pela construção, policiamento e pelo comércio. Essa seria a única coisa que essas pessoas se concentrariam. Se há um incêndio, os bombeiros vêm à cena. Eu não sei sobre você, mas se minha casa pegar fogo, sinto-me muito melhor se um bombeiro é o primeiro na cena em vez de um padeiro. Embora a ideia do fogo sendo abafado em cobertura de bolo pode ser boa para algumas risadas.

Esta generalização é uma boa descrição da razão pela qual a Wikia agora favorece o método SOA. As vantagens específicas do SOA versus o núcleo MediaWiki são:

*menos complexidade. É muito mais fácil para um engenheiro de software entender, corrigir e melhorar um pedaço de software se o seu âmbito é pequeno e seu código está contido em um só lugar
  • eficiência. O SOA permite-nos usar linguagens de software como Java ou Python, que tendem a ter melhor desempenho para fazer determinadas tarefas que o PHP não faz bem
  • adaptabilidade. A MediaWiki é enorme e lenta para atualizar. Por outro lado, a internet muda rápido. A MediaWiki está frequentemente muito atrás em recursos necessários, como desenvolvimento de apps móveis.

O que mudou?

Você pode se surpreender ao saber que a Wikia mudou para um modelo SOA que tem ocorrido aos poucos desde o ano passado. Ter um modelo SOA não significa que você tem uma Wikia nova e chamativa. O SOA só usa partes do que faz a MediaWiki faz para a Wikia, recria o código para ser eficiente e eficaz e em seguida conecta o código de volta. Você realmente não deve notar a diferença, apesar de que, ao reescrever o código, muitas vezes podemos adicionar uma ou duas partes extras de funcionalidade.

Um grande exemplo disso é o nosso sistema de login de conta. Acredite ou não, isso mudou bastante no ano passado! O sistema de autenticação de usuário MediaWiki tinha algumas ineficiências na manipulação do banco de dados do usuário Wikia e na aceitação de add-ons como Facebook Connect. Então no ano passado, começamos a projetar algo chamado Helios, que permite um processo de registro e login muito mais seguro e rápido. Helios é executado independente da MediaWiki e fala com a MediaWiki através de uma API simples.

Além disso, nós criamos serviços que especificamente manipulam as permissões de grupo de usuário e preferências de usuário. A maior parte do desenvolvimento aconteceu nos mundos web e app móvel. Na verdade, conseguimos usar Helios para autenticar os usuários fazendo login na web e app móvel, uma tarefa muito mais fácil do que tentar ligar o sistema de autenticação existente da MediaWiki a essas ferramentas móveis.

Este é apenas o começo de nossos esforços para tornar a Wikia um sistema mais eficiente. Isso nos permitirá projetar melhores características e códigos para continuar ajudando o crescimento da Wikia no futuro. Se você tiver quaisquer perguntas sobre o desenvolvimento da arquitetura orientada a serviços na Wikia, estamos felizes em respondê-las nos comentários!

Quer receber atualizações sobre os posts de blog da equipe? [aqui para acompanhar este blog].

Também no Fandom

Wikia aleatória