Speakers: Tiago Barbosa and Will Eastbury
FastTrack For Azure’s Approach To Azure
FYI, FastTrack is an architectural assistance service for large customers:
- Architectural review sessions and/or design/solution reviews
- Apply the FastTrack review and guidance framework
- Inform and disseminate information from the Azure Architecture Center
- Design patterns
- Anti-patterns
- Reference Architecture
- Best practices
Where to Start?
- Purpose: What is the reason of this – high-level functional requirements. What will this solution do?
- Success criteria: How do you measure success? What is the direction?
- Stakeholders: Are there internal or external customers involved with an SLA too?
What do we Consider?
- Business objectives of the solution
- Pillars of software quality
- Functional aspects
- Availability and resilience
- Performance and scalability
- Governance, etc
- Dev/test/
- Security and ID
- Cost design
- Other general observations
- Service specific aspects
Things To Understand
- Start with simplicity and low overall cost
- Add tiering and scalability
- Add multi-region failover and HA
General Good Practice
- Determine the budget and NFRs of the solution
- Understand the Azure storage performance envelope
- Scale OUT, NOT up.
Choose the Compute Stack Options
- IaaS
- PaaS
- Serverless
Move as close to serverless as you can (me).
Infrastructure Patterns
Some high-level diagrams similar to flow charts that document processes.
I got bored here.
What to Avoid – Scalability
- Avoid: Keep creating new instances of shred objects
- Avoid: Sharing infrastructure between test and production environments
What to Avoid – Performance
- Avoid: Lack of caching or use excessive caching of stale data
- Avoid: Ignore the differences in cloud latency envelope
What to Avoid – Resiliency
- Avoid: High SLA, single-region deployment in Azure
- Avoid: Lack of strategy for resilience within services
- Avoid: Ignore single points of failure even for low SLA
What to Avoid – DevOps
- Avoid: Lack of continuous integration
- Lack of telemetry insight
What To Avoid – Anti-Patterns
- Busy database: Offload business logic to database consumes valuable CPU. Do it in app layer.
- Busy front-end: Offload processing to background thread to save front-end performance. Don’t consume front-end CPU.
- Select * from everywhere: Querying more data than needed slows performance.
- Blocking I/O: Wasting CPU because the thread is locked while waiting on a result.
Customer Story – Flybe
A budget airline in the UK.
I stopped listening here.