App Service Environment est une facette d'App Service peu connue mais qui pourra avoir un impact important dans le monde de l'entreprise. Description du service, cas d'utilisation, démo, concepts avancés, retours d'expérience.
Marius Zaharia - App Service plus fortement - Global Azure Bootcamp 2016 Paris
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