all about azure workshop deck
TRANSCRIPT
Alexey Bokov
Azure Technical Evangelist, Senior Program Manager
Azure for developers:Linux, Web sites and applications
Why do we need cloud ???
On-premise vs Cloud environment
Usage data depends looks strange
But reality is closer to that
Applications are going to the cloud
2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
Net New Cloud 0% 3% 6% 10% 17% 26% 37% 49% 63% 79% 96%
Replaced to Cloud 11% 13% 15% 18% 22% 26% 30% 35% 39% 44% 49%
Migrated to IaaS 1% 3% 5% 7% 10% 12% 14% 17% 18% 20% 21%
Traditonal 88% 89% 88% 85% 82% 77% 71% 65% 59% 51% 44%
0%
50%
100%
150%
200%
250%
% O
F 2
01
0 A
PP
PO
RT
FO
LIO
300,000
55% of the Fortune 500 companies
₩ ¥
€руб
$
$£
$
Rp
TL
chf
krkr
$R$
$
North Central US
South East Asia/
Singapore
East Asia
/Hong Kong
North Europe/ Dublin
West Europe/
Amsterdam
South Central US
East USWest US
Japan East/
Saitama
Japan West
/ Osaka
Brazil South / San
Paulo (preview)
China South+North/
Vianet21
Microsoft Azure : 13 datacenter locations
Microsoft Azure – Dublin datacenter
Global Foundation Services video : bit.ly/1f1Crh0
Latency in Europe
Global Azure Content Delivery Network
Node locations list on world map
aka.ms/cdn-map
Global Azure Content Delivery Network
Node locations list on world map aka.ms/cdn-map
From\To (ms) North-central US South-central US North Europe West Europe East Asia South-East Asia
North-central US 4.2 35.3 97 103.6 190.9 219.7
South-central US 37.8 2.3 111.2 117.5 190 218.6
North Europe 99.8 111.8 2 20.9 283.3 312.3
West Europe 107.5 118.6 21.1 2.3 291.8 320.8
East Asia 194.5 190.8 284.2 291.7 1.6 32.6
South-East Asia 223.1 219.2 312.9 320.1 32.2 1.9
Cross Data center latencies
Want to try ?Free 30 days trials on azure.com2 year free trial for MSDN members
3 year free trial for BizSpark member
– each BizSpark trial includes 5 MSDN subscriptions
You may try to get Windows Azure Offer $5K/mo for 1 year (
BizSpark+)
25% discount to MSDN members for out-of-limit Azure usage
Discounts via Enterprise Agreements with Microsoft
Microsoft program for startups : BizSpark
Easy to register – bizspark.com3 year free trial for member
– each BizSpark trial includes 5 MSDN subscriptions
You may try to get Windows Azure Offer $5K/mo for 1 year (
BizSpark+)
Case studies
Just a few of them is:
• Olympic games 2014 – we developed and host sochi2014.com, provide online streaming
for NBC Sports
• Xbox games – most of games are back-end on Azure – like Titanfall, Xbox team is biggest internal
customer
• The Romanian Ministry of Education via Siveco uses Azure for high school
admission application, ADLIC, which is used to publish high school entry test scores.
aka.ms/azure-cases
Azure accounts
• Account administrator – purchase subscription, can see all billing info
• Service administrator – can manage subscription, can’t see billing
• Service co-administrator - the like service admin, but can’t add another co-admin
The Service Administrator is a property of each Azure subscription, and it represents a person
who can login to the Developer Portal and develop against a subscription (e.g. deploy to it or
create new resources). Typically, an Account Administrator purchases an Azure subscription,
makes his or her developer the Service Administrator and now the developer can login to the
Developer Portal. A Service Administrator cannot see the subscription’s billing details in the
Billing Portal. The Service Administrator can only be changed in the Billing Portal.
A Co-Administrator is very similar to the Service Administrator, with a small difference – they
are added from within the Developer Portal and there can be multiple Co-Administrators for a
subscription but only one Service Administrator. Similar to the Service Administrator, a Co-
Administrator cannot see billing details.
Azure accounts
Azure accounts
Azure accounts
Accounts setup: standard customer
Accounts setup: enterprise customer
Task #1 – Have Azure account works• Register Azure account
• Login into portal – find account administrator, service administrator
• Check billing page
• Switch between two portals – new and old
• Setup command line tools and configure them
• Use publish settings file for configure tools
Wow, cool platform!
Front-EndFront-End
Windows
Azure
Storage,
SQL Azure
Azure
Load
Balance
r
Virtual MachinesОC: Linux, Windows, vmdepot.msopentech.com
A-series: VM for common usage ( A8-A11 – HPC VMs with high CPU/network requirements )
D-Series: For tasks where we need fast cache-like storage based on SDD
DS-series: When we need SDD persistent storage
G-series: “Godzilla” with huge amount of RAM
A Series – Basic and standard tier
•Availability: Basic tier VM is only available on A0-A4
instances, standard tier VM is available on all size instances
•Disk IOPS: Data disk IOPS for basic tier VM is 300, low
than standard tier VM which has 500 IOPS data disk.
•Price: Single tier VM can have up to 27% less in price
than standard tier VM.
•Feature cut: Basic tier VM does not include load
balancing or auto-scaling
•CPU: Standard tier have better CPU performance than
basic tier
A Series – Basic
Basic: Limited to 300 IOPS per data disk.
A Series – Standart
Standard: Gives you up to 500 IOPS per data disk, but also offers load balancing and auto-scale
A Series – Network intensive
10GB Ethernet + 2nd NIC : 32 Gbits RDMA/
The same like A8\A9, only 10GB Ethernet
(no 2nd NIC with RDMA)
D Series standard
Better processors: 60% faster than A-series hosts
Host-local SSD: The host uses a local SSD volume to place the
temporary drive of the running virtual machines. This provides faster
paging and the ability to (disk) cache app/database data at ultra-high
speeds with low latency.
DS Series
Must use on of the disk specs SSD based premium storage
Azure Premium Storage
Godzilla series
These machines, like the D-series, make use of a host-local SSD drive to
place the temporary drive for performance. But the G-series virtual
machines are sized to provide much more RAM.
Multiple Network Interface Card support
NIC VM size
1 All except below
2 A3,A6,A8,D3,D12,G3
4 A4,A7,A9,D4,D13,G4
CPU TypesA-SERIES A0-A7: not officially specified ( may be AMD Optetron 1.6-2 GHz )
A-SERIES A8-A9-A10-A11: Intel® Xeon® E5-2670 2.60 Ghz
D-SERIES: not officially specified
DS-SERIES: not officially specified
G-SERIES: Intel® Xeon® processor E5 v3 family
Real life exampleD14 / CentOS 6.5 / $1.5 per hour 16 cores
RAM 112 Gb
Persistent storage ( blobs ) 30 Gb
Ephemeral ( SSD cache ) storage 800 GB
Azure blob storage – speed up by RAID array
Azure blob storage – speed up by RAID array
• Combining disks using Storage Spaces gives increase bandwidth in the times- from 2.8 to 9.25 times
depending on the scenario
• If you use 1 drive max speed is achieved when operations read-31,33 MB/s, while the indicator of the IOPS is
equal to its declared Microsoft (500 IOPS per disk data)
• Maximum speed when using 16 discs recorded in the script consistently record – 287,45 MB/swhen IOPS =
4599,34
CPU performance
On average, Microsoft Azure’s D-Series VMs outperformed their A-Series counterparts by 58
percent (see chart below). The difference between the A4 and D4 was only 43 percent due to
the considerable performance variation within the D4 instance
CPU variability
AMD OpteronTM Processor 4171 HE and the Intel Xeon CPU E5-2660
The AMD-based VMs exhibited a 6 percent performance advantage in integer-related
compute tasks, while the Intel-based VMs exhibited a 3 percent performance advantage in
floating point-related compute tasks
Memory bandwidth
Different types of hardware had an impact on the memory bandwidth of the A-Series.
VMs running on an AMD Opteron Processor 4171 HE showed 60% higher memory bandwidth
than VMs running on the Intel Xeon CPU E5-2660. The highest memory bandwidth observed for
the A-Series was 10.9 GB/s, whereas the highest recorded bandwidth for the D-Series was 58 percent
higher, at 17.2 GB/s.
Memory bandwidth variations
The A2, A3, D2 and D4 instances had relatively large fluctuations in memory bandwidth. The
Performance Variability for A2, A3, D2 and D4 were 20%, 24%, 27% and 52% respectively, while
the average Performance Variability for the other instances was approximately 4%
Storage performace (sequential write)
The D-Series VMs on average had 6.3X greater local sequential write IOPS than their A-Series
counterparts:
Storage performace (random write)
The D-Series VMs on average had 13.7x greater local random write IOPS than their A-Series
counterparts:
Storage performace (sequential read )
The D-Series VMs on average had 2.7x greater local sequential read IOPS than their A-Series
counterparts:
Storage performace (random read)
The D-Series VMs on average had 4.1x greater local random read IOPS than their A-Series
counterparts
Performance variability
Compared to the A-Series, whose storage PV ranged from 8 percent to 213 percent, the D-
Series showed significantly less variability. The D-Series’ storage PV mainly ranged from 0
percent to 4 percent, with only two exceptions in the random write tests (see chart below).
The
stability of the D-Series environments, however, may be attributed to a lower number of users,
thereby limiting user contention.
Compare A vs D - common informationCPU:
The D-Series’ vCPUs outperformed the A-Series’ vCPUs by 58%. A8-A11 are faster than D-series.
RAM:
The D-Series VMs displayed, on average, 65% more memory bandwidth than their A
The maximum memory bandwidth on the D-Series was 58% more than on the A-Series (17.2 GB/s vs. 10.9 GB/s).
Significant fluctuations on memory throughput were observed on the A2, A3, D2 and D4 instances.
Variability ranged from 20% to 52% of the average across the five-day testing period
Storage:
The D-Series had an average of 6.3x more IOPS than the A-Series for local storage.
The D-Series write IOPS scaled significantly as the VM sizes became larger.
The A-Series showed much more storage performance variability than the D-Series. D-Series
performance variability was under 5% for almost all measurements.
Task #2
• Run VM ( Linux or Windows ) - better to use command line tools
• If you can create PS or SH script for that – you’re HERO!
• Check speed of hard disk drive
• Create RAID 0 with 2 blobs
• Check speed disk
• Create RAID 0 with 4 blobs
• Check speed disk
•Share results
>375kWebsites Hosted
>2BillionRequests per Day
>200k UniqueCustomers
120%Yearly Paid Subscription Growth
%Yearly Revenue
Growth
Azure Websites by the Numbers
650%Yearly Traffic
Growth500
Azure Websites Customers and PartnersFolks doing interesting things on the platform
Objectives• Scalable e-commerce
website to sell flights,
both through travel
agencies and directly to
consumers
Tactics• Built Azure -based
website using
Umbraco and SQL on
Azure for content and
images.
• Using VNET
connecting on-
premise
Results• Scalable Website with
integration for Flight
booking and Check In
systems
Jägermeister
Objectives• Create brand awareness
and loyalty
• Understand tastes and
preferences of audience
• Connect consumer
through shared
experiences
TacticsCloud-based website
and mobile application
for engaging customers
through social media.
video and audio
features.
Results• Mobile app and Website
JagerBonds allows
posting photos and
videos to Facebook or
• Compile posts and pair
them with songs
Hogarth - Digital Marketing Platform
Objectives• Hogarth wanted to
streamline the
development and
management of its
clients websites.
TacticsHogarth developed an
innovative Digital Web
platform on Azure
Websites
Results• Dramatically reduces website
launch times.
• Scales to meet demand—no
matter how high.
• Provides the ability to localize
and update sites quickly and
easily.
Azure Websites Features & Capabilities
Designed for secure mission-critical applications Optimized for Availability and Automatic scale 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
Note: Features to discuss today are in BOLD. Items with a * are to be released
foo.azurewebsites.net foo.scm.azurewebsites.net
Staging
Production
swap
Developer
Production
Developer
Staging
Production
swap
Developer
Staging
Production
swap
Developer
Azure Web Site
Azure Websites Features & Capabilities
Designed for secure mission-critical applications Optimized for Availability and Automatic scale 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
Note: Features to discuss today are in BOLD. Items with a * are to be released
Pre-installed extensions internals
Task #3
• Create simple hello world web site, commit to github /any
repo
• Create web site based on that
• Create production/dev staging configuration
• Compare two techniques of deployment to production:
• Merge dev branch (after QA) with production branch
• Swap production/development staging
• Add domain Simpology.eu for production
• Use KUDU!!!
WebJobs
Running Modes• On Demand
• User or REST API triggers the WebJob to execute
• Scheduled• Uses the Azure Scheduler to trigger the execution • Load balanced automatically (execution happens on the least loaded instance)
• Continuous• Runs all the time (as a service)• System monitors the state, and restarts if needed
• Singleton or Parallel mode
• Contiguous• System monitor is only running when the website runs
• Hence, WebJob will only run when the website is up (sites with no traffic, sleep)
• Event triggered• Can be bound to storage, queues, blob, tables, service bus queues,
• Execute on an event
Running Platform• Inherits from Azure Scheduler
• Inherits from Azure Websites• All features: Always ON, deployment slots, • Languages: cmd, bat, exe, ps1, sh, php, py, js, jar…• Deployment options• Scalability
• Folder structure• {site}\wwwroot\App_Data\jobs\{ job type}\{ job name}
• Load Balancing• Triggered WebJobs are automatically load balanced • Load Balancer forwards to least loaded instance
WebJobs SDK• Binding
• Azure Storage: Queues, Blobs, and Tables, • Service Bus: Queues
• Events• on New: Queues, Blobs, Service Bus• on Modify: Blobs
• Monitoring• At the Function level
• Invocation parameters, Execution time, I/O, • Basic profiling
• Casuality (chaining) between functions
• Parallelism• Single or multiple Queue items• Parallel processing of Queue items• Async functions
73
Triggered jobs (Scheduled / On Demand)
System logs and user output
Graceful shutdown
Webhook for triggered job complete
Parameter passing as command line arguments
Run manually or on demand
Scheduled to Run Once
Scheduled Run repeatedly (every 1min - 18mo.)
Advanced schedules via Azure Scheduler
Configurable retry and error actions
Continuous jobs
System logs and user output
Singleton or parallel mode
Graceful shutdown
Always On for continuous (otherwise contiguous)
Settings file (optional)
Configurable restart time and timeouts
History size for triggered (# runs)
Stacks
cmd, bat, exe, ps1, sh, php, py, js (inherited list)
API
REST API via SCM endpoint
CSM endpoint
Triggers (Azure storage and Service bus)
on new for Queues, Blobs, Tables, Service Bus
on modify for Blob, Table
on delete for Blob, Table
Bindings
Blobs, Tables, Queues, Service Bus
Binds to C# primitives
ie. stream, string, TextReader/writer, etc…
Parallelism
Single or multiple Queue items
Parallel processing of Queue items
Poison message handling for Queues
Asynch functions
Monitoring for WebJobs
At the function level, invocation and params.
Logs time, runtime, sizes, etc …
Debugging for WebJobs
Invoke and Replay
Casuality (chaining) between functions
Search blobs
Error handling
Retries
WebJobs shutdown support
Runtime in Azure Websites WebJobs SDK Publish WebJobs
Publish WebJobs with Web Site
Publish Console Apps directly
Continuous WebJobs
Start & Stop
View Dashboard
Attach Debugger
Triggered WebJobs
Create or Run on demand
View Dashboard
WebJobs new project templates
Scheduled & Continuous
Visual Studio tools
Some inherited features from Azure Websites
Visual Studio Online can edit scripts
Autoscale (monitors CPU, resources or schedule)
Share environment variables with Websites
Remote Debugging (attaching via scm endpoint)
Process explorer shows CPU and other resouces
Azure Traffic Manager for geo-distribution
Other Features
Server Explorer integration
WebJobs is found under the Websites nodes
Task #5
• Create simple web job which pack logs
• Create simple web job which restart web server
• Try to run some EXE
Traffic Manager –how it works ?
Use Azure to load Balancing (round robin)
www.simpology.eu
simpology.trafficmanager.netMode: roundrobin
VM – on premise
simpology.azurewebsites.net
( backup replica )
Use Azure as disaster recovery for your site
www.simpology.eu
simpology.trafficmanager.net
Mode: Failover
Linux VM – on premise
Backup web-site
simpology-site.azurewebsites.net
First 1 billion DNS
queries /month
$0.75 per million
queries
Over 1 billion DNS
queries / month
$0.375 per million
queries
Health Checks
(Azure)
$0.50 per Azure
endpoint / month
Health Checks
(External)
$0.75 per External
endpoint / month
Traffic Manager - pricing model
Hackaton!!!!! TASK #1• Create some ‘HelloWorld’ site ( PHP or
Java ) on github
• Deploy on Web-sites!
• Do changes in code : check production
staging and development staging
• Do multi-datacenter deployment!
• How to do multi datacenter SQL back-
end ?
• Use traffic manager in different modes
Questions for task #1• In round robin mode how routing
works ? When we go to which end-
point ( check one ip, several ips,
something under proxy )
• Do stress test:
• Kill one website
• Check is it available for end
customers?
• Check timelines when TrafficManager
figure it out. ( check different
scenarios )
Hackaton!!!! TASK #2• Create some ‘HelloWorld’ site with
node.js on github
• Do stress test : run massive requests
and check answers – are we always get
root page ? ( look for bug when we get
200 ok and empty body !)
• Create a graph with response codes,
response time depending on requests
amount
• Check the same stuff with autoscaling!
Hackaton!!!! TASK #3• Create some ‘HelloWorld’ site on
github
• Deploy it : one replica your hosting,
another replica on Azure
• Use TrafficManager for this in round
robin mode and fail-over
• Check response time in both modes for
both replicas
• Shutdown your own hosting
• Check what happened
Yes, it works!!!!
Your own linux in Azure ?
Yes,if HyperV supports this
What you need is to add Linux agent
to your disto.
Linux agent responsible for
interacting with Windows Azure
Fabric Controller
Manual: aka.ms/agent
Azure subscription management• http://blog.kloud.com.au/2013/07/30/good-practices-for-managing-
windows-azure-subscriptions/
• https://msdn.microsoft.com/en-us/library/azure/hh531793.aspx
Storage• http://blog.altoros.com/raid-arrays-on-windows-azure.html
• https://twitter.com/abokov/status/585493702308683779
• http://azure.microsoft.com/en-us/documentation/articles/storage-premium-storage-preview-portal/#using-linux-vms-with-premium-storage
• http://blogs.technet.com/b/yungchou/archive/2012/08/31/windows-server-2012-storage-virtualization-explained.aspx
Virtual Machines• http://www.petri.com/choosing-azure-vm-series.htm
• http://blogs.msdn.com/b/igorpag/archive/2014/11/11/azure-a_2d00_series-and-d_2d00_series-consistent-performances-and-size-change-considerations.aspx
• http://cloudspectator.com/wp-content/uploads/report/generational-performance-comparison-microsoft-azures-a-series-and-d-series.pdf
• https://github.com/richorama
Web sites• https://github.com/projectkudu/kudu/wiki/Azure-Site-Extensions
How to Azure : Tips and trick
30 days trials on windowsazure.com
2year trial for MSDN members
3year trial for BizSpark member ( very easy to join! ) – each BizSpark trial includes 5 MSDN subscriptions
You may try to get Windows Azure Offer $60K for 2y
25% discount to MSDN members for out-of-limit Azure usage
GREAT, BIG DISCOUNTS via Enterprise Agreement!
Business support, if you do app based on Azure:
We can do co-marketing
You will have technical and business
persons to contact with
You may have great discounts on cloud
Early access to betas and updates
Participation in Microsoft activities –
events, road-show, campaign, business
and tech trainings
Yes, we have Go-To-Market program
for our partners which run on a global
level and we can help you to open
doors in specified region/industry
Online resourcesmsopentech.com
All questions about Azure in CEE
CEE Azure user group in Facebook
Latest our twitter
@azure_ceeOpen technologies in CEE
@OpennessAtCEE
Open technologies in CEE
opennessatcee.com