SlideShare a Scribd company logo
1 of 47
Microsoft Azure
App Services: technical deep dive
into Web Apps,
DNS, TrafficManager and
Application Gateway
Alexey Bokov / abokov @ microsoft.com / twitter: @abokov
Senior Program Manager
Technical Evangelist and Development team
Microsoft Corp
1) Web application in cloud – end-to-end solution
2) High availability services
1) Azure DNS
2) Traffic Manager
3) Load Balancing
1) Application Gateway
2) Azure Internal Load Balancer
4) API Management, Mobile App, Logical App
5) App Services: Web apps
1) Plans & features
2) Staging environment
3) Web jobs
Contents
Azure Web application principal scheme
End User
http/https
DNS layer
Web app: front-
end
Web app:
backend
Azure DNS
Traffic Manager (load balancing/health check-DNS layer )
Web app: front-end based on AppServices
Backend (may include load balancing services as well)
- Virtual Machines/Service Fabric/Docker Containers/..
- SQL Azure
- Hadoop Cluster
- NoSQL DB
- ….
Load balancing services:
Azure Load Balancer
Application Gateway (Windows Application Firewall )
DNS level :
• Azure DNS
• Traffic Manager
Application level:
• Azure Internal Load Balancer ( ALB )
• Application Gateway
• Web Application Firewall (WAF)
High availability services
High availability services
• Azure DNS is a hosting service for DNS domains
• DNS domains in Azure DNS are hosted on Azure’s global network of DNS
name servers.
• We use Anycast networking DNS query is answered by the closest available
DNS server.
• Currently only domain delegation is supported (??)
• Azure DNS supports all common DNS record types, including A, AAAA,
CNAME, MX, NS, SOA, SRV, and TX, as well as wildcards.
• Note: you can buy domain via Azure.com (somewhere I saw Buy button)
Azure DNS
Works on DNS level, best scenarios:
• Improve availability of critical applications
• Improve responsiveness for high performance applications – allows you to run cloud
services or websites in datacenter (any hosting, not limited to Azure .
• Upgrade and perform service maintenance without downtime
• Combine on-premises and Cloud-based applications – Traffic Manager supports
external, non-Azure endpoints enabling it to be used with hybrid cloud and on-premises
deployments, including the “burst-to-cloud,” “migrate-to-cloud,” and “failover-to-cloud”
scenarios.
• Distribute traffic for large, complex deployments – Traffic-routing methods can be
combined using nested Traffic Manager profiles
Azure Traffic Manager
Traffic routing methods available in Traffic Manager:
• Priority: Select ‘Priority’ when you want to use a primary service
endpoint for all traffic, and provide backups in case the primary or the
backup endpoints are unavailable. For more information, see Priority
traffic-routing method.
• Weighted: Select ‘Weighted’ when you want to distribute traffic across a
set of endpoints, either evenly or according to weights which you define.
For more information, see Weighted traffic-routing method.
• Performance: Select ‘Performance’ when you have endpoints in
different geographic locations and you want end users to use the
"closest" endpoint in terms of the lowest network latency. For more
information, see Performance traffic-routing method.
Azure Traffic Manager
Azure Traffic Manager: priority routing
Azure Traffic Manager: weighted routing
Azure Traffic Manager: performance routing
Azure Traffic Manager: example
Azure Load Balancer delivers high availability and network performance to your applications. It is a Layer 4 (TCP,
UDP) load balancer that distributes incoming traffic among healthy instances of services defined in a load-balanced
set. o
Azure Load Balancer configuration:
• Load balance incoming Internet traffic to virtual machines. This configuration is known as Internet-facing load
balancing.
• Load balance traffic:
• Between virtual machines in a virtual network
• between virtual machines in cloud services
• between on-premises computers and virtual machines in a cross-premises virtual network ( internal load
balancing )
• Forward external traffic to a specific virtual machine.
All resources in the cloud need a public IP address to be reachable from the Internet. Within the cloud infrastructure,
Microsoft Azure uses non-routable IP addresses for its resources. Azure uses network address translation (NAT) with
public IP addresses to communicate to the Internet.
Azure Internal Load Balancer
Hash-based distribution :
• By default, it uses a 5-tuple (source IP, source port, destination IP, destination port, and protocol type) hash to
map traffic to available servers.
• Stickiness only within a transport session.
• Packets in the same TCP or UDP session will be directed to the same instance behind the load-balanced
endpoint.
• When the client closes and reopens the connection or starts a new session from the same source IP, the source
port changes. This may cause the traffic to go to a different endpoint in a different datacenter.
Port forwarding
Automatic reconfiguration during scale up/down
Service monitoring by probes:
• Guest agent probe (on PaaS VMs only): utilizes the guest agent inside the virtual machine – check to HTTP 200
• HTTP custom probe: Probe your endpoint on instance each 15 sec for TCP ACK or HTTP 200 within the timeout period.
• TCP custom probe: relies on successful TCP session establishment to a defined probe port.
Azure Load Balancer features
Azure Load Balancer distribution modes
IP Affinity mode: use (Source IP, Destination IP, Protocol) to map traffic
Hash based mode: use (source IP, source port, destination IP, destination port, protocol type) hash to map
traffic, stickiness only within a transport session
Azure Application Gateway
Requests balancing/routing, firewall features and health checking
Azure Application Gateway
Application Gateway currently supports layer-7 application delivery for the following:
• HTTP load balancing
• Cookie-based session affinity
• Secure Sockets Layer (SSL) offload
• URL-based content routing
• Multi-site routing
HTTP layer 7 load balancing is useful for:
• Applications that require requests from the same user/client session to reach the same back-end
virtual machine.Examples of these applications would be shopping cart apps and web mail servers.
• Applications that want to free web server farms from SSL termination overhead.
• Applications, such as a content delivery network, that requires multiple HTTP requests on the same
long-running TCP connection to be routed or load balanced to different back-end servers.
Azure Application Gateway
The following table shows an average performance throughput for each application gateway instance:
Azure Application Gateway:
Web Application Firewall (WAF )
Web Application Firewall
Baseline protection against most of the OWASP top 10 common web vulnerabilities.
• SQL injection protection
• Cross site scripting protection
• Common Web Attacks Protection such as command injection, HTTP request smuggling, HTTP response splitting,
and remote file inclusion attack
• Protection against HTTP protocol violations
• Protection against HTTP protocol anomalies such as missing host user-agent and accept headers
• HTTP DoS Protections including HTTP flooding and slow HTTP DoS prevention
• Prevention against bots, crawlers, and scanners
• Detection of common application misconfigurations (i.e. Apache, IIS, etc)
OWASP = Open Web Application Security Project - owasp.org/
Web Application Firewall
Application Gateway WAF can be configured to run in the following two modes:
Detection mode – WAF monitors and logs all threat alerts into a log file:
• Logging diagnostics for Application Gateway should be ON in Diagnostics section.
• WAF log is selected and turned ON
Prevention mode – blocks intrusions and attacks detected by its rules:
• The attacker receives a 403 unauthorized access exception and the connection is terminated.
• Prevention mode continues to log such attacks in the WAF logs.
Another option for Firewall is to use Barracuda application firewall in front of web facing apps.
Application Gateway vs Load Balancer
Azure App Services
AppServices: Mobile Apps
• Authentication and Authorization - based on Oauth 2.0:
Azure Active Directory for enterprise authentication, Facebook,
Google, Twitter, Microsoft Account…
• Data Access - OData v3 data source linked to SQL Azure/on-premises SQL Server. Entity Framework with integration to
noSQL and SQL data providers, including Azure Table Storage, MongoDB, DocumentDB and SaaS API providers like Office
365 and Salesforce.com.
• Offline Sync - Our Client SDKs helps to build apps that operate with an offline data set that can be automatically
synchronized with the backend data, including conflict resolution support.
• Push Notifications – Azure Notification Hubs, allowing you to send push notifications to millions of users simultaneously.
• Client SDKs - Native development (iOS, Android, Windows), cross-platform development (Xamarin for iOS and Android,
Xamarin Forms) and hybrid application development (Apache Cordova). Each client SDK is available with an MIT license
and is open-source.
App Services: Mobile Apps
Easy management for API calls and handlers
Integration with Notification Hub to manage Push notifications
Built-in portal features – quick start templates for client
apps
Azure Notification Hub
1. Multiple platforms:
• Support for all major mobile platforms
• Common interface to send notifications to all supported platforms.
• Device handle management.
2. Works with any back-end: Cloud or on-premises, any programming language .NET, PHP, Java, Node…
3. Scale: Notification hubs scale to millions of devices without the need to re-architect or shard.
4. Rich set of delivery patterns:
• Broadcast: allows for near-simultaneous broadcast to millions of devices with a single API call.
• Unicast/Multicast: Push to tags representing individual users, including all of their devices; or wider group; for
example, separate form factors (tablet vs. phone).
• Segmentation: Push to complex segment defined by tag expressions (for example, devices in New York following the
Yankees).
5. Personalization: Each device can have one or more templates, to achieve per-device localization and personalization
without affecting back-end code.
6. Security: Shared Access Secret (SAS) or federated authentication.
AppServices: Management API• Reuse. Support legacy APIs without rewriting them
• Access without headaches. Provide developers with access to APIs easily and automatically
• Security. Secure backend systems and protect APIs against rogue use or overuse
• Visibility. Measure which APIs are being used, how much, and by whom
API gateway:
• Accepts API calls and routes them to your backends.
• Verifies API keys, JWT tokens, certificates, and other credentials.
• Enforces usage quotas and rate limits.
• Transforms your API on the fly without code modifications.
• Caches backend responses where set up.
• Logs call metadata for analytics purposes.
Publisher portal is the administrative interface where:
• Define or import API schema, package APIs into products.
• Set up policies like quotas or transformations on the APIs.
• Get insights from analytics
• Manage users.
Developer portal :
• Try out an API via the interactive console.
• Create an account and subscribe to get API keys.
App Services: Logic AppsLogic Apps - way to simplify and implement scalable integrations and
workflows in the cloud.
It provides a visual designer to model and automate your process as a series
of steps i.e. workflow.
• Workflow - Logic Apps provides a graphical way to model your business
processes as a series of steps or a workflow.
• Managed Connectors - Your logic apps need access to data and services.
• Triggers - starts a new instance of a workflow based on a specific even
• Actions - Each step after the trigger in a workflow is called an action.
• Enterprise Integration Pack - For more
• advanced integration scenarios, Logic Apps
• includes capabilities from BizTalk.
App Service plans
Recommended for try/dev/test or personal usage.
• Free = try for free
• Basic = host very basic applications
• Shared = more advanced for dev/test
Recommended for commercial production workloads
• Standard = Go live with web and mobile
• Premium = Enterprise scale and integration
Free Basic Shared Standard Premium
Number of apps 10 100 Unlimited Unlimited Unlimited
Disk space 1 GB 1 GB 10 GB 50 GB 500 GB
Max instances -- -- Up to 3 Up to 10 Up to 50
SLA -- -- 99.95% 99.95% 99.95%
Auto scale -- -- -- Supported Supported
Geo-distributed
environment
-- -- -- Supported Supported
VPN connectivity -- -- -- Supported Supported
App Service plans: continue
Free Basic Shared Standard Premium
Custom domain 10 100 Unlimited Unlimited Unlimited
SSL certificates -- -- Unlimited SNI SSL
certs
Unlimited SNI SLL
+ 1 IP SSL included
Unlimited SNI SLL
+ 1 IP SSL included
Auto backups/day -- -- Up to 3 Up to 10 Up to 50
Active mobile
devices
500 / day 500 / day Unlimited Unlimited Unlimited
Offline sync/day 500 calls 1k calls 1k calls Unlimited Unlimited
Staging
environment
-- -- -- 5 20
App Service plans: continue
Autoscale : by schedule or automatically by CPU level (average for all instances!).
Geo-distributed environment: You can use different geo-locations for web-sites under same Service Plan.
VPN: Site-to-Site and Point-to-Site VNETs connection
Auto backups: backup App configuration, file content and Azure SQL Database/Azure MySQL connected to app, into
storage account by schedule.
Active mobile devices: related to push/call notifications for mobile devices via Notification Hub.
Offline sync: sync for mobile apps under Azure Mobile Apps, for offline mode.
Staging environments: support for staging, including split requests for different environments in the same time
Azure Websites Features & Capabilities
Enterprise-class
Designed for secure mission-critical applications
Global scale
Optimized for Availability and Automatic scale
Built for DevOps
Agility through Continuous Deployment
Hybrid Connections / VPN Support
Scheduled Backup
Azure Active Directory Integration
Site Resiliency, HA, and DR
Web Jobs
Role Base Access Control
Audit / Compliance
Enterprise Migration
Client Certs
Redis Caching
IP Restrictions/ SSL
Web Sockets
SQL, MySQL, DocDB, & Mongo
Automated Deployment
AutoScale
Built-in Load Balancing
WW Datacenter Coverage
End Point Monitoring & Alerts
App Gallery
DR Site Support
WildCard Support
Dedicated IP address
HTTP Compression
WebJobs
Sticky Sessions
Remote Debugging w/ Visual Studio
Site Staging Slots
Testing in Production
Continuous Integration/Deployment
Git, Visual Studio Online and GitHub
App & Site Diagnostics
OS & Framework Patching
Site Extensions Gallery
NET, PHP, Python, Node, Java
Framework Installer
Browser-based editing
Auto-Healing
Logging and Auditing
Staged Publishing
I- Development and Deployment
Staging
Production
swap
Developer
Production
Developer
Testing in Production
I- Development and Deployment
Staging
Production
swap
Developer
100% production.com
Testing in Production
I- Development and Deployment
Staging
Production
swap
Developer
80% production.com
20% production.com
Kudu
https://<mySite>.scm.azurewebsites.net/
• * Authenticated
• * Runs in the same security
• context as the main site
* Can access the site files and
• environment variables
• * Great for admin and debugging
II- Debugging and Investigations
III- Management and Administration
Azure Portal(s)
IIS Manager
PowerShell
xplat CLI
Visual Studio Azure APIAzure Web Site
App Services: webjobs
FTP:
• For triggered job copy everything into:
site/wwwroot/app_data/jobs/triggered/{job name}
• For continuous job copy everything info:
site/wwwroot/app_data/jobs/continuous/{job name}
SDK REST API:
For example PUT /api/zip/site/wwwroot/App_Data/jobs/continuous/{job name}/
Azure portal:
Upload zip file via visual interface
• .cmd, .bat, .exe (using windows cmd)
• .ps1
• .sh
• .php
• .py
• .js
• .jar
App Services: webjobs execution process
• Archive extracted to temporary folder ( path for that folder is %WEBJOBS_PATH% )
• Search file by mask run.{file type extension} (for exampe run.cmd or run.exe )
• If nothing like that found, then search for first file with extension from that list accordingly they order:
.cmd, .bat, .exe, .ps1, .sh, .php, .py, .js
• Lookup only in root folder, non recursive search
• We always recommend to use run.cmd as batch file for webjob
Interfaces to manage WebJob
• File system structure: sitewwwrootApp_Datajobs{job type}{job name}
• Web accessible (via POST)
https://{sitename}.scm.azurewebsites.net/api/webjobs/triggered/{webjobname}/run
• Web UI: https://{sitename}.scm.azurewebsites.net/azurejobs/#/jobs
• Web site data d:home ( %HOME% )
• When started WebJobs is copied to temp folder ( see %WEBJOBS_PATH% ) and run there
• For storing and processing data we recommend to use:
%WEBROOT_PATH%App_Datajobs%WEBJOBS_TYPE%%WEBJOBS_NAME%
or %WEBJOBS_DATA_PATH%
• Configuration settings available there (via GET) :
https://{sitename}.scm.azurewebsites.net/api/webjobs
WebJob settings
• WEBJOBS_RESTART_TIME – timeout in seconds between when a continuous job's process goes down
(for any reason) and the time we re-launch it again (Only for continuous jobs).
• WEBJOBS_IDLE_TIMEOUT –Time in seconds after which we'll abort a running triggered job's process if
it's in idle, has no cpu time or output (Only for triggered jobs).
• WEBJOBS_HISTORY_SIZE –Maximum number of runs kept in the history directory for a triggered job.
The default is 50.
• WEBJOBS_STOPPED – Set this setting to 1 to disable running any job (will also stop all currently running
jobs).
Graceful shutdown
There’s some cases when we need to stop web job and we can let job to know about that before we will
stop it
Shutdown of job may happened:
• Restart/stop/changes of settings of web site /web.config/
• Stop job via REST API
• Update web job file
How it works:
• Continuous jobs: we create a file %WEBJOBS_SHUTDOWN_FILE% and after that file created web job
have 5 seconds to manage shutting down. So you should monitor that file as shutdown trigger event
with 5 seconds timeout
• Triggered jobs: by default 30 seconds of delay
Web jobs settings : settings.job
Location of ‘settings.job’ is same root folder where job batch file is placed
• By default for all jobs ( except .JS ) each run all files are copied in temporary folder
%TEMP%jobs{job type}{job name}{random name} and this is place where we run job
• Another option is to run in place – here we run job in location of job file ( wwwroot/app_data/job,…. )
You can turn this option in settings.job by using { "is_in_place": true }
• In addition you may change waiting time param
{ "stopping_wait_time": 60 }
Web jobs – environment variables
Variable name Description Example
HOME Web site root directory D:home
WEBJOBS_DATA_PATH Job data directory D:homedatajobstypename.
WEBJOBS_NAME Job name
WEBJOBS_PATH
Temporary directory, where job is
running
C:DWASFilesSites~1sitenameTem
pjobstypenamelpej4hrk.fks
WEBJOBS_RUN_ID
An unique ID of the job run (an UTC
timestamp of the run). There’s a data
folder created for every run in
%WEBJOBS_DATA_PATH%%WEBJO
BS_RUN_ID%
201409090707416329
WEBJOBS_TYPE Job type triggered or continuous
WEBROOT_PATH Web site root directory D:homesitewwwroot
WEBSITE_SITE_NAME Web site name
Web job example-print current time to file
@echo off
set LOG=%WEBJOBS_DATA_PATH%%WEBJOBS_RUN_ID%session.log
echo WEBJOBS_PATH is %WEBJOBS_PATH%
echo Running script... >> %LOG%
date >>%LOG%
set RESULT=%ERRORLEVEL%
echo Result code is %RESULT%
rem Dumping session log to Azure log (standard output) when it exists
if exist %LOG% (
echo Session log:
type %LOG%
)
rem Propagating exit code to Azure
exit %RESULT%
Failover – main hosting on-premise, Azure- backup
Azure DNS:
*.cloudtechnologies.org CNAME cloudtechnologies-org.trafficmanager.net
Azure Traffic Manager profile:
DNS layer: cloudtechnologies-org.trafficmanager.net Priority Routing (failover )
Endpoint list:
default (priority 1) - External (on-premise) hosting: infobox.cloudtechnologies.org ( IP = 92.243.94.73 )
1st backup (priority 2) – Azure Web App: cloudtechnologies-org.azurewebsites.net
2nd backup ( priority 3) – Azure Linux Web App: cloudtech-org-linux-php.azurewebsites.net
Application gateway load balancing
Azure DNS:
gateway.cloudtechnologies.org A record = 52.164.244.33
Azure Application Gateway ( Web Application Firewall is ON )
URL= 52.164.244.33 ( 68a951a5-e787-4cd5-a2a3-4f8e1ce2bfc1.cloudapp.net )
Backend pool (appGatewayHttpListener with rule1 (no Cookie affinity, 80)):
InfoBox hosting: infobox.cloudtechnologies.org ( DNS A record IP = 92.243.94.73 )

More Related Content

What's hot

Cf summit2014 roadmap
Cf summit2014 roadmapCf summit2014 roadmap
Cf summit2014 roadmap
James Bayer
 
App fabric hybrid computing
App fabric   hybrid computingApp fabric   hybrid computing
App fabric hybrid computing
Hammad Rajjoub
 

What's hot (20)

Introduction to Windows Azure
Introduction to Windows AzureIntroduction to Windows Azure
Introduction to Windows Azure
 
Demystifying azure networking for on premises-azure databases
Demystifying azure networking for on premises-azure databasesDemystifying azure networking for on premises-azure databases
Demystifying azure networking for on premises-azure databases
 
Azure integration in dynamic crm
Azure integration in dynamic crmAzure integration in dynamic crm
Azure integration in dynamic crm
 
Microservice Come in Systems
Microservice Come in SystemsMicroservice Come in Systems
Microservice Come in Systems
 
Azure signalr service
Azure signalr serviceAzure signalr service
Azure signalr service
 
Routing in the cloud
Routing in the cloudRouting in the cloud
Routing in the cloud
 
Cf summit2014 roadmap
Cf summit2014 roadmapCf summit2014 roadmap
Cf summit2014 roadmap
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
 
Load Balancers vs IIS ARR or a Web Application Proxy (WA) for HA
Load Balancers vs IIS ARR or a Web Application Proxy (WA) for HALoad Balancers vs IIS ARR or a Web Application Proxy (WA) for HA
Load Balancers vs IIS ARR or a Web Application Proxy (WA) for HA
 
Delivering Hybrid Cloud Solutions on Microsoft Azure
Delivering Hybrid Cloud Solutions on Microsoft AzureDelivering Hybrid Cloud Solutions on Microsoft Azure
Delivering Hybrid Cloud Solutions on Microsoft Azure
 
Azure Service Endpoints vs. Private Links
Azure Service Endpoints vs. Private LinksAzure Service Endpoints vs. Private Links
Azure Service Endpoints vs. Private Links
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systems
 
Oracle UCM Security: Challenges and Best Practices
Oracle UCM Security: Challenges and Best PracticesOracle UCM Security: Challenges and Best Practices
Oracle UCM Security: Challenges and Best Practices
 
Google Cloud Platform Certification Cloud Architect Exam Prep Review Virtual ...
Google Cloud Platform Certification Cloud Architect Exam Prep Review Virtual ...Google Cloud Platform Certification Cloud Architect Exam Prep Review Virtual ...
Google Cloud Platform Certification Cloud Architect Exam Prep Review Virtual ...
 
App fabric hybrid computing
App fabric   hybrid computingApp fabric   hybrid computing
App fabric hybrid computing
 
AWS Webinar: How to architect and deploy a multi tier share point server farm...
AWS Webinar: How to architect and deploy a multi tier share point server farm...AWS Webinar: How to architect and deploy a multi tier share point server farm...
AWS Webinar: How to architect and deploy a multi tier share point server farm...
 
Four Levels of High Availability in Cloud Foundry (Cloud Foundry Summit 2014)
Four Levels of High Availability in Cloud Foundry (Cloud Foundry Summit 2014)Four Levels of High Availability in Cloud Foundry (Cloud Foundry Summit 2014)
Four Levels of High Availability in Cloud Foundry (Cloud Foundry Summit 2014)
 
Microsoft Windows Server AppFabric
Microsoft Windows Server AppFabricMicrosoft Windows Server AppFabric
Microsoft Windows Server AppFabric
 
Amazon WorkSpaces - Fully Managed Desktops in the Cloud
Amazon WorkSpaces - Fully Managed Desktops in the Cloud Amazon WorkSpaces - Fully Managed Desktops in the Cloud
Amazon WorkSpaces - Fully Managed Desktops in the Cloud
 
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at UberWSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at Uber
 

Viewers also liked

IoT across devices with Windows 10 and Azure IoT Suite by Admir Tuzović
IoT across devices with Windows 10 and Azure IoT Suite by Admir TuzovićIoT across devices with Windows 10 and Azure IoT Suite by Admir Tuzović
IoT across devices with Windows 10 and Azure IoT Suite by Admir Tuzović
Bosnia Agile
 

Viewers also liked (14)

Azure web apps - designing and debugging
Azure web apps  - designing and debuggingAzure web apps  - designing and debugging
Azure web apps - designing and debugging
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.
 
Microsoft Azure Traffic Manager
Microsoft Azure Traffic ManagerMicrosoft Azure Traffic Manager
Microsoft Azure Traffic Manager
 
Enter The Matrix Securing Azure’s Assets
Enter The Matrix Securing Azure’s AssetsEnter The Matrix Securing Azure’s Assets
Enter The Matrix Securing Azure’s Assets
 
Spinnaker for Azure
Spinnaker for AzureSpinnaker for Azure
Spinnaker for Azure
 
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
 
Azure container service overview
Azure container service overviewAzure container service overview
Azure container service overview
 
IoT across devices with Windows 10 and Azure IoT Suite by Admir Tuzović
IoT across devices with Windows 10 and Azure IoT Suite by Admir TuzovićIoT across devices with Windows 10 and Azure IoT Suite by Admir Tuzović
IoT across devices with Windows 10 and Azure IoT Suite by Admir Tuzović
 
Azure Networking: Innovative Features and Multi-VNet Topologies
Azure Networking: Innovative Features and Multi-VNet TopologiesAzure Networking: Innovative Features and Multi-VNet Topologies
Azure Networking: Innovative Features and Multi-VNet Topologies
 
Azure app services API apps
Azure app services API appsAzure app services API apps
Azure app services API apps
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile apps
 
Advanced Load Balancer/Traffic Manager and App Gateway for Microsoft Azure
Advanced Load Balancer/Traffic Manager and App Gateway for Microsoft AzureAdvanced Load Balancer/Traffic Manager and App Gateway for Microsoft Azure
Advanced Load Balancer/Traffic Manager and App Gateway for Microsoft Azure
 
Migrating Existing ASP.NET Web Applications to Microsoft Azure
Migrating Existing ASP.NET Web Applications to Microsoft AzureMigrating Existing ASP.NET Web Applications to Microsoft Azure
Migrating Existing ASP.NET Web Applications to Microsoft Azure
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Similar to Azure Web App services

Similar to Azure Web App services (20)

Cloud Foundry Technical Overview
Cloud Foundry Technical OverviewCloud Foundry Technical Overview
Cloud Foundry Technical Overview
 
Azure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETAzure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNET
 
Azure App Service Deep Dive
Azure App Service Deep DiveAzure App Service Deep Dive
Azure App Service Deep Dive
 
Project COLA: Use Case to create a scalable application in the cloud based on...
Project COLA: Use Case to create a scalable application in the cloud based on...Project COLA: Use Case to create a scalable application in the cloud based on...
Project COLA: Use Case to create a scalable application in the cloud based on...
 
Oow2016 review--paas-microservices-
Oow2016 review--paas-microservices-Oow2016 review--paas-microservices-
Oow2016 review--paas-microservices-
 
Cloud description
Cloud descriptionCloud description
Cloud description
 
Brocade vADC Portfolio Overview 2016
Brocade vADC Portfolio Overview 2016Brocade vADC Portfolio Overview 2016
Brocade vADC Portfolio Overview 2016
 
The Hitchhiker’s Guide to Hybrid Connectivity
The Hitchhiker’s Guide to Hybrid ConnectivityThe Hitchhiker’s Guide to Hybrid Connectivity
The Hitchhiker’s Guide to Hybrid Connectivity
 
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
 
10052016115136.pptx
10052016115136.pptx10052016115136.pptx
10052016115136.pptx
 
Structure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud FoundryStructure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud Foundry
 
Introduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryIntroduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud Foundry
 
SpringOne Tour: An Introduction to Azure Spring Apps Enterprise
SpringOne Tour: An Introduction to Azure Spring Apps EnterpriseSpringOne Tour: An Introduction to Azure Spring Apps Enterprise
SpringOne Tour: An Introduction to Azure Spring Apps Enterprise
 
Cloud Computing E-Lect.ppt
Cloud Computing E-Lect.pptCloud Computing E-Lect.ppt
Cloud Computing E-Lect.ppt
 
What is Serverless Computing?
What is Serverless Computing?What is Serverless Computing?
What is Serverless Computing?
 
Tokyo azure meetup #8 azure update, august
Tokyo azure meetup #8   azure update, augustTokyo azure meetup #8   azure update, august
Tokyo azure meetup #8 azure update, august
 
Tokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, AugustTokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, August
 
The Basics of Getting Started With Microsoft Azure
The Basics of Getting Started With Microsoft AzureThe Basics of Getting Started With Microsoft Azure
The Basics of Getting Started With Microsoft Azure
 
15-factor-apps.pdf
15-factor-apps.pdf15-factor-apps.pdf
15-factor-apps.pdf
 
Amazon AWS vs Azure Cloud vs Kubernetes
Amazon AWS vs Azure Cloud vs KubernetesAmazon AWS vs Azure Cloud vs Kubernetes
Amazon AWS vs Azure Cloud vs Kubernetes
 

More from Alexey Bokov

All about Azure - Kazan
All about Azure - KazanAll about Azure - Kazan
All about Azure - Kazan
Alexey Bokov
 
Train for trainers event in Warsaw / Intro
Train for trainers event in Warsaw / IntroTrain for trainers event in Warsaw / Intro
Train for trainers event in Warsaw / Intro
Alexey Bokov
 

More from Alexey Bokov (20)

Product Visions and Strategy - crash course for startups
Product Visions and Strategy - crash course for startupsProduct Visions and Strategy - crash course for startups
Product Visions and Strategy - crash course for startups
 
Windows containers troubleshooting
Windows containers troubleshootingWindows containers troubleshooting
Windows containers troubleshooting
 
Monte Carlo modeling in cloud - mc-modeling-sdk
Monte Carlo modeling in cloud - mc-modeling-sdkMonte Carlo modeling in cloud - mc-modeling-sdk
Monte Carlo modeling in cloud - mc-modeling-sdk
 
CAP теорема Брюера и ее применения на практике
CAP теорема Брюера и ее применения на практикеCAP теорема Брюера и ее применения на практике
CAP теорема Брюера и ее применения на практике
 
Creating a gallery image for Azure marketplace
Creating a gallery image for Azure marketplaceCreating a gallery image for Azure marketplace
Creating a gallery image for Azure marketplace
 
All about Azure workshop deck
All about Azure workshop deckAll about Azure workshop deck
All about Azure workshop deck
 
All about Azure - Kazan
All about Azure - KazanAll about Azure - Kazan
All about Azure - Kazan
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Internet of Things in Tbilisi
Internet of Things in TbilisiInternet of Things in Tbilisi
Internet of Things in Tbilisi
 
Azure and web sites hackaton deck
Azure and web sites hackaton deckAzure and web sites hackaton deck
Azure and web sites hackaton deck
 
Asp.net 5 cloud
Asp.net 5 cloudAsp.net 5 cloud
Asp.net 5 cloud
 
Tbilisi hackaton intro
Tbilisi hackaton introTbilisi hackaton intro
Tbilisi hackaton intro
 
Azure for retails
Azure for retailsAzure for retails
Azure for retails
 
Azure for IT pro - TechDays Armenia
Azure for IT pro - TechDays ArmeniaAzure for IT pro - TechDays Armenia
Azure for IT pro - TechDays Armenia
 
Tech day armenia for developers
Tech day armenia   for developersTech day armenia   for developers
Tech day armenia for developers
 
Alexey Bokov key note - TechDays Armenia 2014
Alexey Bokov key note - TechDays Armenia 2014Alexey Bokov key note - TechDays Armenia 2014
Alexey Bokov key note - TechDays Armenia 2014
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014
 
Windows Azure для стартапов
Windows Azure для стартаповWindows Azure для стартапов
Windows Azure для стартапов
 
Train for trainers event in Warsaw / Intro
Train for trainers event in Warsaw / IntroTrain for trainers event in Warsaw / Intro
Train for trainers event in Warsaw / Intro
 
Open source technologies in Microsoft cloud
Open source technologies in Microsoft cloudOpen source technologies in Microsoft cloud
Open source technologies in Microsoft cloud
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Azure Web App services

  • 1. Microsoft Azure App Services: technical deep dive into Web Apps, DNS, TrafficManager and Application Gateway Alexey Bokov / abokov @ microsoft.com / twitter: @abokov Senior Program Manager Technical Evangelist and Development team Microsoft Corp
  • 2. 1) Web application in cloud – end-to-end solution 2) High availability services 1) Azure DNS 2) Traffic Manager 3) Load Balancing 1) Application Gateway 2) Azure Internal Load Balancer 4) API Management, Mobile App, Logical App 5) App Services: Web apps 1) Plans & features 2) Staging environment 3) Web jobs Contents
  • 3. Azure Web application principal scheme End User http/https DNS layer Web app: front- end Web app: backend Azure DNS Traffic Manager (load balancing/health check-DNS layer ) Web app: front-end based on AppServices Backend (may include load balancing services as well) - Virtual Machines/Service Fabric/Docker Containers/.. - SQL Azure - Hadoop Cluster - NoSQL DB - …. Load balancing services: Azure Load Balancer Application Gateway (Windows Application Firewall )
  • 4. DNS level : • Azure DNS • Traffic Manager Application level: • Azure Internal Load Balancer ( ALB ) • Application Gateway • Web Application Firewall (WAF) High availability services
  • 6. • Azure DNS is a hosting service for DNS domains • DNS domains in Azure DNS are hosted on Azure’s global network of DNS name servers. • We use Anycast networking DNS query is answered by the closest available DNS server. • Currently only domain delegation is supported (??) • Azure DNS supports all common DNS record types, including A, AAAA, CNAME, MX, NS, SOA, SRV, and TX, as well as wildcards. • Note: you can buy domain via Azure.com (somewhere I saw Buy button) Azure DNS
  • 7. Works on DNS level, best scenarios: • Improve availability of critical applications • Improve responsiveness for high performance applications – allows you to run cloud services or websites in datacenter (any hosting, not limited to Azure . • Upgrade and perform service maintenance without downtime • Combine on-premises and Cloud-based applications – Traffic Manager supports external, non-Azure endpoints enabling it to be used with hybrid cloud and on-premises deployments, including the “burst-to-cloud,” “migrate-to-cloud,” and “failover-to-cloud” scenarios. • Distribute traffic for large, complex deployments – Traffic-routing methods can be combined using nested Traffic Manager profiles Azure Traffic Manager
  • 8. Traffic routing methods available in Traffic Manager: • Priority: Select ‘Priority’ when you want to use a primary service endpoint for all traffic, and provide backups in case the primary or the backup endpoints are unavailable. For more information, see Priority traffic-routing method. • Weighted: Select ‘Weighted’ when you want to distribute traffic across a set of endpoints, either evenly or according to weights which you define. For more information, see Weighted traffic-routing method. • Performance: Select ‘Performance’ when you have endpoints in different geographic locations and you want end users to use the "closest" endpoint in terms of the lowest network latency. For more information, see Performance traffic-routing method. Azure Traffic Manager
  • 9. Azure Traffic Manager: priority routing
  • 10. Azure Traffic Manager: weighted routing
  • 11. Azure Traffic Manager: performance routing
  • 13. Azure Load Balancer delivers high availability and network performance to your applications. It is a Layer 4 (TCP, UDP) load balancer that distributes incoming traffic among healthy instances of services defined in a load-balanced set. o Azure Load Balancer configuration: • Load balance incoming Internet traffic to virtual machines. This configuration is known as Internet-facing load balancing. • Load balance traffic: • Between virtual machines in a virtual network • between virtual machines in cloud services • between on-premises computers and virtual machines in a cross-premises virtual network ( internal load balancing ) • Forward external traffic to a specific virtual machine. All resources in the cloud need a public IP address to be reachable from the Internet. Within the cloud infrastructure, Microsoft Azure uses non-routable IP addresses for its resources. Azure uses network address translation (NAT) with public IP addresses to communicate to the Internet. Azure Internal Load Balancer
  • 14. Hash-based distribution : • By default, it uses a 5-tuple (source IP, source port, destination IP, destination port, and protocol type) hash to map traffic to available servers. • Stickiness only within a transport session. • Packets in the same TCP or UDP session will be directed to the same instance behind the load-balanced endpoint. • When the client closes and reopens the connection or starts a new session from the same source IP, the source port changes. This may cause the traffic to go to a different endpoint in a different datacenter. Port forwarding Automatic reconfiguration during scale up/down Service monitoring by probes: • Guest agent probe (on PaaS VMs only): utilizes the guest agent inside the virtual machine – check to HTTP 200 • HTTP custom probe: Probe your endpoint on instance each 15 sec for TCP ACK or HTTP 200 within the timeout period. • TCP custom probe: relies on successful TCP session establishment to a defined probe port. Azure Load Balancer features
  • 15. Azure Load Balancer distribution modes IP Affinity mode: use (Source IP, Destination IP, Protocol) to map traffic Hash based mode: use (source IP, source port, destination IP, destination port, protocol type) hash to map traffic, stickiness only within a transport session
  • 16. Azure Application Gateway Requests balancing/routing, firewall features and health checking
  • 17. Azure Application Gateway Application Gateway currently supports layer-7 application delivery for the following: • HTTP load balancing • Cookie-based session affinity • Secure Sockets Layer (SSL) offload • URL-based content routing • Multi-site routing HTTP layer 7 load balancing is useful for: • Applications that require requests from the same user/client session to reach the same back-end virtual machine.Examples of these applications would be shopping cart apps and web mail servers. • Applications that want to free web server farms from SSL termination overhead. • Applications, such as a content delivery network, that requires multiple HTTP requests on the same long-running TCP connection to be routed or load balanced to different back-end servers.
  • 18. Azure Application Gateway The following table shows an average performance throughput for each application gateway instance:
  • 19. Azure Application Gateway: Web Application Firewall (WAF )
  • 20. Web Application Firewall Baseline protection against most of the OWASP top 10 common web vulnerabilities. • SQL injection protection • Cross site scripting protection • Common Web Attacks Protection such as command injection, HTTP request smuggling, HTTP response splitting, and remote file inclusion attack • Protection against HTTP protocol violations • Protection against HTTP protocol anomalies such as missing host user-agent and accept headers • HTTP DoS Protections including HTTP flooding and slow HTTP DoS prevention • Prevention against bots, crawlers, and scanners • Detection of common application misconfigurations (i.e. Apache, IIS, etc) OWASP = Open Web Application Security Project - owasp.org/
  • 21. Web Application Firewall Application Gateway WAF can be configured to run in the following two modes: Detection mode – WAF monitors and logs all threat alerts into a log file: • Logging diagnostics for Application Gateway should be ON in Diagnostics section. • WAF log is selected and turned ON Prevention mode – blocks intrusions and attacks detected by its rules: • The attacker receives a 403 unauthorized access exception and the connection is terminated. • Prevention mode continues to log such attacks in the WAF logs. Another option for Firewall is to use Barracuda application firewall in front of web facing apps.
  • 22. Application Gateway vs Load Balancer
  • 24. AppServices: Mobile Apps • Authentication and Authorization - based on Oauth 2.0: Azure Active Directory for enterprise authentication, Facebook, Google, Twitter, Microsoft Account… • Data Access - OData v3 data source linked to SQL Azure/on-premises SQL Server. Entity Framework with integration to noSQL and SQL data providers, including Azure Table Storage, MongoDB, DocumentDB and SaaS API providers like Office 365 and Salesforce.com. • Offline Sync - Our Client SDKs helps to build apps that operate with an offline data set that can be automatically synchronized with the backend data, including conflict resolution support. • Push Notifications – Azure Notification Hubs, allowing you to send push notifications to millions of users simultaneously. • Client SDKs - Native development (iOS, Android, Windows), cross-platform development (Xamarin for iOS and Android, Xamarin Forms) and hybrid application development (Apache Cordova). Each client SDK is available with an MIT license and is open-source.
  • 25. App Services: Mobile Apps Easy management for API calls and handlers Integration with Notification Hub to manage Push notifications Built-in portal features – quick start templates for client apps
  • 26. Azure Notification Hub 1. Multiple platforms: • Support for all major mobile platforms • Common interface to send notifications to all supported platforms. • Device handle management. 2. Works with any back-end: Cloud or on-premises, any programming language .NET, PHP, Java, Node… 3. Scale: Notification hubs scale to millions of devices without the need to re-architect or shard. 4. Rich set of delivery patterns: • Broadcast: allows for near-simultaneous broadcast to millions of devices with a single API call. • Unicast/Multicast: Push to tags representing individual users, including all of their devices; or wider group; for example, separate form factors (tablet vs. phone). • Segmentation: Push to complex segment defined by tag expressions (for example, devices in New York following the Yankees). 5. Personalization: Each device can have one or more templates, to achieve per-device localization and personalization without affecting back-end code. 6. Security: Shared Access Secret (SAS) or federated authentication.
  • 27. AppServices: Management API• Reuse. Support legacy APIs without rewriting them • Access without headaches. Provide developers with access to APIs easily and automatically • Security. Secure backend systems and protect APIs against rogue use or overuse • Visibility. Measure which APIs are being used, how much, and by whom API gateway: • Accepts API calls and routes them to your backends. • Verifies API keys, JWT tokens, certificates, and other credentials. • Enforces usage quotas and rate limits. • Transforms your API on the fly without code modifications. • Caches backend responses where set up. • Logs call metadata for analytics purposes. Publisher portal is the administrative interface where: • Define or import API schema, package APIs into products. • Set up policies like quotas or transformations on the APIs. • Get insights from analytics • Manage users. Developer portal : • Try out an API via the interactive console. • Create an account and subscribe to get API keys.
  • 28. App Services: Logic AppsLogic Apps - way to simplify and implement scalable integrations and workflows in the cloud. It provides a visual designer to model and automate your process as a series of steps i.e. workflow. • Workflow - Logic Apps provides a graphical way to model your business processes as a series of steps or a workflow. • Managed Connectors - Your logic apps need access to data and services. • Triggers - starts a new instance of a workflow based on a specific even • Actions - Each step after the trigger in a workflow is called an action. • Enterprise Integration Pack - For more • advanced integration scenarios, Logic Apps • includes capabilities from BizTalk.
  • 29. App Service plans Recommended for try/dev/test or personal usage. • Free = try for free • Basic = host very basic applications • Shared = more advanced for dev/test Recommended for commercial production workloads • Standard = Go live with web and mobile • Premium = Enterprise scale and integration Free Basic Shared Standard Premium Number of apps 10 100 Unlimited Unlimited Unlimited Disk space 1 GB 1 GB 10 GB 50 GB 500 GB Max instances -- -- Up to 3 Up to 10 Up to 50 SLA -- -- 99.95% 99.95% 99.95% Auto scale -- -- -- Supported Supported Geo-distributed environment -- -- -- Supported Supported VPN connectivity -- -- -- Supported Supported
  • 30. App Service plans: continue Free Basic Shared Standard Premium Custom domain 10 100 Unlimited Unlimited Unlimited SSL certificates -- -- Unlimited SNI SSL certs Unlimited SNI SLL + 1 IP SSL included Unlimited SNI SLL + 1 IP SSL included Auto backups/day -- -- Up to 3 Up to 10 Up to 50 Active mobile devices 500 / day 500 / day Unlimited Unlimited Unlimited Offline sync/day 500 calls 1k calls 1k calls Unlimited Unlimited Staging environment -- -- -- 5 20
  • 31. App Service plans: continue Autoscale : by schedule or automatically by CPU level (average for all instances!). Geo-distributed environment: You can use different geo-locations for web-sites under same Service Plan. VPN: Site-to-Site and Point-to-Site VNETs connection Auto backups: backup App configuration, file content and Azure SQL Database/Azure MySQL connected to app, into storage account by schedule. Active mobile devices: related to push/call notifications for mobile devices via Notification Hub. Offline sync: sync for mobile apps under Azure Mobile Apps, for offline mode. Staging environments: support for staging, including split requests for different environments in the same time
  • 32. Azure Websites Features & Capabilities Enterprise-class Designed for secure mission-critical applications Global scale Optimized for Availability and Automatic scale Built for DevOps Agility through Continuous Deployment Hybrid Connections / VPN Support Scheduled Backup Azure Active Directory Integration Site Resiliency, HA, and DR Web Jobs Role Base Access Control Audit / Compliance Enterprise Migration Client Certs Redis Caching IP Restrictions/ SSL Web Sockets SQL, MySQL, DocDB, & Mongo Automated Deployment AutoScale Built-in Load Balancing WW Datacenter Coverage End Point Monitoring & Alerts App Gallery DR Site Support WildCard Support Dedicated IP address HTTP Compression WebJobs Sticky Sessions Remote Debugging w/ Visual Studio Site Staging Slots Testing in Production Continuous Integration/Deployment Git, Visual Studio Online and GitHub App & Site Diagnostics OS & Framework Patching Site Extensions Gallery NET, PHP, Python, Node, Java Framework Installer Browser-based editing Auto-Healing Logging and Auditing
  • 33. Staged Publishing I- Development and Deployment Staging Production swap Developer Production Developer
  • 34. Testing in Production I- Development and Deployment Staging Production swap Developer 100% production.com
  • 35. Testing in Production I- Development and Deployment Staging Production swap Developer 80% production.com 20% production.com
  • 36. Kudu https://<mySite>.scm.azurewebsites.net/ • * Authenticated • * Runs in the same security • context as the main site * Can access the site files and • environment variables • * Great for admin and debugging II- Debugging and Investigations
  • 37. III- Management and Administration Azure Portal(s) IIS Manager PowerShell xplat CLI Visual Studio Azure APIAzure Web Site
  • 38. App Services: webjobs FTP: • For triggered job copy everything into: site/wwwroot/app_data/jobs/triggered/{job name} • For continuous job copy everything info: site/wwwroot/app_data/jobs/continuous/{job name} SDK REST API: For example PUT /api/zip/site/wwwroot/App_Data/jobs/continuous/{job name}/ Azure portal: Upload zip file via visual interface
  • 39. • .cmd, .bat, .exe (using windows cmd) • .ps1 • .sh • .php • .py • .js • .jar App Services: webjobs execution process • Archive extracted to temporary folder ( path for that folder is %WEBJOBS_PATH% ) • Search file by mask run.{file type extension} (for exampe run.cmd or run.exe ) • If nothing like that found, then search for first file with extension from that list accordingly they order: .cmd, .bat, .exe, .ps1, .sh, .php, .py, .js • Lookup only in root folder, non recursive search • We always recommend to use run.cmd as batch file for webjob
  • 40. Interfaces to manage WebJob • File system structure: sitewwwrootApp_Datajobs{job type}{job name} • Web accessible (via POST) https://{sitename}.scm.azurewebsites.net/api/webjobs/triggered/{webjobname}/run • Web UI: https://{sitename}.scm.azurewebsites.net/azurejobs/#/jobs • Web site data d:home ( %HOME% ) • When started WebJobs is copied to temp folder ( see %WEBJOBS_PATH% ) and run there • For storing and processing data we recommend to use: %WEBROOT_PATH%App_Datajobs%WEBJOBS_TYPE%%WEBJOBS_NAME% or %WEBJOBS_DATA_PATH% • Configuration settings available there (via GET) : https://{sitename}.scm.azurewebsites.net/api/webjobs
  • 41. WebJob settings • WEBJOBS_RESTART_TIME – timeout in seconds between when a continuous job's process goes down (for any reason) and the time we re-launch it again (Only for continuous jobs). • WEBJOBS_IDLE_TIMEOUT –Time in seconds after which we'll abort a running triggered job's process if it's in idle, has no cpu time or output (Only for triggered jobs). • WEBJOBS_HISTORY_SIZE –Maximum number of runs kept in the history directory for a triggered job. The default is 50. • WEBJOBS_STOPPED – Set this setting to 1 to disable running any job (will also stop all currently running jobs).
  • 42. Graceful shutdown There’s some cases when we need to stop web job and we can let job to know about that before we will stop it Shutdown of job may happened: • Restart/stop/changes of settings of web site /web.config/ • Stop job via REST API • Update web job file How it works: • Continuous jobs: we create a file %WEBJOBS_SHUTDOWN_FILE% and after that file created web job have 5 seconds to manage shutting down. So you should monitor that file as shutdown trigger event with 5 seconds timeout • Triggered jobs: by default 30 seconds of delay
  • 43. Web jobs settings : settings.job Location of ‘settings.job’ is same root folder where job batch file is placed • By default for all jobs ( except .JS ) each run all files are copied in temporary folder %TEMP%jobs{job type}{job name}{random name} and this is place where we run job • Another option is to run in place – here we run job in location of job file ( wwwroot/app_data/job,…. ) You can turn this option in settings.job by using { "is_in_place": true } • In addition you may change waiting time param { "stopping_wait_time": 60 }
  • 44. Web jobs – environment variables Variable name Description Example HOME Web site root directory D:home WEBJOBS_DATA_PATH Job data directory D:homedatajobstypename. WEBJOBS_NAME Job name WEBJOBS_PATH Temporary directory, where job is running C:DWASFilesSites~1sitenameTem pjobstypenamelpej4hrk.fks WEBJOBS_RUN_ID An unique ID of the job run (an UTC timestamp of the run). There’s a data folder created for every run in %WEBJOBS_DATA_PATH%%WEBJO BS_RUN_ID% 201409090707416329 WEBJOBS_TYPE Job type triggered or continuous WEBROOT_PATH Web site root directory D:homesitewwwroot WEBSITE_SITE_NAME Web site name
  • 45. Web job example-print current time to file @echo off set LOG=%WEBJOBS_DATA_PATH%%WEBJOBS_RUN_ID%session.log echo WEBJOBS_PATH is %WEBJOBS_PATH% echo Running script... >> %LOG% date >>%LOG% set RESULT=%ERRORLEVEL% echo Result code is %RESULT% rem Dumping session log to Azure log (standard output) when it exists if exist %LOG% ( echo Session log: type %LOG% ) rem Propagating exit code to Azure exit %RESULT%
  • 46. Failover – main hosting on-premise, Azure- backup Azure DNS: *.cloudtechnologies.org CNAME cloudtechnologies-org.trafficmanager.net Azure Traffic Manager profile: DNS layer: cloudtechnologies-org.trafficmanager.net Priority Routing (failover ) Endpoint list: default (priority 1) - External (on-premise) hosting: infobox.cloudtechnologies.org ( IP = 92.243.94.73 ) 1st backup (priority 2) – Azure Web App: cloudtechnologies-org.azurewebsites.net 2nd backup ( priority 3) – Azure Linux Web App: cloudtech-org-linux-php.azurewebsites.net
  • 47. Application gateway load balancing Azure DNS: gateway.cloudtechnologies.org A record = 52.164.244.33 Azure Application Gateway ( Web Application Firewall is ON ) URL= 52.164.244.33 ( 68a951a5-e787-4cd5-a2a3-4f8e1ce2bfc1.cloudapp.net ) Backend pool (appGatewayHttpListener with rule1 (no Cookie affinity, 80)): InfoBox hosting: infobox.cloudtechnologies.org ( DNS A record IP = 92.243.94.73 )