Cloud Native

Unpacking my ‘go-to’ architecture for cloud-optimized applications.

Certificationn Badge Certificationn Badge Certificationn Badge Certificationn Badge Certificationn Badge
Certificationn Badge Certificationn Badge <
Certificationn Badge Certificationn Badge Certificationn Badge
Note: This page is a work in progress; please forgive incomplete descriptions.

This architecture reflects my current technical acumen and business philosophies:

  • Customer is most important person in the room
  • Do more with less
  • Secure by design
  • Learn & apply
  • Follow the data
  • Simplicity accelerates

I use it within my own projects — and as a baseline for related consulting work.

It’s an ideal — secure, performant and modular — platform for delivering:

  • Single-page applications (Angular, React, etc.)
  • Multi-page/traditional apps (Django, Rails, Tomcat, etc.)
  • Static and dynamic websites, ecommerce sites, etc.
  • Media assets (streaming, live, etc.)

Inspired — and perpetually evolving — from AWS reference architectures and cloud native best-practices:

  • Containers
  • Microservices
  • Continuous Delivery
  • DevOps

And continuously validated against the AWS Well-Architected and NIST Cybersecurity frameworks.

Push-Button Deployment

Maintained in a library of CloudFormation templates and deployable on-demand — as individual modules or end-to-end.

Design Considerations

  • Why not TerraForm? CloudFormation covers everything required in a universal format (YAML/JSON), so there is no compelling reason to take on the added costs and complexity of a 3rd-party tool
  • Why AWS? In a word…ecosystem. The breadth and quality of services, coupled with their integration, provide the most compelling business case. And after working with nearly all of AWS’s services over the past 10+ years — and applying their published best practices and reference architectures — AWS has earned my trust…and my business. I’ve also used GCP and Azure quite a bit, but have always ended up back on AWS due to performance or architectural reasons.

The Bigger Picture

This architecture also fills a key role in a more comprehensive cloud strategy:

So let’s dive in…

Core Components

At the core, we need a method for securely storing and rapidly delivering web content to end users, and we do that through:

* only required with expansion modules

This highly optimized pipeline pushes static assets (HTML, CSS, JS) right to users’ front door; providing an optimal experience around the globe.

Expansion Modules

With this solid foundation in place, we can easily enhance functionality using a number of different add-on microservices:

  • User Management
  • Behavior Tracking
  • Payment Processing
  • Media Management
  • Bespoke Inference
  • Bespoke Computation
  • IoT Device Management

Let’s dive a little deeper into those modules…

User Management Service

Add-on microservice that integrates user registration, authentication, authorization into the application.

  • Cognito — Web federation with built-in registration and sign-in web pages
  • Route 53 — Domain name for Cognito-provided registration and sign-in page
  • Certificate Manager (ACM) — SSL certificate configured in Cognito
  • CloudWatch — Collect and store logs from Route 53

Providing granular control over user permissions.

Tracking Service

This add-on module enables a microservice for capturing user behavior within the application.

Clickstream intelligence pipeline, recording and analyzing user behavior.

Payment Processing

This add-on module enables a microservice for payments within the application.

Requires a payment processor, e.g. Stripe.

For example:

  • Ecommerce applications
  • Content subscriptions

Media Service

This add-on module enables a microservice for efficient delivery of video and other media.

Media optimization and delivery, for example:

  • Training courses

Includes a pipeline to optimize video delivery for each device.

Inference Module

Add-on microservice providing custom decision automation.

Custom machine learning models, for example:

  • Personalize search results
  • Predictive user behavior
  • Image/video analysis

Computation Module

This module lays down the infrastructure required to deploy custom-developed microservices running in containers, serverless functions or virtual machines.

Proprietary software deployment running on various languages, e.g. Django, Rails, Tomcat, etc.

Design Considerations

  • Why not Kubernetes? ECS provides better integration with overall solution and more extensive automation (managed service)
  • I typically prioritize these by: Lambda, ECS, EC2 — for a number of reasons, including security risk (EC2 is typically highest risk)

Internet of Things (IoT) Module

This add-on module enables a platform for managing IoT devices.

  • IoT — Primary gateway for device management
  • CloudWatch — Collect and store logs from IoT

Extend the application to remote industrial, consumer and commercial cloud-connected devices.