Skip to content
  • Sign In
  • Try Now
View all events
Architectural Patterns

Architecture for Modern Engineering Practices

Published by O'Reilly Media, Inc.

Intermediate content levelIntermediate

Best practices to support structuring deployment pipelines for continuous delivery and continuous integration

Yesterday's best practice is tomorrow's anti-pattern. Everything in software continues to shift and move including architecture, a painful lesson developers who build logically sound but operationally cumbersome architectures quickly learn. Continuous delivery—a process for automating the production readiness of your application every time a change occurs to code, infrastructure, or configuration—enables you to better address these shifts head-on.

Neal Ford leads a deep dive into the intersection of the architect's role and the engineering practices at the heart of continuous delivery, covering continuous integration, deployment pipelines and how to structure them (including automating architecture governance), and best practices and anti-patterns. Neal also shares concrete engineering practices, such as automated machine provisioning, release strategies, and how feature toggles offer better continuous delivery than branches. You'll learn about migrating and evolving architectures, particularly how to understand enough about your architecture to restructure it. You'll leave with the knowledge and tools to immediately put these ideas into practice in your own projects.

What you’ll learn and how you can apply it

By the end of this live, example-lead online course, you understand:

  • The difference between continuous integration and continuous delivery
  • The difference between continuous delivery and continuous deployment
  • How to structure deployment pipeline stages
  • The role of DevOps in continuous delivery
  • Continuous delivery release strategies and tools
  • How to restructure architectures
  • How to evolve architectures via fitness functions

And you’ll be able to:

  • Build fitness functions to automate architectural governance
  • Construct a useful deployment pipeline
  • Explain why feature toggles offer better agility than feature branches
  • Utilize architectural quanta to restructure architecture
  • Evolve architecture due to domain or ecosystem changes

This live event is for you because...

  • You're a software architect who needs to understand modern engineering practices.
  • You're a DevOps engineer who needs to understand how architecture impacts operations.
  • You're on a team that needs to respond to change (both technical and business) more quickly.
  • You're a developer who has some architecture responsibilities and needs to understand how to apply modern engineering practices.

Prerequisites

  • A basic understanding of the software development lifecycle
  • Familiarity with Agile software development concepts
  • Architecture experience not required (Many of these principles apply throughout software projects.)

Recommended preparation:

Recommended follow-up:

Schedule

The time frames are only estimates and may vary according to how the class is progressing.

Continuous delivery (10 minutes)

  • Lecture: Integration versus delivery versus deployment; the scope of continuous delivery
  • Hands-on exercise: Which is best where?
  • Q&A

The intersection of architecture and continuous delivery (15 minutes)

  • Lecture: Modularity, coupling, cohesion, and quanta; architectural characteristics; domain versus architecture
  • Hands-on exercise: Identify architecture characteristics
  • Q&A

Deployment pipelines (20 minutes)

  • Lecture: Stages; purpose; domain tests; fitness functions; strategies
  • Hands-on exercise: Identify fitness functions
  • Q&A

Break (10 minutes)

Engineering practices (35 minutes)

  • Lecture: Automated machine provisioning; DevOps; feature toggles versus branching
  • Hands-on exercise: Toggles or branches?
  • Q&A

Release strategies (15 minutes)

  • Lecture: Canary releasing; release toggles
  • Q&A

Break (10 minutes)

Migrating architectures (30 minutes)

  • Lecture: Identifying architectural "seams" via quanta; partitioning architecture; restructuring architecture
  • Hands-on exercise: Find seams via quanta
  • Q&A

Evolving architecture (20 minutes)

  • Lecture: Building architecture to withstand change; the role of continuous delivery
  • Q&A

Putting it into practice (15 minutes)

  • Lecture: Case study—move fast and fix things; making the case in your organization
  • Q&A

Your Instructor

  • Neal Ford

    Neal Ford is a director, software architect, and meme wrangler at Thoughtworks, a software company and a community of passionate, purpose-led individuals who think disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. He’s an internationally recognized expert on software development and delivery, especially in the intersection of Agile engineering techniques and software architecture. Neal’s authored several books, a number of magazine articles, and dozens of video presentations (including a video on improving technical presentations) and spoken at hundreds of developer conferences worldwide. His topics of interest include software architecture, continuous delivery, functional programming, and cutting-edge software innovations. Check out his website, Nealford.com

    Xlinksearch