Fandom

Central de Wikia

Comentarios13

Introduciendo la arquitectura orientada a servicios

¡Interferencia de bloqueo de anuncios detectada!


Wikia es un sitio libre de uso que hace dinero de la publicidad. Contamos con una experiencia modificada para los visitantes que utilizan el bloqueo de anuncios

Wikia no es accesible si se han hecho aún más modificaciones. Si se quita el bloqueador de anuncios personalizado, la página cargará como se esperaba.

Introduciendo la arquitectura orientada a servicios

Piensen en todas las cosas que puedes hacer en Wikia: Editar artículos, chat en vivo con otros usuarios, recolectar insignias, organizar el contenido o pasar horas y horas leyendo sobre sus temas favoritos. Piensen en nuestras 360.000 comunidades, cada una con su propio diseño y contenido. Lo que hace que tengamos mucha variedad.

Nuestras comunidades se basan en eso. Sin embargo, lo que pasa sin ser visto por las comunidades es cómo una gran variedad puede llevar a grandes retos de codificación para nuestros ingenieros y jefes de producto. Dado todo lo Wikia puede hacer, hemos construido un código base bastante grande durante todos estos años.

Hace algunos años nuestros ingenieros más experimentados se juntaron y preguntaron si había una manera de desmenuzar este código base. Querían ver si había una manera más fácil de mantener toda la codificación que ayuda a Wikia. Después de todo, esto permitiría el desarrollo más rápido y más eficiente del software. ¡Me complace decirles que estamos haciendo grandes progresos en este campo!

La solución es lo que se conoce como arquitectura orientada a servicios (SOA). En esta oportunidad explicaré nuestro enfoque y compartiré lo que está sucediendo con el desarrollo del software de Wikia.

Términos que deben saber

Para explicar mejor los cambios técnicos que Wikia ha estado trabajando, permítanme definir algunos conceptos.

MediaWiki: MediaWiki es un motor primario que ha sido la columna vertebral de Wikia desde que fue lanzada en el 2006. MediaWiki es parte integral de la creación del concepto wiki y es identificable por la facilidad de edición, presentación de contenidos creados por el usuario, una estructura de grupo de usuarios simple y la capacidad de rastrear historial de ediciones.

Wikia ejecuta en una versión de MediaWiki 1.19 y es poco probable que alguna vez hagamos una actualización a gran escala para una versión más reciente. Una de las razones principales es que MediaWiki es considerada un elemento monolítico de software. Eso significa que MediaWiki controla la codificación y diseño. La misma función que te permite guardar una edición, por ejemplo, también es responsable de borrar una página. Esto se hace principalmente a través de PHP y JavaScript.

Un servicio, en términos tecnológicos, es un pequeño pedazo de software encargado de hacer una única tarea. Puede codificarse en cualquier lenguaje. Por lo tanto la Arquitectura orientada a servicios es cuando se diseña un sistema que permite manejar todas las tareas de un sitio web por servicios individuales que trabajan juntos, en lugar de una sola pieza gigante de software que hace todo.

¿Cuál es el problema?

City (Civ3).png

Piense en una arquitectura orientada a servicios como una ciudad con ciudadanos a cargo de trabajos específicos, como en el juego Civilization VI

En tratar de entender las ventajas de utilizar un modelo SOA versus el modelo de MediaWiki. Pretende que el monolito de MediaWiki es una ciudad. Todos sus ciudadanos son responsables de manejar todo el negocio de la ciudad, desde la construcción hasta vigilarla. Todo los negocios se manejan muy bien en la ciudad, pero si estalla un incendio, sería raro pensar que un comerciante, policía o trabajador de la construcción sean responsable de apagarlo en lugar de un bombero que se dedica específicamente a la lucha contra incendios.

Siguiendo con nuestra analogía, miremos lo que ofrecería una ciudad con un modelo orientado a servicios. En esa ciudad, habría ciudadanos específicamente a cargo de la construcción y vigilancia. Eso sería lo único en que se enfocarían las personas. Si estalla un incendio, los bomberos llegarían a la escena. No sé ustedes, pero si mi casa se incendia, me sentiría mucho mejor si un bombero es la primera es la primera persona que aparece. Aunque la idea de que el incendio sea apagado por un panadero causaría gracia.

Esta generalización es una buena descripción de por qué ahora a Wikia le favorece el método SOA. Las ventajas del SOA versus MediaWiki son:

  • Menos complejidad. Es mucho más fácil para un ingeniero de software entender, corregir y mejorar una pieza de software si su alcance es pequeño y su código está contenido en un solo lugar
  • Eficiencia. El SOA nos permite utilizar lenguajes de software como Java o Python, que tienden a tener mejor desempeño para hacer ciertas tareas que PHP no hace bien
  • Adaptabilidad. MediaWiki es enorme y lento para actualizar. Al contrario, el internet cambia rápido. MediaWiki está a menudo lejos muy por detrás de las funcionalidades necesarias, como desarrollo de aplicaciones móviles.

¿Qué ha cambiado?

Les sorprendera saber que el cambio de Wikia para un modelo SOA ha estado ocurriendo de a pocos durante este último año. Tener un modelo SOA no significa que tendrán una Wikia nueva, llamativa, deslumbrante. El SOA sólo toma pedazos de lo que MediaWiki hace para Wikia, reconstruye el código para ser eficientes y eficaces, y luego coloca el código de vuelta. Usted realmente no notará la diferencia, aunque a menudo reescribir el código nos permite añadir una pieza extra de funcionalidad.

Un gran ejemplo de esto es nuestro sistema de inicio de sesión de cuenta. Créanlo o no, ha cambió un poco en el último año. Sistema de autenticación de usuario de MediaWiki tenía algunas ineficiencias en el manejo de una base de datos de usuario del tamaño de Wikia y en aceptar fácilmente addons como Facebook Connect. Así que el año pasado, comenzamos a diseñar algo llamado Helios, que permite un proceso de registro y de inicio de sesión mucho más seguro y rápido. Helios funciona independiente de MediaWiki y habla con MediaWiki a través de una API simple.

Además, hemos creado servicios que específicamente manejan permisos de grupos y preferencias de usuario. La mayor parte de este desarrollo ha ocurrido en las aplicaciones y web móviles. De hecho, hemos sido capaces de utilizar Helios para autenticar a los usuarios que inician sesión en Wikia por aplicaciones y web móviles; una tarea mucho más fácil que intentar conectar el sistema de autenticación existente de MediaWiki a estas herramientas móviles.

Esto es sólo el comienzo de nuestros esfuerzos para que sea Wikia un sistema más eficiente. Esto nos permitirá diseñar mejores funcionalidades y código para seguir creciendo en el futuro. Si tienen alguna duda sobre el desarrollo de la arquitectura orientada a servicios en Wikia, ¡estaremos encantados de responderlas en los comentarios!


¿Quieres recibir las últimas actualizaciones del blog de Fandom en español? ¡Haz clic aquí para seguir este blog!



Lucho Avatar.png
Lucho Valenzuela es parte del equipo de Soporte Comunitario de Fandom en Español desde el 2013. Sus pasatiempos incluyen Zumba, ver fútbol, ir a la playa, y explorar nuevos restaurantes para satisfacer su paladar. Cuando necesita despejar su mente le gusta organizar; es buena terapia para relajarse.

Spotlights de otros wikis

Wiki al azar