Estrategias para administrar grandes bibliotecas de medios de WordPress en entornos de desarrollo y estancamiento


Una de las preguntas que nos hicimos sobre la descarga de WP S3 es si usarla o no en entornos de desarrollo u organización. Cuando se hace correctamente, el uso de la descarga de WP S3 puede reducir en gran medida el tiempo requerido para responder un nuevo entorno, así como el espacio de disco necesario para hacerlo. Sin embargo, hay muchas maneras de desactivar a este gato. Aunque no existe la mejor manera canónica de hacer esto, superaremos todas las estrategias y presentaremos sus ventajas y desventajas. Vamos a bucear, ¿sí? El problema suponga que tenemos un cliente con su sitio en vivo en Ejemplo.com. Ahora el cliente nos pide que comencemos a trabajar en un rediseño completo de su sitio popular. Debemos crear un entorno separado en el que podamos trabajar de manera segura en esta nueva característica en secreto, así como un lugar donde el cliente revisará nuestro trabajo antes de otorgar nuestro pulgar para ingresar en vivo.
Comenzamos implementando el sitio web de WordPress del cliente en un nuevo servidor con el campo de staging.example.com que contiene el núcleo de WordPress, el tema y cualquier complemento. Luego extraemos la base de datos de Ejemplo.com utilizando WP Migra DB Pro. También necesitamos todas las imágenes en nuestra biblioteca de medios en el escenario, por lo que utilizamos los archivos multimedia para WP Migra DB Pro para copiarlas durante la migración. El sitio del cliente tiene una biblioteca de medios de más de 5,000 artículos, por lo que lleva mucho tiempo copiarse todo.

La biblioteca de medios está duplicada en ambos entornos y se sirve en la misma área que el sitio de host.
Ahora, los tres desarrolladores que trabajarán en este proyecto deben repetir este proceso para configurar sus entornos de desarrollo locales. Más tarde ese día, el equipo finalmente está listo para tomar el trabajo. Esto es aceptable para sitios pequeños, pero no escala bien, y el costo de mantenimiento aumenta en proporción al tamaño de la biblioteca de medios. Esto es particularmente doloroso cuando vas a crear un nuevo entorno por primera vez. Para un sitio con una biblioteca de medios muy grande, la descarga puede llevar horas o incluso días. Centralización de los medios -El Uso de una de las ventajas de usar la descarga de WP S3 es que le permite reducir en gran medida el espacio de disco para cada entorno. Ahora, en lugar de duplicar la biblioteca de medios una y otra vez, se ha trasladado a una nueva ubicación central donde varios entornos pueden compartirla. Debido a que la descarga de WP S3 mantiene la URL descargada para cada elemento en la biblioteca de medios, cada medio puede compartir esos activos sin tenerlos localmente. Logros desbloqueados: ¡nuevos entornos en una fracción de tiempo! El lado oscuro de los recursos compartidos ¿Alguna vez ha compartido la habitación con un hermano? Imagina que compartes uno con tu clon exacto; ¡Nada que tengas está seguro! Los beneficios de los recursos compartidos vienen con sus propios riesgos, pero comprenderlos estará bien equipado para evitarlos. En nuestro caso, el recurso compartido es el Amazon S3 Bucket. El riesgo principal de compartir un compartimento S3 es que cada entorno tiene potencial la capacidad de cargar, eliminar o manipular el contenido del compartimento. En general, solo desea que los activos utilizados por la producción se modifiquen de la producción.

Cuando usa la configuración recomendada de la descarga de WP S3, en realidad es bastante seguro anular un archivo con el mismo nombre debido a descargado. A nivel local, su archivo puede tener una forma así: WP-Context/uploads/2017/03/Sigourney.jpg con la versión de objeto activada (predeterminada), en el compartimento S3, este archivo tendría una manera: WP-Content /Uploads/2017/03/22195347/sigourney-weaver.jpg Esto le da al archivo una ruta única. La biblioteca de medios ayuda a prevenir conflictos, también enumerando los elementos que de otro modo tendrían el mismo nombre de archivo. Sin la versión de los objetos, todavía existe un cierto riesgo como un nuevo artículo agregado en el sitio en vivo y otro elemento con el mismo nombre en otro entorno puede competir de la misma manera en el cubo, sobrecargando el archivo anterior. La versión de los objetos lo hace casi imposible, al tiempo que resuelve el problema de invalidar la caché en el navegador y en CDN, que debe usar (no sirva a sus medios directamente de los niños S3).
Si ha activado “Eliminar los archivos del servidor”, el WP descarga S3 realiza comprobaciones adicionales para garantizar que un archivo existente no anule el S3. Para limpiar como desarrolladores, a menudo agregamos muchos datos temporales cuando probamos nuevas funciones. El almacenamiento en S3 puede ser barato como el empaque de avellana, pero no es gratis. Probablemente no quiera llenar su cubo con un montón de basura de prueba y pagarla. Si queremos cargar en un cubo para uso de no producción, queremos poder limpiar fácilmente después de nosotros mismos. Exploremos algunas estrategias con un poco más de atención al contenido del cubo y el acceso a él. Estrategia de cubo común: sin acceso ideal, no deberíamos poder eliminar ningún uso de la producción de un entorno de producción. La forma más fácil de aplicar esto es evitar que la descarga de WP S3 acceda a su cubo, que es tan simple como eliminar las teclas de acceso establecidas en el complemento AWS. Tenga en cuenta que la descarga de WP S3 requiere acceso a las teclas de acceso antes de que pueda configurarlo a través de la pantalla de configuración del complemento. Si desea realizar cambios en la configuración del complemento sin permitir el acceso a S3, simplemente puede reemplazar sus claves con valores ficticios. Los nuevos artículos en la biblioteca de medios no se descargarán y se transmitirán desde el servidor local, mientras que los artículos existentes continúan transmitiendo desde el compartimento S3 o el dominio personalizado.

Pro
El más fácil de implementar
Los artículos no se pueden agregar ni eliminar del compartimento de producción S3
El promedio descargado existente aún se puede transmitir desde el compartimento/además del costo adicional
Versus
Los nuevos medios se transmiten de otra manera que estarán en producción.
Las claves de acceso de AWS de cambio de consejos profesionales utilizando la pantalla de configuración del complemento se perderán tan pronto como se extraiga la base de datos del sitio web en vivo. ¡Use un archivo específico para el entorno para aplicar este cambio programáticamente en su código! (Ver más abajo) Hay momentos en que puede ser necesario probar que se descargan nuevos materiales y las direcciones de URL se reescriben correctamente en un entorno que no es producción. En este caso, necesitamos una estrategia diferente.
Estrategia de grupo común: la configuración de la vía alternativa para la descarga de WP S3 define la ruta básica al director de raíz (biblioteca de medios) en el compartimento S3. Por defecto, refleja la forma del sistema de archivos local utilizado por WordPress, pero se puede cambiar en lo que desee.
Debido a que esta ruta se guarda como parte del objeto del objeto S3 para cada artículo en la biblioteca de medios, somos libres de cambiarla sin romper la URL de los elementos existentes. Cuando se modifica esta configuración, los únicos elementos en la biblioteca de medios afectados son aquellos elementos agregados después de la modificación.
La ventaja de este enfoque es que las cargas de otros entornos están aisladas de una manera separada en el compartimento de las agregadas a partir de la producción. Cuando haya terminado de probar, simplemente puede conectarse a la consola S3 y eliminar el director que contiene la ruta personalizada para eliminar de manera segura todos sus objetos temporales. También sería prudente utilizar diferentes credenciales de AWS creadas con una política más restrictiva para sus entornos de desarrollo/desarrollo. La siguiente política restringe el acceso a la escritura a su ruta personalizada de su compartimento: {“Versión”: “2012-10-17”, “Declaración”: [{“Efecto”: “Permitir”, “Acción”: [“S3: List*”, “S3: GetBucketLocation”], “Recurso”: [“Arn: AWS: S3 ::: DeleteObject”, “S3: Put*”, “S3: Get*”], “Recurso” : [“ARN: AWS: S3 :::: *”]}]} Pro
Los nuevos medios se descargan y se transmiten desde S3 en todos los entornos
El soporte de medios agregado desde un entorno que no es la producción está aislado en cubo y fácil de limpiar más tarde.


Versus
Configuración y mantenimiento de credenciales de IAM alternativas
Estrategia alternativa También podríamos cambiar la configuración del cubo, definiendo un nuevo cubo para ser utilizado por la descarga de WP S3 para nuevos medios. Como hemos visto con la ruta anterior, el compartimento también se guarda en cada elemento en la biblioteca de medios, por lo que solo los nuevos entornos se ven afectados por el cambio del compartimento. Debido a que esta es esencialmente la misma que la estrategia basada en el camino, con las mismas ventajas y desventajas, podemos pasar a nuestra última estrategia. La estrategia de cubo de espejo aquí clonaremos el cubo utilizado por la producción en un nuevo cubo para compartirlo en nuestros entornos de no producción. Esta es la mejor opción para reproducir el entorno de producción lo más cerca posible, sin el riesgo de contaminar o confundir el cubo utilizado por la producción. Como se mencionó anteriormente, el cubo utilizado se almacena en la base de datos para cada artículo en la biblioteca de medios. Para garantizar que la descarga de WP S3 use el compartimento del espejo, se debe realizar una búsqueda y reemplazo de la base de datos para cambiar el nombre del compartimento anterior al nuevo. Esto se puede hacer con WP Migrate DB Pro en el momento de la migración o WP-CLI después del hecho. Esto puede ser un desafío en sí mismo, dependiendo del nombre del cubo. Si el nombre inicial del compartimento es el mismo que el dominio de su sitio, por ejemplo, podría causar consecuencias no deseadas al realizar una búsqueda y reemplazar en la base de datos para cambiar el nombre del compartimento.
Una vez que tenemos el nuevo cubo creado que queremos usar, también debemos copiar todos los objetos en el cubo de producción. Dependiendo de qué tan grande sea su compartimento, esto podría llevar algún tiempo si descargáramos todo localmente y luego lo recargáramos en el nuevo compartimento. ¡La buena noticia es que podemos copiar directamente de un cubo a otro! La mala noticia es que al momento de escribir este artículo no puede hacer esto desde la consola S3. La forma más fácil de copiar de un balde a otro es el uso de AWS CLI. Una vez instalado y configurado, un pedido llenará el nuevo cubo: AWS S3 Sync S3: // Your-Production-Buck S3: // Su-S-STAGING-Buck Copiará cualquier objeto en el compartimento de producción en el nuevo compartimento que sean ya no está allí. Por defecto, no elimine ningún objeto del destino que no esté en la fuente (aunque puede proporcionar un interruptor para activarlo), por lo que puede continuar usando el mismo pedido nuevamente en el futuro y solo agregará los archivos faltantes. Los medios de protoato sirven activos de la misma manera que la producción
Todos los entornos pueden agregar/eliminar todos los objetos de sus cubos
La limpieza posterior es tan fácil como eliminar el cubo en el espejo
Versus
El más consumidor del tiempo y quizás difícil de configurar
Pago por objetos duplicados
Crear una configuración basada en el entorno La modificación manual de la configuración a través de la interfaz de uso cada vez que actualiza su base de datos provisional/local es una receta de desastre. Por ejemplo, olvidar cambiar una puerta de pago en modo Sandbox puede causar serios problemas. También podría olvidar cambiar las credenciales de IAM. La solución es incluir esta configuración en nuestro código de aplicación. El propósito básico aquí es eliminar la base de datos de la ecuación para algunas configuraciones seleccionadas para imponer un valor específico del entorno. Para hacer esto, necesitaremos incluir un PHP adicional en la aplicación, que se implementa en todos los entornos. Todas las configuraciones de descarga de WP S3 se pueden controlar con constantes. Cualquier configuración definida en estas constantes tiene prioridad en comparación con las almacenadas en la base de datos. Debido a que simplemente definimos constante, este código se puede agregar a wp-config.php, en cualquier lugar antes de cargar wpsetting.php. Nuevamente, hay muchas maneras de hacer esto, por lo que trataremos de mantener las cosas lo más simples posible. Para obtener información más completa, siempre puede consultar la documentación S3 de descarga de WP para configuraciones constantes. <? Php /** * Defina el entorno constante 'wp_env' * tiene una forma común de establecer esto, pero solo se puede definir una vez. * * Uso de una variable de entorno por el mismo nombre * Define ('wp_env', genv ('wp_env')); * * Coincidir con el nombre de host * define ('wp_env', 'ejemplo.com == $ _server [' server_name ']?' Production ':' staging ');

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 *