O'Reilly logo
live online training icon Live Online training

Cloud Native Architecture Patterns

Applying a pattern language to build systems optimized for Continuous Delivery, DevOps, and cloud infrastructure

Matt Stine

Companies are seeking the ability to continuously evolve new and existing value streams while simultaneously seeking increased reliability from all of their systems. The conversations within Continuous Delivery and DevOps communities, coupled with a deep understanding of the unique characteristics of cloud infrastructure platforms, have resulted in an evolving architectural pattern language geared toward helping companies achieve these two conflicting goals.

Designed for software architects and senior developers working on medium-to-large scale enterprise systems, this two-day, hands-on course will introduce you to the cloud native architectural pattern language and give you practice applying it. By the end of this course, you’ll be able to articulate the high-level narrative of cloud native architecture and why it is so important to your company. You’ll also be able to apply cloud native architecture patterns to various practice “katas” to prepare for future use on real projects.

What you'll learn-and how you can apply it

By the end of this live, online course, you’ll understand:

  • The business drivers influencing companies to leverage Continuous Delivery, DevOps, and Cloud Native architectures.
  • The unique characteristics of cloud infrastructure and how architectures can exploit these characteristics.
  • How to work with an evolving cloud native architectural pattern language called “Bricks and Mortar.”

And you'll be able to:

  • Articulate the high-level narrative of cloud native architecture and why it is important to their business.
  • Articulate the paradigm shift involved in cloud native architectural thinking.
  • Describe the cloud native architectural patterns, what problems they solve, the pros and cons of various implementation approaches, and the relationships between the patterns.
  • Apply cloud native architecture patterns to various practice “katas” to prepare for future use on real projects.

This training course is for you because...

  • You are an experienced Application Architect, Lead Engineer, or Senior Developer building medium-to-large scale enterprise applications, and you need to start leveraging cloud infrastructure for your solutions.
  • You are an experienced Application Architect, Lead Engineer, or Senior Developer building medium-to-large scale enterprise applications, and you want to understand how to create systems optimized for DevOps and Continuous Delivery practices.
  • You are an experienced Application Architect, Lead Engineer, or Senior Developer building medium-to-large scale enterprise applications, and you need to start migrating your existing applications to cloud native architectures.

Prerequisites

  • Useful to have a high-level understanding of Continuous Delivery, e.g. Jez Humble’s video Continuous Delivery.
  • Useful to have a high-level understanding of DevOps and SRE concepts. The DevOps Handbook and Site Reliability Engineering are useful pre-reads.
  • A general understanding of the practice of Software Architects is a must. Watching Neal Ford and Mark Richards Software Architecture videos will be a useful primer/refresher for anyone. Also Mark Richards’ Software Architecture Patterns report will help you understand the language we’ll be using.
  • Some exposure to microservices and related concepts can only help. Sam Newman’s video The Principles of Microservices or other related resources on Safari can provide this.
  • Some exposure to distributed systems and related concepts will also help. Tim Berglund’s video course Distributed Systems in One Lesson (Sections 1–7) can be a good start.
  • Useful but not required to have some basic knowledge of and experience with any public cloud service. This can include the big 3 (AWS/Google/Azure) IaaS providers, as well as any PaaS offering like Cloud Foundry or Heroku.?

About your instructor

  • Matt Stine is a 17 year veteran of the enterprise IT industry, with eight of those years spent as a consulting solutions architect for multiple Fortune 500 companies, as well as the not-for-profit St. Jude Children’s Research Hospital. He is the author of Migrating to Cloud-Native Application Architectures from O’Reilly, and the host of the Software Architecture Radio podcast.

    Matt is obsessed with the idea that enterprise IT “doesn’t have to suck,” and spends much of his time thinking about lean/agile software development methodologies, DevOps, architectural principles/patterns/practices, and programming paradigms, in an attempt to find the perfect storm of techniques that will allow corporate IT departments to not only function like startup companies, but also create software that delights users while maintaining a high degree of conceptual integrity. He is currently the product owner for Spring at Pivotal, and spends much of his time driving an active feedback loop between the Spring R&D organization and customers developing cloud-native application architectures.

    Matt has spoken at conferences ranging from JavaOne to OSCON to YOW!, is a seven-year member of the No Fluff Just Stuff tour, and serves as Technical Editor of NFJS the Magazine. Matt is also the founder and past president of the Memphis Java User Group.

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

DAY 1

Class Introduction (10 minutes)

  • Intro to the Course
  • Intro to the Instructor
  • Class Logistics
  • Class Outline

Lecture: The Business Drivers for Architectural Change (20 minutes)

Lecture: A High-Level Overview of Continuous Delivery and DevOps (20 minutes)

Break (5 minutes)

Lecture: The Unique Characteristics of Cloud Infrastructure (20 minutes)

Lecture: Cloud Native Architecture Concepts (20 minutes)

Open Q&A and Discussion: Cloud Native Drivers and Concepts (15 minutes)

  • Handle any questions that have popped up during the lectures
  • Will prompt the class with discussion questions with open time

Break (5 minutes)

Lecture: Introduction to the Brick & Mortar Pattern Language (5 minutes)

Lecture: Externalized Configuration Pattern (15 minutes)

Lecture: Externalized State Pattern (15 minutes)

Open Q&A and Discussion: Externalization Patterns (15 minutes)

  • Handle any questions that have popped up during lectures
  • Will prompt the class with discussion questions with open time

Break (5 minutes)

Lecture: Runtime Reconfiguration Pattern (15 minutes)

Lecture: Concurrent Execution Pattern (15 minutes)

Lecture: Brick Telemetry Pattern (15 minutes)

Open Q&A and Discussion: Runtime Patterns (15 minutes)

  • Handle any questions that have popped up during lectures
  • Will prompt the class with discussion questions with open time

DAY 2

Day One Recap (10 minutes)

Activity: Applying the Brick Patterns (20 minutes)

  • Students will be presented with a problem requiring the application of the Brick Patterns learned on Day One
  • Students will be required to create architectural diagrams and an architectural narrative that describes their solution
  • Students will post their solutions to a class repository to share with the other students and the instructor

Solution: Applying the Brick Patterns (20 minutes)

  • The instructor will present his solution to the Brick Pattern problem
  • Students will be able to ask questions about why their solutions differed from the instructor’s solution, as well as general Q&A about the activity

Break (5 minutes)

Lecture: Service Discovery Pattern (15 minutes)

Lecture: Edge Gateway Pattern (15 minutes)

Lecture: Fault Tolerance Pattern (15 minutes)

Open Q&A and Discussion: Distributed Systems Patterns (10 minutes)

  • Handle any questions that have popped up during lectures
  • Will prompt the class with discussion questions with open time

Break (5 minutes)

Lecture: Event-Driven Pattern (15 minutes)

Lecture: Contract Management Pattern (15 minutes)

Lecture: Integration Telemetry Pattern (15 minutes)

Open Q&A and Discussion: Integration Patterns (10 minutes)

  • Handle any questions that have popped up during lectures
  • Will prompt the class with discussion questions with open time

Break (5 minutes)

Activity: Applying the Mortar Patterns (20 minutes)

  • Students will be presented with a problem requiring the application of the Mortar Patterns learned on Day Two
  • Students will be required to create architectural diagrams and an architectural narrative that describes their solution
  • Students will post their solutions to a class repository to share with the other students and the instructor

Solution: Applying the Mortar Patterns (20 minutes)

  • The instructor will present his solution to the Mortar Pattern problem
  • Students will be able to ask questions about why their solutions differed from the instructor’s solution, as well as general Q&A about the activity

Open Q&A and Discussion: Concluding Discussion for the Course (25 minutes)

  • Handle any remaining questions that have popped up during the course
  • Will prompt the class with clarifying discussion questions to evaluate the overall understanding of the students