Microservices Manchester: Microservices and Macro-Economics - A Shorty History By Marco Cullen

Preview:

Citation preview

MICRO SERVICES AND MACRO ECONOMICS - A SHORT HISTORY

HOW DID WE GET HERE?

WHAT CAME BEFORE ..TO BUILD

THE HISTORY OF STRUCTURE

▸ “the quality of being organised"

WHAT CAME BEFORE ..TO BUILD

THE HISTORY OF STRUCTURE

▸ “the quality of being organised"

▸ Programming-in-the-large versus programming-in-the-small (Hans Kron and Frank DeRemer 1975)

WHAT CAME BEFORE ..TO BUILD

THE HISTORY OF STRUCTURE

▸ “the quality of being organised"

▸ Programming-in-the-large versus programming-in-the-small (Hans Kron and Frank DeRemer 1975)

▸ We distinguish the activity of writing large programs from that of writing small ones. By large programs we mean systems consisting of many small programs (“modules”) written by different people, possibly in different languages.

WHAT CAME BEFORE ..TO BUILD

THE HISTORY OF STRUCTURE

▸ “the quality of being organised"

▸ Programming-in-the-large versus programming-in-the-small (Hans Kron and Frank DeRemer 1975)

▸ We distinguish the activity of writing large programs from that of writing small ones. By large programs we mean systems consisting of many small programs (“modules”) written by different people, possibly in different languages.

▸ Module Interconnection language

2016MODULES!1976MICRO SERVICES!

WHAT HAVE WE LEARNT IN 40 YEARS?

COMPUTER ENGINEERING VS COMPUTER SCIENCE

▸ Definitions

▸ Computer science is the study of the principles and use of computers.

COMPUTER ENGINEERING VS COMPUTER SCIENCE

▸ Definitions

▸ Computer science is the study of the principles and use of computers.

▸ Computer engineering is a discipline that integrates several fields of electrical engineering and computer science required to develop computer hardware and software.

COMPUTER ENGINEERING VS COMPUTER SCIENCE

▸ Definitions

▸ Computer science is the study of the principles and use of computers.

▸ Computer engineering is a discipline that integrates several fields of electrical engineering and computer science required to develop computer hardware and software.

▸ Module Interaction Language

COMPUTER ENGINEERING VS COMPUTER SCIENCE

▸ Definitions

▸ Computer science is the study of the principles and use of computers.

▸ Computer engineering is a discipline that integrates several fields of electrical engineering and computer science required to develop computer hardware and software.

▸ Module Interaction Language

▸ Representational State Transfer application programming interface, RESTful API

THE NATURAL WAY OF THINGS - REWINDING THE TAPE OF SOFTWARE

▸ Copes rule

▸ “….over the past 542 million years, the mean size of marine animals has increased 150-fold.”

Jonathan Payne, a paleobiologist at Stanford School of Earth, Energy & Environmental Sciences

THE NATURAL WAY OF THINGS - REWINDING THE TAPE OF SOFTWARE

▸ Copes rule

▸ “….over the past 542 million years, the mean size of marine animals has increased 150-fold.”

▸ “For reasons that we don’t completely understand, the classes with large body size appear to be the ones that over time have become differentially more diverse.”

Jonathan Payne, a paleobiologist at Stanford School of Earth, Energy & Environmental Sciences

THE NATURAL WAY OF THINGS - REWINDING THE TAPE OF SOFTWARE

▸ Copes rule

▸ “….over the past 542 million years, the mean size of marine animals has increased 150-fold.”

▸ “For reasons that we don’t completely understand, the classes with large body size appear to be the ones that over time have become differentially more diverse.”

▸ “It’s really a story of the survival and diversification of big things relative to small things”

Jonathan Payne, a paleobiologist at Stanford School of Earth, Energy & Environmental Sciences

ENSURING SUCCESSFROM HUTS TO HOUSES

A LORD A FOREMAN AN ARTISAN

3 PROPERTIES THAT SUCCESSFUL PROJECTS OFTEN SHARE

▸ Person of authority

▸ Process

▸ Technical authorship through expertise and experience

Harvard Business School - ‘…Factors common to successful projects’

A LORD A FOREMAN AN ARTISAN

3 PROPERTIES THAT SUCCESSFUL PROJECTS OFTEN SHARE

▸ …. a project will not fail because of the type of tools used or the type of methodology employed

Harvard Business School - ‘…Factors common to successful projects’

A LORD A FOREMAN AN ARTISAN

3 PROPERTIES THAT SUCCESSFUL PROJECTS OFTEN SHARECitation Frequency

Clear requirements and specifications 60.5

Clear objectives and goals 55.8

Realistic schedule 53.5

Effective project management skills - PM 53.5

Support from top management 51.2

User/client involvement and feedback 46.5

Realistic budget 46.5

Skilled and sufficient staff 44.2

Frozen requirement 41.9

Critical success factors for software projects: A comparative study

WHY CANT WE MAKE SOFTWARE LIKE WE MAKE HOUSES?

…THERE WERE PROBLEMS

WE TRIED…….

EVOLUTIONARY ARCHITECTUREITS MORE THAN JUST A HOUSE

INSPIRATION FROM NATURE

▸ Cellular

▸ Iterative

▸ Specialised

▸ Bounded

▸ Obligated

DOMAIN DRIVEN

DESIGN

CONTRACT DRIVEN DESIGN

BOUNDED FUNCTIONAL CONTEXT

AND SCALEMICRO SERVICES, DESIGN

DESIGN DESIGN DESIGN.. HOW DOES MICRO SERVICES FIT IN?

▸ Service can be defined as

▸ domain bounded

▸ contract bounded

DESIGN DESIGN DESIGN.. HOW DOES MICRO SERVICES FIT IN?

▸ Service can be defined as

▸ domain bounded

▸ contract bounded

▸ This has desirable scaling properties relative to…

HOW LONG IS A PIECE OF SPRINT

ARE YOU USING DOCKER?

WHAT’S A REAL MAN DAY?

IS THAT MY SIZE? IT FITS PERFECTLY

▸ LOC output varies by 2 orders of magnitude

▸ a 1000 lines / dev-weak

▸ a 1000 lines / dev-year [Windows 95]

▸ There is a wide range of productivity between projects

▸ What influences or contributes to this?

▸ http://martinfowler.com/bliki/CannotMeasureProductivity.html

IS THAT MY SIZE? IT FITS PERFECTLY

▸ Why is productivity hard to measure

IS THAT MY SIZE? IT FITS PERFECTLY

▸ Why is productivity hard to measure

▸ There is no definition that captures holistically the value in a way that is both relevant to the client and to the business.

IS THAT MY SIZE? IT FITS PERFECTLY

▸ Why is productivity hard to measure

▸ There is no definition that captures holistically the value in a way that is both relevant to the client and to the business.

▸ People agree functionality points are quite good but they don’t relate the value of what was delivered to the business with a view to future work, i.e. was their duplication, can we re-use?

IS THAT MY SIZE? IT FITS PERFECTLY

▸ Why is productivity hard to measure

▸ There is no definition that captures holistically the value in a way that is both relevant to the client and to the business.

▸ People agree functionality points are quite good but they don’t relate the value of what was delivered to the business with a view to future work, i.e. was their duplication, can we re-use?

▸ Lets focus on process and maybe we get productivity?

INSPIRATION FROM NATURE

▸ Cellular

▸ Iterative

▸ Specialised

▸ Bounded

▸ Obligated

DOMAIN DRIVEN

DESIGN

CONTRACT DRIVEN DESIGN

BOUNDED FUNCTIONAL CONTEXT

WHO KNOWS WHAT

▸ I know what i know, but not what he knows

▸ Heterogeneous structures require specialisation

▸ Different components evolve at different speeds

▸ How do we on board and off board specialist knowledge?

▸ Do i have to know what he knows to do what i know?

INSPIRATION FROM NATURE

▸ Cellular

▸ Iterative

▸ Specialised

▸ Bounded

▸ Obligated

DOMAIN DRIVEN

DESIGN

CONTRACT DRIVEN DESIGN

BOUNDED FUNCTIONAL CONTEXT

A MACRO IMPACTMICRO SERVICES

WHATS AFFECTED

▸ Business interaction modalities

▸ daily routines - scrum, standup

▸ time and length of interactions

▸ Processes and benchmarks

▸ New processes to deliver functioning software at a high rate of mutation - Dev/Ops

▸ New automated methods for ensuring adherence to function - Acc. Tests

▸ Integration - CI/CD

▸ New metrics - performance testing* ——- SLA

A MORE NATURAL WAY TO THINK ORGANISE AND DELIVER

MICRO SERVICES

WHAT IS AFFECTED

▸ ..running a micro services project results in various outcomes which implicitly help project management and thus the path to delivery

▸ Repeatable processes and thus a repeatable product

WHAT IS AFFECTED

▸ ..running a micro services project results in various outcomes which implicitly help project management and thus the path to delivery

▸ Repeatable processes and thus a repeatable product

▸ Well defined areas of responsibility, knowledge and accountability

WHAT IS AFFECTED

▸ ..running a micro services project results in various outcomes which implicitly help project management and thus the path to delivery

▸ Repeatable processes and thus a repeatable product

▸ Well defined areas of responsibility, knowledge and accountability

▸ A clear set of interaction modalities between all parties including the software and people alike!

WHATS NOT AFFECTED

▸ … so If my project is a micro services project, it WILL succeed?

▸ methodology and tooling not highly correlated with success.

A LORD A FOREMAN AN ARTISAN

3 PROPERTIES THAT SUCCESSFUL PROJECTS OFTEN SHARECitation Frequency

Clear requirements and specifications 60.5

Clear objectives and goals 55.8

Realistic schedule 53.5

Effective project management skills - PM 53.5

Support from top management 51.2

User/client involvement and feedback 46.5

Realistic budget 46.5

Skilled and sufficient staff 44.2

Frozen requirement 41.9

Critical success factors for software projects: A comparative study

WHATS NOT AFFECTED

▸ … so If my project is a micro services project, it WILL succeed?

▸ methodology and tooling not highly correlated with success.

▸ ……they are however strongly correlated with cost*

WHATS NOT AFFECTED

▸ … so If my project is a micro services project, it WILL succeed?

▸ methodology and tooling not highly correlated with success.

▸ ……they are however strongly correlated with cost*

▸ …but my operational overheads are higher now and i have duplication of effort, how do i end up saving on cost?

WHATS IS AFFECTED - THE MACRO OF MICRO

▸ Where are my costs reduced

▸ Reduction in cost to requirements change

▸ changes are often bounded, reducing complexity

▸ cross cutting changes are more easily decomposed

▸ Late changes cost less - a major contributor to cost and one of the top 10 reasons related to project success.

WHATS IS AFFECTED

▸ Where are my costs reduced

▸ Organisationally now we can deal with a high rate of mutation

▸ Able to change direction with lesser cost impact relative to more traditional monolithic structures.

▸ Synergises at scale with Agile, containerisation and established developer working and hiring patterns.

WHATS IS AFFECTED - THE MACRO OF MICRO

WHATS IS AFFECTED

▸ Where are my costs reduced

▸ Working software is one of the best ways to measure progress.

WHATS IS AFFECTED - THE MACRO OF MICRO

School of Computer Science and software Engineering - The University of Western Australia 2012

WHATS IS AFFECTED

▸ Where are my costs reduced

▸ Working software is one of the best ways to measure progress

▸ Working software vs effort is 1 measure of productivity

WHATS IS AFFECTED - THE MACRO OF MICRO

School of Computer Science and software Engineering - The University of Western Australia 2012

WHATS IS AFFECTED

▸ Where are my costs reduced

▸ Working software is one of the best ways to measure progress

▸ Working software vs effort is 1 measure of productivity

▸ Micro Services results in working code deployed sooner than more traditionally linear approaches to product development.

WHATS IS AFFECTED - THE MACRO OF MICRO

School of Computer Science and software Engineering - The University of Western Australia 2012

A MACRO IMPACT ON YOUR BUSINESS ECONOMICS

MICRO SERVICES