SlideShare ist ein Scribd-Unternehmen logo
1 von 41
#comdaybe
Applied Architectures
Panagiotis “Panos” Kefalidis
Windows Azure MVP
@pkefal
Who is Panos?
• Panagiotis “Panos” Kefalidis
• Founder of VoxVoi
• Windows Azure MVP
• AZUG Board Member, Azure Insider
• Microsoft vTS
• Panagiotis@Kefalidis.me
• @pkefal – www.Kefalidis.me
• Add your favorite title here
Setting the expectations
• You will not
–See code
–Find an answer to everything
• You will
–Get a better understanding of what applies on Windows
Azure
–You will see real architectures we propose to customers
–You will see applied techniques of specific products
Now that everybody is excited..
Finding the right service
Small checklist
It can be like that..
Poor man’s checklist - Messaging
• Do you need transactions?
• Do you need bigger messages?
• Do you have specific scalability targets?
• Does it have to be cost effective vs performance?
• Do you need interoperability out-of-the-box?
Poor man’s checklist – Front-end apps
• Do you need fast deployments?
• Do you need easy tests of prototypes?
• Do you need CI out-of-the-box?
• Do you need special software to make your web
app run?
• Do you need session state on the web app?
Poor man’s checklist – PaaS vs IaaS
• Do you need installs longer than 30 mins?
• Do you need persistence on the disk itself?
• Fulfill your requirement by automating an
install/customization during startup?
• Persistent disks mounted on OS level, not app
level?
• Guaranteed IOPS per disk?
Poor man’s checklist – Security/Connectivity
• Do you need identity federation?
• Two factor authentication on your portal?
• Graph API to discover objects in your directory?
• Private IPs and ACLs on public endpoints?
• Secure connection on-premise to cloud?
• Choose your own internal VIPs
Many services, different roles
• Windows Azure Service Bus
• Windows Azure Storage Queues
• Windows Azure IaaS
• Windows Azure Virtual Network (VNET)
• Windows Azure VPN
• Windows Azure _we_can_go_on_forever
Some alternatives
• MongoDb – Offered on Windows Azure through the
Store
• Redis – Offered with a ready to use script for
deployment
MongoDb
• Document based database
• Still has queries, secondary indexes etc.
• Alternative to Windows Azure Tables
• Less hassle to do stuff
• Automatic capabilities (scaling, sharding and
others)
• Much more expensive though
Redis
• In memory database (key value pairs)
• Insanely fast
• It can be queried
• Highly available if you set it up correctly
• It has Windows Azure Support from Microsoft OSS
Redis
• You can do Pub/Sub
• You can have transactions
• You can have distributed locks out of the box.
–Increment counters from multiple threads etc.
Redis vs Windows Azure Role Cache
• Redis is faster
• Redis can be queried (real queries, not tags)
• Redis has smaller footprint
• Redis can be deployed and be connected cross-DC
• Redis can be access from the outside world if
necessary
Redis vs Windows Azure Role Cache
• Redis can persist data as well
–It’s recommended to do AOF and only on Slaves
• Windows Azure Role Cache is cheaper
–You need dedicated roles on Redis to have
performance
• It’s that tiny easier to enable Windows Azure Role
Cache
• You don’t have to maintain anything yourself on
Windows Azure Role Cache
Things to remember as well
Visiting a customer
During your first meeting..
Source of problems
• Legacy
• Interoperability
• 3rd party vendor software
• Custom software
• Company policies and human factor
Legacy
• Legacy technologies
– .NET 1.1, Windows 2000, Windows 2003, Exchange 2003
• Legacy mindset
– 80s approach on problems e.g. synchronous operations
– Adding hardware to solve performance issues
• Legacy deployment models/tools
– Out-dated tools, like SourceSafe
– Continuous integration vs Manual deploy
– Paper work
Interoperability
• Existing integration
–Tightly coupled integration between systems
–Bad implementations/practices on Enterprise Service
Bus
• Out-dated technology
–Old tools and implementations
–Different implementations for each platform
(.NET/JAVA)
–No cloud support (PaaS model)
3rd party vendor software
• No cloud readiness
– Unattended installs for PaaS support
– Sticky sessions
– In-memory state/cache
– File system persistence
• Unwillingness
– To fix the issues
• Willingness
– To sell new versions instead
Custom software
• Not cloud ready
– Same problems as the vendors
• Developers not trained
– No experience with HA systems
– No experience with de-coupled architectures
– No experience with asynchronous operations
– Learn how to embrace failure
• Developers get offended
– A significant mindset change causes denial
Finding who is responsible…
Examples of architectures
To the real stuff
Example 1
Read Only AD
Replication (VPN)
Load Balancer
Customer HQ
VPN
Distributed cache
Read Only AD
Office 365
WA Storage
WA SQL DB
Service Bus
Meter 1 Meter 2
Meter 1 Meter 2
Service Bus
Polling Polling
Country 1
Country 2
Filter
Filter
Polling
Polling
Message processing
Example 2
Legend
End-User
Web Site
Moderator
Web Site
End-User
Blob Storage
(Uploaded Content, Generated Mezzanine File, Thumbnails, Streaming Content, Message Queues,
Encoding profiles)
Content structure:
/{CAMPAIGN}/{USER}/{DATE}/ORIGINAL_FILE/{FILE_NAME}
/{CAMPAIGN}/{USER}/{DATE}/METADATA/{FILE_NAME}
/{CAMPAIGN}/{USER}/{DATE}/MEZZANINE_MASTER/{FILE_NAME}
/{CAMPAIGN}/{USER}/{DATE}/THUMBNAILS/{FILE_NAMES}
/{CAMPAIGN}/{USER}/{DATE}/STREAMING/{SEGMENTS}
/{CAMPAIGN}/EncodeProfiles/{NAME}.xml
UPLOADED QUEUE
7. Read Message
from Queue
Media Services
DONE/ARCHIVE QUEUE
Orchestrator
SQL Server
(Metadata & Status)
13. Update Publish State (Success)
13. Update Publish State (Error)
Customer mod
ERROR QUEUE
11. Put Message on Queue
12. Read Message from Queue
9. Put message on Queue
10. Read message from Queue
Azure
APPROVE QUEUE
1. View All Content
3. View Details (Item)
5. Approve (Item)
2. Fetch Metadata
4. Fetch Tumbnails
6. Put Message
on Queue
Customer s publishing
system
8. Execute Job
10. Return Success
10. Return Error
PUBLISHED QUEUE 11. Put Message on Queue
12. Read Message from Queue
Customer s
media platform
Customer
9. File Drop
2. Upload video
1. Upload video
3. Put message
on Queue
4. Read Message
from Queue
7. Create Job
9. Read Success
8. Read Error
5. Create video record with metadata
10. Update video metadata
11. Update video metadata (Error).
Needs admin attention
7. Drop final file
11. Put message into Queue
6. Read job metadata
(encode profile .xml)
Admin flow
User Flow
Example 3
Startup scripts automation
• We connect to a service and get a SAS
• We use that to securely access storage
• We download JDK, JBoss and EAR/WAR
• Unzip/install as necessary
• Continue with other tasks
Worker Role IaaSWeb Role
abstraction control
WR1
Proxy
WR2
JBoss AS 7 AP+A
A
JBossAS binaries
JBoss
configuration
EAR(s) and
WAR(s)
Moving JBoss to Windows Azure
• jGroups discovery uses PING
• mod_cluster discovery by advertising
• Both are multicast protocols
• Multicast is not supported on Windows Azure
PING solution
We implemented “AZURE_PING” as a
jGroups protocol
mod_cluster solution
Azure advertising AA
Proxy
JBoss AS 7 A
A
Proxy
JBoss AS 7 A
A
Proxy
JBoss AS 7 A
A
Metadata
-----------
-------------
-------------
------------
Proxy
JBoss AS 7
AA
WR1
WR2
Proxy
JBoss AS 7
AA
Proxy
JBoss AS 7
AA
JBoss AS 7
AA
JBoss AS 7
AA
JBoss AS 7
AA
JBoss AS 7
AA
Scaling
Results
• Highly scalable JBoss clustered solution
• We have state if we need it
• They can add/remove instances
–Helps them reach their cost targets
• Easy upgrades using VIP SWAP
• Easy deployment of new packages
–Just restart the instance, the script will do the rest
Anything to ask?

Weitere ähnliche Inhalte

Was ist angesagt?

Scaling wix to over 70 m users
Scaling wix to over 70 m usersScaling wix to over 70 m users
Scaling wix to over 70 m users
Yoav Avrahami
 
Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014
Damian Beresford
 

Was ist angesagt? (20)

Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
 
Serverless: The future of application delivery
Serverless: The future of application deliveryServerless: The future of application delivery
Serverless: The future of application delivery
 
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site ReviewECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
 
Scaling wix to over 70 m users
Scaling wix to over 70 m usersScaling wix to over 70 m users
Scaling wix to over 70 m users
 
Gradual migration to MicroProfile
Gradual migration to MicroProfileGradual migration to MicroProfile
Gradual migration to MicroProfile
 
Production debugging web applications
Production debugging web applicationsProduction debugging web applications
Production debugging web applications
 
Journey to a multi-tenant e commerce solution in the cloud with Kubernetes - ...
Journey to a multi-tenant e commerce solution in the cloud with Kubernetes - ...Journey to a multi-tenant e commerce solution in the cloud with Kubernetes - ...
Journey to a multi-tenant e commerce solution in the cloud with Kubernetes - ...
 
Scaling up to 30M users - The Wix Story
Scaling up to 30M users - The Wix StoryScaling up to 30M users - The Wix Story
Scaling up to 30M users - The Wix Story
 
SOA to Microservices
SOA to MicroservicesSOA to Microservices
SOA to Microservices
 
KoprowskiT_InfoTRAMS_TrustThePrimer
KoprowskiT_InfoTRAMS_TrustThePrimerKoprowskiT_InfoTRAMS_TrustThePrimer
KoprowskiT_InfoTRAMS_TrustThePrimer
 
Agile Data Warehousing
Agile Data WarehousingAgile Data Warehousing
Agile Data Warehousing
 
Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014
 
The Future of Database Development
The Future of Database DevelopmentThe Future of Database Development
The Future of Database Development
 
Scaling up to 30 m users
Scaling up to 30 m usersScaling up to 30 m users
Scaling up to 30 m users
 
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the FieldMigrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
 
Play 2 Java Framework with TDD
Play 2 Java Framework with TDDPlay 2 Java Framework with TDD
Play 2 Java Framework with TDD
 
11 Goals of High Functioning SQL Developers
11 Goals of High Functioning SQL Developers11 Goals of High Functioning SQL Developers
11 Goals of High Functioning SQL Developers
 
The Essentials of Building Cloud-Based Web Apps with Azure
The Essentials of Building Cloud-Based Web Apps with AzureThe Essentials of Building Cloud-Based Web Apps with Azure
The Essentials of Building Cloud-Based Web Apps with Azure
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS Limitations
 
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
 

Andere mochten auch

Sgp slides
Sgp slidesSgp slides
Sgp slides
nvuotto
 
Yuan Ze University - Service Design Basics, 12/6/2012
Yuan Ze University - Service Design Basics, 12/6/2012Yuan Ze University - Service Design Basics, 12/6/2012
Yuan Ze University - Service Design Basics, 12/6/2012
Stephen Kwan
 
Social Media Workshop for Cambridge Organizations 2009 11 19
Social Media Workshop for Cambridge Organizations 2009 11 19Social Media Workshop for Cambridge Organizations 2009 11 19
Social Media Workshop for Cambridge Organizations 2009 11 19
Cambridge Community Television
 
towards flexible mobile payment via mediator-based service model
towards flexible mobile payment via mediator-based service modeltowards flexible mobile payment via mediator-based service model
towards flexible mobile payment via mediator-based service model
Boni
 
2008 Sports Cars
2008 Sports Cars2008 Sports Cars
2008 Sports Cars
guest76d0e9
 

Andere mochten auch (10)

Shandy Engaging The Social Media
Shandy Engaging The Social MediaShandy Engaging The Social Media
Shandy Engaging The Social Media
 
So you've got a Ph.D. - Now what?
So you've got a Ph.D. - Now what?So you've got a Ph.D. - Now what?
So you've got a Ph.D. - Now what?
 
Cost art 97
Cost   art 97Cost   art 97
Cost art 97
 
Sgp slides
Sgp slidesSgp slides
Sgp slides
 
Yuan Ze University - Service Design Basics, 12/6/2012
Yuan Ze University - Service Design Basics, 12/6/2012Yuan Ze University - Service Design Basics, 12/6/2012
Yuan Ze University - Service Design Basics, 12/6/2012
 
Social Media Workshop for Cambridge Organizations 2009 11 19
Social Media Workshop for Cambridge Organizations 2009 11 19Social Media Workshop for Cambridge Organizations 2009 11 19
Social Media Workshop for Cambridge Organizations 2009 11 19
 
Enterprise 2.0
Enterprise 2.0Enterprise 2.0
Enterprise 2.0
 
How To Learn From the Data Behind Your Social Media Marketing by Eric Boggs, ...
How To Learn From the Data Behind Your Social Media Marketing by Eric Boggs, ...How To Learn From the Data Behind Your Social Media Marketing by Eric Boggs, ...
How To Learn From the Data Behind Your Social Media Marketing by Eric Boggs, ...
 
towards flexible mobile payment via mediator-based service model
towards flexible mobile payment via mediator-based service modeltowards flexible mobile payment via mediator-based service model
towards flexible mobile payment via mediator-based service model
 
2008 Sports Cars
2008 Sports Cars2008 Sports Cars
2008 Sports Cars
 

Ähnlich wie Community day 2013 applied architectures

Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
Ruslan Meshenberg
 
Application Virtualization overview - BayCUG
Application Virtualization overview - BayCUGApplication Virtualization overview - BayCUG
Application Virtualization overview - BayCUG
Denis Gundarev
 

Ähnlich wie Community day 2013 applied architectures (20)

How Teradata uses Stacki
How Teradata uses StackiHow Teradata uses Stacki
How Teradata uses Stacki
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
Devops - why, what and how?
Devops - why, what and how?Devops - why, what and how?
Devops - why, what and how?
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
 
Deploying PHP apps on the cloud
Deploying PHP apps on the cloudDeploying PHP apps on the cloud
Deploying PHP apps on the cloud
 
2016 spice world_london_breakout
2016 spice world_london_breakout2016 spice world_london_breakout
2016 spice world_london_breakout
 
Cloud patterns
Cloud patternsCloud patterns
Cloud patterns
 
Application Streaming is dead. A smart way to choose an alternative
Application Streaming is dead. A smart way to choose an alternativeApplication Streaming is dead. A smart way to choose an alternative
Application Streaming is dead. A smart way to choose an alternative
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Azure enterprise integration platform
Azure enterprise integration platformAzure enterprise integration platform
Azure enterprise integration platform
 
Windows Azure Essentials V3
Windows Azure Essentials V3Windows Azure Essentials V3
Windows Azure Essentials V3
 
2014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 3652014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 365
 
AWS Webcast - Introducing Amazon WorkSpaces
AWS Webcast - Introducing Amazon WorkSpacesAWS Webcast - Introducing Amazon WorkSpaces
AWS Webcast - Introducing Amazon WorkSpaces
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class Libraries
 
Application Virtualization overview - BayCUG
Application Virtualization overview - BayCUGApplication Virtualization overview - BayCUG
Application Virtualization overview - BayCUG
 
Les nouveautĂŠs ASP.NET 5 avec Visual Studio 2015
Les nouveautĂŠs ASP.NET 5 avec Visual Studio 2015Les nouveautĂŠs ASP.NET 5 avec Visual Studio 2015
Les nouveautĂŠs ASP.NET 5 avec Visual Studio 2015
 
manage databases like codebases
manage databases like codebasesmanage databases like codebases
manage databases like codebases
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 

KĂźrzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

KĂźrzlich hochgeladen (20)

Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 

Community day 2013 applied architectures

  • 2. Who is Panos? • Panagiotis “Panos” Kefalidis • Founder of VoxVoi • Windows Azure MVP • AZUG Board Member, Azure Insider • Microsoft vTS • Panagiotis@Kefalidis.me • @pkefal – www.Kefalidis.me • Add your favorite title here
  • 3. Setting the expectations • You will not –See code –Find an answer to everything • You will –Get a better understanding of what applies on Windows Azure –You will see real architectures we propose to customers –You will see applied techniques of specific products
  • 4. Now that everybody is excited..
  • 5. Finding the right service Small checklist
  • 6. It can be like that..
  • 7. Poor man’s checklist - Messaging • Do you need transactions? • Do you need bigger messages? • Do you have specific scalability targets? • Does it have to be cost effective vs performance? • Do you need interoperability out-of-the-box?
  • 8. Poor man’s checklist – Front-end apps • Do you need fast deployments? • Do you need easy tests of prototypes? • Do you need CI out-of-the-box? • Do you need special software to make your web app run? • Do you need session state on the web app?
  • 9. Poor man’s checklist – PaaS vs IaaS • Do you need installs longer than 30 mins? • Do you need persistence on the disk itself? • Fulfill your requirement by automating an install/customization during startup? • Persistent disks mounted on OS level, not app level? • Guaranteed IOPS per disk?
  • 10. Poor man’s checklist – Security/Connectivity • Do you need identity federation? • Two factor authentication on your portal? • Graph API to discover objects in your directory? • Private IPs and ACLs on public endpoints? • Secure connection on-premise to cloud? • Choose your own internal VIPs
  • 11. Many services, different roles • Windows Azure Service Bus • Windows Azure Storage Queues • Windows Azure IaaS • Windows Azure Virtual Network (VNET) • Windows Azure VPN • Windows Azure _we_can_go_on_forever
  • 12. Some alternatives • MongoDb – Offered on Windows Azure through the Store • Redis – Offered with a ready to use script for deployment
  • 13. MongoDb • Document based database • Still has queries, secondary indexes etc. • Alternative to Windows Azure Tables • Less hassle to do stuff • Automatic capabilities (scaling, sharding and others) • Much more expensive though
  • 14. Redis • In memory database (key value pairs) • Insanely fast • It can be queried • Highly available if you set it up correctly • It has Windows Azure Support from Microsoft OSS
  • 15. Redis • You can do Pub/Sub • You can have transactions • You can have distributed locks out of the box. –Increment counters from multiple threads etc.
  • 16. Redis vs Windows Azure Role Cache • Redis is faster • Redis can be queried (real queries, not tags) • Redis has smaller footprint • Redis can be deployed and be connected cross-DC • Redis can be access from the outside world if necessary
  • 17. Redis vs Windows Azure Role Cache • Redis can persist data as well –It’s recommended to do AOF and only on Slaves • Windows Azure Role Cache is cheaper –You need dedicated roles on Redis to have performance • It’s that tiny easier to enable Windows Azure Role Cache • You don’t have to maintain anything yourself on Windows Azure Role Cache
  • 18. Things to remember as well Visiting a customer
  • 19. During your first meeting..
  • 20. Source of problems • Legacy • Interoperability • 3rd party vendor software • Custom software • Company policies and human factor
  • 21. Legacy • Legacy technologies – .NET 1.1, Windows 2000, Windows 2003, Exchange 2003 • Legacy mindset – 80s approach on problems e.g. synchronous operations – Adding hardware to solve performance issues • Legacy deployment models/tools – Out-dated tools, like SourceSafe – Continuous integration vs Manual deploy – Paper work
  • 22. Interoperability • Existing integration –Tightly coupled integration between systems –Bad implementations/practices on Enterprise Service Bus • Out-dated technology –Old tools and implementations –Different implementations for each platform (.NET/JAVA) –No cloud support (PaaS model)
  • 23. 3rd party vendor software • No cloud readiness – Unattended installs for PaaS support – Sticky sessions – In-memory state/cache – File system persistence • Unwillingness – To fix the issues • Willingness – To sell new versions instead
  • 24. Custom software • Not cloud ready – Same problems as the vendors • Developers not trained – No experience with HA systems – No experience with de-coupled architectures – No experience with asynchronous operations – Learn how to embrace failure • Developers get offended – A significant mindset change causes denial
  • 25. Finding who is responsible…
  • 28. Read Only AD Replication (VPN) Load Balancer Customer HQ VPN
  • 29. Distributed cache Read Only AD Office 365 WA Storage WA SQL DB
  • 30. Service Bus Meter 1 Meter 2 Meter 1 Meter 2 Service Bus Polling Polling Country 1 Country 2 Filter Filter Polling Polling Message processing
  • 32. Legend End-User Web Site Moderator Web Site End-User Blob Storage (Uploaded Content, Generated Mezzanine File, Thumbnails, Streaming Content, Message Queues, Encoding profiles) Content structure: /{CAMPAIGN}/{USER}/{DATE}/ORIGINAL_FILE/{FILE_NAME} /{CAMPAIGN}/{USER}/{DATE}/METADATA/{FILE_NAME} /{CAMPAIGN}/{USER}/{DATE}/MEZZANINE_MASTER/{FILE_NAME} /{CAMPAIGN}/{USER}/{DATE}/THUMBNAILS/{FILE_NAMES} /{CAMPAIGN}/{USER}/{DATE}/STREAMING/{SEGMENTS} /{CAMPAIGN}/EncodeProfiles/{NAME}.xml UPLOADED QUEUE 7. Read Message from Queue Media Services DONE/ARCHIVE QUEUE Orchestrator SQL Server (Metadata & Status) 13. Update Publish State (Success) 13. Update Publish State (Error) Customer mod ERROR QUEUE 11. Put Message on Queue 12. Read Message from Queue 9. Put message on Queue 10. Read message from Queue Azure APPROVE QUEUE 1. View All Content 3. View Details (Item) 5. Approve (Item) 2. Fetch Metadata 4. Fetch Tumbnails 6. Put Message on Queue Customer s publishing system 8. Execute Job 10. Return Success 10. Return Error PUBLISHED QUEUE 11. Put Message on Queue 12. Read Message from Queue Customer s media platform Customer 9. File Drop 2. Upload video 1. Upload video 3. Put message on Queue 4. Read Message from Queue 7. Create Job 9. Read Success 8. Read Error 5. Create video record with metadata 10. Update video metadata 11. Update video metadata (Error). Needs admin attention 7. Drop final file 11. Put message into Queue 6. Read job metadata (encode profile .xml) Admin flow User Flow
  • 34. Startup scripts automation • We connect to a service and get a SAS • We use that to securely access storage • We download JDK, JBoss and EAR/WAR • Unzip/install as necessary • Continue with other tasks
  • 35. Worker Role IaaSWeb Role abstraction control WR1 Proxy WR2 JBoss AS 7 AP+A A JBossAS binaries JBoss configuration EAR(s) and WAR(s)
  • 36. Moving JBoss to Windows Azure • jGroups discovery uses PING • mod_cluster discovery by advertising • Both are multicast protocols • Multicast is not supported on Windows Azure
  • 37. PING solution We implemented “AZURE_PING” as a jGroups protocol
  • 38. mod_cluster solution Azure advertising AA Proxy JBoss AS 7 A A Proxy JBoss AS 7 A A Proxy JBoss AS 7 A A Metadata ----------- ------------- ------------- ------------
  • 39. Proxy JBoss AS 7 AA WR1 WR2 Proxy JBoss AS 7 AA Proxy JBoss AS 7 AA JBoss AS 7 AA JBoss AS 7 AA JBoss AS 7 AA JBoss AS 7 AA Scaling
  • 40. Results • Highly scalable JBoss clustered solution • We have state if we need it • They can add/remove instances –Helps them reach their cost targets • Easy upgrades using VIP SWAP • Easy deployment of new packages –Just restart the instance, the script will do the rest