SlideShare a Scribd company logo
1 of 38
Things to think about whilearchitecting Azure solutions
Famous Last Words… “It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable….” (Fred Brooks - “Mythical Man-Month” p.47)
So, What is Software Architecture exactly?
Software architecture is the fundamentalorganization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution
Architecture forces Stakeholders Quality  Attributes Constraints Principles Community  experience Architect Architecture Patterns &  Anti-patterns Key people Technology A “deliverable” Produce Is an input
Dequeue/Delete pattern The  Network is reliable
Dequeue/Delete pattern The  Network is reliable Still a problem  If we crash here
Idempotencyf(x) = f(f(x))
Messages Process At Least Once Debit bank account $100 message Worker role reads message Balance debited $100 Worker role is torn before message can be deleted 3 minutes later, message re-appears on queue Worker role reads message Balance debited $100 Message deleted from queue Chaos ensues..... Customer calls bank..... Web Role Worker Role Balance = $1000 Balance = $900 Balance = $800 Worker Role Web Role Worker Role Worker Role Queue Storage LB LB
Solving the Idempotency Problem Debit bank account $100 message with transaction ID Worker role reads message. Checks transaction ID not present. Writes transaction ID with state ‘Started’ to ‘Replay Log’ Balance debited $100 Worker role is torn before message can be deleted 3 minutes later, message re-appears on queue Worker role reads message. Checks transaction ID. It is present in state started. Compensating message written to another queue Message deleted from queue Compensatory message processed. Balance = $1000 Balance = $900 Web Role Worker Role Worker Role Web Role Storage Worker Role Worker Role Query Query Queue Queue Table LB LB
Latency is zero
It might be infinite for all purposes but it costs… Bandwidth is infinite
Authentication with ACS The Network is Secure Slide by Alik Levin
Service Bus Provides secure messaging and connectivity across different network topologies Enables hybrid applications that span on-premises and the cloud Enables various communication protocols and patterns for developers to engage in reliable messaging Topology doesn’t change
Enabling hybrid applications Datacenter Partner LOB app Mobile Device LOB web service
Enabling hybrid applications Datacenter Partner ACS LOB app SB Mobile Device LOB web service
Enabling hybrid applications Datacenter Partner ACS LOB app SB Mobile Device LOB web service
Enabling hybrid applications Partner Datacenter ACS LOB app SB Mobile Device LOB web service
Enabling hybrid applications Partner Datacenter ACS LOB app SB Mobile Device LOB web service
Electricity  Power Grid Demo
Don’t assume specific instances Virtual IP : 1.1.1.2 Virtual IP : 1.1.1.3 Virtual IP : 1.1.1.4 Worker Role Worker Role Web Role Service  Service  IIS Instance Instance Windows Kernel Windows Kernel Windows Kernel TCP/IP TCP/IP TCP/IP TCP/IP TCP/IP NLB Driver NIC Driver NIC Driver NIC Driver Virtual NIC Virtual NIC Virtual NIC Virtual IP : 1.1.1.1
Inter-role communications
Reduced Headache on  the one handNew challenges on the other There is one administrator
Azure MMC Snap-in  http://code.msdn.microsoft.com/windowsazuremmc
Cerebrata – Azure Diagnostics Manager http://www.cerebrata.com/Products/AzureDiagnosticsManager/Default.aspx
Distribution cost in serialization, time on the wire, security  Transport cost is zero
A lot of calls to fulfill a business function
Bring Data close to computation
It isn’t – but it’s abstractedunless of course you use Azure connect The Network is homogenous  Quickly connect on-premise computers with the cloud, no networking configuration required Supports standard IP protocols; secured using end-to-end IPSec Integrated with the Windows Azure Service Model; all role types supported
Deployment view Consider xsmall instances for development Test if you can use less than medium for production
Cost considerations You pay when you’re deployed (there is no “shelving”) Shutdown doesn’t help (keep CPUs running..)
2 Small instances cost the same as 1 medium instance
2 instances can give you better availability Need to be on different fault and upgrade domains
I/O performance on smaller instances might be problematic
You can control Azure from scripts and code (even dev fabric) Testing
Demo Cloudoscope Acceptance Tests
Illustrations Slide 11 http://www.sxc.hu/photo/1201443 Slide  http://www.sxc.hu/photo/1160486

More Related Content

Viewers also liked

Dez Makes an Impression
Dez Makes an ImpressionDez Makes an Impression
Dez Makes an Impressiondgonzalez70
 
Proyecto genes II. Nuevas tecnologías para emprendores
Proyecto genes II. Nuevas tecnologías para emprendoresProyecto genes II. Nuevas tecnologías para emprendores
Proyecto genes II. Nuevas tecnologías para emprendoresJose Cantalejo Trinidad
 
TRABALHO: Literatura
TRABALHO: LiteraturaTRABALHO: Literatura
TRABALHO: LiteraturaLGonc
 
Mat leitura numero decimal
Mat leitura numero decimalMat leitura numero decimal
Mat leitura numero decimaltrigono_metria
 
Campeonato gaúcho júnior 2014 artilharia
Campeonato gaúcho júnior 2014   artilhariaCampeonato gaúcho júnior 2014   artilharia
Campeonato gaúcho júnior 2014 artilhariaRafael Passos
 
Apresentação Cores PrimáRias e SecundáRias - Mônica Barreto (UFAM)
Apresentação Cores PrimáRias e SecundáRias - Mônica Barreto (UFAM)Apresentação Cores PrimáRias e SecundáRias - Mônica Barreto (UFAM)
Apresentação Cores PrimáRias e SecundáRias - Mônica Barreto (UFAM)Mônica Barreto
 
Predictive Model for Loan Approval Process using SAS 9.3_M1
Predictive Model for Loan Approval Process using SAS 9.3_M1Predictive Model for Loan Approval Process using SAS 9.3_M1
Predictive Model for Loan Approval Process using SAS 9.3_M1Akanksha Jain
 
AUTOPSIA E INTERVALO POST MORTEM
AUTOPSIA E INTERVALO POST MORTEMAUTOPSIA E INTERVALO POST MORTEM
AUTOPSIA E INTERVALO POST MORTEMRosa A. Bonola
 
Psicoprofilaxis
PsicoprofilaxisPsicoprofilaxis
Psicoprofilaxissallysafu
 
Marketing innovations in wine
Marketing innovations in wineMarketing innovations in wine
Marketing innovations in wineRobert Joseph
 
IGCSE Business Studeies Unit 1 understanding business activity ppt
IGCSE Business Studeies Unit 1 understanding business activity pptIGCSE Business Studeies Unit 1 understanding business activity ppt
IGCSE Business Studeies Unit 1 understanding business activity pptIrshad Tunio
 
Recursos y plataformas de formación a distancia, de empleo y de salud
Recursos y plataformas de formación a distancia, de empleo y de saludRecursos y plataformas de formación a distancia, de empleo y de salud
Recursos y plataformas de formación a distancia, de empleo y de saludoliver7041
 

Viewers also liked (20)

Tarea 3
Tarea 3Tarea 3
Tarea 3
 
Dez Makes an Impression
Dez Makes an ImpressionDez Makes an Impression
Dez Makes an Impression
 
Que es internet
Que es internetQue es internet
Que es internet
 
Asistente virtual
Asistente virtualAsistente virtual
Asistente virtual
 
Aduanas
AduanasAduanas
Aduanas
 
Proyecto genes II. Nuevas tecnologías para emprendores
Proyecto genes II. Nuevas tecnologías para emprendoresProyecto genes II. Nuevas tecnologías para emprendores
Proyecto genes II. Nuevas tecnologías para emprendores
 
TRABALHO: Literatura
TRABALHO: LiteraturaTRABALHO: Literatura
TRABALHO: Literatura
 
Helios,el sol
Helios,el solHelios,el sol
Helios,el sol
 
Mat leitura numero decimal
Mat leitura numero decimalMat leitura numero decimal
Mat leitura numero decimal
 
Trabalho Lógica fuzzy fabrizio-etemb
Trabalho Lógica fuzzy  fabrizio-etembTrabalho Lógica fuzzy  fabrizio-etemb
Trabalho Lógica fuzzy fabrizio-etemb
 
Campeonato gaúcho júnior 2014 artilharia
Campeonato gaúcho júnior 2014   artilhariaCampeonato gaúcho júnior 2014   artilharia
Campeonato gaúcho júnior 2014 artilharia
 
Apresentação Cores PrimáRias e SecundáRias - Mônica Barreto (UFAM)
Apresentação Cores PrimáRias e SecundáRias - Mônica Barreto (UFAM)Apresentação Cores PrimáRias e SecundáRias - Mônica Barreto (UFAM)
Apresentação Cores PrimáRias e SecundáRias - Mônica Barreto (UFAM)
 
Predictive Model for Loan Approval Process using SAS 9.3_M1
Predictive Model for Loan Approval Process using SAS 9.3_M1Predictive Model for Loan Approval Process using SAS 9.3_M1
Predictive Model for Loan Approval Process using SAS 9.3_M1
 
AUTOPSIA E INTERVALO POST MORTEM
AUTOPSIA E INTERVALO POST MORTEMAUTOPSIA E INTERVALO POST MORTEM
AUTOPSIA E INTERVALO POST MORTEM
 
Psicoprofilaxis
PsicoprofilaxisPsicoprofilaxis
Psicoprofilaxis
 
Marketing innovations in wine
Marketing innovations in wineMarketing innovations in wine
Marketing innovations in wine
 
Piel y fascias
Piel y fasciasPiel y fascias
Piel y fascias
 
IGCSE Business Studeies Unit 1 understanding business activity ppt
IGCSE Business Studeies Unit 1 understanding business activity pptIGCSE Business Studeies Unit 1 understanding business activity ppt
IGCSE Business Studeies Unit 1 understanding business activity ppt
 
Mitologa egipcia
Mitologa egipciaMitologa egipcia
Mitologa egipcia
 
Recursos y plataformas de formación a distancia, de empleo y de salud
Recursos y plataformas de formación a distancia, de empleo y de saludRecursos y plataformas de formación a distancia, de empleo y de salud
Recursos y plataformas de formación a distancia, de empleo y de salud
 

Similar to Things to think about while architecting azure solutions

Real World Azure - Dev
Real World Azure - DevReal World Azure - Dev
Real World Azure - DevClint Edmonson
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .netMarco Parenzan
 
Explaining The Cloud
Explaining The CloudExplaining The Cloud
Explaining The Cloudukdpe
 
Azure Introduction
Azure IntroductionAzure Introduction
Azure Introductionbrunoterkaly
 
Will Web 2.0 applications break the cloud?
Will Web 2.0 applications break the cloud?Will Web 2.0 applications break the cloud?
Will Web 2.0 applications break the cloud?Flaskdata.io
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
 
Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!Chris Richardson
 
Office 365 introduction and technical overview
Office 365 introduction and technical overviewOffice 365 introduction and technical overview
Office 365 introduction and technical overviewMotty Ben Atia
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDave Malouf
 
How Cloud Changes Business Expectations
How Cloud Changes Business ExpectationsHow Cloud Changes Business Expectations
How Cloud Changes Business Expectationstimhill2000
 
Designing Powerful Web Applications - Monterey
Designing Powerful Web Applications - MontereyDesigning Powerful Web Applications - Monterey
Designing Powerful Web Applications - MontereyDave Malouf
 
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdfQConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdfSimranjyotSuri
 
Mastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesJosh Evans
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Kim Clark
 
The Yin and Yang of Software
The Yin and Yang of SoftwareThe Yin and Yang of Software
The Yin and Yang of Softwareelliando dias
 
Leverage Cloud Computing to Accelerate Development and Test
Leverage Cloud Computing to Accelerate Development and TestLeverage Cloud Computing to Accelerate Development and Test
Leverage Cloud Computing to Accelerate Development and TestRightScale
 

Similar to Things to think about while architecting azure solutions (20)

Real World Azure - Dev
Real World Azure - DevReal World Azure - Dev
Real World Azure - Dev
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .net
 
Explaining The Cloud
Explaining The CloudExplaining The Cloud
Explaining The Cloud
 
Azure Introduction
Azure IntroductionAzure Introduction
Azure Introduction
 
Jumpstart Azure
Jumpstart AzureJumpstart Azure
Jumpstart Azure
 
Will Web 2.0 applications break the cloud?
Will Web 2.0 applications break the cloud?Will Web 2.0 applications break the cloud?
Will Web 2.0 applications break the cloud?
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!
 
Office 365 introduction and technical overview
Office 365 introduction and technical overviewOffice 365 introduction and technical overview
Office 365 introduction and technical overview
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAs
 
Akka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net & .Net Core - .Net Inside 4° MeetUpAkka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net & .Net Core - .Net Inside 4° MeetUp
 
How Cloud Changes Business Expectations
How Cloud Changes Business ExpectationsHow Cloud Changes Business Expectations
How Cloud Changes Business Expectations
 
Designing Powerful Web Applications - Monterey
Designing Powerful Web Applications - MontereyDesigning Powerful Web Applications - Monterey
Designing Powerful Web Applications - Monterey
 
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdfQConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
 
Azure Microsoft
Azure MicrosoftAzure Microsoft
Azure Microsoft
 
Mastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to Microservices
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
 
The Yin and Yang of Software
The Yin and Yang of SoftwareThe Yin and Yang of Software
The Yin and Yang of Software
 
Leverage Cloud Computing to Accelerate Development and Test
Leverage Cloud Computing to Accelerate Development and TestLeverage Cloud Computing to Accelerate Development and Test
Leverage Cloud Computing to Accelerate Development and Test
 

More from Arnon Rotem-Gal-Oz (20)

Taking ML to production - a journey
Taking ML to production - a journeyTaking ML to production - a journey
Taking ML to production - a journey
 
Apache spark
Apache sparkApache spark
Apache spark
 
Fallacies of Distributed Computing
Fallacies of Distributed Computing Fallacies of Distributed Computing
Fallacies of Distributed Computing
 
Docker & Kubernetes intro
Docker & Kubernetes introDocker & Kubernetes intro
Docker & Kubernetes intro
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
 
Data security @ the personal level
Data security @ the personal levelData security @ the personal level
Data security @ the personal level
 
Microservices - it's déjà vu all over again
Microservices  - it's déjà vu all over againMicroservices  - it's déjà vu all over again
Microservices - it's déjà vu all over again
 
Big data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented designBig data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented design
 
Distilling insights @ AppsFlyer
Distilling insights @ AppsFlyerDistilling insights @ AppsFlyer
Distilling insights @ AppsFlyer
 
Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)
 
Big data Overview
Big data OverviewBig data Overview
Big data Overview
 
Hadoop YARN overview
Hadoop YARN overviewHadoop YARN overview
Hadoop YARN overview
 
SAF
SAFSAF
SAF
 
REST presentation
REST presentationREST presentation
REST presentation
 
SOA & Big Data
SOA & Big DataSOA & Big Data
SOA & Big Data
 
Why the JVM?
Why the JVM?Why the JVM?
Why the JVM?
 
Building reliable systems from unreliable components
Building reliable systems from unreliable componentsBuilding reliable systems from unreliable components
Building reliable systems from unreliable components
 
Azure migration
Azure migrationAzure migration
Azure migration
 
Soa
Soa Soa
Soa
 
Rest
RestRest
Rest
 

Recently uploaded

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Recently uploaded (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Things to think about while architecting azure solutions

  • 1. Things to think about whilearchitecting Azure solutions
  • 2. Famous Last Words… “It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable….” (Fred Brooks - “Mythical Man-Month” p.47)
  • 3. So, What is Software Architecture exactly?
  • 4. Software architecture is the fundamentalorganization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution
  • 5. Architecture forces Stakeholders Quality Attributes Constraints Principles Community experience Architect Architecture Patterns & Anti-patterns Key people Technology A “deliverable” Produce Is an input
  • 6.
  • 7. Dequeue/Delete pattern The Network is reliable
  • 8. Dequeue/Delete pattern The Network is reliable Still a problem If we crash here
  • 10. Messages Process At Least Once Debit bank account $100 message Worker role reads message Balance debited $100 Worker role is torn before message can be deleted 3 minutes later, message re-appears on queue Worker role reads message Balance debited $100 Message deleted from queue Chaos ensues..... Customer calls bank..... Web Role Worker Role Balance = $1000 Balance = $900 Balance = $800 Worker Role Web Role Worker Role Worker Role Queue Storage LB LB
  • 11. Solving the Idempotency Problem Debit bank account $100 message with transaction ID Worker role reads message. Checks transaction ID not present. Writes transaction ID with state ‘Started’ to ‘Replay Log’ Balance debited $100 Worker role is torn before message can be deleted 3 minutes later, message re-appears on queue Worker role reads message. Checks transaction ID. It is present in state started. Compensating message written to another queue Message deleted from queue Compensatory message processed. Balance = $1000 Balance = $900 Web Role Worker Role Worker Role Web Role Storage Worker Role Worker Role Query Query Queue Queue Table LB LB
  • 13. It might be infinite for all purposes but it costs… Bandwidth is infinite
  • 14. Authentication with ACS The Network is Secure Slide by Alik Levin
  • 15. Service Bus Provides secure messaging and connectivity across different network topologies Enables hybrid applications that span on-premises and the cloud Enables various communication protocols and patterns for developers to engage in reliable messaging Topology doesn’t change
  • 16. Enabling hybrid applications Datacenter Partner LOB app Mobile Device LOB web service
  • 17. Enabling hybrid applications Datacenter Partner ACS LOB app SB Mobile Device LOB web service
  • 18. Enabling hybrid applications Datacenter Partner ACS LOB app SB Mobile Device LOB web service
  • 19. Enabling hybrid applications Partner Datacenter ACS LOB app SB Mobile Device LOB web service
  • 20. Enabling hybrid applications Partner Datacenter ACS LOB app SB Mobile Device LOB web service
  • 21. Electricity Power Grid Demo
  • 22. Don’t assume specific instances Virtual IP : 1.1.1.2 Virtual IP : 1.1.1.3 Virtual IP : 1.1.1.4 Worker Role Worker Role Web Role Service Service IIS Instance Instance Windows Kernel Windows Kernel Windows Kernel TCP/IP TCP/IP TCP/IP TCP/IP TCP/IP NLB Driver NIC Driver NIC Driver NIC Driver Virtual NIC Virtual NIC Virtual NIC Virtual IP : 1.1.1.1
  • 24. Reduced Headache on the one handNew challenges on the other There is one administrator
  • 25. Azure MMC Snap-in http://code.msdn.microsoft.com/windowsazuremmc
  • 26. Cerebrata – Azure Diagnostics Manager http://www.cerebrata.com/Products/AzureDiagnosticsManager/Default.aspx
  • 27. Distribution cost in serialization, time on the wire, security Transport cost is zero
  • 28. A lot of calls to fulfill a business function
  • 29. Bring Data close to computation
  • 30. It isn’t – but it’s abstractedunless of course you use Azure connect The Network is homogenous Quickly connect on-premise computers with the cloud, no networking configuration required Supports standard IP protocols; secured using end-to-end IPSec Integrated with the Windows Azure Service Model; all role types supported
  • 31. Deployment view Consider xsmall instances for development Test if you can use less than medium for production
  • 32. Cost considerations You pay when you’re deployed (there is no “shelving”) Shutdown doesn’t help (keep CPUs running..)
  • 33. 2 Small instances cost the same as 1 medium instance
  • 34. 2 instances can give you better availability Need to be on different fault and upgrade domains
  • 35. I/O performance on smaller instances might be problematic
  • 36. You can control Azure from scripts and code (even dev fabric) Testing
  • 38. Illustrations Slide 11 http://www.sxc.hu/photo/1201443 Slide http://www.sxc.hu/photo/1160486

Editor's Notes

  1. More than 30 years ago (1975)
  2. IEEE 1471 – recommended practice for architecture description of software intensive systemSoftware architecture is the collection of the fundamental decisions about a software product/solution designed to meet the project's quality attributes (i.e. requirements). The architecture includes the main components, their main attributes, and their collaboration (i.e. interactions and behavior) to meet the quality attributes. Architecture can and usually should be expressed in several levels of abstraction (depending on the project's size). If an architecture is to be intentional (rather than accidental), it should be communicated. Architecture is communicated from multiple viewpoints to cater the needs of the different stakeholders.Architectural decisions are global tied to quality attributesDesigns decisions are local –tied to functionality
  3. Fallacies of ditributed computingPeter Deutsch (first 7 in 94) & James Gosling (last in 97)
  4. Slide ObjectiveIntroduce idempotencySpeaking NotesWhen describing the function“F of X equals F of F of X” – More simply put You get the same result no matter how many time you call the functionThis is important for us in this situation as the approach that Windows Azure takes to queues;Read the message and hideDelete the message on completionIs vulnerable do executing the same message twice. The pattern guarantees that each message will be processed to completion AT LEAST onceNotes
  5. Slide ObjectiveUnderstand the need for idempotent operations with a simple exampleSpeaking NotesThere are number of reasons why you may not call deleteMessage, including:Your code failsThere is a hardware failure, effectively killing your worker role codeThere worker role is instructed to stop, and you have no code implemented to do that in a timely fashion.For this reason, you should design the tasks your worker role does to be Idempotent – which basically means that you should be able to do the same task twice, without it having an adverse effect on the system state.e.g. – If the worker is sent the name of a picture stored in blob storage that it would resize, it does not matter how many times it resizes the image, the outcome is the same. This is idempotent. If a worker is decrementing a balance, it DOES matter how many times this occurs – this is NOT idempotent.Notes
  6. Slide ObjectiveUnderstand a way to make the previous example idempotent- or at least robust against multiple message processingSpeaking NotesThe approach in this slide is to use a Replay LogThis allows us to track whether we have seen a message before and if so take a different course of actionThere will be various levels of remedial action we may choose to take based on the contents of our replay logWe may be able to fully compensate for the previous failureWe may need human interventionNotesSome good (older) posts on creating idempotent web services. Worth readinghttp://blogs.msdn.com/b/ramkoth/archive/2004/03/12/88423.aspxhttp://blogs.msdn.com/b/ramkoth/archive/2004/03/13/88778.aspxGood MSDN mag article that touches on the topicsAlso discusses MSMQ and WCF which have different approaches- are transactionalhttp://msdn.microsoft.com/en-us/magazine/cc663023.aspx Discussion on dealing with situations where processing time may inadvertently exceed the invisibility timeouthttp://blog.smarx.com/posts/deleting-windows-azure-queue-messages-handling-exceptions