Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Architectural Trade-offs

No description
by

Jeremy Deane

on 11 March 2018

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Architectural Trade-offs

Jeremy Deane jeremydeane.net
@jtdeane github.com/jtdeane
Jeremy Deane
Architectural Trade-offs
Security
Structure
Integration
Synchronous vs Asynchronous
Persistence
Availability
Techniques
Security vs
Usability
Security vs
Co$t
Identity & Token Services
Confidentiality - in-transit & at-rest
Security in Depth - networking layers
Regulatory Compliance - PCI, HIPAA, GDPR
Monoliths vs Microservices
Complexity
Process Isolation
Time-To-Market
Dependency Management
Ownership
Technology Innovation
Technology Sprawl
Scalability
Downstream Data Processing
Resiliency
Continuous Delivery
IaaS vs PaaS
Feature Toggles vs. Blue Green Deployment
Cloud Native
Containers
IaaS - Flexibility & Control
IaaS - Deployment & Operations
PaaS - Time-To-Market
PaaS - Flexibility & Control
P2P
Time-to-Market
Responsiveness
Call-Backs - Polling
Integration Agility
Complexity
Messaging Alternatives
Stability & Ecosystem
Resiliency & AMQP 0.9.1
Scalability & Replay
Simplicity
Scalability
Ecosytem
Complexity
Lock-in
C
onsistency
A
vailability and
P
artition (CAP)
C
onsistent
P
artition
C
onsistent
A
vailable
P
artition
A
vailable
C
onsistent &
A
vailable

For a distributed (i.e., multi-node) system to not require partition-tolerance it would have to run on a network which is guaranteed to
never
drop messages (or even deliver them late) and whose nodes are guaranteed to
never
die.
You and I do not work with these types of systems because they don’t exist
. -
Coda Hale



https://codahale.com/you-cant-sacrifice-partition-tolerance/
Normalization
Read Optimized
Write Optimized
Reduce Duplication
Data Quality
Slower Read > Joins
Performance < Joins
Increased Duplication
Data Anomalies
Slower Write > Indexes
Performance > Indexes
Caching
No Cache
Accurate Latest Version
Performance
Local Cache
Staleness
Performance
Inconsistency
Peer 2 Peer
Horizontal Scaling
Distributed Cache
Staleness, Complexity
Performance, Consistency, Scaling
Availability vs Complexity
Availability
Complexity
Availability vs
Co$t
Recovery Point Objective (RPO)
Recovery Time Objective (RTO)
Decrease
Increase
Beware Acronyms. e.g. ATAM & TOGAF
Understand the Requirements
Evaluate
Pros
&
Cons
Create Candidate Architectures
Build Prototypes
Availability vs
Time
Fail-over & Disaster Recovery
Maintenance & Operations
Security & Performance Validation
Increase
Lock-In
Technology Freedom vs. Standard Stacks
Open Stack
Retention & Recruitment
Innovation & Robustness
Innovation Debt
Recruitment
Standard Stack
Depth of Knowledge
Ability to Swarm
Innovation
Retention & Recruitment
Simple Overarching Change
Complex Fine Grained Change
Technical Debt
Unnecessary Releases
Increase
Periodic ETL vs. Event Streaming & Sourcing
Wall Clock
DB Access
Co$t
Complexity
Legacy
Culture
RBAC vs ABAC
Extensibility
Simplicity
Complexity
Extensibility
Full transcript