Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Except where noted contents © 2014 Development Partners Software Corporation the Microsoft Azure."— Presentation transcript:

1 Except where noted contents © 2014 Development Partners Software Corporation http://www.devpartners.com http://www.devpartners.com the Microsoft Azure Cloud Platform is a Toolbox Bill Wilder, Finomial CTO @codingoutloud codingoutloud@gmail.com blog.codingoutloud.com linkedin.com/in/billwilder New England Microsoft Dev Group 03-December-2015 Bill Wilder

2 Except where noted contents © 2014 Development Partners Software Corporation http://www.devpartners.com http://www.devpartners.com the Microsoft Azure Cloud Platform is a Toolbox Bill Wilder, Finomial CTO @codingoutloud codingoutloud@gmail.com blog.codingoutloud.com linkedin.com/in/billwilder New England Microsoft Dev Group 03-December-2015 Find this slide deck here Bill Wilder

3 Questions during or after? @codingoutloud

4 Image credit: https://www.flickr.com/photos/richardstep/7437999566https://www.flickr.com/photos/richardstep/7437999566 Azure is a Toolbox

5 Why choose Platform as a Service?

6 Cloud Computing Packaged Software Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime You manage Infrastructure (as a Service) Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime Managed by vendor You manage Platform (as a Service) Managed by vendor You manage 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

7 ___________________ as a Service Apps, $/user, Expertise, SLA App Services as OpEx, $/VM/Svcs, OS, DBMS, etc. with patching & upgrades, Environment Monitoring, Expertise, SLA Virtualized Hardware as OpEx, Networking, Automation, Elasticity, Price Transparency, Global Data Centers, Expertise, SLA Public Cloud Rental Models AppHarbor http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf

8 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 Wilder8

9 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 Wilder9

10 Members of Microsoft Azure Security Team @Bill Wilder10

11 Data Defense 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 @Bill Wilder11

12 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 Wilder12

13 Azure Services Compute Virtual Machines Cloud Services Websites Mobile Services Batch Network Services ExpressRoute Virtual Network Traffic Manager App Services Media Services Service Bus Push Notifications Scheduler BizTalk Services Active Directory Multi-Factor Authentication Automation CDN API Management RemoteApp Application Insights Data Services Storage SQL Database HDInsight Cache Backup Site Recovery Machine Learning StorSimple DocumentDB Azure Search Data Factory Stream Analytics Operational Insights https://manage.windowsazure.com https://portal.azure.com

14 Why Azure?

15 IaaS According to Gartner http://www.gartner.com/technology/reprints.do?id=1-1IMDMZ8&ct=130819&st=sb http://www.gartner.com/technology/reprints.do?id=1-1IMDMZ8&ct=130819&st=sb Aug 2013

16 PaaS According to Gartner http://www.gartner.com/technology/reprints.do?ct=140108&id=1-1P502BX&st=sb http://www.gartner.com/technology/reprints.do?ct=140108&id=1-1P502BX&st=sb Jan 2014

17 Azure is a Toolbox Key Point to remember!

18 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…

19 Amount we’ll touch on

20 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 – ASP.NET, Node.js, Python, Java, PHP, …

21 Deploy Your App Visual Studio Online (VSO) Continuous Deployment (CD) from VSO, github, others

22 Monitor Your App: App Insights Monitoring support Alerting support Services for gathering logs – “pets vs. cattle” Application Insights

23 Automating Automation: RunBooks I have stuff to automate … … with PowerShell On a schedule or ad hoc Might have sensitive credentials Might require auditing

24 A Tale of Two Portals

25 Where’s Azure? A global map: http://azuremap.blob.core.wind ows.net/apps/bingmap- geojson-display.html

26 Azure “Geo” Coming to India http://www.business-standard.com/article/news-ians/microsoft-s-private-preview-of-cloud-services-from-india-in-july-115060401040_1.html http://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”

27 Concrete Example Modern App Pattern

28 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

29 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!

30 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

31 Cloud Services Web Roles 1+ types Windows Server Running IIS Worker Roles 1+ types Windows Server Could run Tomcat, etc. “Service Model” Deployment Package Config: VM sizes & instance counts, settings, endpoints, certs…

32 Cloud Services Web Role Instances Load Balancer Worker Role Instances

33 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

34 Scalable Architecture Service Bus Queue Web Role Instances Worker Role Instances

35 Queue-Centric Workflow Pattern (QCW for short) Pattern x of y

36 Extend www.pageofphotos.com example into Service Tier QCW enables applications where the UI and back-end services are Loosely Coupled (Compare to CQRS at end if there is interest)

37 QCW Example: User Uploads Photo www.pageofphotos.com Web Server Compute Service Reliable Queue Reliable Storage

38 QCW WE NEED: Compute (VM) resources to run our code Reliable Queue to communicate Durable/Persistent Storage

39 Where does Azure fit?

40 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

41 QCW on Azure: User Uploads a Photo Web Role (IIS) Web Role (IIS) Worker Role Worker Role Azure Queue Azure Blob UX implications: user does not wait for thumbnail (architecture!) www.pageofphotos.com push pull

42 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)

43 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)

44 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$

45 General Case: Many Roles, Many Queues Web Role (IIS) Web Role (IIS) Worker Role Worker Role Web Role (IIS) Web Role (IIS) Web Role (Public) Web Role (Public) Worker Role Worker Role Worker Role Worker Role Worker Role Type 1 Worker Role Type 1 Worker Role Worker Role Worker Role Worker Role Worker Role Worker Role Worker Role Type 2 Worker 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 Worker Role Type 2 Worker Role Type 2 Worker Role Type 2 Worker Role Type 2 Worker Role Type 2 Worker Role Type 2 Web Role (Admin) Web Role (Admin)

46 Reliable Queue & 2-step Delete (IIS) Web Role (IIS) Web Role Worker Role Worker Role var url = “http://pageofphotos.blob.core.windows.net/up/.png”; queue.AddMessage( new CloudQueueMessage( url ) ); var invisibilityWindow = TimeSpan.FromSeconds( 10 ); CloudQueueMessage msg = queue.GetMessage( invisibilityWindow ); (… do some processing then …) queue.DeleteMessage( msg ); Queue

47 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

48 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, …

49 Image credit: https://www.flickr.com/photos/richardstep/7437999566https://www.flickr.com/photos/richardstep/7437999566 Azure is a Toolbox

50 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

51 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, …

52 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

53 Typical SiteAny 1 Role InstOverall 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

54 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 https://msdn.microsoft.com/en- us/library/azure/dn249410.aspx

55 Questions? Comments? More information? ?

56 Developer Resources www.windowsazure.com/develop/ is LOADED with Dev Libraries, How To Guides across: www.windowsazure.com/develop/ – Mobile (iOS, Android, Win Phone, Win 8 SDKs) –.NET, Node.js, Java, PHP, Python, REST – PowerShell, CLI Azure Readiness:https://github.com/Azure- Readiness/DevCamphttps://github.com/Azure- Readiness/DevCamp Use your MSDN resources And/Or Create a personal Azure account and use some of the free services (Web Sites, DB, etc.) @Bill Wilder56

57 Non-.NET Developer Resources Example: Create Node.js web site from Mac CLI https://www.windowsazure.com/en-us/develop/nodejs/tutorials/create-a-website-(mac)/ https://www.windowsazure.com/en-us/develop/nodejs/tutorials/create-a-website-(mac)/ Example: Create Linux (CentOS) VM from CLI (Node-based CLI – Windows not required) https://www.windowsazure.com/en-us/develop/php/how-to-guides/command-line- tools/ https://www.windowsazure.com/en-us/develop/nodejs/how-to- guides/command-line-tools/ https://www.windowsazure.com/en-us/develop/php/how-to-guides/command-line- tools/https://www.windowsazure.com/en-us/develop/nodejs/how-to- guides/command-line-tools/ Example: Install Couchbase + VNet on VM http://blogs.msdn.com/b/jimoneil/archive/2012/06/16/couchbase-on-azure-a- tour-of-new-windows-azure-features.aspx http://blogs.msdn.com/b/jimoneil/archive/2012/06/16/couchbase-on-azure-a- tour-of-new-windows-azure-features.aspx @Bill Wilder57

58 Cloud Architecture Patterns book Primer Chapters 1.Scalability 2.Eventual Consistency 3.Multitenancy and Commodity Hardware 4.Network Latency

59 Cloud Architecture Patterns book Pattern Chapters 1.Horizontally Scaling Compute Pattern 2.Queue-Centric Workflow Pattern 3.Auto-Scaling Pattern 4.MapReduce Pattern 5.Database Sharding Pattern 6.Busy Signal Pattern 7.Node Failure Pattern 8.Colocate Pattern 9.Valet Key Pattern 10.CDN Pattern 11.Multisite Deployment Pattern

60


Download ppt "Except where noted contents © 2014 Development Partners Software Corporation the Microsoft Azure."

Similar presentations


Ads by Google