SlideShare uma empresa Scribd logo
1 de 64
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 Pattern
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.
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
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
Configurations as JSON
Install Script in
Powershell
Zip’ed up application
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
configuration with
puppet to configure the
environment
IIS configuration,
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
The test pyramid.
Status Checks
5 Months +scope
9 weeks +scope
4 weeks +scope
Thank you.

Mais conteúdo relacionado

Destaque (20)

Microservices meetup
Microservices meetupMicroservices meetup
Microservices meetup
 
DevOps Days Melbourne meet-up
DevOps Days Melbourne meet-upDevOps Days Melbourne meet-up
DevOps Days Melbourne meet-up
 
Seek test-invaders
Seek test-invadersSeek test-invaders
Seek test-invaders
 
Phoffa
PhoffaPhoffa
Phoffa
 
Nte
NteNte
Nte
 
Freddah M
Freddah MFreddah M
Freddah M
 
Elisabet Kinnunen OPH
Elisabet Kinnunen OPHElisabet Kinnunen OPH
Elisabet Kinnunen OPH
 
COMTECH
COMTECHCOMTECH
COMTECH
 
Markku Rimpela OPH
Markku Rimpela OPHMarkku Rimpela OPH
Markku Rimpela OPH
 
Jari Halonen WSOY
Jari Halonen WSOYJari Halonen WSOY
Jari Halonen WSOY
 
Keep Your Money For Life
Keep Your Money For LifeKeep Your Money For Life
Keep Your Money For Life
 
HAPPY_BIRTHDAY_MOM
HAPPY_BIRTHDAY_MOMHAPPY_BIRTHDAY_MOM
HAPPY_BIRTHDAY_MOM
 
Numbers 1 20
Numbers 1 20Numbers 1 20
Numbers 1 20
 
Opetus Time
Opetus TimeOpetus Time
Opetus Time
 
My career lessons - for Monash Students at Battle of the Brains 215
My career lessons - for Monash Students at Battle of the Brains 215My career lessons - for Monash Students at Battle of the Brains 215
My career lessons - for Monash Students at Battle of the Brains 215
 
Olli Luukkainen OAJ
Olli Luukkainen OAJOlli Luukkainen OAJ
Olli Luukkainen OAJ
 
Lessons learnt the hard way.
Lessons learnt the hard way.Lessons learnt the hard way.
Lessons learnt the hard way.
 
Lean Programmer Anarchy
Lean Programmer Anarchy Lean Programmer Anarchy
Lean Programmer Anarchy
 
LAST Conference - Dev-Ops and Continuous Delivery
LAST Conference - Dev-Ops and Continuous DeliveryLAST Conference - Dev-Ops and Continuous Delivery
LAST Conference - Dev-Ops and Continuous Delivery
 
Continuous Delivery in the AWS Cloud
Continuous Delivery in the AWS CloudContinuous Delivery in the AWS Cloud
Continuous Delivery in the AWS Cloud
 

Semelhante a Towards a responsive business, the developer way

Dev Environments: The Next Generation
Dev Environments: The Next GenerationDev Environments: The Next Generation
Dev Environments: The Next GenerationTravis Thieman
 
DevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdfDevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdfVishwas N
 
Developing in production
Developing in productionDeveloping in production
Developing in productionDamien PLARD
 
Scaling Engineering with Docker
Scaling Engineering with DockerScaling Engineering with Docker
Scaling Engineering with DockerTom Leach
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1Docker, Inc.
 
DevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseDevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseJames Wickett
 
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCEDEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCEDrupalCamp Kyiv
 
Containers and Why They Matter
Containers and Why They MatterContainers and Why They Matter
Containers and Why They MatterRay Lukas
 
Common primitives in Docker environments
Common primitives in Docker environmentsCommon primitives in Docker environments
Common primitives in Docker environmentsalexandru giurgiu
 
From 🤦 to 🐿️
From 🤦 to 🐿️From 🤦 to 🐿️
From 🤦 to 🐿️Ori Pekelman
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops DevopsKris Buytaert
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyondsantosh007
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: KeynoteDocker-Hanoi
 
Kautilya: Teensy beyond shell
Kautilya: Teensy beyond shellKautilya: Teensy beyond shell
Kautilya: Teensy beyond shellNikhil Mittal
 
AppSec USA 2014 talk by Chris Swan "Implications & Opportunities at the Bleed...
AppSec USA 2014 talk by Chris Swan "Implications & Opportunities at the Bleed...AppSec USA 2014 talk by Chris Swan "Implications & Opportunities at the Bleed...
AppSec USA 2014 talk by Chris Swan "Implications & Opportunities at the Bleed...Cohesive Networks
 
DevOps and the Death & Rebirth of Childhood Innocence
DevOps and the Death & Rebirth of Childhood InnocenceDevOps and the Death & Rebirth of Childhood Innocence
DevOps and the Death & Rebirth of Childhood InnocenceRobert Douglass
 
More fun using Kautilya
More fun using KautilyaMore fun using Kautilya
More fun using KautilyaNikhil Mittal
 

Semelhante a Towards a responsive business, the developer way (20)

Dev Environments: The Next Generation
Dev Environments: The Next GenerationDev Environments: The Next Generation
Dev Environments: The Next Generation
 
Docker all the way
Docker all the wayDocker all the way
Docker all the way
 
DevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdfDevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdf
 
Developing in production
Developing in productionDeveloping in production
Developing in production
 
Micro services
Micro servicesMicro services
Micro services
 
Scaling Engineering with Docker
Scaling Engineering with DockerScaling Engineering with Docker
Scaling Engineering with Docker
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1
 
DevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseDevOps for Defenders in the Enterprise
DevOps for Defenders in the Enterprise
 
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCEDEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
 
Containers and Why They Matter
Containers and Why They MatterContainers and Why They Matter
Containers and Why They Matter
 
Common primitives in Docker environments
Common primitives in Docker environmentsCommon primitives in Docker environments
Common primitives in Docker environments
 
From 🤦 to 🐿️
From 🤦 to 🐿️From 🤦 to 🐿️
From 🤦 to 🐿️
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops Devops
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: Keynote
 
Kautilya: Teensy beyond shell
Kautilya: Teensy beyond shellKautilya: Teensy beyond shell
Kautilya: Teensy beyond shell
 
AppSec USA 2014 talk by Chris Swan "Implications & Opportunities at the Bleed...
AppSec USA 2014 talk by Chris Swan "Implications & Opportunities at the Bleed...AppSec USA 2014 talk by Chris Swan "Implications & Opportunities at the Bleed...
AppSec USA 2014 talk by Chris Swan "Implications & Opportunities at the Bleed...
 
Is Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic GascIs Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic Gasc
 
DevOps and the Death & Rebirth of Childhood Innocence
DevOps and the Death & Rebirth of Childhood InnocenceDevOps and the Death & Rebirth of Childhood Innocence
DevOps and the Death & Rebirth of Childhood Innocence
 
More fun using Kautilya
More fun using KautilyaMore fun using Kautilya
More fun using Kautilya
 

Mais de Nigel Fernandes

Digital Transformation Summit - Melbourne 2019
Digital Transformation Summit - Melbourne 2019Digital Transformation Summit - Melbourne 2019
Digital Transformation Summit - Melbourne 2019Nigel Fernandes
 
Ipqc Enterprise Architecture Summit - Melbourne 2019
Ipqc  Enterprise Architecture Summit - Melbourne 2019Ipqc  Enterprise Architecture Summit - Melbourne 2019
Ipqc Enterprise Architecture Summit - Melbourne 2019Nigel Fernandes
 
Exploiting Serverless - DevOps Conference Sydney 2018
Exploiting Serverless - DevOps Conference Sydney 2018Exploiting Serverless - DevOps Conference Sydney 2018
Exploiting Serverless - DevOps Conference Sydney 2018Nigel Fernandes
 
Looking at your Technology company through the "3 Horizons of growth" model.
Looking at your Technology company through the "3 Horizons of growth" model. Looking at your Technology company through the "3 Horizons of growth" model.
Looking at your Technology company through the "3 Horizons of growth" model. Nigel Fernandes
 
Continuous Delivery and the Cloud
Continuous Delivery and the CloudContinuous Delivery and the Cloud
Continuous Delivery and the CloudNigel Fernandes
 
Thoughtworks Brazil, Code Quality
Thoughtworks Brazil, Code QualityThoughtworks Brazil, Code Quality
Thoughtworks Brazil, Code QualityNigel Fernandes
 

Mais de Nigel Fernandes (9)

Digital Transformation Summit - Melbourne 2019
Digital Transformation Summit - Melbourne 2019Digital Transformation Summit - Melbourne 2019
Digital Transformation Summit - Melbourne 2019
 
Ipqc Enterprise Architecture Summit - Melbourne 2019
Ipqc  Enterprise Architecture Summit - Melbourne 2019Ipqc  Enterprise Architecture Summit - Melbourne 2019
Ipqc Enterprise Architecture Summit - Melbourne 2019
 
Exploiting Serverless - DevOps Conference Sydney 2018
Exploiting Serverless - DevOps Conference Sydney 2018Exploiting Serverless - DevOps Conference Sydney 2018
Exploiting Serverless - DevOps Conference Sydney 2018
 
Looking at your Technology company through the "3 Horizons of growth" model.
Looking at your Technology company through the "3 Horizons of growth" model. Looking at your Technology company through the "3 Horizons of growth" model.
Looking at your Technology company through the "3 Horizons of growth" model.
 
Continuous Delivery and the Cloud
Continuous Delivery and the CloudContinuous Delivery and the Cloud
Continuous Delivery and the Cloud
 
RubyConf Uruguay 2011
RubyConf Uruguay 2011RubyConf Uruguay 2011
RubyConf Uruguay 2011
 
Thoughtworks Brazil, Code Quality
Thoughtworks Brazil, Code QualityThoughtworks Brazil, Code Quality
Thoughtworks Brazil, Code Quality
 
RubyConf Brazil 2011
RubyConf Brazil 2011RubyConf Brazil 2011
RubyConf Brazil 2011
 
Test Engineering
Test EngineeringTest Engineering
Test Engineering
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Towards a responsive business, the developer way

Notas do Editor

  1. Legacy systems tend to be organic meaning they are used so difficult to not add new features
  2. Rather than trying to get the right decision now, look for a way to either put off the decision until later (when you'll have more information) or make the decision in such a way that you'll be able to reverse it later on without too much difficulty.
  3. Typical pipeline and tasks
  4. Once the compile has completed, and the test have passed we use Nuget to create a package.
  5. The CI server/Bamboo publishes the packages to Proget.Proget is the tool we used to host our packages for each environment (DEV, TEST, STAGE, PROD)
  6. Request / trigger to deploy2. Our CI server (Bamboo) runs Powershell script over winrm session to the target machine to tell chocatelycmd to go and install a particular version of the application (package name and version3. A choclatelycmd on the target env (say Development) makes a request to the proget server requesting the version of the application4. Proget responds and the application is downloaded 5. The choclatelycmd unpacks the downloaded packages and runs the install script.
  7. Checks its on the right target envFinds envconfig, thenUses envconfig with puppet manifest to configure the envThings like iis, folder permission, copies files and whatever else it needs to doHas everything it needs to install itself onto the environment
  8. The shipped package has everything it needs in order to install itself on the environment. Single application per server.
  9. Tested the deployment scripts by:Creating a dummy packagingKinda like the canary testing for gas down a mineshaftCreated orchestration project to test our deployment scripts.By creating a dummy package and then using our deployment scripts to get this package through all the environments
  10. Testing means different things to different people in different contexts:Context of pipeline, in order to get to the next stage of the pipeline, a suite of tests need to be satisfied.For example:After checkout and compilation  ran unit and integration tests
  11. Testing of a single class
  12. Class would call out to say a repository -> testing the integration worked between those parts of the system. Testing classes interacting with soap end-points.
  13. TEST tests or black box testing, where we test different parts of the application are working together as they should. (IIS Express for example)After deployed to target env (DEV)Finally UI acceptance tests, which is testing how different applications and systems are interacting to complete user journeys in the Value Stream. Represents direct business value. i.e sponsoring a child
  14. Timing & costLots of unit tests  fast, cheap easy to maintainService  integration / black box testsMinimal UI acceptance tests  most expensive, slowest and brittle
  15. So how do we know if all this effort is working.. Are we becoming more responsive..
  16. Release cadence