Présentation utilisée en guise de support lors du Symfony Live 2014 à Paris sur comment migrer rapidement et simplement une application Symfony2 sur Azure. L'exemple se base principalement sur comment migrer son système de stockage de données et sa gestion des fichiers via la mise en place d'un Blob Storage.
7. L’HÉBERGEMENT MICROSOFT AZURE
Microsoft Azure Web Sites
7
App Web
modernes
Parfait si votre
application se compose
de code client-side,
server-side et une base
de données. Forte
scalabilité.
Développement
continue
Déploiement directement
depuis vos dépôts GIT ou
TFS, ou encore via FTP,
Open source
apps
Permet d’instancier un
site professionnel en
quelques clics avec des
CMS comme WordPress,
Joomla!, Drupal,
DotNetNuke et Umbraco.
8. L’HÉBERGEMENT MICROSOFT AZURE
Microsoft Azure Cloud Services (WebRole et WorkerRole)
8
Multi-tier
applications
Applications cloud, où il
est important de séparer
les couches métiers. (i.e.
cache mémoire,
processus asynchrone,
etc.) utilisant à la fois les
WebRole & WorkerRole.
Apps avec
administration
avancée
Applications nécessitant un
utilisateur administrateur,
un accès à distance ou des
droits spécifiques.
Apps avec
configuration
réseau avancée
Applications nécessitant
une configuration
particulière ou avancée
utilisant Windows Azure
Connect ou Windows
Azure Virtual Network.
9. L’HÉBERGEMENT MICROSOFT AZURE
IAAS Microsoft Azure Virtual Machines
9
Applications
existantes
d’entreprise
Faire tourner directement vos
applications existantes dans le
cloud, nécessitant par exemple
SQL server, SharePoint server
ou Active directory.
Porter des images
existantes
Instancier des VM en utilisant
une image depuis la
bibliothèque Azure ou en
envoyant vos propres template
VHD.
Windows ou
Linux
Supporte Windows Server,
mais aussi les distributions
Linux. Possibilité de
connecter des VM avec des
Cloud Services pour exploiter
au maximum les avantages
du PaaS.
13. CHOIX DU WEBRÔLE
Maîtrise des mises en production
Swap « staging »/ « prod »
Auto-scaling
Programmable
Modifiable à la volée
13
Choix historique => fonctionnalités absentes il y a 1 an
20. ABSTRAIRE LES SERVICES E/S
20
Un principe nécessaire
Interfaces de communication communes
Injection des services finaux
Système de stockage de données (ajouter une couche
entre le modèle et la BDD ?)
Gestionnaire de session
Stockage de fichiers
… tout service tiers d’E/S (messages AMQP, Pool mails,
…)
21. UTILISER LE BUNDLE ADAPTÉ
21
Brainsonic/AzureDistributionBundle (github / packagist)
Fork beberlei/AzureDistributionBundle
Suivi des évolutions Microsoft Azure
Suivi des évolutions Symfony2
Mise à disposition de services (sf2) pour accéder aux
services Microsoft Azure
Facilitateur de déploiement sur les Cloud Services
Encapsulation SDK Microsoft
23. SYNTHÈSE
23
Bundles utilisés dans l’exemple
FOS/FOSRestBundle
FOS/FOSUserBundle
KnpLabs/KnpGaufretteBundle
Brainsonic/AzureDistributionBundle
Points d’attention
Penser « modularité »
Concevoir des couches intermédiaires d’abstraction des systèmes d’E/S
Doctrine peu user friendly avec SQLServer, quelques améliorations possibles (éventuellement,
MySQL est disponible sous Azure via le marketplace)
Compatibilité
Génération de packages Cloud Services uniquement disponibles sous Windows
Préférer l’utilisation de Azure Websites (compatible Mac/Linux, déploiement simplifié via git push)
24. VOUS AVEZ DES QUESTIONS…
24
… nous pouvons essayer d’y
répondre