make the cloud less cloudy: a perspective for software development teams

76
BW7 Concurrent Session 11/13/2013 2:15 PM "Make the Cloud Less Cloudy: A Perspective for Software Development Teams" Presented by: Bill Wilder Development Partners Software Corporation Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888Ͳ268Ͳ8770 ͼ 904Ͳ278Ͳ0524 ͼ [email protected] ͼ www.sqe.com

Upload: techwellpresentations

Post on 20-May-2015

110 views

Category:

Technology


0 download

DESCRIPTION

With so many technologies branded as “cloud” products, it can be difficult to distinguish good technology from good marketing. The resulting confusion complicates the work of software development teams who are trying not only to architect software effectively but also trying to accelerate building, testing, and delivering software. To cut through this confusion, Bill Wilder defines key cloud terms, compares the different types of clouds, and drills into concrete examples of specific cloud services. Introducing several software architecture concepts and patterns, Bill illustrates how to position applications to run reliably, at high scale (if needed), and with maximum cost efficiency on modern cloud platforms. Specific examples are drawn from the Windows Azure and Amazon cloud platforms, though the concepts are generally applicable. Leave with an understanding of relevant cloud concepts, a better idea of how moving to the “cloud” can impact application architecture, and some practical ideas for exploiting the cloud to improve software development team productivity.

TRANSCRIPT

Page 1: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

BW7 Concurrent�Session�11/13/2013�2:15�PM�

�����

"Make the Cloud Less Cloudy: A Perspective for Software

Development Teams" ���

Presented by:

Bill Wilder Development Partners Software Corporation

������

Brought�to�you�by:��

��

340�Corporate�Way,�Suite�300,�Orange�Park,�FL�32073�888Ͳ268Ͳ8770�ͼ�904Ͳ278Ͳ0524�ͼ�[email protected]�ͼ�www.sqe.com

Page 2: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Bill Wilder Development Partners Software Corporation

Bill Wilder is a hands-on architect, trainer, writer, and community leader focused on helping companies and individuals succeed with the cloud using the Windows Azure Platform. Bill began working with Windows Azure when it was unveiled at the Microsoft PDC in 2008 and in 2009 founded Boston Azure (bostonazure.org), the first Windows Azure user group in the world. He is recognized by Microsoft as a Windows Azure MVP and an Azure Insider. Bill is the author of Cloud Architecture Patterns, blogs atblog.codingoutloud.com, and is on Twitter at @codingoutloud. Got cloud questions? Feel free to reach out to Bill via devpartners.comor [email protected].

Page 3: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Make%the%Cloud%Less%Cloudy%A"Perspec)ve"for""

So.ware"Development"Teams!It’s%all%about%Produc6vity!

Be:er%So<ware%Conference%East%13CNovemberC2013%(2:15%–%3:30%PM)%

Boston%Azure%User%Group%h#p://www.bostonazure.org!@bostonazure%

Bill%Wilder%h#p://blog.codingoutloud.com!@codingoutloud%

Page 4: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

My!name!is!Bill!Wilder!

Bill Wilder

[email protected]!blog.codingoutloud.com!@codingoutloud%%www.devpartners.com%

Page 5: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Who!is!Bill!Wilder?!

www.devpartners.com%

www.bostonazure.org%

www.cloudarchitecturepa:erns.com%

Page 6: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Talk!Roadmap!1.  Assume!you!are!on!a!dev!team!

–  Tester,!Developer,!Release!Engineer,!Project!Manager,!Team!Leader,!Architect,!…!!

– Or!are!a!DBA!or!in!Ops!or!in!DevOps!2.  You!are!a!Windows!/!.NET!shop!

–  Or!Linux,!or!Python,!or!Java,!or!Node,!or!PHP,!or!…!3.  Focus!on!the!PracUcal!

–  Scenarios"that"can"actually"happen"in"the"real"world"–  Examples!drawn!from!Public!Cloud!PlaXorms!–  Emphasis!on!Scenarios!&!Demos%

4.  ApplicaUon!Architecture!for!cloud[naUve!apps!(final!15!minutes)!

Overall%Theme:%specific,!acUonable!uses!for!cloud!

Page 7: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

“The%Cloud”%(according!to!some!vendors)!

Copyright!©!2013!Elizabeth!B.!O’Connor!•!used!with!permission!•!www.elizabethboconnor.com!!

Page 8: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

“The%Cloud”%(according!to!customers)!Let’s"be"prac)cal"and"fact?based"

Using!the!cloud!(for!anything)!means:!•  Taking!a!dependency!on!the!public!Internet!•  Some!loss!of!control!For!apps:!•  SomeUmes!need!or!benefit!from!updaUng!For!people:!•  New!concepts!&!skills!to!be!learned!&!applied!But!many!prac6cal!uses!that%work!(stay!tuned!!)!

Page 9: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Beyond…!

Cost!transparency!Pay[by[use!rental!Opex!(not!capex)!Measurable!Cost!"!Benefits!less!easily!quanUfied!A!Business!InnovaUon!The%Cloud%>>%a%bunch%of%useful%services%with%APIs%"!API[driven!is!mega.trend!!

Page 10: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

NIST!Terminology!

•  SaaS!=!Soiware!as!a!Service!(BYO!users)!•  PaaS!=!Plaform!as!a!Service!(BYO!apps)!•  IaaS!=!Infrastructure!as!a!Service!(BYO!VMs)!

Simplicity!

Complexity!Flexibility!

Rigidity!Power?!

Power?!h#p://csrc.nist.gov/publicaUons/nistpubs/800[145/SP800[145.pdf!

Page 11: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Cloud!CompuUng!On[Premises!Soiware!

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!

PlaXorm!(as!a!Service)!

Managed!by!vendor!

You!manage!

Storage

Servers

Networking

O/S

Middleware

Virtualization

Applications

Runtime

Data

Soiware!(as!a!Service)!

Managed!by!vendor!

Storage

Servers

O/S

Middleware

Virtualization

Applications

Runtime

Data

Networking

|%%%%%%%%%%Public%Cloud%Rental%Models%%%%%%%%%%%|!

Page 12: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

So<ware%as%a%Service%(“SaaS”)!BYO%Users%(or%Dev%Team)%

!!!!

And!others…!

Key!Concept!

Page 13: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Pla_orm%as%a%Service%(“PaaS”)!BYO%Apps!

!!!!

And!others…!

Key!Concept!

Page 14: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Infrastructure%as%a%Service%(“IaaS”)!BYO%VMs%(and%Admins%&%DBAs)!

!!!

And!others…!

Key!Concept!

Page 15: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

SaaS%#%PaaS%#%IaaS%is!a%spectrum"

How!to!choose?!Not!mutually!exclusive.!

PlaXorm!Services!are!your!friend.!

Key!Concept!

Page 16: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Need%Departmental%web%site%

Scenario"that"can

"actually"happen"

in"the"real"world%©"

(Ini6al)%Requirements:%%•  Public%•  Sta6c%•  Small%audience%

Page 17: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

What!happens!to!Departmental!Web!Site…!!

Business%Requirements%1.  Public!staUc!web!site!2.  15!users!3.  Dynamic!pages!updated!

by!pulling!from!API!4.  Control!access!to!some!

pages!w/!login!5.  Add!database!6.  Open!up!to!whole!

company!of!40k!people!

Technical%Solu6on%1.  Simple!Web!App!2.  Shared!VM!3.  Need!more!memory!

and!CPU!4.  Use!Federated!

AuthenUcaUon!5.  Need!backups!6.  Need!more!resources!+!

monitoring!+!DR!

Page 18: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Demo%

Windows!Azure!Web!Sites!Using!Azure!Web!Site!Gallery!

Page 19: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Demo%

Federated!AuthenUcaUon!ASP.NET!+!WAAD!(if!4me!allows,!at!end)!

Page 20: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Deployment%takes%too%long%

Scenario"that"can

"actually"happen"

in"the"real"world"

!"

•  Time%from%checkCin%to%available%for%dev/test%

•  Produc6on%vs.%other%environments%

Page 21: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Demo%

Windows!Azure!Web!Sites!Automated!Deployment!from!GitHub!

(one!of!many!opUons)!

Page 22: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Need%a%test%instance%

Scenario"that"can

"actually"happen"

in"the"real"world"™"

•  Poten6al%Customer(s)%(kick%6res,%PoC)%•  CEO%(conference!demo)%•  Marke6ng%(to%brag%about%it)%•  EVEN%for%“NONCCLOUD”%SOFTWARE…%

Page 23: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Demo%

Windows!Azure!Virtual!Machine!1.  Use!Azure!VM!Image!GALLERY!2.  Automate!with!CLI!

Page 24: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Flexible!VM!“Template”!OpUons!

Out[of[the[box!Vendor!Gallery!•  Curated!by!Vendor!

Community[driven!Gallery!•  Not!limited!to!“cloud!stuff”!•  Azure!VM!Depot!h#p://vmdepot.msopentech.com/!!•  Amazon!AMI!Marketplace!h#ps://aws.amazon.com/marketplace/!!

Your!own!Images!•  Easy!to!create!within!your!account!•  Can!keep!Private!or!Share!the!VM!•  Sharing!with!other!accounts!is!out[of[band!

Page 25: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Need%a%Database%

Scenario"that"can

"actually"happen"

in"the"real"world"

"

•  Experiment,%Prototype,%New%Dev,%Test,%Prod,%…%•  IaaS%vs.%PaaS%&%%

Vendor%vs.%3rd%Party:%Windows!Azure!SQL!Database,!SQL!Server,!RDS,!MySQL,!Oracle,!Mongo,!Azure!Tables,!SimpleDB,!and!many!more…!

Page 26: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Demo%

1.!Show!IaaS!and!PaaS!and!Partner%%%%%%%%%(Store/Marketplace)!OpUons!2.!Example!PaaS!database:!!!!!!Windows!Azure!SQL!Database!

Page 27: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Need%to%Share%Files%Publicly%%(or%selec6vely)%

Scenario"that"can

"actually"happen"

in"the"real"world"

"

•  Videos,%Documents,%Installa6ons,%…%•  Amazon%S3,%Azure%Blob%•  CDNCbacked,%Global,%SuperCscalable,%

CrazyCreliable,%Inexpensive%

Page 28: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Highly!Durable!Blob!Storage!(Azure)!

Page 29: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

24!CDN!Nodes!(8!Data!Centers)!

Image!credit:!h#p://welyClau.net/2012/05/10/an[introducUon[to[windows[azure[part[2/!

Page 30: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Need%a%temporary[?]%dev%environment%

Scenario"that"can

"actually"happen"

in"the"real"world"

"

•  Hire%a%ShortCterm%Contractor%•  Need%to%test%on%fresh%OS%•  Dev%on%vaca%needs%to%debug%•  Or%“just%because”…%•  Give%a%talk%or%give%demos%

Page 31: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Demo%

Windows!Azure!Virtual!Machines!with!MSDN!Benefits!(The!meta[demo!!)!

Page 32: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

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

Page 33: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Too%many%usernames%&%passwords%

Scenario"that"can

"actually"happen"

in"the"real"world"

"

•  Internal%apps%•  Our%customerCfacing%app%

requires%custom%username%•  Our%dev%tools%are%guilty%too%

Page 34: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Demo%

Federated!AuthenUcaUon!ASP.NET!+!WAAD!

Page 35: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

I%have%a%startup%or%want%to%learn%

Scenario"that"can

"actually"happen"

in"the"real"world"

∏"

•  Join%BizSpark%(Microso<)%or%AWS%Ac6vate%(Amazon)%

•  Use%the%free%6er%or%free%trial%•  GitHub%is%free%for%open%source%•  Apply%“unused”%MSDN%credits…%•  But%even%“full%price”%ain’t%bad%azure%aws%

Page 36: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Customers%complain%about%stability%

Scenario"that"can

"actually"happen"

in"the"real"world"

Page 37: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Monitoring!AlerUng!!Autoscale!

Page 38: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

[your%scenario%here]%

Scenario"that"can

"actually"happen"

in"the"real"world"

!"

•  What’s%le<?%%•  Ques6ons?%

Page 39: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Service%[or%app]%needs%to%scale%

Scenario"that"can

"actually"happen"

in"the"real"world"

≠"

Page 40: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Service%[or%app]%needs%to%really%scale%

Scenario"that"can

"actually"happen"

in"the"real"world

"""

•  CloudCNa6ve:%HA,%high%resourceCefficiency,%and%high%costCefficiency%

•  Impact%is%Architectural%•  Some%pa:erns%may%help…%

Page 41: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Windows Azure Compute Options

•  Hadoop!(HDInsight)!–!specialized:!big!data!•  Mobile!Services!–!specialized:!devices!•  Virtual!Machines!–!most!flexible!•  Web!Sites!–!most!convenient!•  Cloud!Services!–!most!scalable,!most!efficient!

Page 42: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Traditional Architecture (“SOA”)

Web!Tier!Load!!Balancer!

Service!Tier!

Page 43: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Cloud-Native Services •  Build!highly!scalable!apps!and!services!

•  MulU[Uer,!mulU[instance!architectures!

•  Can!be!combined!with!other!compute!services!

•  Maintain%stateless%nodes%&%horizontal%scaling%approach%

•  Automatable!management!

Page 44: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

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,!seyngs,!endpoints,!certs…!

Page 45: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Reliable Queue Services •  Rentable!–!off[the[shelf!service!•  Efficient!–!resource[!and!cost[efficient!•  Reliable!–!backed!by!SLA!and!ops!team!•  Durable!–!won’t!lose!your!data!•  Scalable!–!Internet"scale"•  Approachable!–!REST!+!SDKs!•  Feature!rich!–!!support!“at!least!once”!and!“at!most!once”!delivery!guarantees!

•  Examples:!!$  Azure!Service!Bus!&!Storage!Queue!Services!$  Amazon!Simple!Queue!Service!(SQS)!

Page 46: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Scalable Architecture

Service!Bus!Queue!

Web!Tier! Service!Tier!(“Workers”)!

Page 47: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Pa#ern!in!AcUon:!User!Uploads!Photo!

Web!Server!

Compute!Service!Reliable%Queue%

Reliable%Storage%

Page 48: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

QCW![on!Windows!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!

Page 49: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Pa#ern!in!AcUon:!User!Uploads!Photo!

Web!Tier!

Service!Tier!

Reliable%Queue%

Reliable%File%Storage%

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

www.pageo

fpho

tos.com! push! pull!

Page 50: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Pa#ern!enables!Responsive!UX!

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

•  Time!consuming!work!done!asynchronously!•  Comparable!total!resource!consumpUon,!arguably!be#er!subjecUve!UX!

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

Page 51: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Pa#ern!supports%bi[direcUonal!scaling!

•  Decoupled!front/back!provides!insula6on%–  Blocking!is!Bane!of!Scalability!– Order!processing!partner!doing!maintenance!–  Twi#er!down!–  Email!server!unreachable!–  Internet!connecUvity!interrupUon!

•  Loosely!coupled,!concernCindependent%scaling%–  (see!next!slide)!– Get!Scale%Units!right!– “Scale”!in!BOTH!DIRECTIONS!– Key!to!opUmizing!operaUonal!CO$T$%

Page 52: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

General!Case:!!Many!Roles,!Many!Queues%

Web!Role!(IIS)!

Worker!Role!

Web!Role!(IIS)!

Web!Role!

(Public)!

Worker!Role!Worker!Role!Worker!Role!Type!1!

Worker!Role!Worker!Role!Worker!Role!Worker!Role!Type!2!

Queue!Type!1!

Queue!Type!2!

Queue!Type!1!

Queue!Type!2!

Queue!Type!3!

• !Scaling!best!when!Investment%α%Benefit%• %Op6mize%for%CO$T%EFFICIENCY%

• !Logical!vs.!Physical!Architecture!depends!on!current!scale!

Worker!Role!Type!2!

Worker!Role!Type!2!

Worker!Role!Type!2!

Web!Role!

(Admin)!

Page 53: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Reliable!Queue!&!2[step!Delete!

Web%Tier%

Service%Tier%

(Workers)%

var%url!=!“h#p://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%

Page 54: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Pa#ern!requires!Idempotent!

•  Perform"idempotent"opera)on"more"than"

once,"end"result"same"as"if"we"did"it"once"

•  Example!with!Thumbnailing!(easy!case)!•  App[specific!concerns!dictate!approaches!

– CompensaUng!acUon,!Last!write!wins,!etc.!

•  PARTNERSHIP:!division!of!responsibility!between!cloud!plaXorm!&!app!– Far!cry!from!database!transacUon!

Page 55: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Pa#ern!expects%Poison!Messages!

•  A!Poison!Message!cannot!be!processed!– Error!condiUon!for!non[transient!reason!– Use!dequeue!count!property!

•  Be!proacUve!– Falling!off!the!queue!may!kill!your!system!

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

Page 56: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Pa#ern!assumes%“Plan!for!Failure”!

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

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

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

Page 57: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Typical%Site% Any%1%Role%Inst% Overall%System%

Opera6ng%System%Upgrade%

Applica6on%Code%Update%%

Scale%Up,%Down,%or%In%

Hardware%Failure%

So<ware%Failure%(Bug)%

Security%Patch%

What’s%Up?%Reliability!as!EMERGENT!PROPERTY!

Page 58: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Aside:!Is!QCW!same!as!CQRS?!

•  Short%answer:%“no”%•  CQRS%

–  Command%Query%Responsibility%Segrega6on%

•  Commands!change!state!•  Queries!ask!for!current!state!•  Any!operaUon!is!one!or!the!other!•  SomeUmes!includes!Event!Sourcing!•  SomeUmes!modeled!using!Domain!Driven!Design!(DDD)!

Page 59: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

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!pa#ern!– 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%Pa:ern%

Page 60: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Azure!Services!

Page 61: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

In!Closing…!

•  SaaS!+!APIs!– ALM,!user!feedback!gathering,!…!

•  PaaS!– Host!enUre!applicaUons!(e.g.,!Web!Sites)!– Make!it!easier!to!build!applicaUons!(leverage!Database!/!Queue!/!File!Storage!/!VM!services)!

•  IaaS!– Also!many!uses!for!dev/test!!

•  Use!services!to!help!you!scale!cost[!and!resource[efficiently!using!Architecture!

Page 62: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

QuesUons?!Comments?!

More!informaUon?!

?!

Page 63: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Business!Card!

Page 64: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

BostonAzure.org!

•  Boston!Azure!cloud!user!group!•  Focused!on!Microsoi’s!Public!Cloud!PlaXorm!

•  Monthly,!6:00[8:30!PM!in!Boston!area!– Food;!wifi;!free;!great!topics;!growing!community!

•  Follow!on!Twi#er:!@bostonazure%%•  More!info!or!to!join!our!Meetup.com!group:!!

h:p://www.bostonazure.org%

Page 65: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Looking"for"…"

•  consul)ng"help"with"Windows"Azure"PlaJorm?""

•  someone"to"bounce"Azure"or"cloud"ques)ons"off?"

•  a"speaker"for"your"user"group"or""company"technology"event?"

Just!Ask!!%

%Bill%Wilder%%@codingoutloud%%h:p://blog.codingoutloud.com%%community%inquiries:%[email protected]%%business%inquiries:%www.devpartners.com%%%book:%www.cloudarchitecturepa:erns.com%%

Contact%Me%

Find!this!slide!deck!here!

Page 66: Make the Cloud Less Cloudy: A Perspective for Software Development Teams
Page 67: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Cloud!Architecture!Pa#erns!book!Primer%Chapters%

1.  Scalability!2.  Eventual!Consistency!3.  MulUtenancy!and!!

Commodity!Hardware!4.  Network!Latency!

Page 68: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Cloud!Architecture!Pa#erns!book!!Pa:ern%Chapters%

1.  Horizontally!Scaling!Compute!Pa#ern!2.  Queue[Centric!Workflow!Pa#ern!3.  Auto[Scaling!Pa#ern!4.  MapReduce!Pa#ern!5.  Database!Sharding!Pa#ern!6.  Busy!Signal!Pa#ern!7.  Node!Failure!Pa#ern!8.  Colocate!Pa#ern!9.  Valet!Key!Pa#ern!10. CDN!Pa#ern!11. MulUsite!Deployment!Pa#ern!

Page 69: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

DONE!

Page 70: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Reality!is!Resource[Constrained!

“Security!is!always!a!tradeoff;!it!must!be!balanced!with!the!cost.”"! ! ![!Bruce!Schneier!

!!h#p://www.schneier.com/essay[207.html!

@Bill!Wilder! 68!

Page 71: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Members%of%%Windows%Azure%Security%Team%

@Bill!Wilder! 69!

Page 72: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Data

Defense!in!Depth!Approach!

Physical

Applica6on*

Host

Network

&  Strong!storage!keys!for!access!control!&  SSL!support!for!data!transfers!between!all!parUes!

&  Front[end!.NET!framework!code!running!under!parUal!trust!&  Windows!account!with!least!privileges!

&  Hardened!version!of!Windows!Server!2008!OS!for!both!VM!Host!and!VM!Guest!operaUng!systems!

&  Host!boundaries!enforced!by!external!hypervisor!

&  Host!firewall!limiUng!traffic!to!VMs!&  VLANs!and!packet!filters!in!routers!

&  World[class!physical!security!&  ISO!27001!and!SAS!70!Type!II!cerUficaUons!for!datacenter!

processes!

Layer DefenseCinCDepth

@Bill!Wilder! 70!

Page 73: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Defenses!Inherited!by!Windows!Azure!PlaXorm!ApplicaUons!

Spoofing! Tampering/!Disclosure!

ElevaUon!of!Privilege!

!Configurable!scale[out!

Denial!of!Service!

VM!switch!hardening!!CerUficate!Services!!Shared[Access!Signatures!!HTTPS!!!Sidechannel!protecUons!

VLANs!!Top!of!Rack!Switches!!Custom!packet!filtering!

ParUal!Trust!RunUme!!Hypervisor!custom!sandboxing!!Virtual!Service!Accounts!

RepudiaUon!

Monitoring!!!DiagnosUcs!Service!

@Bill!Wilder! 71!

Page 74: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Compliance!

•  Surrogate!for!“security”!•  Windows!Azure:!h#p://www.windowsazure.com/en[us/support/trust[center/compliance/!

•  Amazon!Web!Services:!h#p://aws.amazon.com/compliance/!!

Page 75: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

Developer!Resources!•  www.windowsazure.com/develop/!is!LOADED!with!Dev!Libraries,!Training!Kits,!How!To!Guides!across:!– Mobile!(iOS,!Android,!Win!Phone,!Win!8!SDKs)!–  .NET,!Node.js,!Java,!PHP,!Python,!REST!–  PowerShell,!CLI!

•  Example:!Create!Node.js%web%site!from!Mac!CLI!h#ps://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)!h#ps://www.windowsazure.com/en[us/develop/php/how[to[guides/command[line[tools/!h#ps://www.windowsazure.com/en[us/develop/nodejs/how[to[guides/command[line[tools/!!!

•  Example:!Install!Couchbase%+%VNet!on!VM!h#p://blogs.msdn.com/b/jimoneil/archive/2012/06/16/couchbase[on[azure[a[tour[of[new[windows[azure[features.aspx!! @Bill!Wilder! 73!

Page 76: Make the Cloud Less Cloudy: A Perspective for Software Development Teams

PORTAL%DEMO%%

www.windowsazure.com%manage.windowsazure.com%%

@Bill!Wilder! 74!