Real World Architecture Considerations for Azure–How To Succeed And What To Avoid

Speakers: Tiago Barbosa and Will Eastbury

FastTrack For Azure’s Approach To Azure

FYI, FastTrack is an architectural assistance service for large customers:

  1. Architectural review sessions and/or design/solution reviews
  2. Apply the FastTrack review and guidance framework
  3. 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

  1. IaaS
  2. PaaS
  3. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.