Except where noted contents 2014 Development Partners Software Corporation the Microsoft Azure.

Post on 18-Jan-2018

220 views 0 download

description

Questions during or

Transcript of Except where noted contents 2014 Development Partners Software Corporation the Microsoft Azure.

• Except where noted contents © 2014 Development Partners Software Corporation • http://www.devpartners.com •

the

Microsoft AzureCloud Platform

Bill Wilder, Finomial CTO@codingoutloudcodingoutloud@gmail.comblog.codingoutloud.comlinkedin.com/in/billwilder

Zoran’s Class04-December-2015

HELLOmy name isBill Wilder

Azure

Don’t Mess with the Zoran

R

Questions during or after?

@codingoutloud

Image credit: https://www.flickr.com/photos/richardstep/7437999566

Azure is a BIG Toolbox

Azure

Amount we’ll touch onBreadth of

Azure

Compared to What?

Similar to AWS

Similar to Google Compute + AppEngine

… but different

Cloud ComputingPackaged Software

Storage

Servers

Networking

O/S

Middleware

Virtualization

Data

Applications

Runtime

You

man

age

Infrastructure(as a Service)

Storage

Servers

Networking

O/S

Middleware

Virtualization

Data

Applications

Runtime

Managed by vendor

You

man

age

Platform(as a Service)

Managed by vendor

You

man

age

Storage

Servers

Networking

O/S

Middleware

Virtualization

Applications

Runtime

Data

Software(as a Service)

Managed by vendor

Storage

Servers

O/S

Middleware

Virtualization

Applications

Runtime

Data

Networking

Azure ServicesComputeVirtual MachinesCloud ServicesWebsitesMobile ServicesBatch

Network ServicesExpressRouteVirtual NetworkTraffic Manager

App ServicesMedia ServicesService BusPush NotificationsSchedulerBizTalk ServicesActive DirectoryMulti-Factor AuthenticationAutomationCDNAPI ManagementRemoteAppApplication Insights

Data ServicesStorageSQL DatabaseHDInsightCacheBackupSite RecoveryMachine LearningStorSimpleDocumentDBAzure SearchData FactoryStream AnalyticsOperational Insights

https://manage.windowsazure.comhttps://portal.azure.com

PaaS

Acc

ordi

ng to

Gar

tner

http:

//w

ww

.gar

tner

.com

/tec

hnol

ogy/

repr

ints

.do?

ct=1

4010

8&id

=1-1

P502

BX&

st=s

b

Jan2014

@Bill Wilder 14

Reality is Resource-Constrained

“Security is always a tradeoff; it must be balanced with the cost.”

- Bruce Schneier

http://www.schneier.com/essay-207.html

@Bill Wilder 15

Reality is Resource-Constrained

“_______ is always a tradeoff; it must be balanced with the cost.”

- Common Sense Wisdom

http://www.schneier.com/essay-207.html

@Bill Wilder 16

Members of Microsoft AzureSecurity Team

@Bill Wilder 17

Defenses Inherited by Azure Applications

Spoofing Tampering/ Disclosure

Elevation of Privilege

Configurable scale-out

Denial of Service

VM switch hardening

Certificate Services

Shared-Access Signatures

HTTPS

Sidechannel protections

VLANs

Top of Rack Switches

Custom packet filtering

Partial Trust Runtime

Hypervisor custom sandboxing

Virtual Service Accounts

Repudiation

Monitoring

Diagnostics Service

@Bill Wilder 18

Data

Microsoft Azure Security LayersDefense in Depth Approach

Physical

Application*

Host

Network

Strong storage keys for access control SSL support for data transfers between all parties

Front-end .NET framework code running under partial trust Windows account with least privileges

Hardened version of Windows Server 2008 OS for both VM Host and VM Guest operating systems

Host boundaries enforced by external hypervisor

Host firewall limiting traffic to VMs VLANs and packet filters in routers

World-class physical security ISO 27001 and SAS 70 Type II certifications for datacenter

processes

Layer Defense-in-Depth

SQL Database

• Column-level Encryption• Always Encrypted

Azure Active Directory

Key Management

• Azure Key Vault

Client Encryption

• Azure Storage SDK+ Azure Active Directory+ Azure Key Vault

Azure is a Toolbox

Key Point

to remember!

Bill Wilder

Azure is a Toolbox

• Code your app• Deploy your app• Host your app source code• Host your app database• Manage and Monitor your app• User management• Integration (hybrid cloud)• Dev/Test• Automate Operations• And much much much much more…

Code Your App

• Visual Studio integration & cross-platform tooling

• Platform support for PaaS and IaaS• Fast-start templates for creating a web site in

many languages / toolkits• Supports many frameworks and languages– REST– ASP.NET, Node.js, Python, Java, PHP, …

Deploy Your App

• Visual Studio Online (VSO)• Continuous Deployment (CD) from VSO,

github, others

Monitor Your App: App Insights

• Monitoring support• Alerting support• Services for gathering logs– “pets vs. cattle”

• Application Insights

Automating Automation: RunBooks

• I have stuff to automate …• … with PowerShell • On a schedule or ad hoc• Might have sensitive credentials• Might require auditing

A Tale of Two Portals

Azure “Geo” Coming to Indiahttp://www.business-standard.com/article/news-ians/microsoft-s-private-preview-of-cloud-services-from-india-in-july-115060401040_1.htmlhttp://news.microsoft.com/en-in/microsoft-announces-commercial-cloud-services-from-local-datacenters-by-end-2015/

“Microsoft Announces Commercial Cloud Services from Local Datacenters by End 2015”“Microsoft's private preview of cloud services from India in July”

Concrete Example

Modern App Pattern

Microsoft Azure Compute Options• HDInsight (Hadoop) – specialized: big data• RunBooks service for automation/scripting• Mobile Services – specialized: devices• Virtual Machines – most flexible• Web Sites – most convenient• Cloud Services – most scalable, most efficient

Microsoft Azure Compute Options• HDInsight (Hadoop) – specialized: big data• RunBooks service for automation/scripting• Mobile Services – specialized: devices• Virtual Machines – most flexible• Web Sites – most convenient• Cloud Services – most scalable, most efficient• Azure Service Fabric

New Feature!

Cloud Services• Build highly scalable apps and

services• Multi-tier, multi-instance

architectures• Can be combined with other

compute services• Stateless node, horizontal scaling

approach• Automated management

Cloud Services

Web Roles • 1+ types• Windows

Server • Running IIS

.csdef cscfg

Worker Roles • 1+ types• Windows

Server • Could run

Tomcat, etc.

“Service Model”• Deployment

Package• Config: VM sizes &

instance counts, settings, endpoints, certs…

Service Bus Queue• Durable – won’t lose your data• Reliable – backed by SLA and ops team• Scalable – Internet scale• Approachable – REST + SDKs• Feature rich – supports “at least once” and

“at most once” delivery guarantees, pinning, suspend, & more…

• See also: Azure Storage Queue

Scalable Architecture

Service Bus Queue

Web Role Instances

Worker RoleInstances

QCW Example: User Uploads Photo www.pageofphotos.com

Web Server

Compute ServiceReliable Queue

Reliable Storage

QCW [on Azure]

WE NEED:• Compute (VM) resources to run our code

Web Roles (IIS) and Worker Roles (w/o IIS)• Reliable Queue to communicate

Azure Storage Queues• Durable/Persistent Storage

Azure Storage Blobs & Tables; WASD

QCW on Azure: User Uploads a Photo

WebRole(IIS)

WorkerRoleAzure Queue

Azure Blob

UX implications: user does not wait for thumbnail(architecture!)

ww

w.p

ageo

fpho

tos.

com

push pull

download_blob_to_file.py

from azure.storage import *

blob_service = BlobService( account_name = az_storage_account_name, account_key = az_storage_account_key)

stream = blob_service.get_blob( blob_container_name, blob_name)with open(file_path, 'w') as f: f.write(stream)

QCW enables Responsive UX

• Response to interactive users is as fast as a work request can be persisted

• Time consuming work done asynchronously• Comparable total resource consumption, arguably

better subjective UX• UX challenge – how to express Async to users?– Communicate Progress– Display Final results– Long Polling/Web Sockets (e.g., SignalR or Node.io)

QCW enables Scalable App

• Decoupled front/back provides insulation– Blocking is Bane of Scalability– Order processing partner doing maintenance– Twitter down– Email server unreachable– Internet connectivity interruption

• Loosely coupled, concern-independent scaling– (see next slide)– Get Scale Units right

–Key to optimizing operational CO$T$

General Case: Many Roles, Many Queues

WebRole(IIS)

WorkerRole

WebRole(IIS)

WebRole

(Public)

WorkerRoleWorker

RoleWorker

Role Type 1

WorkerRoleWorker

RoleWorkerRoleWorker

Role Type 2

Queue Type 1

Queue Type 2

Queue Type 1

Queue Type 2

Queue Type 3

• Scaling best when Investment α Benefit• Optimize for CO$T EFFICIENCY• Logical vs. Physical Architecture depends on current scale

WorkerRole

Type 2

WorkerRole

Type 2

WorkerRole

Type 2

WebRole

(Admin)

Reliable Queue & 2-step Delete

(IIS)WebRole

WorkerRole

var url = “http://pageofphotos.blob.core.windows.net/up/<guid>.png”;queue.AddMessage( new CloudQueueMessage( url ) );

var invisibilityWindow = TimeSpan.FromSeconds( 10 );CloudQueueMessage msg = queue.GetMessage( invisibilityWindow );

(… do some processing then …)queue.DeleteMessage( msg );

Queue

QCW requires Idempotent

• Perform idempotent operation more than once, end result same as if we did it once

• Example with Thumbnailing (easy case)• App-specific concerns dictate approaches–Compensating action, Last write wins, etc.

• PARTNERSHIP: division of responsibility between cloud platform & app– Far cry from database transaction

QCW expects Poison Messages

• A Poison Message cannot be processed– Error condition for non-transient reason–Use dequeue count property

• Be proactive– Falling off the queue may kill your system

• Determine a Max Retry policy per queue–Delete, put on “bad” queue, alert human, …

App Toolbox

• Compute Producer: VM, Cloud Service Web Role, Service Fabric, Web Site

• Compute Consumer: VM, Cloud Service Worker Role, Service Fabric, Web Job

• Storage: SQL DB, Azure Storage Blob, Azure Storage Table, Document DB

• Messaging: Service Bus, Azure Storage Queue• Telemetry: App Insights• Management: portal.azure.com

Azure

More Tools

• Compute Producer: VM, Cloud Service Web Role, Service Fabric, Web Site, Console app on your laptop

• Compute Consumer: VM, Cloud Service Worker Role, Service Fabric, Web Job

• Storage: SQL DB, Azure Storage Blob, Azure Storage Table, Document DB, MySQL, Mongo, …

• Messaging: Service Bus, Azure Storage Queue, RabbitMQ, …• Telemetry: App Insights, New Relic, AppDynamics, …• Management: portal.azure.com, …

Azure

QCW requires “Plan for Failure”

• VM restarts will happen– Hardware failure, O/S patching, crash (bug)

• Bake in handling of restarts into our apps– Restarts are routine: system “just keeps working”– Idempotent support needed important– Event Sourcing (commonly seen with CQRS) may

help• Not an exception case! Expect it!• Consider N+1 Rule

Typical Site Any 1 Role Inst Overall System

Operating System Upgrade

Application Code Update

Scale Up, Down, or In

Hardware Failure

Software Failure (Bug)

Security Patch

What’s Up? Reliability as EMERGENT PROPERTY

What about the DATA?

• You: Azure Web & Worker Roles– Taking user input, dispatching work, doing work– Follow a decoupled queue-in-the-middle pattern– Stateless compute nodes

• Cloud: “Hard Part”: persistent, scalable data– Azure Queue & Blob Services– Three copies of each byte– Geo-replicated to sister data center– Busy Signal Pattern– Scalability targets:

https://msdn.microsoft.com/en-us/library/azure/dn249410.aspx

Questions?Comments?

More information?

?