64
TOWARDS A RESPONSIVE BUSINESS The Developer Way

Towards a responsive business, the developer way

Embed Size (px)

DESCRIPTION

Presentation at DDD Melbourne in July 2013 by Venetia Bird and Nigel Fernandes. The talk focuses on dealing with legacy systems and complexity. They discuss the developer techniques to evolving an architecture thats better able to handle business evolution.

Citation preview

Page 1: Towards a responsive business, the developer way

TOWARDS A RESPONSIVE BUSINESSThe Developer Way

Page 2: Towards a responsive business, the developer way

@nigelfds

github.com/nigelfds

Page 3: Towards a responsive business, the developer way

@venetiabird

github.com/venetiabird

Page 4: Towards a responsive business, the developer way
Page 5: Towards a responsive business, the developer way
Page 6: Towards a responsive business, the developer way
Page 7: Towards a responsive business, the developer way

Understanding the problems

Page 8: Towards a responsive business, the developer way

“We make a change in one place and somewhere, something else breaks”

Page 9: Towards a responsive business, the developer way

“It feels like it takes a long time to complete what should be a simple thing”

Page 10: Towards a responsive business, the developer way

“Feels like all we have done are patches, hacks and short term tactical fixes to meet deadlines”

Page 11: Towards a responsive business, the developer way

Really?

Page 12: Towards a responsive business, the developer way

Part of any problem is: people & process

Page 13: Towards a responsive business, the developer way

We’re going to focus on the technical parts

Page 14: Towards a responsive business, the developer way

www.laputan.org

Page 15: Towards a responsive business, the developer way

1. Legacy Systems2. Kitchen Sink Applications3. Monolithic Applications4. Complexity

We’ll talk about dealing with 4 things:

…and what we learnt along the way.

Page 16: Towards a responsive business, the developer way

1. Legacy Systems

Page 17: Towards a responsive business, the developer way

Strangler Pattern

Page 18: Towards a responsive business, the developer way
Page 19: Towards a responsive business, the developer way

Legacy systems grow arms and legs…

…because the world needs to continue

Page 20: Towards a responsive business, the developer way

2. Kitchen Sink Applications

Page 21: Towards a responsive business, the developer way

Kitchen Sink

Page 22: Towards a responsive business, the developer way

Different speeds of evolution

Page 23: Towards a responsive business, the developer way

Factoring systems by Value Stream

Page 24: Towards a responsive business, the developer way
Page 25: Towards a responsive business, the developer way
Page 26: Towards a responsive business, the developer way

You aren’t going to get it right at first go

Page 27: Towards a responsive business, the developer way

Using WebAPI and Areas to build services within a service

Page 28: Towards a responsive business, the developer way

3. Monolithic Applications

Page 29: Towards a responsive business, the developer way
Page 30: Towards a responsive business, the developer way
Page 31: Towards a responsive business, the developer way
Page 32: Towards a responsive business, the developer way
Page 33: Towards a responsive business, the developer way
Page 34: Towards a responsive business, the developer way

Eliminating batch processes is hard

Page 35: Towards a responsive business, the developer way

4. Complexity

Page 36: Towards a responsive business, the developer way

“I do believe that complexity is the enemy. Until we better understand complexity, our chances of building better IT systems is limited. The first thing we must understand about complexity is that not all complexity is equal. And the complexity on which most people focus is probably the least complex complexity of all.”

http://simplearchitectures.blogspot.com/2009/03/cancer-of-complexity.html

Roger Sessions

Page 37: Towards a responsive business, the developer way
Page 38: Towards a responsive business, the developer way

Complexity

Page 39: Towards a responsive business, the developer way
Page 40: Towards a responsive business, the developer way

Accidental complexity vs Planned complexity

Page 41: Towards a responsive business, the developer way

Dealing with artifacts…

Page 42: Towards a responsive business, the developer way

Managing Pipelines

Page 43: Towards a responsive business, the developer way

Make it Visible!

Page 44: Towards a responsive business, the developer way

Drilling down...

Page 45: Towards a responsive business, the developer way

to package our apps

Page 46: Towards a responsive business, the developer way

What’s inside the nuget package?

Puppet manifests

Environment Configurations as JSON

Install Script in Powershell

Zip’ed up applicationVersion

0.12.4

Page 47: Towards a responsive business, the developer way

Version 0.12.4Proget to manage the packages for the environments

Dev Feed

Test Feed

Staging Feed

Production Feed

Page 48: Towards a responsive business, the developer way

Push button deployment

1. Hey Bamboo, deploy v0.1.7 to staging

3. Hey Choclatey, install version 10

4. Proget Staging Feed, give me, v0.1.7

6. Unpacks the box and runs the install script

2. Powershell over winRM

5. Here you go!

Staging Server

Page 49: Towards a responsive business, the developer way

Checks for the correct environment

Uses the environment configuration with puppet to configure the environment

IIS configuration,Folder permissions etc

Page 50: Towards a responsive business, the developer way
Page 51: Towards a responsive business, the developer way

What’s interesting!!?

Packages shipped with ability configure their environment

Page 52: Towards a responsive business, the developer way

Testing deployment scripts…

…with Canary packages

Page 53: Towards a responsive business, the developer way

Guarantees at every every stage in pipeline

Page 54: Towards a responsive business, the developer way

Unit Testing

Page 55: Towards a responsive business, the developer way

Integration Testing

Page 56: Towards a responsive business, the developer way

Systems Testing

Page 57: Towards a responsive business, the developer way

The test pyramid.

Page 58: Towards a responsive business, the developer way
Page 59: Towards a responsive business, the developer way

Status Checks

Page 60: Towards a responsive business, the developer way
Page 61: Towards a responsive business, the developer way

5 Months +scope

9 weeks +scope

4 weeks +scope

Page 62: Towards a responsive business, the developer way
Page 63: Towards a responsive business, the developer way
Page 64: Towards a responsive business, the developer way

Thank you.