"Node.JS, MariaDb, MongoDb, Python, Ruby on Rails, PHP... toutes ces technologies et beaucoup d'autres ont deux points commun : elles sont Open Source et fonctionnent sur Microsoft Azure.
Faisons un point rapide sur la stratégie de Microsoft sur le sujet et démontrons les atouts d'Azure à travers l'exemple d'un projet web professionnel.
Celui-ci s’appuiera sur des technologies ouvertes : Drupal pour le CMS, PHP pour le langage, Linux pour le système d'exploitation, MariaDB pour la base de données ou encore Redis pour le cache distribué.
En plus d’aborder des nouveautés de l’offre Azure, cette session sera également l’occasion d’aborder les différents types de services disponibles dans Azure (infrastructure, plateforme, applicatif) et les questions à se poser pour choisir entre ceux-ci."
12. Front Drupal
Service de
recherche
Utilisateur Front Drupal
Base de
données
Les dates importantes
2001 Drupal
2010 Drupal 7
2015 Drupal 8
- Objet
- Bundle Symfony
- YML / PSR
- Rendu avec Twig
- Direct. Multilangue
Drush = Drupal Shell
Pourquoi choisir Drupal ?
- CMS Open Source
- Nombreuses
récompensés
- Milliers d’extensions
- Répond aux besoins
fonctionnels
- Gestion des blocs
- Robustre
- …
13. Front Drupal
Choix sur Azure
Service de
recherche
Utilisateur Front Drupal
Base de
données
- Azure Virtual Machine
- Linux + Apache ?
- Linux + Nginx ?
- Windows + IIS ?
- Azure App Service
- Service de plateforme
- Windows + IIS
- Azure App Service sur Linux
- Service de plateforme
- Ubuntu + Apache
21. Base de données
Choix sur Azure
Service de
recherche
Utilisateur Front Drupal
Base de
données
- Azure Virtual Machine
- MySQL ou MariaDB ?
- Machine seule ou cluster ?
- Services externes
- ClearDB Databases
- ClearDB Clusters
- Azure App Service MySQL in-app
- Pas de production
22. Base de données
MariaDB
Service de
recherche
Utilisateur Front Drupal
Base de
données
- Fork de MySQL (2009)
- Développer par le créateur de MySQL
- MariaDB 5.x <=> MySQL 5.x
- Fondation (2013)
- Adopté par les distributions linux
- NewSQL = MySQL + NoSQL
- Des storages engines : MariaDB 10.x
- TokuDB, SphinxSE, Connect, Spider…
- Simplifications
- Outils, DevOps, cluster, déploiement, HA…
- De nombreux contributeurs
- Facebook, Google, Taobao, Twitter, Galera…
MariaDB Galera Cluster
23. Base de données
MariaDB
Service de
recherche
Utilisateur Front Drupal
Base de
données
- Cluster = Grappes de serveurs (réseau)
- Base de données distribué dans un
cluster (MySQL-MariaDB-Percona)
- Solutions
- HA / Pas de perte de transactions /
Scalabilité
- Les plus :
- La réplication synchrone
- Multi-maitre
- Lecture / écriture à tout nœud de cluster
- Réplication parallèle
- Pas de décalage avec les esclaves (slave)
- Pas de transactions perdus
MariaDB Galera Cluster
24. Comment ça fonctionne ?
MariaDB Galera Cluster
- Galera Cluster
- Multi-maître
- Aucune configuration complexe et configuration
- Maintenance et un suivi simplifiée
- SeveralNines (en option)
- Haute disponibilité (HA)
- Equilibrage de la charge (Load Balancing)
- Application
- Robuste pour les applications critiques
- Innovente, rapide et Flexible (vos besoins)
- Disponibilité de déployer facilement
25. Comment ça fonctionne ?
MariaDB Galera Cluster & MaxScale
. Proxy intelligent
. Abstraction Layer
. Dév. des Apps plus rapidement
. Séparation Lectures/écritures,
routeur, filtre pare-feu…
. Modifier et réagir des requetes
à la volée = utile pour la perf., la
dispo…
. Sécurité
. Haute disponibilité
. Facilité la gestion du cluster,
Automatisation
Routage
. Extensibilité
.
33. Connection au nœud MaxScale
<clusterName>.<location>.cloudapp.azure.com
MariaDB Maxscale expose 3 services
- 1 RW de Split Router (readwritesplit) – port 4006
- 1 Ecrire Connection Router (Readconnroute au Nœud Master) – port
4007
- 1 Lire connection Routeur (readconroute au Nœud Slave) - Port 4008
Connection
À MariaDB (Entreprise) Cluster & MariaDB MaxScale
34. Service de recherche
ou de cache distribué ou de CDN ou de …
Service de
recherche
Utilisateur Front Drupal
Base de
données
- Azure Virtual Machine
- Elastic Search
- Solr
- Sphinx
- Services externes
- Algolia
- Azure Search
- Service managé
- Basé sur Elastic Search
41. Notez cette session
Et tentez de gagner un Surface Book
Doublez votre chance en répondant aussi
au questionnaire de satisfaction globale
* Le règlement est disponible sur demande au commissariat général de l’exposition. Image non-contractuelle
Notes de l'éditeur
Christophe : Souvenir des années 2008-2010 où Microsoft commençait à arriver et à proposer de sponsoriser des évènements => inquiétude des organisateurs… Mais il possédait l’étiquette d’un diable
Christophe : aujourd'hui, contribution de Microsoft aux évènements, cela a changé et Microsoft est apprécié dans nos communautés… Microsoft et Linux ont appris à vivre ensemble
Benjat
Vous avez certainement vu cette slide, en provenance de GitHub. Concrètement, cela illustre qu’un certain nombre de projets sont directement gérés sur GitHub.
Donc quand on parle d’Open Source chez Microsoft, cela commence par là : le nombre de projets directement gérés en Open Source
Owner : benjat
Et pour être très concret, voici quelques annonces de ces derniers mois :
SQL Server sur Linux, choses inimaginable il y a encore quelques années.
PowerShell, le shell de Windows adoré par les administrateurs Windows mais qui avait besoin d’un coup de pouce pour prendre de l’ampleur. Disponible maintenant sur Linux et en Open Source !
Et une annonce super importante pour les développeurs : l’intégration dans Windows 10 d’un sous système Ubuntu, qui permet de faire tourner des binaires linux dans Bash directement sur Windows.
Contribution : Christophe sur Bash on Windows
Benjat : pitch habituelle OSS et Azure
Benjat : pitch habituelle plateforme Open Source
Benjamin
Prenons aujourd’hui l’exemple d’une architecture type, comme prétexte pour quelques démonstrations de l’intégration dans Azure de technologies Open Source
Christophe sur le déploiement continu
Christophe : parler de la première étape : Drupal
Benjamin : expliquer les différentes façons d’hoster Drupal dans Azure
Benjat
Cleanup de la session
Suppression du répertoire local
Suppression du Resource Group
Préparation de la session :
Dans Bash for Windows:
Symfony new hellosf
Visual Studio code ouvert dans ce répertoire
Dossier "C:\Users\benjat\Desktop\demos\oss" ouvert
Portail Azure ouvert
Vérification http://drupalarchive.azurewebsites.net fonctionnel
Dans le portail Azure
Création d'une nouvelle Web App en S3
Dans Bash, configuration de la solution
Cd hellosf
Git init
Git add .
Git commit -m "initial"
Dans le portail Azure
Switch to PHP 5.6, activate Always On and deactivate Affinity cookie
Activate Symfony prod with the following App setting:
SYMFONY_ENV=prod
Activate local git repository
Copy the Git endpoint
Dans Bash, configuration du déploiement
git remote add azure <Git URL>
azure site deploymentscript --php -t bash
Dans Visual Studio Code
Amélioration du script de déploiement en reprenant les éléments sur le bureau
Dans Bash
Git add .
Git commit - m "Update deployment script"
Git push azure master
Dans le browser, aller sur http://symfonyexperiences.azurewebsites.net/
Constater qu'on a un problème de droit
Aller sur web/app.php
Dans Visual Studio Code
Créer le fichier web.config
Dans Bash, si le déploiement est terminé
Git add .
Git commit -m "Add web.config"
git push azure master
Dans le portail Azure
Montrer l'app service plan linux, la web app et browser
christophe
christophe
christophe
christophe
christophe
christophe
Benjat
Christophe
Christophe
Améliore la HA, But : Augmenter la disponibilité, Facile la montée en charge, Permet une répartition de la charge, Facilite la gestion des ressources (Proc, RAM, DD...)
Christophe
1 graph avec du cluster et load balancer
Christophe
1 graph avec du cluster et load balancer
Christophe
Démo de la mise en place d’un cluster MariaDB
christophe
christophe
christophe
christophe
christophe
christophe
christophe
Benjat
Benjat
Dans le portail Azure
Création d'un tenant Azure Search dans le même ressource group
Création d'un index products avec un field name
Expliquer le fait qu'il y a ensuite 2 APIS : l'une pour l'indexation et l'autre pour la recherche
Cliquer sur le lien documentation, dans "Documents sur les fonctionnalités" montrez Lucène