SlideShare a Scribd company logo
1 of 28
Cloud Computing
Considerations
Malisa Ncube
Developer Evangelist – Microsoft
be.com@malisancube
inbox@malisancube.com
What does it take to run an app?
Inspired by Steve Marx
http://blog.smarx.com/posts/what-is-windows-azure-a-hand-drawn-video
What does it take to run an app?
What does it take to run an app?
What does it take to run an app?
Scalability
• Measured by the number of users that the application can support effectively at the
same time.
• Relates to hardware resources needed (CPU,Memory, Disk and network bandwidth.
• Application logic runs on compute nodes and data on data nodes.
• Vertical scaling is achieved by increasing resources within existing nodes. This is limited
by hardware.
• Horizontal scaling is achieved by adding more nodes. It is more efficient with
homogeneous nodes.
• A scale unit is a combination of resources that needs to be scaled together in horizontal
homogeneous nodes.
• Resource contention limits scalability.
• Scalability is business concern. Google noticed a 20% reduction in traffic after introducing
500ms to page response time. Amazon 100ms caused 1% decrease in revenue.
The cloud
• Gives (illusion) infinite resources and limited by capacity of individual
virtual machines.
• Enabled by short term resource rental model
• Enabled by metered pay-for-use model. Usage costs are transparent.
• Enabled by self-service, on-demand, programmatic provisioning and
releasing of resources, scaling is automatable.
• Gives an ecosystem of managed platform services such as VMs, data
storage, networking, messaging and caching.
• Gives a simplified application development model.
A cloud native application
• Lets the platform do the hard stuff by leveraging the application services.
• Uses non-blocking asynchronous communication in a loosely coupled
architecture.
• Scales horizontally in an elastic mechanism.
• Does not waste resources
• Handles scaling events, node failures, transient failures without downtime
or performance degradation.
• Uses geographic distribution to minimize network latency.
• Upgrades without downtime.
• Scales automatically using proactive and reactive actions.
• Monitors and manages application logs as nodes come and go.
The cloud approaches
Horizontal scaling compute Pattern
• Horizontal scaling is reversible.
• Supports scaling out and scaling in
• Stateful nodes
• They keep user session information
• They have single point of failure
• Stateless nodes
• Store session information externally from the nodes.
Queue-Centric Workflow Pattern
• Used in web applications to decouple communication between web-tier and service tier
by focusing on the flow of commands.
• A service tier that is unreliable or slow can affect the web tier negatively.
• All communication is asynchronous as message over a queue
• The sender and receiver are loosely coupled. Neither one knows about the
implementation of the other.
• There is some edge cases where the risk of invisibility windows occurs when processing
takes longer than allowed.
• Idempotency concerns. Database transactions, compensating transaction.
• Poison messages placed in dead letter queue.
• QCW is not full CQRS as it does not articulate the read model.
Autoscaling Pattern
• Assumes horizontal scaling architecture
• Concerns are cost optimization and scalability
• Auto-scaling solutions enable scheduled (proactive and reactive) rules
that enable the provisioning of resources as needed.
• Throttling by selectively enabling or disabling features or functionality
based on environmental signals.
Eventual Consistency
• Simultaneous requests for the same data may result in different values.
• Leads to better performance and lower cost.
• Uses Brewer’s CAP theorem (Consistency Availability and Partition
tolerance). 3 Guarantees and application an pick only 2.
• Consistency. Everyone get the same answer.
• Availability. Clients have ongoing access (even if there is a partial system failure)
• Partition tolerance. Means correct operation even if some nodes are cut of from the
network.
• DNS updates and NoSQL are examples of eventually consistent services.
MapReduce Pattern
• Data processing approach for processing highly parallelized datasets.
• Require a mapper and reducer functions. Accepting data and producing
output with subsets of data and output of the mapper aggregated and sent
to the reducer.
• Used to process documents, server logs, social graphs.
• Hadoop implements MR as a batch processing system, optimized for large
amounts of data than response time.
• Created by Google Inc.
• Most effective to bring compute function to data
• Commonly refered to as BigData.
• Hadoop has abstractions on top that create functions e.g. (Mahout - ML,
Hive – SQL like, Pig – dataflow, Sqoop – RDBMs connector)
Database sharding/Federation Pattern
• A database divided into several shards, where each database row
exists only on one shard.
• Shards do not reference other shards.
• Slave shard nodes a typically eventually consistent and readonly.
• Programming model is simplified by maintaining a single logical
database with horizontal scaling.
• Fan-Out queries used to make updates to dependent federation
members. Similar to Windows Azure SQL Data Sync and MapReduce.
Multitenancy and commodity Hardware
• Multitenancy – multi companies using the system, usually a software
system with an illusion that they are the only tenant.
• Multitenancy in the cloud are standard: DNS Services, Hardware for
VMs, Load balancers, Identity management among others.
• Commonly used in SaaS environments where each tenant runs in a
secure sandbox (HyperV, RDBMS).
• Perfomance managed by using quotas, running resource hungry
service with those less intensive.
• Commodity hardware fails occasionally. Plan on it happening on your
compute nodes and plan on handling it.
Busy Signal Pattern
• Applies to services or resources accessed over a network where a
signal response is busy.
• These may include management, data services and more, and
periodic transient failure should be expected. E.g. Busy signal on
telephones.
• A good application should be able to handle retries and properly
handle failures.
• On HTTP. Response 503 Service Unavailable.
• Clearly identify Busy Signal and Errors and retry on Busy state after an
interval. Log them for further analysis of patterns.
Node Failure Pattern
• Concerns availability and graceful handling of unexpected
application/hardware failures, reboots or node shutdown.
• Application state should be in reliable storage, not on local disk or
individual node.
• Avoid single point of failure by using the N+1 rule.
• AWS & Azure send signals from nodes indicating shutdown and traffic
is routed to different tenants.
• An approach would include having the UI code to retry on failures,
throttling some of the features while the recovery is taking place.
• Azure runs in two fault domains
Network latency problem
• Network latency is a function of distance and bandwith
• Consider Data Compression, Background processing, Predictive Fetching.
• Move applications closer to users
• Move application data closer to users
• Ensure nodes within your application are closer together (Colocation)
• WA uses Affinity Groups
• Consider Valet/Key Pattern for public or temporary access. (Blob storage)
protected through hashing.
• Consider Content Delivery Network (CDN) – global distributed cache
effective for frequently accessed content. Can be inconsistent.
Feedback, materials and contacts
@malisancube

More Related Content

What's hot

Week 7 lecture material
Week 7 lecture materialWeek 7 lecture material
Week 7 lecture materialAnkit Gupta
 
ADDO 2021: Why and how to include database changes in the deployment pipeline
ADDO 2021: Why and how to include database changes in the deployment pipelineADDO 2021: Why and how to include database changes in the deployment pipeline
ADDO 2021: Why and how to include database changes in the deployment pipelineEduardo Piairo
 
Evolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deploymentsEvolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deploymentsRakuten Group, Inc.
 
Mod05lec25(resource mgmt ii)
Mod05lec25(resource mgmt ii)Mod05lec25(resource mgmt ii)
Mod05lec25(resource mgmt ii)Ankit Gupta
 
Network Management and Flow Analysis in Today’s Dense IT Environments
Network Management and Flow Analysis in Today’s Dense IT EnvironmentsNetwork Management and Flow Analysis in Today’s Dense IT Environments
Network Management and Flow Analysis in Today’s Dense IT EnvironmentsSolarWinds
 
Designing large scale distributed systems
Designing large scale distributed systemsDesigning large scale distributed systems
Designing large scale distributed systemsAshwani Priyedarshi
 
Building High Performance MySql Query Systems And Analytic Applications
Building High Performance MySql Query Systems And Analytic ApplicationsBuilding High Performance MySql Query Systems And Analytic Applications
Building High Performance MySql Query Systems And Analytic Applicationsguest40cda0b
 
High Performance Computer
High Performance ComputerHigh Performance Computer
High Performance ComputerAshok Raj
 
Natural Laws of Software Performance
Natural Laws of Software PerformanceNatural Laws of Software Performance
Natural Laws of Software PerformanceGibraltar Software
 
Mod05lec22(cloudonomics tutorial)
Mod05lec22(cloudonomics tutorial)Mod05lec22(cloudonomics tutorial)
Mod05lec22(cloudonomics tutorial)Ankit Gupta
 
Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012
Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012
Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012Big Data Spain
 
A load balancing model based on cloud partitioning for the public cloud. ppt
A  load balancing model based on cloud partitioning for the public cloud. ppt A  load balancing model based on cloud partitioning for the public cloud. ppt
A load balancing model based on cloud partitioning for the public cloud. ppt Lavanya Vigrahala
 
Base paper ppt-. A load balancing model based on cloud partitioning for the ...
Base paper ppt-. A  load balancing model based on cloud partitioning for the ...Base paper ppt-. A  load balancing model based on cloud partitioning for the ...
Base paper ppt-. A load balancing model based on cloud partitioning for the ...Lavanya Vigrahala
 
LOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMSLOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMStanmayshah95
 
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...Bob Pusateri
 

What's hot (20)

Week 7 lecture material
Week 7 lecture materialWeek 7 lecture material
Week 7 lecture material
 
ADDO 2021: Why and how to include database changes in the deployment pipeline
ADDO 2021: Why and how to include database changes in the deployment pipelineADDO 2021: Why and how to include database changes in the deployment pipeline
ADDO 2021: Why and how to include database changes in the deployment pipeline
 
Evolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deploymentsEvolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deployments
 
Mod05lec25(resource mgmt ii)
Mod05lec25(resource mgmt ii)Mod05lec25(resource mgmt ii)
Mod05lec25(resource mgmt ii)
 
Big Data for QAs
Big Data for QAsBig Data for QAs
Big Data for QAs
 
Cloud computing_Final
Cloud computing_FinalCloud computing_Final
Cloud computing_Final
 
Network Management and Flow Analysis in Today’s Dense IT Environments
Network Management and Flow Analysis in Today’s Dense IT EnvironmentsNetwork Management and Flow Analysis in Today’s Dense IT Environments
Network Management and Flow Analysis in Today’s Dense IT Environments
 
Designing large scale distributed systems
Designing large scale distributed systemsDesigning large scale distributed systems
Designing large scale distributed systems
 
Building High Performance MySql Query Systems And Analytic Applications
Building High Performance MySql Query Systems And Analytic ApplicationsBuilding High Performance MySql Query Systems And Analytic Applications
Building High Performance MySql Query Systems And Analytic Applications
 
Grid computiing
Grid computiingGrid computiing
Grid computiing
 
High Performance Computer
High Performance ComputerHigh Performance Computer
High Performance Computer
 
Natural Laws of Software Performance
Natural Laws of Software PerformanceNatural Laws of Software Performance
Natural Laws of Software Performance
 
Chap 1(one) general introduction
Chap 1(one)  general introductionChap 1(one)  general introduction
Chap 1(one) general introduction
 
Mod05lec22(cloudonomics tutorial)
Mod05lec22(cloudonomics tutorial)Mod05lec22(cloudonomics tutorial)
Mod05lec22(cloudonomics tutorial)
 
Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012
Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012
Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012
 
A load balancing model based on cloud partitioning for the public cloud. ppt
A  load balancing model based on cloud partitioning for the public cloud. ppt A  load balancing model based on cloud partitioning for the public cloud. ppt
A load balancing model based on cloud partitioning for the public cloud. ppt
 
Base paper ppt-. A load balancing model based on cloud partitioning for the ...
Base paper ppt-. A  load balancing model based on cloud partitioning for the ...Base paper ppt-. A  load balancing model based on cloud partitioning for the ...
Base paper ppt-. A load balancing model based on cloud partitioning for the ...
 
My Dissertation 2016
My Dissertation 2016My Dissertation 2016
My Dissertation 2016
 
LOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMSLOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMS
 
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
 

Viewers also liked

Isaac, daniel m y sergio
Isaac, daniel m y sergioIsaac, daniel m y sergio
Isaac, daniel m y sergiogolimo
 
Heath u09 past_tensecontinuouspp
Heath u09 past_tensecontinuousppHeath u09 past_tensecontinuouspp
Heath u09 past_tensecontinuouspprenaeheath
 
Theor yinvt ...
Theor yinvt ...Theor yinvt ...
Theor yinvt ...Laliscaro
 
11.20.2011 Registration Guide - I did not pre-register but I have my bib number
11.20.2011 Registration Guide - I did not pre-register but I have my bib number11.20.2011 Registration Guide - I did not pre-register but I have my bib number
11.20.2011 Registration Guide - I did not pre-register but I have my bib numberkapitbisigparasailogpasig
 
Belajar Fisika dengan Kertas
Belajar Fisika dengan KertasBelajar Fisika dengan Kertas
Belajar Fisika dengan KertasSparisoma Viridi
 
resume_Sudarshan-modified3
resume_Sudarshan-modified3resume_Sudarshan-modified3
resume_Sudarshan-modified3Sudarshan M V
 
Cat shoulder bag
Cat shoulder bagCat shoulder bag
Cat shoulder bagJohn Li
 
1 091203052652-phpapp02
1 091203052652-phpapp021 091203052652-phpapp02
1 091203052652-phpapp02zubezko
 
Cat shoulder bag
Cat shoulder bagCat shoulder bag
Cat shoulder bagJohn Li
 
Presentación de los árboles genealógicos
Presentación de los árboles genealógicosPresentación de los árboles genealógicos
Presentación de los árboles genealógicosInfosCollège
 
Políticas_de_planificación
Políticas_de_planificaciónPolíticas_de_planificación
Políticas_de_planificaciónddomecv
 
Fisika Berbasiskan Dinamika Molekular Butiran
Fisika Berbasiskan Dinamika Molekular ButiranFisika Berbasiskan Dinamika Molekular Butiran
Fisika Berbasiskan Dinamika Molekular ButiranSparisoma Viridi
 

Viewers also liked (20)

Isaac, daniel m y sergio
Isaac, daniel m y sergioIsaac, daniel m y sergio
Isaac, daniel m y sergio
 
Heath u09 past_tensecontinuouspp
Heath u09 past_tensecontinuousppHeath u09 past_tensecontinuouspp
Heath u09 past_tensecontinuouspp
 
Theor yinvt ...
Theor yinvt ...Theor yinvt ...
Theor yinvt ...
 
Research methodology
Research methodologyResearch methodology
Research methodology
 
11.20.2011 Registration Guide - I did not pre-register but I have my bib number
11.20.2011 Registration Guide - I did not pre-register but I have my bib number11.20.2011 Registration Guide - I did not pre-register but I have my bib number
11.20.2011 Registration Guide - I did not pre-register but I have my bib number
 
Belajar Fisika dengan Kertas
Belajar Fisika dengan KertasBelajar Fisika dengan Kertas
Belajar Fisika dengan Kertas
 
resume_Sudarshan-modified3
resume_Sudarshan-modified3resume_Sudarshan-modified3
resume_Sudarshan-modified3
 
Cat shoulder bag
Cat shoulder bagCat shoulder bag
Cat shoulder bag
 
natur 1. gaia
natur 1. gaianatur 1. gaia
natur 1. gaia
 
1 091203052652-phpapp02
1 091203052652-phpapp021 091203052652-phpapp02
1 091203052652-phpapp02
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Cat shoulder bag
Cat shoulder bagCat shoulder bag
Cat shoulder bag
 
Personality test
Personality testPersonality test
Personality test
 
Natur
NaturNatur
Natur
 
Presentación de los árboles genealógicos
Presentación de los árboles genealógicosPresentación de los árboles genealógicos
Presentación de los árboles genealógicos
 
Políticas_de_planificación
Políticas_de_planificaciónPolíticas_de_planificación
Políticas_de_planificación
 
Fisika Berbasiskan Dinamika Molekular Butiran
Fisika Berbasiskan Dinamika Molekular ButiranFisika Berbasiskan Dinamika Molekular Butiran
Fisika Berbasiskan Dinamika Molekular Butiran
 
Theory ...
Theory ...Theory ...
Theory ...
 
Show time
Show timeShow time
Show time
 
Syllabus
SyllabusSyllabus
Syllabus
 

Similar to Cloud computing

An Introduction to Cloud Computing and Lates Developments.ppt
An Introduction to Cloud Computing and Lates Developments.pptAn Introduction to Cloud Computing and Lates Developments.ppt
An Introduction to Cloud Computing and Lates Developments.pptHarshalUbale2
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud applicationNoam Sheffer
 
Cloud computing Module 2 First Part
Cloud computing Module 2 First PartCloud computing Module 2 First Part
Cloud computing Module 2 First PartSoumee Maschatak
 
Chapter 5.pptx
Chapter 5.pptxChapter 5.pptx
Chapter 5.pptxJoeBaker69
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Building data intensive applications
Building data intensive applicationsBuilding data intensive applications
Building data intensive applicationsAmit Kejriwal
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureTapio Rautonen
 
Cloud Ready Apps
Cloud Ready AppsCloud Ready Apps
Cloud Ready AppsDotitude
 
02 Models of Distribution Systems.pdf
02 Models of Distribution Systems.pdf02 Models of Distribution Systems.pdf
02 Models of Distribution Systems.pdfRobeliaJoyVillaruz
 
01Introduction to Cloud Computing .pptx
01Introduction to Cloud Computing  .pptx01Introduction to Cloud Computing  .pptx
01Introduction to Cloud Computing .pptxssuser586772
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenParticular Software
 
Scalable analytics for iaas cloud availability
Scalable analytics for iaas cloud availabilityScalable analytics for iaas cloud availability
Scalable analytics for iaas cloud availabilityPapitha Velumani
 
Data management in cloud computing trainee
Data management in cloud computing  traineeData management in cloud computing  trainee
Data management in cloud computing traineeDamilola Mosaku
 
Introduction to Cloud Data Center and Network Issues
Introduction to Cloud Data Center and Network IssuesIntroduction to Cloud Data Center and Network Issues
Introduction to Cloud Data Center and Network IssuesJason TC HOU (侯宗成)
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople
 
Development of concurrent services using In-Memory Data Grids
Development of concurrent services using In-Memory Data GridsDevelopment of concurrent services using In-Memory Data Grids
Development of concurrent services using In-Memory Data Gridsjlorenzocima
 
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!Continuent
 
The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015Eduserv
 

Similar to Cloud computing (20)

An Introduction to Cloud Computing and Lates Developments.ppt
An Introduction to Cloud Computing and Lates Developments.pptAn Introduction to Cloud Computing and Lates Developments.ppt
An Introduction to Cloud Computing and Lates Developments.ppt
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud application
 
Cloud computing Module 2 First Part
Cloud computing Module 2 First PartCloud computing Module 2 First Part
Cloud computing Module 2 First Part
 
Chapter 5.pptx
Chapter 5.pptxChapter 5.pptx
Chapter 5.pptx
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Building data intensive applications
Building data intensive applicationsBuilding data intensive applications
Building data intensive applications
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud Infrastructure
 
Cloud Ready Apps
Cloud Ready AppsCloud Ready Apps
Cloud Ready Apps
 
02 Models of Distribution Systems.pdf
02 Models of Distribution Systems.pdf02 Models of Distribution Systems.pdf
02 Models of Distribution Systems.pdf
 
01Introduction to Cloud Computing .pptx
01Introduction to Cloud Computing  .pptx01Introduction to Cloud Computing  .pptx
01Introduction to Cloud Computing .pptx
 
Types of computing
Types of computingTypes of computing
Types of computing
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves Goeleven
 
Scalable analytics for iaas cloud availability
Scalable analytics for iaas cloud availabilityScalable analytics for iaas cloud availability
Scalable analytics for iaas cloud availability
 
Data management in cloud computing trainee
Data management in cloud computing  traineeData management in cloud computing  trainee
Data management in cloud computing trainee
 
Introduction to Cloud Data Center and Network Issues
Introduction to Cloud Data Center and Network IssuesIntroduction to Cloud Data Center and Network Issues
Introduction to Cloud Data Center and Network Issues
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud Computing
 
Development of concurrent services using In-Memory Data Grids
Development of concurrent services using In-Memory Data GridsDevelopment of concurrent services using In-Memory Data Grids
Development of concurrent services using In-Memory Data Grids
 
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
 
The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015
 
13778757.ppt
13778757.ppt13778757.ppt
13778757.ppt
 

Recently uploaded

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 

Recently uploaded (20)

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 

Cloud computing

  • 2. Malisa Ncube Developer Evangelist – Microsoft be.com@malisancube inbox@malisancube.com
  • 3.
  • 4. What does it take to run an app? Inspired by Steve Marx http://blog.smarx.com/posts/what-is-windows-azure-a-hand-drawn-video
  • 5. What does it take to run an app?
  • 6. What does it take to run an app?
  • 7. What does it take to run an app?
  • 8. Scalability • Measured by the number of users that the application can support effectively at the same time. • Relates to hardware resources needed (CPU,Memory, Disk and network bandwidth. • Application logic runs on compute nodes and data on data nodes. • Vertical scaling is achieved by increasing resources within existing nodes. This is limited by hardware. • Horizontal scaling is achieved by adding more nodes. It is more efficient with homogeneous nodes. • A scale unit is a combination of resources that needs to be scaled together in horizontal homogeneous nodes. • Resource contention limits scalability. • Scalability is business concern. Google noticed a 20% reduction in traffic after introducing 500ms to page response time. Amazon 100ms caused 1% decrease in revenue.
  • 9. The cloud • Gives (illusion) infinite resources and limited by capacity of individual virtual machines. • Enabled by short term resource rental model • Enabled by metered pay-for-use model. Usage costs are transparent. • Enabled by self-service, on-demand, programmatic provisioning and releasing of resources, scaling is automatable. • Gives an ecosystem of managed platform services such as VMs, data storage, networking, messaging and caching. • Gives a simplified application development model.
  • 10. A cloud native application • Lets the platform do the hard stuff by leveraging the application services. • Uses non-blocking asynchronous communication in a loosely coupled architecture. • Scales horizontally in an elastic mechanism. • Does not waste resources • Handles scaling events, node failures, transient failures without downtime or performance degradation. • Uses geographic distribution to minimize network latency. • Upgrades without downtime. • Scales automatically using proactive and reactive actions. • Monitors and manages application logs as nodes come and go.
  • 12. Horizontal scaling compute Pattern • Horizontal scaling is reversible. • Supports scaling out and scaling in • Stateful nodes • They keep user session information • They have single point of failure • Stateless nodes • Store session information externally from the nodes.
  • 13.
  • 14. Queue-Centric Workflow Pattern • Used in web applications to decouple communication between web-tier and service tier by focusing on the flow of commands. • A service tier that is unreliable or slow can affect the web tier negatively. • All communication is asynchronous as message over a queue • The sender and receiver are loosely coupled. Neither one knows about the implementation of the other. • There is some edge cases where the risk of invisibility windows occurs when processing takes longer than allowed. • Idempotency concerns. Database transactions, compensating transaction. • Poison messages placed in dead letter queue. • QCW is not full CQRS as it does not articulate the read model.
  • 15. Autoscaling Pattern • Assumes horizontal scaling architecture • Concerns are cost optimization and scalability • Auto-scaling solutions enable scheduled (proactive and reactive) rules that enable the provisioning of resources as needed. • Throttling by selectively enabling or disabling features or functionality based on environmental signals.
  • 16.
  • 17. Eventual Consistency • Simultaneous requests for the same data may result in different values. • Leads to better performance and lower cost. • Uses Brewer’s CAP theorem (Consistency Availability and Partition tolerance). 3 Guarantees and application an pick only 2. • Consistency. Everyone get the same answer. • Availability. Clients have ongoing access (even if there is a partial system failure) • Partition tolerance. Means correct operation even if some nodes are cut of from the network. • DNS updates and NoSQL are examples of eventually consistent services.
  • 18. MapReduce Pattern • Data processing approach for processing highly parallelized datasets. • Require a mapper and reducer functions. Accepting data and producing output with subsets of data and output of the mapper aggregated and sent to the reducer. • Used to process documents, server logs, social graphs. • Hadoop implements MR as a batch processing system, optimized for large amounts of data than response time. • Created by Google Inc. • Most effective to bring compute function to data • Commonly refered to as BigData. • Hadoop has abstractions on top that create functions e.g. (Mahout - ML, Hive – SQL like, Pig – dataflow, Sqoop – RDBMs connector)
  • 19.
  • 20. Database sharding/Federation Pattern • A database divided into several shards, where each database row exists only on one shard. • Shards do not reference other shards. • Slave shard nodes a typically eventually consistent and readonly. • Programming model is simplified by maintaining a single logical database with horizontal scaling. • Fan-Out queries used to make updates to dependent federation members. Similar to Windows Azure SQL Data Sync and MapReduce.
  • 21.
  • 22. Multitenancy and commodity Hardware • Multitenancy – multi companies using the system, usually a software system with an illusion that they are the only tenant. • Multitenancy in the cloud are standard: DNS Services, Hardware for VMs, Load balancers, Identity management among others. • Commonly used in SaaS environments where each tenant runs in a secure sandbox (HyperV, RDBMS). • Perfomance managed by using quotas, running resource hungry service with those less intensive. • Commodity hardware fails occasionally. Plan on it happening on your compute nodes and plan on handling it.
  • 23.
  • 24. Busy Signal Pattern • Applies to services or resources accessed over a network where a signal response is busy. • These may include management, data services and more, and periodic transient failure should be expected. E.g. Busy signal on telephones. • A good application should be able to handle retries and properly handle failures. • On HTTP. Response 503 Service Unavailable. • Clearly identify Busy Signal and Errors and retry on Busy state after an interval. Log them for further analysis of patterns.
  • 25.
  • 26. Node Failure Pattern • Concerns availability and graceful handling of unexpected application/hardware failures, reboots or node shutdown. • Application state should be in reliable storage, not on local disk or individual node. • Avoid single point of failure by using the N+1 rule. • AWS & Azure send signals from nodes indicating shutdown and traffic is routed to different tenants. • An approach would include having the UI code to retry on failures, throttling some of the features while the recovery is taking place. • Azure runs in two fault domains
  • 27. Network latency problem • Network latency is a function of distance and bandwith • Consider Data Compression, Background processing, Predictive Fetching. • Move applications closer to users • Move application data closer to users • Ensure nodes within your application are closer together (Colocation) • WA uses Affinity Groups • Consider Valet/Key Pattern for public or temporary access. (Blob storage) protected through hashing. • Consider Content Delivery Network (CDN) – global distributed cache effective for frequently accessed content. Can be inconsistent.
  • 28. Feedback, materials and contacts @malisancube

Editor's Notes

  1. Before I start, lets take a moment to think about what it takes to actually run an app on the internet <<click>> There’s a lot to think about, we need to think about the <<click>> operating system that we use and how to keep that patched up <<click>> We need to think about the network, routers, load balancers, and DNS and how there will interact with our system <<click>> We need to think about storage needs for our application and how to manage all that data <<click>> And we need to think about scale, how are we going to scale to our many users, who are geographically distributed <<click>> I need to point out that this applies to any application, not just ours and more importantly, what does all of this have to do with our application?
  2. But what if there was a different way, What if there was something that would take care of all those other things for us <<click>> All the operating systems, the networking, the storage, the scale <<click>> And let us worry about what we care about the most, OUR APPLICATION! <<click>> With something like that, we could build our application faster and we could keep our users happy <<click>> This is the idea behind Windows Azure. Windows Azure is Microsoft’s cloud computing platform. That means it is designed to run your application, at scale out on the internet.
  3. Now let’s talk about scale <<click>> If you are like most application owners, you’re hoping your application scales like this <<click>> Notice, that this is your peak, and if you have to pay upfront for the resources you are going to use at the peak <<click>> You’ll be wasting all of this <<click>> With Windows Azure, instead, you will be paying for the resources only when you need them
  4. With that model you can <<click>> stop worrying about what your peak is and save a lot of money And it is more than hosting too, Windows Azure gives you: elasticity scalability economics * pay as you go And self service
  5. If your application has N upgrade domains, Fabric Controller will manage upgrades such that 1/N role instances will be impacted Azure VIP Swap feature to avoid deploying multiple concurrent versions
  6. We’re really excited about what you can do with Azure We’re really looking forward to seeing what you build with it Sign up for your free 90-day trial using the link above, and make sure to follow me and AfricaApps account on twitter for the latest updates on Azure and other upcoming events. I’d love to hear your feedback on this presentation, so please scan this code and you’ll find the feedback form, along with the material presented today. And I want to thank everyone here for coming to the Africa Developer Camp and for this session Thanks, and enjoy the rest of the camp