15
CONTINUOUS ALL THE THINGS 11.08.2016 Willie Goosen

CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

CONTINUOUS

ALL THE THINGS 11.08.2016 Willie Goosen

Page 2: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

CONTINUOUS CHALLENGES

Environment inconsistency: development and test

environments that are different to production.

Page 3: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

CONTINUOUS CHALLENGES

Lack of Ownership: development and test environments that

are different to production or teams not working close enough.

“It works on my

machine…”- every developer ever -

“The servers are fine…

Must be the code.”- every sysadmin ever -

Page 4: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

CONTINUOUS CHALLENGES

Pets VS Cattle : Treating your servers / services like pets,

rather than Cattle, if it gets sick get rid of it.

Name, Love, Nurse VS Numbers, Identical, Disposable

Page 5: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

CONTINUOUS CHALLENGES

Different Goals : When you have silos of teams with different

goal and drivers

DEV

• Innovate Through Change

• Quick turnaround on features

• Not concerned of code impact

on infrastructure

OPS

• Generate stability

• Rewarded for uptime

• Hawk eye on resource

consumption of servers

VS

PROBLEM!!

Page 6: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

CONTINUOUS INTEGRATION

Integrate changes from each developer into the main branch, on

checkin / pull request.

Page 7: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

CONTINUOUS INTEGRATION

Static Analysis and Unit testing for code quality is performed

before any code review happens.

Commit

Dev

Build

Unit

Test

Analyse

Page 8: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

CONTINUOUS DELIVERY

Deploying the resulting artefact from each Integrated build into

various environments

Continuous Testing

Commit

Dev

Build

Continuo

us

Monitorin

g

Continuous Delivery

Page 9: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

BUZZWORDS• Immutable Infrastructure - Your

infrastructure is treated just like code and

checked into source control and build from

created from there

• Rolling Deployments - Each server is taken

out of the pool and upgraded, then placed back

in to service

• Blue Green Deployments - Whole new stack

is built, once ready it completely replaces the

previous

Page 10: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

CONTINUOUS TESTING

Depending on the level of test automation, integrated builds can

move across environments with or without interaction

Continuous Testing

Commit

Dev

Build

Continuo

us

Monitorin

g

Continuous Delivery

Page 11: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

CONTINUOUS MONITORING

Ensuring all aspects of each environment is monitored and

possibly self-healing

Continuous Testing

Commit

Dev

Build

Continuo

us

Monitorin

g

Continuous Delivery

Page 12: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

BUZZWORDS

• Application Performance Management -

These are specialised tools that inspect the

code and interactions with users, web services

databases and infrastructure to pinpoint issues.

• Log Aggregation - Central place where

aaaaaaallll the logs of a system is stored,

usually with a google-for-logs interface to

search and find events.

Page 13: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

TYING IT TOGETHER

• Build Tool

• Deployment Tool

• Containers

• Ticket Tracking

• Wiki

• Source Code

Page 14: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

PARTING THOUGHTS

• Culture - Tighten the interactions between Dev,

Test and Ops

• Automation - Establish a practice of automation

• Measure - You can only tune, if you know what

the system currently does

• Share - Share the same tools, metrics and data

across Dev, Test, and Ops

Page 15: CONTINUOUS - Australia and New Zealand Testing Board€¦ · CONTINUOUS INTEGRATION Integrate changes from each developer into the main branch, on checkin / pull request. CONTINUOUS

ASK?!?

ALL THE THINGS