SlideShare a Scribd company logo
Writing Applications at Cloud Scale
by Matt Ryan
Tuesday, May 7, 13
What is “Cloud Computing”?
Pooled computing resources available to any subscriber
Available over network
Elasticity of resources
Self-servicing / automated resource deployment
Metered billing
Source: The NIST Definition of Cloud Computing (http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf)
Tuesday, May 7, 13
Cloud Implications - Elasticity
Your app needs to support any number of users
Your app needs to be able to run on any number of machines
Your app achieves scalability by adding machines
Your app needs to be built atop elastic resources and infrastructure
Tuesday, May 7, 13
Cloud Implications - Self-Service
Your users can scale their usage up or down automatically on their own
The resources your app uses can grow and shrink based on demand
Tuesday, May 7, 13
Cloud Implications
You have to assume your app is multi-machine and asynchronous
You have to rely on replacements for many operating system primitives
Programming language is not that important for scale
Tuesday, May 7, 13
#!/usr/bin/env python
from magic import magician
from voodoo import voodoo_foo
class uber_magic_foo(magician):
def say_alakazam(self):
voodoo_foo()
self.impress_audience()
if __name__ == ‘__main__’:
umf = uber_magic_foo()
umf.say_alakazam()
+
≠
Tuesday, May 7, 13
Tuesday, May 7, 13
Tuesday, May 7, 13
Tuesday, May 7, 13
Tuesday, May 7, 13
Tuesday, May 7, 13
Tuesday, May 7, 13
Your App
Tuesday, May 7, 13
Your App Your AppYour App
Your App Your AppYour App
Your App Your AppYour App
Tuesday, May 7, 13
Your App
Tuesday, May 7, 13
Your App
Compute
Storage
Messaging
Configuration
Security
Tuesday, May 7, 13
So why do I care?
Tuesday, May 7, 13
Tuesday, May 7, 13
Demo: AudioFile v.1
Tuesday, May 7, 13
Typical Approaches to Scalability
Use multithreading / multiple processes
Profile / look for hotspots
Batch file I/O / buffer / cache
Cluster RDBMS / split or shard DB
Rewrite in C / Assembly
Tuesday, May 7, 13
Demo: AudioFile v.2
Tuesday, May 7, 13
Preparing for the cloud
Segregate application from infrastructure
Isolate components that can be replaced by cloud-based services
File storage, thread execution, database access...
Simulate cloud computing metaphors
Producer/consumer, asynchronous processing...
Tuesday, May 7, 13
Demo: AudioFile v.3
Tuesday, May 7, 13
A Cloud-Scale App
SQLite database replaced with MongoDB
Other options: CouchDB, Cassandra, Redis...
Threadpool replaced with ActiveMQ + workers
Other options: RabbitMQ, 0MQ, Starling...
Other possibilities:
Use Storm to manage producers and consumers
Use Zookeeper to manage app configuration
Tuesday, May 7, 13
Takeaways
Cloud apps are not just “on the Internet” — they are apps that perform at
cloud scale
Cloud scale apps have to be designed that way from the start
Cloud scale is the expectation for 21st century applications
Tuesday, May 7, 13
Matt Ryan
@mattvryan
http://www.mvryan.org
https://github.com/mattvryan
Tuesday, May 7, 13
Licensing
Slide 7
Network cables: Source: http://www.freefoto.com, License: CC BY-NC-ND 3.0
Cloud: Public Domain
Slide 8 - Disc Drive: Source: Jeff Kubina, License: CC BY-SA 2.0
Slide 9 - Padlock and Key: Public Domain
Slide 10 - Wild Rabbits at Edinburgh Zoo: Source: Worm That Turned via Wikimedia Commons, License: CC BY-SA 3.0
Slide 11 - Gear: Public Domain
Slide 12 - Message in a Bottle: Source: copy-ninja-Alex, License: CC BY-NC-ND 3.0
Slide 13 - Stockholm Public Library: Source: Marcus Hansson via Wikimedia Commons, License: CC BY 2.0
Slide 19 - Garmin GPS: Source: Joe Gallagher, License: CC BY-NC-ND 2.0
All other content: Created by Matt Ryan CC BY-SA 3.0
Tuesday, May 7, 13

More Related Content

Similar to Writing Applications at Cloud Scale

About clouds
About cloudsAbout clouds
About clouds
Shahbaz Sidhu
 
pptseminar.pptx
pptseminar.pptxpptseminar.pptx
pptseminar.pptx
16115yogendraSingh
 
Above theclouds
Above thecloudsAbove theclouds
Above theclouds
tt_aljobory
 
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
IIJSRJournal
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Syam Lal
 
Synopsis on cloud computing by Prashant upta
Synopsis on cloud computing by Prashant uptaSynopsis on cloud computing by Prashant upta
Synopsis on cloud computing by Prashant upta
Prashant Gupta
 
Cloud computing and its application in libraries
Cloud computing and its application in librariesCloud computing and its application in libraries
Cloud computing and its application in libraries
Nabi Hasan
 
A STUDY ON CLOUD STORAGE
A STUDY ON CLOUD STORAGEA STUDY ON CLOUD STORAGE
A STUDY ON CLOUD STORAGE
Daniel Wachtel
 
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
IOSR Journals
 
Ey35869874
Ey35869874Ey35869874
Ey35869874
IJERA Editor
 
From Grid to Cloud
From Grid to CloudFrom Grid to Cloud
From Grid to Cloud
gojkoadzic
 
Cloud Computing Neccesity
Cloud Computing  NeccesityCloud Computing  Neccesity
Cloud Computing Neccesity
Arjunsinh Sindhav
 
cloud computing by satwik
cloud computing by satwikcloud computing by satwik
cloud computing by satwik
satwik gangavarapu
 
Cloud computing
Cloud computingCloud computing
Cloud computing
NEHA GAUTAM
 
Cloudcoputing
CloudcoputingCloudcoputing
Cloudcoputing
Ramesh Sigdel
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
Ramesh Sigdel
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
MunmunSaha7
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
DevendraPathak22
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
AmitPaul775033
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
ahmedraed19
 

Similar to Writing Applications at Cloud Scale (20)

About clouds
About cloudsAbout clouds
About clouds
 
pptseminar.pptx
pptseminar.pptxpptseminar.pptx
pptseminar.pptx
 
Above theclouds
Above thecloudsAbove theclouds
Above theclouds
 
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Synopsis on cloud computing by Prashant upta
Synopsis on cloud computing by Prashant uptaSynopsis on cloud computing by Prashant upta
Synopsis on cloud computing by Prashant upta
 
Cloud computing and its application in libraries
Cloud computing and its application in librariesCloud computing and its application in libraries
Cloud computing and its application in libraries
 
A STUDY ON CLOUD STORAGE
A STUDY ON CLOUD STORAGEA STUDY ON CLOUD STORAGE
A STUDY ON CLOUD STORAGE
 
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
 
Ey35869874
Ey35869874Ey35869874
Ey35869874
 
From Grid to Cloud
From Grid to CloudFrom Grid to Cloud
From Grid to Cloud
 
Cloud Computing Neccesity
Cloud Computing  NeccesityCloud Computing  Neccesity
Cloud Computing Neccesity
 
cloud computing by satwik
cloud computing by satwikcloud computing by satwik
cloud computing by satwik
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloudcoputing
CloudcoputingCloudcoputing
Cloudcoputing
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
 

Recently uploaded

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 

Recently uploaded (20)

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 

Writing Applications at Cloud Scale

  • 1. Writing Applications at Cloud Scale by Matt Ryan Tuesday, May 7, 13
  • 2. What is “Cloud Computing”? Pooled computing resources available to any subscriber Available over network Elasticity of resources Self-servicing / automated resource deployment Metered billing Source: The NIST Definition of Cloud Computing (http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf) Tuesday, May 7, 13
  • 3. Cloud Implications - Elasticity Your app needs to support any number of users Your app needs to be able to run on any number of machines Your app achieves scalability by adding machines Your app needs to be built atop elastic resources and infrastructure Tuesday, May 7, 13
  • 4. Cloud Implications - Self-Service Your users can scale their usage up or down automatically on their own The resources your app uses can grow and shrink based on demand Tuesday, May 7, 13
  • 5. Cloud Implications You have to assume your app is multi-machine and asynchronous You have to rely on replacements for many operating system primitives Programming language is not that important for scale Tuesday, May 7, 13
  • 6. #!/usr/bin/env python from magic import magician from voodoo import voodoo_foo class uber_magic_foo(magician): def say_alakazam(self): voodoo_foo() self.impress_audience() if __name__ == ‘__main__’: umf = uber_magic_foo() umf.say_alakazam() + ≠ Tuesday, May 7, 13
  • 14. Your App Your AppYour App Your App Your AppYour App Your App Your AppYour App Tuesday, May 7, 13
  • 17. So why do I care? Tuesday, May 7, 13
  • 20. Typical Approaches to Scalability Use multithreading / multiple processes Profile / look for hotspots Batch file I/O / buffer / cache Cluster RDBMS / split or shard DB Rewrite in C / Assembly Tuesday, May 7, 13
  • 22. Preparing for the cloud Segregate application from infrastructure Isolate components that can be replaced by cloud-based services File storage, thread execution, database access... Simulate cloud computing metaphors Producer/consumer, asynchronous processing... Tuesday, May 7, 13
  • 24. A Cloud-Scale App SQLite database replaced with MongoDB Other options: CouchDB, Cassandra, Redis... Threadpool replaced with ActiveMQ + workers Other options: RabbitMQ, 0MQ, Starling... Other possibilities: Use Storm to manage producers and consumers Use Zookeeper to manage app configuration Tuesday, May 7, 13
  • 25. Takeaways Cloud apps are not just “on the Internet” — they are apps that perform at cloud scale Cloud scale apps have to be designed that way from the start Cloud scale is the expectation for 21st century applications Tuesday, May 7, 13
  • 27. Licensing Slide 7 Network cables: Source: http://www.freefoto.com, License: CC BY-NC-ND 3.0 Cloud: Public Domain Slide 8 - Disc Drive: Source: Jeff Kubina, License: CC BY-SA 2.0 Slide 9 - Padlock and Key: Public Domain Slide 10 - Wild Rabbits at Edinburgh Zoo: Source: Worm That Turned via Wikimedia Commons, License: CC BY-SA 3.0 Slide 11 - Gear: Public Domain Slide 12 - Message in a Bottle: Source: copy-ninja-Alex, License: CC BY-NC-ND 3.0 Slide 13 - Stockholm Public Library: Source: Marcus Hansson via Wikimedia Commons, License: CC BY 2.0 Slide 19 - Garmin GPS: Source: Joe Gallagher, License: CC BY-NC-ND 2.0 All other content: Created by Matt Ryan CC BY-SA 3.0 Tuesday, May 7, 13