towards a responsive business

Post on 21-Jan-2015

548 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

TOWARDS  A  RESPONSIVE  BUSINESS  The  Developer  Way  

@nigelfds

github.com/nigelfds

@venetiabird

github.com/venetiabird

Understanding �the problems

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

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

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

Part of any problem is: people & process

We’re going to focus on �the technical parts

www.laputan.org  

1.  Legacy Systems 2.  Kitchen Sink Applications 3.  Monolithic Applications 4.  Complexity

We’ll talk about dealing with 4 things:

…and what we learnt along the way.

1. Legacy Systems

Strangler  Pa6ern    

Legacy systems grow arms and legs…

…because the world needs to continue

2. Kitchen Sink Applications

Kitchen Sink

Different speeds �of evolution

Factoring systems by Value Stream

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

Using WebAPI and Areas to build services within a service

3. Monolithic Applications

Eliminating batch processes is hard

4. Complexity

“I  do  believe  that  complexity  is  the  enemy.  Un7l  we  be9er  understand  complexity,  our  chances  of  building  be9er  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.”  

h6p://simplearchitectures.blogspot.com/2009/03/cancer-­‐of-­‐complexity.html  

Roger  Sessions  

Complexity    

Accidental  complexity  vs  Planned  complexity  

Dealing with artifacts…

Managing Pipelines

Make  it  Visible!  

Drilling down...

to package our apps

What’s inside the nuget package?

Puppet  manifests    Environment  ConfiguraOons  as  JSON    Install  Script  in  Powershell    Zip’ed  up  applicaOon  

Proget to manage the packages for the environments

Dev Feed

Test Feed

Staging Feed

Production Feed

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

Checks  for  the  correct  environment  

Uses  the  environment  configuraOon  with  puppet  to  configure  the  environment  

IIS  configuraOon,  Folder  permissions    etc  

What’s interesting!!?

Packages shipped with ability configure their environment

Testing deployment scripts…

…with Canary packages

Guarantees at every every stage in pipeline

Unit Testing

Integration Testing

Systems Testing

The test pyramid.  

Status Checks

5 Months +scope

9 weeks +scope

4 weeks +scope

Thank you.

top related