Except where noted contents © 2014 Development Partners Software Corporation Cloud Architecture Anti-Patterns.

Slides:



Advertisements
Similar presentations
1 Perspectives from Operating a Large Scale Website Dennis Lee VP Technical Operations, Marchex.
Advertisements

Architecting to be Cloud Native On Windows Azure or Otherwise
Tips and tools to keep you and your information safe on-line. We will go over a lot of information today, so it is important to pay attention and follow.
Agile Infrastructure built on OpenStack Building The Next Generation Data Center with OpenStack John Griffith, Senior Software Engineer,
What’s New in Windows Azure A platform overview + how it can fit into my development shop today… New England Microsoft Dev Group 06-June-2013 (6:30-8:30.
Microsoft Azure Cloud Platform an overview
Lecture 2 Page 1 CS 236, Spring 2008 Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher Spring, 2008.
Business Continuity and DR, A Practical Implementation Mich Talebzadeh, Consultant, Deutsche Bank
Overview Of Microsoft New Technology ENTER. Processing....
Protecting your online and on premises assets "Cloud Style" Mike Martin Architect / Microsoft Azure MVP.
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Joan Wortman Architecting for the Cloud Bill Wilder An App in the Cloud is not a Cloud-Native App Boston Code Camp #19 08-Mar-2013 (2:50 – 4:00 PM EDT)
VAP What is a Virtual Application ? A virtual application is an application that has been optimized to run on virtual infrastructure. The application software.
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
© 2012-Robert G Parker May 24, 2012 Page: 1 © 2012-Robert G Parker May 24, 2012 Page: 1 © 2012-Robert G Parker May 24, 2012 Page: 1 © 2012-Robert G Parker.
Cloud Computing Saneel Bidaye uni-slb2181. What is Cloud Computing? Cloud Computing refers to both the applications delivered as services over the Internet.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
INFO 344 Web Tools And Development CK Wang University of Washington Spring 2014.
@codingoutloud © 2014 Development Partners Software Corporation Meet Windows Azure, Your Next Data Center nearing.
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
Monitoring Latency Sensitive Enterprise Applications on the Cloud Shankar Narayanan Ashiwan Sivakumar.
Windows Azure Tour Benjamin Day Benjamin Day Consulting, Inc.
Overview of implementations openBGP (and openOSPF) –Active development Zebra –Commercialized Quagga –Active development XORP –Hot Gated –Dead/commercialized.
Your First Azure Application Michael Stiefel Reliable Software, Inc.
Copyright 2007 © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
@codingoutloud © 2014 Development Partners Software Corporation © 2014 Development Partners Software.
Mostafa Abdollahi Mazandaran University Of Science And Technology January 2011.
International Telecommunication Union Geneva, 9(pm)-10 February 2009 ITU-T Security Standardization on Mobile Web Services Lee, Jae Seung Special Fellow,
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Overview of Cloud Computing Sven Rosvall ACCU
Introduction The network is the computer By Waseem Anwar Chaudhri.
Azure Best Practices How to Successfully Architect Windows Azure Apps for the Cloud 13-Mar-2013 (1:00 PM EDT) Bill Wilder An App in the Cloud is not (necessarily)
Cloud Computing Project By:Jessica, Fadiah, and Bill.
Welcome! 4:00 – 4:15 PM: socialize 4:15 – 5:00 PM: Overview of Microsoft Azure cloud platform toolbox 5:00 – 5:30 PM: networking break with snacks & food.
Except where noted, slide deck is © 2014 Development Partners Software Corporation Runbooks Automating.
Cloud-Native in Azure Zoran B. Djordjevic’s CSCI E-175 Cloud Computing and Software as a Service class at Harvard University 19-November-2010 Copyright.
The concept of RAID in Databases By Junaid Ali Siddiqui.
Building Mobile Phone Applications With Windows Azure Nick HarrisWindows Azure Technical Evangelist Microsoft Blog:
Snakes and Ladders OWASP Newcastle 24 th November 2015.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Windows Azure Web Sites Second-generation PaaS Boston Cloud Meetup 14-January-2014 (00:30) Boston Azure User Group
Scalability == Capacity * Density.
Cloud Architecture Patterns for Mere Mortals New England Code Camp #16 29-October-2011 Copyright (c) 2011, Bill Wilder – Use allowed under Creative Commons.
Except where noted contents © 2014 Development Partners Software Corporation the Microsoft Azure.
Except where noted contents © 2014 Development Partners Software Corporation the Microsoft Azure.
Mark Gilbert Microsoft Corporation Services Taxonomy Building Block Services Attached Services Finished Services.
Architecture Patterns for Building Cloud-Native Applications NYC Code Camp 7 15-September-2012 (10:45 – noon) Boston Azure User Group
Microsoft Cloud Computing. Topics to be covered 1.Environmental Features of windows azure 2.What is Cloud Computing 3.Roles in Cloud Computing 4.Benefits.
Windows Azure Overview for IT Pros Anton Boyko. Intro to Cloud Computing Intro to Windows Azure Cloud Services Web Sites Virtual Machines Workload Options.
Building Cloud Solutions Presenter Name Position or role Microsoft Azure.
(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.
Windows Server 2012 R2– SMB Tele Sales Guide For Microsoft and Partner Use Only Use this script to engage small and midsize businesses in a conversation.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Cloud-Native Architecture Patterns (Or… why your pre-cloud architecture won’t work so well in the cloud) Azure Florida Association 28-March-2012 Boston.
Boston Code Camp October-2012 (1:30 – 2:40)
Enterprise Service Bus
Business Continuity & Disaster Recovery
Meet Windows Azure, Your Next Data Center nearing the tipping point
Bill Wilder, CTO, Finomial Corporation
Software Design and Architecture
Exploring Azure Event Grid
Architecture Patterns for Scalability & Reliability
Introduction of Week 3 Assignment Discussion
Hello Farmington! 4:30-5:30, then dinner.
Business Continuity & Disaster Recovery
New England Code Camp October-2010
Design pattern for cloud Application
Saranya Sriram Developer Evangelist | Microsoft
DevBoston 07-February-2013 (6:00 PM)
Presentation transcript:

Except where noted contents © 2014 Development Partners Software Corporation Cloud Architecture Anti-Patterns A concise overview of some bad ideas Bill Wilder, Finomial blog.codingoutloud.com linkedin.com/in/billwilder.NET Architecture Group 20-May-2015

Except where noted contents © 2014 Development Partners Software Corporation Cloud Architecture Anti-Patterns A concise overview of some bad ideas Bill Wilder, Finomial blog.codingoutloud.com linkedin.com/in/billwilder.NET Architecture Group 20-May-2015 Find this slide deck here

Except where noted contents © 2014 Development Partners Software Corporation Cloud Micro-Service Anti- Patterns for the Internet of Things written in Go A certifiably buzzworthy presentation Bill Wilder, Finomial blog.codingoutloud.com linkedin.com/in/billwilder

Who is Bill Wilder?

My name is Bill Wilder Bill blog.codingoutloud.com

Lots of ♥ to all the clouds etc…

7

Architect Skills Technical Business Decisions

9 Famous Architect: Aristotle On Properties: Essential property = must have Accidental property = happens to have but could lack For effective software architect, all are Essential Properties Technology Skills Ability to Communicate Business Awareness

10 Business Awareness

11 Top 10 “Blunders” by Enterprise Architects #3. Not engaging the business partners #2. Insufficient understanding and support from stakeholders #1. The Wrong Lead Architect (for non- technical reasons) #7. Not … Communicating the Impact #10. Not Spending Enough Time on Communications Source The top 10 enterprise architecture blunders By Alex Handy, September 25, 2009http:// Handy

To cloud or not to cloud? control vs. cost

Ctrl € $¥

Ctrl € $¥ Technology Skills Ability to Communicate Business Awareness

Cloud Services … in the Cloud “who would’ve thought” Cloud is a business innovation  technology services + flexible rental model  new types and combinations of services

1/9 th above water  Services: TTM & Sleeping well  SOA

Treating your ops team as equivalent to the cloud vendor’s ops team (They are not. Let cloud vendor handle service operations. Use services. You focus on your app.) Anti-Pattern #1

What is an Anti-Pattern Wikipedia says: ( “A common response to a recurring problem that is usually ineffective and risks being highly counterproductive.” Bill’s amplification: “An anti-pattern approach may seem reasonable, or actually be reasonable in other contexts. There may be problems that are not yet be apparent.” Often depends on the situation. This talk will span: Architecture and Architects

N-tier, SOA, μSvcs Multi-data center Horizontal scaling Expects failure Eventual consist Traditional Cloud-Native 2-tier Single data center Vertical scaling Ignores failure Transactional consist Less flexible More manual/attention Less reliable (SPoF) Maintenance window Less scalable, more $$ Agile/faster TTM Auto-scaling Self-healing HA Geo-LB/FO TELLS/CLUES CONSEQUENCES Tells: Traditional vs Cloud-Native   Which is “best” architecture? There is no “best” architecture – it is situational, a Technical Business Decision. Cloud-native popularity growing in proportion to the shrinking cost and competitive benefits.

One-size-fits-all architecture Anti-Pattern #2

[Cloud] Anti-Pattern Causes Abstraction misalignment Not reading the fine print Insufficient ongoing attention to cost Insufficient ongoing attention to automation

(PoP)

Move Simple PoP App to Cloud WHAT NOW?

Scalability & Performance & Cost & Automation

Are Cloud Resources Infinite? “We often hear that public cloud platforms offer the illusion of infinite resources. Obviously, resources are not literally infinite (infinite is rather a lot), but you can expect that any time you need more resources, they will be available (though not always instantly). This does not mean each resource has infinite capacity, just that you can request as many instances of the type of resource that you need.” Page 21, my (Bill Wilder’s) Cloud Architecture Patterns book

Time passes… PoP has lots of photos

One-size-fits-all data storage (perf, scalability, cost) Anti-Pattern #3

Upgrade to scenario-specific storage Some $, Perf, Scale benefits

PoP uses Valet Key Pattern Even more $, Perf, Scale benefits

CDN for public content Many, many other storage options also available: NoSQL varieties, caches, etc.

Always access raw data (regardless of distance, cost) (performance, scalability, cost) Anti-Pattern #4

Scalability != Performance ∞ performance does not imply ∞ scale (but sure would be a good start!) “Performance is what an individual user experiences; scalability is how many users get to experience it.” Page 8, my (Bill Wilder’s) Cloud Architecture Patterns book

PoP web tier goes multi-instance… Users experiencing login issues * *Depending on configuration …

Are Cloud Resources Infinite? “We often hear that public cloud platforms offer the illusion of infinite resources. … This does not mean each resource has infinite capacity, just that you can request as many instances of the type of resource that you need.” Page 21, my (Bill Wilder’s) Cloud Architecture Patterns book

Running stateful VMs in web / service tiers (Limits horizontal scalability & complicates autoscale – but sometimes is reasonable option) Anti-Pattern #5

I don’t have a slide on this, but … sharding

Reliability

Treating commodity cloud VMs like the super- reliable iron your company buys. (Not internally redundant; failure is routine (not frequent); optimized for value.*) Anti-Pattern #99

PoP Adding Video Support (uh oh!)

Current

Let’s extend PoP with a Service Tier

REQUEST / RESPONSE (http + json) OPTION 1: Request/Response Services Services Tier Web Tier Data Tier Stateless Services web browser

Coupling Between Tiers (reliability, scalability, cost) (Situational: I frequently violate! Also relates to microservices.) Anti-Pattern #6

Cloud Platform Reliable Queues Azure Storage or ServiceBus Queue AWS Simple Queue Service Google Pub/Sub Durable – won’t lose your data Reliable – backed by SLA and ops team Scalable – Internet scale Approachable – REST + many SDKs

Basic Idea Reliable Queue Work Producers Work Consumers

OPTION 2: Async Services Services Tier Web Tier Data Tier Stateless Services web browser push pull

Stateless Services Notice anything “missing” ? There is no transaction Get used to idea of eventual consistency

Enables Responsive UX Response to interactive users is as fast as a work request can be persisted UX challenge due to async processing – Eventual consistency processing – Eventual satisfaction for users

Enables More Reliable Service Decoupled front/back provides insulation Blocking is bane of scalability

Limit yourself to transactionally-friendly operations (reliability, scalability, cost) Anti-Pattern #99

General Case: Many Queue Types Web Role (IIS) Web Role (IIS) Worker Role Worker Role Web Role (IIS) Web Role (IIS) Web Tier (Public) Web Tier (Public) Worker Role Worker Role Worker Role Worker Role Service Tier 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 Worker Role Type 2 Worker Role Type 2 Worker Role Type 2 Worker Role Type 2 Service Tier Type 2 Service Tier Type 2 Web Tier (Admin) Web Tier (Admin)

Enables Cost-Efficient Scaling Loosely coupled, concern-independent scaling Get Scale Units right Optimize for CO$T EFFICIENCY GOAL: cost α benefit

How about the queue API?

A reliable queue works just like any other queue, right? (beware the abstraction mismatch) Anti-Pattern #7

Reliable Queue & 2-step Delete Web Tier Web Tier Service Tier var url = “ queue.AddMessage( new CloudQueueMessage( url ) ); var invisibilityWindow = TimeSpan.FromSeconds( 10 ); CloudQueueMessage msg = queue.GetMessage( invisibilityWindow ); (… do some processing then …) Queue queue.DeleteMessage( msg );

Idempotent Processing An idempotent operation can be performed more than once without changing the end result. Key technique in lieue of distributed transactions

Poison Message Detection A poison message is a flawed message that can never be successfully processed.

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

What about the DATA? You: Azure Web Roles and Azure 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

Tiers of Cloud Failure Transient API/DB connection failures Temporary/Ephemeral drive loss DC outage (or smoking hole) Zone/Region outage (or smoking hole) Global outage

“Failure is not an option” (Failure is routine, at least at lower tiers.) Anti-Pattern #8

Programming against Cloud Services as though they were reliable (Transient Failures handled using Busy Signal Pattern) Anti-Pattern #9

Security

A1-Injection A2-Broken Authentication and Session Management A2-Broken Authentication and Session Management A3-Cross-Site Scripting (XSS) A4-Insecure Direct Object References A5-Security Misconfiguration A6-Sensitive Data Exposure A7-Missing Function Level Access Control A8-Cross-Site Request Forgery (CSRF) A9-Using Components with Known Vulnerabilities A10-Unvalidated Redirects and Forwards

unicorn cloud security for apps Copyright © 2013 Elizabeth B. O’Connor used with permission SQL INJECTION SESSION HIJACKING CSRF XSS

Belief in cloud app security unicorns Reality: your app’s vulnerabilities will port very cleanly to your favorite cloud platform Anti-Pattern #10

Little Bobby Tables (still a problem)

Conflating App & Platform security secure  compliant Anti-Pattern #11

Cloud News from June A cautionary tale… – DDoS – Security Breach – Ransom / Extortion – Fighting Back – Malicious Destruction of Assets – Business Failure ELAPSED TIME 12 HOURS

1FA single-factor auth (2FA/MFA is widely available) Anti-Pattern #12

Service Level Agreements (SLA)

PoP (pageofphotos.com) adds paid plans to corporate partners – wants to offer an SLA

What is “the SLA” for storage?

SLA Responsibilities From Google Storage ( : "Back-off Requirements" means, when an error occurs, the Application is responsible for waiting for a period of time before issuing another request. This means that after the first error, there is a minimum back-off interval of 1 second and for each consecutive error, the back-off interval increases exponentially up to 32 seconds.”

SLA Math All required: = All required: x x = Period of time over which an SLA applies matters

SLA Penalties Limited to the service costs – Service costs != your business losses Multiple instances might be needed to be eligible

Passing along the SLA The cloud SLA becomes my service’s SLA Anti-Pattern #13

Compose to boost reliability

Affordability

Maximizing value from public cloud platforms Key Concept Turn off or delete unused resources Leverage very aggressive pricing for non- production workloads Enhance agility & productivity ASIDE: Will your test team be ahead of – or behind – the curve when your company moves production apps to public cloud?

The term “cloud” is nebulous… Public cloud platforms are global (and getting “globalier”)

Automation

– – – – – –

86 What is Architecture? "Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principals guiding its design and evolution." [IEEE 1471]

The architecture of a cloud-native application is aligned with the architecture of the underlying cloud platform.

Hiring! HIRING at Finomial Corporation Are you a talented senior engineer/architect interested in financial services in Boston area? Technology stack is ASP.NET on Azure + SPA Downtown Boston (startup space) (or grab a biz card)

Except where noted, slide deck is © 2014 Development Partners Software Corporation And…. Bill blog.codingoutloud.com linkedin.com/in/billwilder Find this slide deck here See you at Boston Azure bostonazure.org

des questions?