[XamarinDay] Deep dive des produits Xamarin part 2
[GAB2016] Azure App Service - Marius Zaharia
1. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
1
Azure App Service,
plus fortement
(focus sur App Service Environment)
Marius Zaharia
2. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Glossaire Azure
• Azure App Service – vue générale
• App Service standard: limitations
• Introducing « App Service Environment »
• Description et architecture d'un ASE
• Configuration (plus) avancée
• Tableau comparatif avec App Service classique
• Problématiques, points d'attention
• ASE : regard vers le future… (en première !)
• Conclusion
SOMMAIRE
2
3. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Marius Zaharia
3
• Architecte senior chez Cellenza
• Azure MVP & Azure Advisor
• P-SELLER Microsoft – Cloud Platform & Azure Dev
• Community manager - AZUG.FR
• Organisateur Global Azure Bootcamp 2013, 2014, 2015, 2016
• blog.cellenza.com | blog.lecampusazure.net
• @lecampusazure
• marius.zaharia@cellenza.com | marius@lecampusazure.net
Cellenza est un cabinet de conseil, d’expertise
technique et de réalisation, exclusivement dédié aux
technologies Microsoft et aux méthodes agiles.
4. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Web Apps (a.k.a. Web Sites)
• Mobile Apps
• API Apps
• Logic Apps
• Web Jobs, Functions
• Visual Studio Team Services (a.k.a. Visual Studio Online)
• Déploiement classique vs ARM
• VNET, Subnet, NIC
• Infrastructure génération v1 vs v2
• Access Control List (ACL) vs Network Security Group (NSG)
• VPN: S2S IPSec, ExpressRoute; P2S
• Load balancers: Public (LB) / Internal (ILB)
• Translation de ports (NAT)
• Web Application Firewall (WAF) – appliance virtuelle
Glossaire Azure (+/-)
4
6. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Plateforme PaaS fondamentale dans Azure
• Héberge Web Apps, Mobile Apps, API Apps, Logic Apps, Web Jobs, Functions, …
• Provisionnement rapide et simplifié, via App Service Plans
– Les Plans correspondent aux charges de calcul (compute) facturées
• Multi-langage: .NET, NodeJS, PHP, Python, Java, …
• Possibilité d’hybridation VNET
– Pour les Plans qui supportent
• Mise à l’échelle manuelle / automatique
• Déploiement continu: VSTS, Github
• Mise en production progressive via des slots multiples
• Journaux et diagnostiques riches
• Debugage « live » à distance possible
• Fonctionnalités de « auto-healing »
Azure App Service – vue générale
6
8. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Free Shared Basic Standard Premium*
(*hors ASE)
Utilisation
Applications de
développement/tes
t
Développement et
test avec des limites
plus hautes
Démarrage avec les
Apps niveau basique
Web Apps, API Apps
ou Mobile Apps à
l’échelle moyenne
Apps dans contexte
entreprise, à grande
échelle
Taille des instances
compute
Partagé Partagé 1/2/4 CPUs 1/2/4 CPUs 1/2/4 CPUs
Espace disque 1 Go 1 Go 10 Go 50 Go 250 Go
Nombre maximal
d'instances
-- -- Jusqu'à 3 Jusqu'à 10 Jusqu'à 20
Contrat SLA -- -- 99,95 % 99,95 % 99,95 %
Web Apps, API Apps
ou Mobile Apps
10 100 Illimité Illimité Illimité
Auto-Scale - - - Oui Oui
Déploiement distribué - - - Oui Oui
Environnements/slots - - - 5 20
Sauvegardes auto - - - 2 50
Azure App Service – niveaux de service
8
9. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Avantages : toute la liste décrite dans « Vue
générale »
• Inconvénients / limitations
– Max 20 unités de calcul / 4CPU => mise à l’échelle limitée
– Isolation des ressources limitée; environnement multi-tenant
– Manque de contrôles de sécurité
– Manque de contrôle ou inspection du trafic entrant ou passant
App Service standard - limitations
9
11. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Un système complet App Service niveau Premium mis
exclusivement à votre disposition
• Correspond à une structure similaire à celle utilisée par
Microsoft derrière App Service « classique »
• Permet d’y déployer exactement les mêmes services (Web
Apps, Mobile, Logic etc.) mais en maitrisant beaucoup plus
d’éléments
• …tout en prenant plus de responsabilités en échange
Qu’est-ce qu’App Service Environment ?
11
13. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Front End Pool: pour équilibrage de charge et terminaison
SSL
• Worker Pools (3): les vraies instances applicatives
• Service Plans: s’appuient sur (une partie ou toutes) les
instances de Worker Pools
• Applications: provisionnées dans les Service Plans
– Niveau portail : provisionnement classique, ou via l’interface ASE (limité)
Description d’un ASE
13
14. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Architecture d’un ASE
14
FEP
WP3
WP1
Service
Plan 3
Service
Plan 1
WP2
Service
Plan 2
VNET
Subnet 1
Subnet 2
Subnet 3
App Service Environment
Azure
15. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Mise à l’échelle / Scale UP
• Tailles Premium uniquement
• Tailles disponibles: P1 (1 CPU), P2,
P3, P4 (8 CPU)
• Front End Pool: minimum P2
(« overhead »)
• Worker Pools (3): choix de taille
du compute par pool; entre P1-P4
– Critère à votre choix. Ex. WP1=P1, WP2=P3,
WP4=P4
ASE : Configuration (plus) avancée
15
16. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Mise à l’échelle / Scale OUT
• Maximum total 50 instances; mais vous payez 55
– Besoin de redondance (fiabilité) et scale-out buffering
• Pools : mise à l’échelle indépendante par pool, dans
la limite du maximum cumulé
• Auto-scale out: multiples critères
• Profilage et set de règles très flexibles
• Formule de « taux d’inflation »
• Alertes sur les évenements de mise à l’échelle
ASE : Configuration (plus) avancée
16
17. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Sécurité
et protection
• L’IP public fixe permet de l’inscrire
dans les listes d’ouverture d’accès
– Cela concerne ainsi le trafic entrant que
sortant
– On peut avoir plusieurs IP statiques par
ASE
– Cependant, impossible d’assigner des
adresses de domaine à des IP
• L’application de NSGs sur les subnets
fera la délimitation des zones
– Ouverture de ports: attention aux ports
prérequis par ASE (usage propre)
• Hybridation: connectivité
VPN/ExpressRoute à demeure
• Utilisation de WAF
ASE : Configuration (plus) avancée
17
18. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Modèle de consommation
– On pré-provisionne (met à l’échelle) les Pools pour couvrir les
besoins de Service Plans
– Ou on modélise (de manière simple ou complexe) la mise à
l’échelle automatique des Pools
– Il y aura toujours une marge de cout supplémentaire en
dessus de la consommation effective
• Instances (1-5) prises par ASE pour la fiabilité / HA
• « Scale-Out Buffer », pour donner plus d’élasticité pendant
la mise à l’échelle
ASE : Configuration (plus) avancée
18
19. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
Fonctionnalité App Service classique ASE
Niveau d’isolation Multi-tenant (pas isolé) Isolé
Spécialisation des ressources Générique 4 pools: 1 Front-End et 3 Workers
Intégration VNET Oui, via VPN P2S Oui, via subnet dédié
- VNET v1 Oui Oui
- VNET v2 Oui Non
Inspection du trafic Non Oui, via WAF dans VNET
Restriction du trafic in/out Non Oui, via NSG
Connectivité à demeure Oui, via VPN Oui, via VPN
IP statique public Non Oui 1 ou plusieurs
IP statique privé Non Non
Mise à l’échelle/Scale UP Oui, F/S/B/S/P1-P3 Oui, P1-P4
Mise à l’échelle/Scale OUT Max 10 (S) / 20 (P) Max 50
Mise à l’échelle auto Oui Oui, mais prévoir « tampon »
Durée de déploiement Rapide/très rapide Lent (>2h)
ASE – Tableaux comparatifs *à jour*
20
21. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• Agilité
– Lent à provisionner (2h)
– Mise à l’échelle longue; faut bien prévoir l’évolution scale-up +
scale-out
• Surcharge de travail de management
• Limitation réseau: VNET v1 uniquement
– Solutions: connexions VNET 2 VNET avec v2, si besoin
• Fiabilité: à surveiller
• PRIX
ASE – problématiques, points d’attention
22
22. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
A venir:
• Plages IP publiques utilisables dans VNET v1
– Effet collatéral éventuel
• Support de ILB devant ASE
• « Peering » entre VNETs v1 et v2
– Palier les contraintes de réseau ASE
ASE – regard vers le future… (en première !)
23
23. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• App Service Environment est un service
complexe qui palie en échange des besoins
très importants des entreprises dans un
contexte de services PaaS
• Garder l’œil en parallèle sur les options et
comparer: App Service vs ASE
Conclusion
24
24. Global Azure Bootcamp#GlobalAzure @AZUGFR PARIS - FRANCE
• https://azure.microsoft.com/en-us/blog/introducing-app-service-
environment/
• https://blog.kloud.com.au/2016/04/05/when-to-use-an-azure-
app-service-environment/
• https://azure.microsoft.com/en-us/documentation/articles/app-
service-app-service-environment-network-architecture-overview/
• https://azure.microsoft.com/fr-fr/documentation/articles/app-
service-web-scale-a-web-app-in-an-app-service-environment/
• https://azure.microsoft.com/fr-fr/documentation/articles/app-
service-app-service-environment-control-inbound-traffic/
Références
25