Abrazando el modelo de arquitectura microservic con WordPress

A medida que WordPress madura, más personas lo usan como plataforma de aplicación. A medida que vamos a la visión de Matt Mullenweg de WordPress como un sistema operativo de código abierto, creo que es importante cuestionar algunas de nuestras concepciones de cómo tendemos a usar WordPress. Tradicionalmente, un sitio de WordPress se ejecuta como una sola unidad monolítica. Esto es contrario a una tendencia creciente en el desarrollo web a los microservicios: muchas aplicaciones pequeñas para un solo propósito configurado para actuar como una sola unidad.
Por ejemplo, considere el almacenamiento de almacenamiento en caché estático. Si sigue el enfoque monolítico, agregaría un complemento que generó y sirvió el caché dentro de WordPress. O puede configurar Varnish o Nginx en su servidor para servir HTML almacenado en caché. Por otro lado, al usar el enfoque microservic, utilizará una red de servidor o servidor separada para implementar caché, entregado con un CDN. Para la aplicación web que desarrollo, Caldera Forms Pro, vamos a un enfoque microservic. Si bien la aplicación fue inicialmente una aplicación central de Laravel que utilizó nuestro sitio de WordPress para el comercio electrónico, la última característica que implementamos, los errores mejorados, se implementó como una luz de microframe separada.
El abrazo de la arquitectura microservic fue el tema de mi discurso de WordCamp Montreal: nuestro futuro híbrido: WordPress como parte del sTAC. En este artículo, discutiré qué es la arquitectura microservic y cómo usarla para mejorar su aplicación de WordPress. La arquitectura monolítica modelo una aplicación monolítica construida como una sola unidad. La aplicación en el lado del servidor administrará solicitudes HTTP, ejecutará la lógica de campo, tomará el control y actualiza los datos de la base de datos y seleccionará y completará las vistas HTML que se enviarán al navegador. Martin Fowler Comprender el modelo de microservicios es más fácil si primero definimos su arquitectura opuesta: monolítica. Una aplicación web se considera monolítica si se crea y se ejecuta como una entidad única. La arquitectura tradicional de WordPress lo cumple de muchas maneras. Tiene un servidor, dedicado, VPS o parte de un servidor compartido, que ejecuta PHP, MySQL y un servidor web – Apache, Nginx, etc. – Ejecutando todo el programa. Agregamos funcionalidad al programa respectivo que instala otros programas en ese servidor: redis, barniz, etc. – y agregar más código a WordPress – complementos.
La ventaja clave de la arquitectura monolítica es la simplicidad. Tiene un programa, un servidor y un conjunto de tecnologías. El enfoque con microservicios El estilo arquitectónico de los microservicios es un enfoque para el desarrollo de una sola aplicación como un conjunto de pequeños servicios, cada uno que se ejecuta en su propio proceso y se comunica con mecanismos de luz, a menudo una API de recursos HTTP “. Martin Fowler, en lugar de un programa “Do It All”, el enfoque microservic para el diseño de aplicaciones web dice que cada unidad de la aplicación debería ser su propio programa que se ejecuta en su propia red de servidor o servidor. Los beneficios clave son el aumento de la encapsulación. Esta encapsulación ayuda a extender los desafíos. Debido a que cada parte del programa se ejecuta en sus propios servidores, cada red de servidor puede optimizarse y escalarse de forma independiente dependiendo de sus propias necesidades. El aumento de la capaculación tiene muchos beneficios más allá del escala. Al hacer de cada parte del programa una base de código separada, se pueden desarrollar e implementar con programas independientes. Además, debido a que estos servicios son independientes e independientes por diseño, se pueden reutilizar en otras aplicaciones. Amazon.com es un ejemplo de una aplicación web a gran escala, creada con una arquitectura microservic. Construyeron cada parte de la aplicación como un servicio separado y transformaron muchos de ellos en productos autoestimibles disponibles a través de Amazon Web Services. Si Amazon hubiera tocado de alguna manera la magnitud sin usar los microservicios, no podían vendernos su solución de almacenamiento de archivos-S3-o las SES de solución de correo electrónico.
Los microservicios también pueden conducir a ahorros de costos. El uso de MailChimp para administrar una función importante de un sitio, el marketing de correo electrónico, es mucho más barato que construir su propio servicio de marketing de correo electrónico para cada sitio. WordPress no es totalmente monolítico WordPress.com fue el primer sitio de WordPress a gran escala, una instalación múltiple con millones de usuarios. Por supuesto, es mucho más complicado que eso. Si automáticamente no hubiera desarrollado e implementado herramientas para distribuir ese procesamiento y usar microservices, su tecnología no funcionaría. El primer paso hacia la arquitectura de microservicios es la distribución del procesamiento en las redes. HyperdB se ha desarrollado automáticamente para permitir la implementación de un servidor MySQL redundante para distribuir una base de datos del sitio de WordPress. HyperdB y sistemas similares son omnipresentes hoy en WordPress. También usamos CDN para descargar archivos de transmisión estática. Utilizamos la pasarela de pago de terceros para administrar los pagos y administrar suscripciones. Utilizamos proveedores de correo electrónico comerciales para enviar correos electrónicos. Hosting Quality WordPress ya no se trata del servidor. Esta es la red de servicios que se utilizan para escalar un sitio y para proporcionar un rendimiento constante a nivel mundial.
Human Made, una agencia de desarrollo de WordPress para empresas, tiene una excelente guía para la escala de WordPress. Su lista de complementos para la escala de WordPress es casi todo para distribuir el procesamiento de WordPress a través de servicios especializados. Por qué las microservaciones son importantes para los desarrolladores de WordPress
Normalmente, cuando pensamos en microservicios, hablamos de servidores de escala. No soy un Devop. Por lo tanto, no discutiré la distribución o el contenedor de su pila de servidores. Entiendo por qué debería, y hay muchos otros recursos a este respecto. Por otro lado, crean complementos de WordPress, así como aplicaciones web. Pensar en términos de microservicios me ayudó a repensar cómo abordo estos problemas. Eso es lo que quiero discutir. Cada decisión de ingeniería que tomamos es un compromiso que tiene desventajas. No podemos evitar eso. Pero los microservicios reducen el alcance de los compromisos. Debido a que cada microserviciu es su propio programa independiente con responsabilidades mínimas, las tecnologías elegidas y su implementación deben tener en cuenta solo un pequeño subconjunto de los programas más grandes. Desde la perspectiva de los desarrolladores de WordPress, podemos considerar los microservicios como una forma de evitar las limitaciones de WordPress. Tener un sitio monolítico que anuncia un producto, vende ese producto y administra las suscripciones para ese producto es un gran problema de escala. Si ese producto es una aplicación y esa aplicación está integrada en WordPress, ahora es más desafío.
Pero, ¿qué pasa si repensamos esto como cuatro o más sitios de WordPress conectados por la API de WordPress? Por ejemplo, ¿qué sucede si mueve la gestión de suscripción a un sitio separado? Entonces no le preocuparía que se procesara un gran lote de renovación al mismo tiempo que tenía muchos clientes potenciales en el sitio. El efecto de la renovación de la suscripción retrasaría fácilmente el procesamiento de la renovación, no la carga frontal de su sitio muy lento. Esto es aún más importante si crea una aplicación de WordPress como backpress y usa WordPress para vender, vender y admitir esa aplicación. En este escenario, el aumento del tráfico en el sitio degradaría el rendimiento de la aplicación y viceversa. La optimización de un sitio de WordPress para transmitir contenido estático es muy diferente de la optimización de uno para ser el proveedor de datos de una aplicación. La separación de los dos en sitios separados le permite optimizar y asignar recursos para cada uno de forma independiente. También significa que puede desarrollar cada uno de forma independiente. Un ejemplo incluso simple a este respecto sería un sitio en el que cada tipo de publicación tenía su propia suscripción privada que transmitía el contenido en el sitio principal a través de la API REST WordPress. ¿WordPress como parte de la pila?
Una vez que comience a pensar en cómo dividir WordPress en varios WordPress, como sugerí en la última sección, es natural comenzar a preguntar por qué todos estos servicios deben construirse en WordPress. La respuesta es que no. Me gusta WordPress, pero no creo que sea la herramienta adecuada para cada trabajo. Una aplicación web que estoy desarrollando por Caldera Forms Pro usa WordPress para muchas partes de la pila, pero no para todo. WordPress se ocupa del comercio electrónico, automatización de marketing, documentación y más. Pero la aplicación principal está construida en Laravel. Como resultado, el uso de la aplicación no tiene ningún efecto en nuestro sitio principal de WordPress. En esencia, hemos transformado nuestro sitio de WordPress en un microservicio, que se conecta con muchos otros servicios, PayPal, Convertkit, etc. Si bien nuestra aplicación principal sigue siendo bastante monolítica, recientemente eliminamos el sistema distribuido de errores de la aplicación principal y en un microservic con motor. Tengo la intención de desarrollar nuevas funciones para esta aplicación como microservicios, con la aplicación principal como proveedor de autenticación y una gestión centralizada mínima para que funcionen los microservicios. Siempre comuníquese a través de las API HTTP Cuando se trabaje con microservics, debe resolver el problema sobre cómo hacer un servicio para activar un proceso en otro servicio. Al principio, cuando trabajaba en Caldera Forms Pro, pensé en usar Laravel para ejecutar comandos WP-CLI en el sitio web de WordPress.

Esto habría funcionado en mi entorno de desarrollo local, en el que ambas aplicaciones se ejecutaban en la misma VM en ese momento. Si hubiera decidido comunicarme entre aplicaciones a través de sus clips, entonces no podría haberlas implementado en servidores separados, lo cual hice y siempre era el plan. Este atajo habría eliminado un beneficio importante de la función de separación en diferentes servicios. En contraste, los diferentes servicios siempre se comunican a través del resto. Utilizamos el descanso API de WordPress para agregar puntos finales en nuestro sitio web de WordPress. Las aplicaciones Laravel y Lumen son esencialmente CMS sin cabeza, son talleres de datos accesibles a través de API REST. La aplicación principal tiene una vista única, que sirve a una aplicación web VueJS de una sola página. El servicio completo presenta una cosa interesante sobre la construcción con microservicios es que cada servicio tiene muy pocas responsabilidades. Esto requiere un minimalismo práctico del alcance. Si un servicio hace algo y hace algo bueno, puede dejarlo así. Sí, su negocio puede desarrollar nuevas necesidades. Cuando sea necesario, cree un nuevo servicio.

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *