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

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

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