SlideShare une entreprise Scribd logo
1  sur  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?

Contenu connexe

Tendances

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...Frank van der Linden
 
Serverless: The future of application delivery
Serverless: The future of application deliveryServerless: The future of application delivery
Serverless: The future of application deliveryDoug Vanderweide
 
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 ReviewKenny Buntinx
 
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 usersYoav Avrahami
 
Gradual migration to MicroProfile
Gradual migration to MicroProfileGradual migration to MicroProfile
Gradual migration to MicroProfileRudy De Busscher
 
Production debugging web applications
Production debugging web applicationsProduction debugging web applications
Production debugging web applicationsIdo Flatow
 
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 - ...Vlad Stanescu
 
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 StoryAviran Mordo
 
KoprowskiT_InfoTRAMS_TrustThePrimer
KoprowskiT_InfoTRAMS_TrustThePrimerKoprowskiT_InfoTRAMS_TrustThePrimer
KoprowskiT_InfoTRAMS_TrustThePrimerTobias Koprowski
 
Agile Data Warehousing
Agile Data WarehousingAgile Data Warehousing
Agile Data WarehousingDavide Mauri
 
Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Damian Beresford
 
The Future of Database Development
The Future of Database DevelopmentThe Future of Database Development
The Future of Database DevelopmentSteve Jones
 
Scaling up to 30 m users
Scaling up to 30 m usersScaling up to 30 m users
Scaling up to 30 m usersYoav Avrahami
 
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 FieldIdo Flatow
 
Play 2 Java Framework with TDD
Play 2 Java Framework with TDDPlay 2 Java Framework with TDD
Play 2 Java Framework with TDDBasav Nagur
 
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 DevelopersIke Ellis
 
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 AzureIdo Flatow
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS LimitationsValeri Karpov
 
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...Sencha
 

Tendances (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...
 

En vedette

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?Troels Damgaard
 
Sgp slides
Sgp slidesSgp slides
Sgp slidesnvuotto
 
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/2012Stephen 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 19Cambridge Community Television
 
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, ...Social Fresh Conference
 
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 modelBoni
 
2008 Sports Cars
2008 Sports Cars2008 Sports Cars
2008 Sports Carsguest76d0e9
 

En vedette (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
 

Similaire à Community day 2013 applied architectures

How Teradata uses Stacki
How Teradata uses StackiHow Teradata uses Stacki
How Teradata uses StackiStackIQ
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterpriseBert Poller
 
Devops - why, what and how?
Devops - why, what and how?Devops - why, what and how?
Devops - why, what and how?Malinda Kapuruge
 
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 talksRuslan Meshenberg
 
2016 spice world_london_breakout
2016 spice world_london_breakout2016 spice world_london_breakout
2016 spice world_london_breakoutThomas Lee
 
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 alternativeDenis Gundarev
 
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 valuableComsysto Reply GmbH
 
Azure enterprise integration platform
Azure enterprise integration platformAzure enterprise integration platform
Azure enterprise integration platformMichael Stephenson
 
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 365Marco Parenzan
 
AWS Webcast - Introducing Amazon WorkSpaces
AWS Webcast - Introducing Amazon WorkSpacesAWS Webcast - Introducing Amazon WorkSpaces
AWS Webcast - Introducing Amazon WorkSpacesAmazon Web Services
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesVagif Abilov
 
Application Virtualization overview - BayCUG
Application Virtualization overview - BayCUGApplication Virtualization overview - BayCUG
Application Virtualization overview - BayCUGDenis Gundarev
 
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 2015MSDEVMTL
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesAmazon Web Services
 
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)Vincent Biret
 
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
 

Similaire à 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 (toronto)
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 (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 

Dernier

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
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
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: 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
 
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
 
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
 
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
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
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
 
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
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: 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
 
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
 
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
 
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
 
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!
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Community day 2013 applied architectures

  • 1. #comdaybe Applied Architectures Panagiotis “Panos” Kefalidis Windows Azure MVP @pkefal
  • 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