Upload
stephane-escandell
View
1.387
Download
2
Tags:
Embed Size (px)
DESCRIPTION
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.
Citation preview
SYMFONY2 ET MICROSOFT AZUREL’efficacité de PHP dans le cloud
Symfony Live Paris 20148 Avril 2014
2
QUI SOMMES-NOUS ?
• JÉRÔME RESPAUT– Lead Dev – Brainsonic– [email protected]
• STÉPHANE ESCANDELL– CP Technique – Brainsonic– [email protected]
@BrainsonicParis
3
BRAINSONICBLENDED AGENCY1.
4
10M
110EMPLOYEES
NOS PARTENAIRES STRATEGIQUES
DE CHIFFRE D’AFFAIRES
BRAINSONIC
5
CONTENU DE MARQUE
RÉSEAUX SOCIAUX
EXPÉRIENCESCONNECTÉES
EngagementUtilisateurs
PLATFORMS
– Au service de l’engagement de vos audiences
Brainsonic est une « Blended Agency » : qui combine des compétences éditoriales, créatives et techniques, via des prestations de service et des plateformes logicielles.
EQUIPE BLENDED(CREA, EDITO, DEV)
OUTILLAGE& PROCESS
DELIVERY& ROI
6
MICROSOFT AZURE2.
7
L’HÉBERGEMENT MICROSOFT AZURE
Microsoft Azure Web Sites
App Web modernesParfait si votre application se compose de code client-side, server-side et une base de données. Forte scalabilité.
Développement continueDéploiement directement depuis vos dépôts GIT ou TFS, ou encore via FTP,
Open source appsPermet 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)
Multi-tier applicationsApplications 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éeApplications nécessitant un utilisateur administrateur, un accès à distance ou des droits spécifiques.
Apps avec configuration réseau avancéeApplications 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
Applications existantes d’entrepriseFaire tourner directement vos applications existantes dans le cloud, nécessitant par exemple SQL server, SharePoint server ou Active directory.
Porter des images existantesInstancier des VM en utilisant une image depuis la bibliothèque Azure ou en envoyant vos propres template VHD.
Windows ou LinuxSupporte Windows Server, mais aussi les distributions Linux. Possibilité de connecter des VM avec des Cloud Services pour exploiter au maximum les avantages du PaaS.
10
Web RoleWeb Sites
* Cloud apps (WebRole ou Worker Roles) peuvent utiliser ClearDB MySQL comme un service, à commander via le marketplace, non disponible via le Portail Azure classique.
Accès aux services de Cache, Service Bus, Storage, SQL Azure
Support de ASP.NET, ASP, Node.js, PHP 5.3+
Configuration et contenus partagés
GIT, FTP, TFS
Déploiement quasi instantané
MySQL disponible sous forme de service
Environnements/Préproduction
Configuration réseau avancée
Accès bureau à distance
Droits administrateurs
Start-up tasks
Frameworks ou Libraries non supportés
Service model
Windows Azure Connect/Windows Azure network.
*
Possibilités vs.
CLOUD SERVICES3.
11
12
CHOIX DU WEBRÔLE
Choix historique Besoin de Startup-tasks en admin
Installation modules PHP customs Personnalisation conf php.ini Initialisation Fwk (commandes Symfony) Préparer l’arborescence disque
Debug simplifié via RDP Installation d’applications tierces spécifiques
13
CHOIX DU WEBRÔLE
Maîtrise des mises en production Swap « staging »/ « prod »
Auto-scaling Programmable Modifiable à la volée
Choix historique => fonctionnalités absentes il y a 1 an
14
SERVICES MICROSOFT AZURE
4.
15
CLOUD SERVICES MAIS AUSSI…
Load balancer / endpoints LB Microsoft Azure Storage
SQL database Table storage Blob storage
Microsoft Azure Cache Mobile services Service Bus Media Services
16
INTÉGRATION DANS SYMFONY25.
17
FIL ROUGE
Application « semi-full » REST Authentification Upload image
Fonctionne en local
Migration sur Microsoft Azure
18
One code to rule them all…
19
Pour fabriquer de
la potion magique,
mieux vaut suivre la recette !
20
ABSTRAIRE LES SERVICES E/S
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É
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
22
Concrètement, ça donne
quoi ?
23
SYNTHÈSE
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…
… nous pouvons essayer d’y répondre