Scalable High-Traffic Solutions with Umbraco and Azure

zajkowskimarcin

mzajkowski

zajkowskimarcin

258

* My personal (Polish) blog's top number of daily active users (January 2018)

1 400 000 000

* Facebook's avarage number of daily active users (December 2017)

When we're talking about

'high-traffic' then...?

Asking Google...

1 mln UU

Alexa's rank

XS: < 100 UU/day
S: < 300 UU/day
M: < 1000 UU/day
L: < 5000 UU/day
XL: < 10000 UU/day

'The Rest': > 10000 UU/day

== High Availability

Performance!

BE
20%

FE
80%

It's not only about
the speed...

 

...but SPEED == $$$

Jeff

Mike

Sam

In Jeff's World

  • Cache is the King, we need to cache everything!
  • There must be a plugin for a better performance...
  • If it fails, we need a better server! Or maybe we need to use dedicated one instead of those shared resources, hmm?
  • new Everything();
  • 'Cloud is just a bunch of someone else's servers'

In Mike's World

  • Site visitors are well known
  • There is a time to work on performance of an app
  • Weaknesses & bottlenecks are constantly discovered and fixed
  • Performance is measured
  • App (not only the code) is tested - also from the high traffic perspective
  • Tools are used wisely and on purpose

+

+

Profiling

MiniProfiler // ANTS // dotTrace // Azure Service Profiler

"Ed Sheeran Hour"

Azure & VSTS FTW!

Is it really bad? Just bad?

Or maybe...
not that bad at all?

Umbraco      Azure

Umbraco Cloud // Headless

1. Read the Docs

2. Update (often)

3. Analyse

4. Optimise

Bundling & Minification

Optimus // Client Dependency // Web Optimization

Azure Blob Storage

UmbracoFileSystemProviders.Azure

ImageProcessor.Web.Config

Content Delivery Network

Azure CDN Toolkit

Azure Logger for Umbraco

5. Tweak

Monolith decoupling using e.g. Azure Functions...

Backend code optimisation

Low-level stuff... #asm

Continous Integration

& Deployment

Sam's World...

  • He thinks 100 steps ahead
  • Abstracts everything, even the whole ASP.NET MVC layer for his favorite CMS system
  • Each solution has at least 100 microprojects / services
  • Already setup a template in CI/CD tool for deployment of dev-v9 to the Kubernetes cluster running on bunch of linux VMs
  • Service Fabric is the simpliest orchestration in his mindset

What we can (or should) learn from Sam?

Summary // Takeaways

  • High traffic is something for what we can be prepared for (without massive effords)
  • Azure is just one of the options (see: AWS, GC, Alibaba Cloud + more!)
  • Umbraco (CMS) is just a single puzzle
  • We need to always think before execution to save time // money // stress
  • Learn from other people mistakes (including Umbraco HQ's)
  • Don't miss the .NET train...
  • Don't overengineer stuff - Simple is Perfect!
  • Don't be scared of changes & updates - just change and update often
  • Read (and improve) the docs!

Marcin Zajkowski

Umbraco MVP, Trainer & Certified Master @ The Cogworks

 

 

 

CTO / CKO @ WOW School

Marcin @ umbraCoffee (Friday's 12:30 on YT)

Blogger @ udfnd.pl

zajkowskimarcin

mzajkowski

zajkowskimarcin

Thank you!

@zajkowskimarcin  /  marcin.zajkowski@thecogworks.com

Questions? Afterparty!