Comment Magento super-échelle dans le nuage

Ce didacticiel vous aidera à préparer une installation Magento pour un trafic intense, de meilleurs temps de chargement et une gestion de site en cours plus simple. Prêt?


Exigences

Vous pouvez télécharger le code final de ce tutoriel ou lancer le Quickstart "magento-basic" à partir de votre compte Pagoda Box pour tester un site en fonctionnement..

  • Un compte Pagoda Box (gratuit)
  • Une installation Magento locale et fonctionnelle
  • Logiciel de développement local (MAMP ou WAMP)
  • Git installé (peut utiliser SFTP)
  • Le client du terminal Pagoda installé

Avertissement juste: Ce tutoriel peut changer votre vie. Pagoda Box n’est pas un hébergement traditionnel. Les enseignements de cet article vont non seulement aider à faire évoluer Magento, mais aussi à jeter les bases d'un flux de travail progressif du développement à la production..


Étape 1: Configurer Git localement (SFTP fonctionnera comme un remplaçant)

Remarque: Si vous utilisez déjà Git, vous pouvez ignorer cette section. Sinon, le guide Configuration de Git fournit des instructions spécifiques pour la création d'une clé SSH, ainsi que des liens pour le téléchargement et l'installation de Git (également ci-dessous)..

Bien qu'il soit possible d'utiliser uniquement SFTP sur Pagoda Box, le flux de travail recommandé officiellement (et le plus efficace) intègre Git dans votre développement quotidien. Git active des fonctionnalités telles que la collaboration, la distribution de code uniforme, le déploiement, l'historique de déploiement et la récupération de code. Bien que la plupart de ces fonctionnalités soient disponibles pour les utilisateurs FTP, l'utilisation de Git rend l'intégration transparente.

Si vous voulez tirer pleinement parti de Pagoda Box, téléchargez Git et Apprenez les bases. Selon votre système d'exploitation, la configuration peut varier légèrement. Quel que soit votre système d'exploitation, les commandes sont identiques une fois Git installé.

L'utilisation de Git pour gérer la collaboration et le contrôle de version peut impliquer une brève courbe d'apprentissage. Cependant, nous n'utilisons généralement que trois commandes pour valider les modifications localement, puis pour les déployer dans Pagoda Box:

  • git ajouter . - Ajoute des fichiers locaux à votre référentiel
  • git commit -m "un message sur ce que vous avez fait" - Valide tes modifications
  • pagode git push - Transmet les modifications au référentiel Pagoda Box (déployé automatiquement par défaut)

Nous les utiliserons plus tard.


Étape 2: Installez le client du terminal Pagoda Box

 * / \ / \ + _ / / / | \ \ \ _ + || * ||| * || | + || * || + | / \ + _ / / / | \ \ \ _ + || * ||| * || | + || * || + | ____ _ ____ ___ ____ _ ____ _____ __ | _ \ / \ / ___ | / _ \ | _ \ / \ | __) / _ \ \ / / | | _) / _ \ | | _ | | | | | | | / _ \ | _ \ | | | \ / | __ / ___ \ | _ | | | _ | | | _ | / ___ \ | | _) | | _ | / \ | _ | / _ / \ _ \ ____ | \ ___ / | ____ / _ / \ _ \ ____ / \ ___ / _ / \ _ \ \ Bienvenue sur votre client de terminal Pagoda Box. ----------------------------------------------- --- -------------------------------------- ------------ --------------------- Prendre plaisir.

Pagoda Box fournit un Terminal Client qui vous permet de cloner, créer, déployer, détruire, renommer et restaurer une application à partir de la ligne de commande. Plus loin dans ce didacticiel, nous utiliserons le client pour créer un tunnel sécurisé vers la base de données Magento en direct avec Sequel Pro (le processus est similaire pour d'autres outils de gestion de base de données tels que HeidiSQL)..

Le Pagoda Box Terminal Client est un rubygem, l’installation est donc assez simple. Tout d'abord, Ruby doit être installé. L'installation est différente pour chaque système d'exploitation.

  • Mac - Ruby et RubyGems sont pré-installés sur Mac OSX. Tant que vous utilisez la version 10.5 ou ultérieure, vous devriez être prêt à partir..
  • Windows - Il existe différentes manières d’installer Ruby dans Windows. Nous recommandons cet installateur automatique. Si cela ne fonctionne pas pour votre configuration, une recherche sur Google vous donnera une bonne liste de procédures d'installation..
  • Linux - Utilisez votre gestionnaire de paquets préféré pour télécharger le paquet Ruby. Pour les utilisateurs Ubuntu, la gemme est disponible via getdeb.net.

Installer et vérifier le client terminal

Une fois Ruby installé, exécutez simplement la commande suivante pour installer la Pagoda RubyGem:

Sur Mac ou Linux:

 $ sudo gem install pagoda

Sous Windows:

 $ gem install pagoda

Ensuite, pour vérifier que la Pagode Gem est correctement installée, exécutez:

 liste de pagodes $

Si vous utilisez la gemme pour la première fois, elle vous demandera votre nom d'utilisateur et votre mot de passe Pagoda Box. Une fois que vous les avez entrées, attendez-vous à voir une liste de vos applications Pagoda Box. Si vous n'avez pas créé d'applications, la liste sera vide.

Si vous obtenez une erreur, il s'agit probablement d'identifiants non valides. Vous pouvez vérifier ou modifier les informations d'identification utilisées par la gem en modifiant le fichier situé sur votre ordinateur local à l'adresse suivante: ~ / .pagodarc. Assurez-vous de bien faire correspondre les informations d'identification que vous utilisez dans votre compte Pagoda Box. (Remarque: il s'agit d'un fichier caché. Vous devez donc activer les fichiers cachés ou l'ouvrir via le terminal. Notez également que le fichier stocke vos informations d'identification à deux reprises. Modifiez-les si nécessaire.)


Étape 3: Installez Magento localement

Remarque: Ignorez cette étape si vous avez déjà une installation Magento locale en cours..

Si vous ne l'avez pas déjà, assurez-vous que vous utilisez un logiciel de serveur Web et de gestion de base de données local. Plusieurs options sont disponibles, selon votre système d'exploitation. Une option courante pour Mac est MAMP ou WAMP pour Windows. Les deux sont gratuits et faciles à configurer.

Une fois votre environnement de développement local configuré, téléchargez Magento, puis suivez le guide officiel pour installer Magento localement..

N'hésitez pas à utiliser le script d'installation automatique de Magento pour configurer l'application dans votre environnement local. Cependant, en raison de l'architecture de cloud distribuée de Pagoda Box, le script n'installe pas Magento directement dans votre environnement de production. Le flux de travail et l'architecture de Pagoda Box vous obligent à modifier le code localement, à valider, puis à le déployer en production. Ce flux de travail permet la collaboration et le développement> mise en scène> meilleures pratiques de production.


Étape 4: Configurer PHP à l'aide d'un fichier Boxfile

Remarque: sur Pagoda Box, un fichier YAML Box peut être inclus à la racine de votre référentiel de code. Bien que facultatif, Boxfile offre des fonctionnalités avancées, telles que la manipulation de votre environnement hébergé à chaque déploiement. Nous utiliserons beaucoup le Boxfile dans ce tutoriel pour simplifier les tâches et rendre le référentiel réutilisable sur Pagoda Box..

Créez un fichier nommé "Boxfile" à la racine de votre installation locale de Magento, puis copiez le fichier suivant dans votre Boxfile (explication ci-dessous):

 web1: name: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl - soap

Créer / nommer le cluster Web

Ce fichier de boîte sert à plusieurs fins. Tout d'abord, il crée un web1 composant, puis le nomme mag-app.

Répertoires accessibles en écriture

Deuxièmement, le Boxfile identifie médias et var en tant que répertoires accessibles en écriture. Cela permet aux utilisateurs de télécharger des images, des vidéos et d’autres supports sur un site cloud distribué de Magento sans que les instances ne s’écrivent de manière désynchronisée..

Lorsqu'un répertoire est marqué comme accessible en écriture, le contenu n'est plus déployé sur Pagoda Box à partir de votre référentiel local. Chaque fois que des fichiers locaux doivent être déployés dans ces répertoires, ils doivent être copiés manuellement via SSH ou SFTP. Vous pouvez également utiliser SSH / SFTP pour transférer des fichiers de la pagode Pagoda vers votre ordinateur local en fonction des besoins..

Version PHP et extensions

Boxfile indique également la version de PHP et les extensions qui seront incluses dans vos instances Web au fur et à mesure de leur déploiement. Ainsi, l’environnement et l’application sont tous deux versionnés, ce qui fait que la version précédente de ce déploiement inclut la version et les extensions PHP appropriées. La liste des extensions PHP dans ce Boxfile est extraite de la configuration système requise par Magento..

Conseil: Une fois que Git est installé dans votre environnement local, utilisez la commande .gitignore fichier pour ignorer les répertoires en écriture spécifiés dans votre Boxfile. Identifier ces répertoires à l’intérieur du .gitignore file permet de réduire la taille de votre dépôt et votre temps de déploiement. En plus des répertoires accessibles en écriture, vous pouvez également ajouter le téléchargeur répertoire vers le .gitignore fichier, car il est utilisé localement, et non sur Pagoda Box.

Une fois que vous avez installé Git et le client Terminal, configuré le fichier Boxfile et finalisé votre code source local, vous êtes prêt à le lancer sur Pagoda Box..


Étape 5: Créez un compte de boîte à pagodes gratuit

Si vous n'en avez pas déjà un, créez un compte gratuit Pagoda Box. Vous n’avez pas besoin de saisir une carte de crédit pour installer Magento à des fins de test..

Si vous ne l'avez pas déjà fait, suivez ce guide pour Ajouter une clé SSH dans le panneau d'administration de votre Pagoda Box. Le guide fournira des instructions spécifiques pour la configuration d’une clé SSH sur Mac ou Windows..


Étape 6: Téléchargez Magento dans une boîte à pagodes

Une fois que vous avez créé un compte Pagoda Box et configuré une clé SSH, accédez à la page d'accueil de votre nouveau compte et cliquez sur le bouton "Nouvelle application" pour créer une nouvelle application..

Remarque: Ce tutoriel nomme notre exemple d'application "magento". Le nom de l'application est également utilisé pour le référentiel Pagoda Box, le sous-domaine de l'application récemment déployée (magento.pagodabox.com) et le nom d'utilisateur en mode SFTP. Remplacez "magento" par "your-app-name-here" le cas échéant dans le reste de ce didacticiel..

Transférer vers un dépôt vide (recommandé pour ce tutoriel)

Ensuite, choisissez parmi les 3 options pour lancer votre site Magento. Puisque vous avez déjà une version personnalisée de Magento localement, sélectionnez "Repo vide" à déployer à l'aide de SFTP ou de Git, nommez votre application et cliquez sur "Lancer l'application"..

Vous serez invité à sélectionner votre méthode de déploiement préférée (Git ou SFTP). Cliquez sur vos préférences et suivez les instructions à l'écran..

Option Git

Vous pouvez copier et coller les instructions à l'écran du tableau de bord Pagoda Box sur votre terminal après avoir utilisé Terminal pour changer de répertoire (cd) à la racine de votre projet..

Les commandes collées font ce qui suit:

  • git init - Initialiser votre projet Magento en tant que référentiel Git
  • git ajouter . - Ajouter tous les fichiers du projet au référentiel
  • git commit -m 'votre message de commit' - Valider les fichiers avec un message vous permettant d'analyser rapidement l'historique de déploiement à l'avenir, au cas où vous deviez annuler ou modifier les modifications.
  • git remote ajouter pagode [email protected]: magento.git - Ajoutez Pagoda Box en tant que télécommande (l’URL git spécifique à votre application apparaît sur cet écran et dans le tableau de bord de votre application).
  • pagode git push - Poussez votre code local vers le référentiel distant Pagoda Box. Tant que vous êtes sur la branche "master" (qui est la valeur par défaut), Pagoda Box déploiera automatiquement votre code et exécutera les instructions définies dans le fichier Box. Le déploiement automatique peut être désactivé dans le tableau de bord de l'administrateur ou configuré pour se déployer automatiquement à partir d'une branche Git autre que Master..

Option SFTP

Si vous avez opté pour SFTP, Pagoda Box vous guidera pour établir vos identifiants et un mot de passe. Connectez-vous via SFTP à Pagoda Box et téléchargez votre code source Magento dans la code annuaire.


Étape 7: Créer une base de données

Il existe deux manières de créer une base de données sur Pagoda Box. Chacun a des avantages, expliqués ci-dessous:

Créer une base de données dans le fichier boxfile

Le fichier Boxfile créera automatiquement un composant de base de données lors du déploiement, à condition que ce composant (db1, db2, etc.) n'existe pas déjà. La déclaration de la base de données dans Boxfile permet de gagner un peu de temps et de simplifier le déploiement de plusieurs sites Magento à partir d'une base de code normalisée. (Remarque: seules les bases de données cloud peuvent être déployées à partir du fichier Boxfile. Si vous avez besoin d'une base de données plus grande, dédiée ou redondante, voir l'option Tableau de bord plus loin dans cette étape.) Ajoutez les éléments suivants à votre fichier Boxfile:

 db1: nom: mag-db type: mysql

Votre fichier Boxfile mis à jour devrait ressembler à ceci:

 web1: nom: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 extensions_php: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl - soap db1: nom: mag-db type: mysql

Puis validez les modifications dans le fichier mis à jour et transmettez les modifications à Pagoda Box:

 $ git commit -m "pagoda config" $ git push pagoda --all

Autre: créer une base de données dans le tableau de bord

Vous pouvez également créer une base de données à partir du tableau de bord Pagoda Box. C'est ici que vous ajoutez une base de données plus grande, dédiée ou redondante.

Tout d'abord, cliquez sur "Ajouter une base de données" dans le tableau de bord.

Pagoda Box vous présentera une série d’écrans pour configurer votre base de données, en fonction de vos choix. Si vous avez sélectionné l'option Dédié, vous serez invité à dimensionner votre base de données comme suit:

Les bases de données en nuage se déploient généralement en quelques minutes. Si vous avez choisi Dedicated, ne soyez pas impatient. Vous pouvez attendre jusqu'à 90 minutes pour qu'un gros serveur soit configuré selon vos spécifications..


Étape 8: Configuration des informations d'identification de base de données pour la production

Votre base de données génère automatiquement des informations d'identification lors de sa création sur Pagoda Box. Nous utiliserons ces informations pour configurer Magento en production..

Cependant, étant donné que Magento sera utilisé à la fois dans les environnements locaux et en production, nous devons fournir des identifiants de base de données différents pour chacun. Nous utiliserons Déployer les points d'ancrage dans le fichier Boxfile pour simplifier ce processus en exécutant des scripts ou des commandes pendant le déploiement..

Dans le cas de Magento, nous échangerons le local.xml fichier lors du déploiement. De cette façon, sans changer manuellement d’identifiants, le app / etc / local.xml le fichier aura automatiquement les informations d'identification de la base de données locale en développement, mais les informations d'identification de la base de données de production sur Pagoda Box.

Créer un fichier local.xml pour la production

Tout d’abord, créez un répertoire nommé pagode dans la racine, puis copie de Magento app / etc / local.xml vers le nouveau répertoire.

Ensuite, éditez local.xml inclure les informations d'identification de la base de données Pagoda Box à partir du tableau de bord de votre compte. Notez que Pagoda Box utilise 3 niveaux d'authentification, de sorte que même si vos informations d'identification sont compromises, les autres utilisateurs ne peuvent pas accéder à votre base de données..

Permuter les configurations locales.xml lors du déploiement

Ajoutez ce qui suit dans votre Boxfile, sous le web1 section pour créer le crochet de déploiement.

 after_build: "pvoda mv / local.xml app / etc / local.xml"

Votre fichier Boxfile mis à jour devrait ressembler à ceci:

 web1: name: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 extensions_php: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl - soap after_build: - "mv pagoda / local.xml app / etc / local.xml "db1: nom: mag-db type: mysql

Puis validez les modifications et envoyez-les à la Pagoda Box:

 $ git add. $ git commit -m "pagoda config" $ git push pagoda --all

Étape 9: Migrer la base de données

Avec les mêmes outils que vous utilisez pour gérer une base de données locale, vous pouvez gérer en toute sécurité une base de données active sur Pagoda Box. Nous utiliserons Sequel Pro pour cet exemple, mais le processus est similaire pour des outils tels que HeidiSQL..

Exportez votre base de données locale

Lorsque le script d'installation de Magento s'exécutait localement, il créait plusieurs tables dans la base de données locale. Ces tables doivent être migrées en production.

Commencez par exporter votre base de données locale à l’aide de votre gestionnaire de base de données: Fichier> Exporter..

Maintenant, choisissez un emplacement et enregistrez l'exportation.

Établir une connexion sécurisée à la base de données

Maintenant, établissez un tunnel de base de données. À l'aide du client Pagoda Box Terminal, spécifiez l'application dont vous essayez d'accéder à la base de données, ainsi que l'ID du composant de base de données (par exemple, db1), comme dans cet exemple:

 $ pagoda -un tunnel magento -c db1 --OU-- $ pagoda --app = tunnel magento --component = db1

Une fois le tunnel établi, utilisez Sequel Pro (ou similaire) pour vous connecter à la base de données à l'aide de l'hôte et du port fournis par le client du terminal Pagoda…

Et le nom d'utilisateur et mot de passe dans vos informations d'identification de base de données Pagoda. Celles-ci ont été créées automatiquement avec votre base de données et se trouvent dans le tableau de bord Pagoda Box sous le composant base de données (voir exemple à l'étape 8)..

Importer et mettre à jour la base de données de production

Ensuite, importez votre base de données en production à l’aide de Sequel Pro (ou similaire): Fichier> Importer. Maintenant, sélectionnez le fichier d'exportation de la base de données, puis ouvrez.

Enfin, puisque nous avons exécuté le script d'installation localement, il est nécessaire d'ajuster l'URL de base directement dans la base de données avant de naviguer sur le site. Pendant que vous êtes toujours connecté à la base de données Pagoda Box dans Sequel Pro, naviguez / filtrez vers le core_config_data table et éditez la valeur pour les chemins suivants:

 web / unsecure / base_url web / secure / base_url

Les valeurs pour chacun devraient ressembler à ceci:


Étape 10: Configurer le courrier

Pour protéger vos adresses IP contre le spam, Pagoda Box utilise le protocole de messagerie SMTP pour envoyer des e-mails via les informations d'identification SMTP du fournisseur de messagerie tiers. En anglais, cela signifie que vous avez besoin d’une entreprise (comme Gmail) fournissant des services de messagerie..

Quel que soit le fournisseur de messagerie que vous choisissez, entrez les informations d'identification du compte de ce fournisseur dans votre tableau de bord Pagoda Box. Ça devrait ressembler a quelque chose comme ca:


Étape 11: Travaux cron (facultatif)

Quelques tâches récurrentes dans Magento (par exemple, envoi de lettres d’information, nettoyage des journaux, notifications des clients, etc.) doivent être exécutées périodiquement. le cron.php Le fichier situé à la racine de Magento déclenchera ces tâches. Nous allons configurer une tâche Cron dans le panneau d’administration de Pagoda Box pour exécuter cron.php toutes les 15 minutes. (Remarque: pour configurer des tâches spécifiques à Magento, voir leur Guide officiel.)

Cron Jobs dans le Boxfile

Les tâches Cron peuvent être ajoutées ou mises à jour via le fichier Boxfile, puis déployées dans Pagoda Box. Pour planifier une tâche à intervalles de 15 minutes, ajoutez ce qui suit à votre fichier Box sous le fichier web1: composant (modifiez le "magento" pour qu'il pointe vers votre propre nom / sous-domaine d'application):

 cron: - "* / 15 * * * *": "curl -s -o / dev / null http://magento.pagodabox.com/cron.php"

Votre fichier Boxfile mis à jour devrait ressembler à ceci:

 web1: name: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 extensions_php: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl - soap after_build: - "mv pagoda / local.xml app / etc / local.xml "cron: -" * / 15 * * * * ":" curl -s -o / dev / null http://magento.pagodabox.com/cron.php "db1: nom: mag -db type: mysql

Autre: tâches Cron dans le tableau de bord

Dans le panneau d'administration de Pagoda Box, sous l'onglet Cron, ajoutez ce qui suit (changez le "magento" pour qu'il pointe vers votre propre nom d'application):

Commander: curl -s -o / dev / null http://magento.pagodabox.com/cron.php

Programme: * / 15 * * * *

Ça devrait ressembler à ça:


Partie 2 - Optimisation: Redis, mise à l'échelle et analyse comparative

Vous avez déjà résolu le problème. Votre application Magento est évolutive et les modifications sont facilement déployées sur toutes les instances avec $ git push pagoda --all.

Dans l'article qui suit, nous allons optimiser Magento, ajouter un cache Redis, des alias SSL et des alias de domaine, puis redimensionner l'application pour des analyses comparatives et la production. À bientôt!