All Software Architecture, All the Time
June 10-13, 2019
San Jose, CA
Please log in

Flexible cloud architectures: Decision making best practices

Lena Hall (Microsoft), Adron Hall (DataStax)
3:00pm–3:45pm Thursday, June 13, 2019
Cloud native, Data, Distributed systems
Location: 210 A/E
Secondary topics:  Best Practice

Who is this presentation for?

  • Solution architects, system designers, CTOs, and software engineers



Prerequisite knowledge

  • Experience designing systems using one or more cloud providers, hybrid, or multicloud systems (useful but not required)

What you'll learn

  • Understand the trade-offs, benefits, limitations, and future potential of many existing options
  • Create a decision-making framework to help solution architects ask the right questions and make the best choices


The ecosystem in which we are building our solutions is rapidly growing. So too do architectural best practices—they tend to change over time. It becomes challenging to make the right decision and keep track of the expanding sea of options surrounding us. While it’s relatively easy to build a system that satisfies given functional requirements, it isn’t always clear what the path is to failure-proof, manageable, flexible solutions that are ready to adjust to future changes.

Lena Hall and Adron Hall look at the solution architecture of distributed cloud native systems, which often consist of numerous components. They cover the most common questions you’ll face:

  • Given the trade-offs, in which cases should you run components on dedicated servers, on VMs, using managed services, independent cloud offerings, or in containers on Kubernetes, when all choices seem like viable options?
  • You want to conveniently manage your cloud systems, but should you choose Terraform, AWS CloudFormation or Azure Resource Manager, Pulumi, or maybe some container multicloud control plane?
  • Since cloud providers and offerings change so frequently, how do you choose the best option or decide between using services of different clouds for respective parts of your systems, without being locked into one particular provider?

The key to making the right architectural decisions is understanding technical nuances, differences, and limitations of the components you’re evaluating—quite a challenging process. Lena and Adron cover best practices for flexible systems, their integration points, and many things “in between” code. You’ll walk away aware of the trade-offs, benefits, limitations, and future potential of many existing options. You can form a decision-making framework that will help solution architects ask the right questions and make the right choices for architectural scenarios in the cloud native world of multicloud, automation, serverless, and containers and help build systems that can adjust to change and resist failure.

Photo of Lena Hall

Lena Hall


Lena Hall is a senior software engineer and developer advocate at Microsoft working on Azure, where she focuses on large-scale distributed systems and modern architectures. Lena has more than 10 years of experience in software engineering with a focus on distributed cloud programming, real-time system design, highly scalable and performant systems, big data analysis, data science, functional programming, and machine learning. Previously, she was a senior software engineer at Microsoft Research. She’s an elected member of the F# Software Foundation’s board of trustees, co-organizes a conference called ML4ALL, and is often an invited member of program committees for conferences like Kafka Summit, Lambda World, and others. Lena holds a master’s degree in computer science.

Adron Hall


Adron Hall is a developer advocate at DataStax.