2010-06-07 7 views
7

Estoy buscando configurar una instalación de Magento (Community Edition) para varios clientes y he investigado el asunto por unos días.Ejecución de Magento para múltiples clientes: instalación única frente a instalaciones múltiples

Veo que Enterprise Edition tiene lo que necesito, pero sorprendentemente no estoy dispuesto a desembolsar la suscripción anual de $ 12,000.

Parece que hay algunas opciones disponibles pero me preocupa el rendimiento que obtendré de las diversas opciones.

Opción 1) Instalación única utilizando el módulo de permisos avanzados AITOC Así que esto es realmente lo que estoy buscando; una instalación para que pueda actualizar mis archivos principales al mismo tiempo y también administrar todos los usuarios de mi tienda desde un solo lugar. Los problemas aquí son que no sé nada sobre la fiabilidad de este producto adicional y que tengo que pagar un poco más. También me preocupa que si tengo 10 tiendas funcionando en esta instalación, todo se ralentizará mucho y se irá a pique ya que he oído hablar de la lentitud de Magento.

Módulo de enlace: http://www.aitoc.com/en/magentomods_advanced_permissions.html

Opción 2) Múltiples instalaciones de Magento en un servidor para cada tienda de Así que aquí tienen 10 instalaciones de Magento en un servidor todos corriendo alegremente no usar ningún dinero adicional, pero ahora tiene 10 tiendas separadas para actualizar y mantener, lo que podría ser molesto. Además, no he podido encontrar muchas otras personas que usan este método y, cuando lo hago, suelen preguntar cómo evitar que sus servidores se agoten. Así que esta ruta parece que podría ser aún peor en mi servidor, ya que tendré más actividad en mi servidor, pero si mi servidor pudiera tomarla, cada instalación de Magento sería más simple y menos probable que se desacelere debido a que cada uno debe ejecutar 10 tiendas por sí mismo?

Opción 3) Utilice un montón de servidores y un montón de instalaciones de Magento acabo por lo que no quería hacer esto.

Opción 4) Comprar Magento Enterprise No tengo dinero para hacer esto.

Entonces, ¿qué ruta es menos probable que explote mi servidor? ¿Y alguien tiene experiencia con este santo grial de un módulo?

Gracias por la lectura y gracias de antemano por cualquier ayuda - Chris Hopkins

Respuesta

7

Consigamos no sea una opción fuera del camino de inmediato. No desea hacer # 3 y # 4 no es una solución. Magento Enterprise Edition no agrega ninguna característica que le permita ejecutar múltiples clientes desde una tienda.

Ahora, a las posibles opciones. Como dices, el # 1 te permitirá actualizar una versión del código, pero por supuesto esto conlleva algunos riesgos. Según entiendo, ¿tus clientes necesitarán acceder a las tiendas? Si tiene varios clientes que se ejecutan en una base de datos y una base de código, siempre se encontrará con problemas que se afectan mutuamente. Por ejemplo, ¿quién controlará los atributos del producto, que son por naturaleza globales? Si una tienda elimina un atributo de producto, otras tiendas pueden perder datos como resultado. Si resuelve este problema, ¿qué pasa con las promociones de catálogos y las categorías de productos, etc. Magento fue creado para manejar varios sitios web, pero no para aislarlos entre sí, y usted tendrá problemas de esta clase debido a esto.En cuanto al rendimiento, un gran catálogo de productos o una base de clientes tenderá a ralentizar el sitio, pero puede mitigar esto utilizando el catálogo de productos planos y haciendo un buen uso del almacenamiento en caché.

Para la opción n. ° 2, puede ejecutar varias tiendas Magento, lo que plantea dos problemas principales. Primero, como dices, está actualizando los sitios. Si está utilizando una instalación estándar de Magento y no modifica los archivos centrales, esto no debería ser publicado. El actualizador de Magento es bastante simple para esas instalaciones, con dificultad para aumentar a medida que realiza más modificaciones y tiene que usar más procesos manuales para apagar.

En cuanto al rendimiento, la ejecución de varios sitios de magento podría ser más lenta, pero depende de cómo los estructure. Independientemente de tener uno o varios sitios, tendrá que cargar datos para cada sitio, por lo que el tamaño de la base de datos no será terriblemente diferente. El tamaño del archivo en un servidor es prácticamente inexistente. En cualquier caso, cuando un cliente solicita una página, Magento tiene que girar todo el marco para atender la solicitud, que es donde comienzan a aparecer los problemas de rendimiento. Una de las grandes atenciones para esto es usar un caché de código de operación como Xcache, pero con múltiples máquinas necesita darle a Xcache mucha más memoria para mantener el código de todas las instalaciones. Problema legítimo

Mi recomendacion? Comience en una máquina, múltiples instalaciones. Aumente la cantidad de instalaciones y, cuando el servidor ya no soporte, continúe. Mantenga los cambios de código fuera del núcleo y use extensiones que puedan actualizarse fácilmente, de modo que las actualizaciones sean fáciles. Eso debería mitigar la mayor cantidad de preocupaciones posible.

Espero que ayude!

Gracias, Joe

+0

Supongo que realmente no importa el tiempo en que la empresa tenga la función o no desde el punto de vista de la elección, ya que no voy a obtenerla. Pero suponía que si la edición empresarial podía ejecutar múltiples sitios web de clientes, entonces el módulo AITOC podría ser el camino a seguir, ya que solo agrega soporte para lo que ya se ha hecho en una versión más avanzada. Si Magento no puede soportar esto completamente entonces supongo que tendremos que ir por la ruta del servidor múltiple. http://www.magentocommerce.com/product/enterprise-edition parecían entender que podía controlar cosas en un nivel de sitio web –

+0

Hay algunas cosas que puede controlar a nivel de sitio web (por ejemplo, tener diferentes configuraciones por sitio web) , pero no todo. Esto es especialmente un problema si te leo correctamente, ya que habrá múltiples clientes. –

+0

Sí, definitivamente tendremos varios clientes. ¿Puedo preguntar en qué experiencia/información basa su respuesta? –

1

Creo que conseguir una cuenta de VPS y escalar hacia arriba cuando se hace necesario le dará las mejores opciones para sus necesidades de gastos.

1

Por mis dos centavos, creo que se van a encontrar con más problemas que profesionales lanzando a todos a una sola instalación de Magento con todos chocando unos con otros. Sin mencionar al Cliente X en el sitio web. Parece que no puede descubrir por qué no puede crear una cuenta en el sitio web Z que nunca haya tenido (es un problema de configuración, pero podría suceder)

Lo que haría recomiendo que lo haga es configurar un repositorio git que tenga su instalación "base" de Magento y luego tener todos sus clientes en diferentes configuraciones de configuración que pueda clonar desde esa instalación principal.

Esto le dará solo una base de código real para actualizar (los cambios en la base de datos son una historia diferente) y todos están separados.

0

Ejecutamos múltiples clientes en una sola instalación de Magento CE y utilizamos el módulo Permisos avanzados de AITOC para controlar la visibilidad de nuestros diferentes clientes. El módulo funciona bien, aunque tiene varios inconvenientes y carece de funcionalidad en un puñado de áreas, que hemos tenido que manejar con nuestros propios módulos internos. No parece tener ningún efecto notable en el rendimiento, ya que llevamos funcionando de esta manera durante meses sin problemas. (Dicho esto, usamos Amazon EC2 y escalado automático.)

Según tengo entendido, EE proporciona permisos de rol avanzados que podrían inutilizar el módulo de AITOC. Sin embargo, también he escuchado que el EULA para EE solo requiere 1 cliente por instalación. No he podido encontrar hechos concretos sobre esto, pero si es cierto, es realmente un factor decisivo, ya que tener una instalación de EE adicional para cada cliente sería tremendamente caro, tremendamente rápido. (Tal vez alguien puede confirmar si/no en esto, sin embargo?)

0

Encontré este hilo mientras investigaba el mismo tema.Tengo una gran tienda con múltiples gerentes. Quería dar acceso a cada uno de ellos a categorías y productos específicos para que solo pudieran cambiarlos y no pudieran cambiar nada más (desafortunadamente, tengo una mala experiencia al respecto). Así que encontré algunas extensiones: las de itoc, aheadworks y amasty. Instalé el último y estoy bastante satisfecho. lleva un tiempo configurar todos los roles de usuario, pero definitivamente vale la pena.

1

Manejamos un par de docenas de "instalaciones" de magento usando una única base de código, pero múltiples bases de datos. Básicamente, hemos hecho un duro trabajo al crear un Magento multi-tenant.

Así es como lo estamos haciendo:

  1. uso Nginx como proxy inverso para manejar algunas reglas básicas de enrutamiento, y para establecer algunas variables de servidor (fastcgi_params) en base a la solicitud.
  2. Codificamos las reglas de enrutamiento en Nginx Config en función del dominio solicitado, el idioma del navegador y la ubicación del visitante.
  3. establecer una variable de servidor utilizando fastcgi_params Nginx como "cliente-id"
  4. hacer copias de la aplicación/etc carpeta con la convención de aplicación/[ID de cliente]/etc
  5. anulación Mage.php variable $ ETCDIR a $ etcDir = self :: getRoot(). DS. $ _SERVER ['CLIENT_ID']. '/'. 'etc'; (Tendrá que aplicar un poco de lógica aquí, para asegurarse de que esto puede fallar con elegancia)
  6. Editar aplicación/etc/[id-cliente] /local.xml para apuntar a un nuevo archivo db con tablas magento y contenido base ya importado . (También deberá configurar la URL en la tabla core_config, o en el archivo local.xml para que todo funcione)
  7. Modificar la ruta include de la aplicación/código/local/para que sea app/code/local/[ id-cliente]/en Mage.php (sí, dispárame para reemplazar el código central, pero es la única forma en que podemos encontrarlo)
  8. Configurar el manejo de la sesión a realizar en un redis db, con db # único por cliente
  9. Reemplace getVarDir() en Mage_Core_Model_Config_Options para incluir [client-id] en la ruta. (Esto es para asegurarse de que no está compartiendo el caché entre los clientes)

Es probable que obtenga la esencia hasta el momento.

Otras cosas que usted querrá tener en cuenta:

Aislamiento de los medios de comunicación por el cliente-id, La consolidación de todas las URL "Panel de Administración", y pidiendo usuario administrador para seleccionar [ID de cliente], Configuración de barniz en una forma sensata, Configurando CDN de una manera sensata, Modificando el instalador de Magento para que admita este método, y maneje la configuración básica automáticamente.

Cuestiones relacionadas