39
Large factories LifeTime story To production and beyond Francisco Menezes Lúcio Ferrão http://bit.ly/largefactories www.outsystems.com

Large Factories Lifetime Story: To Production and Beyond

Embed Size (px)

DESCRIPTION

Instructions for controlling your IT architecture when it starts to grow in size

Citation preview

Page 1: Large Factories Lifetime Story: To Production and Beyond

Large factories LifeTime story

To production and beyond

Francisco Menezes Lúcio Ferrão

http://bit.ly/largefactories

www.outsystems.com

Page 2: Large Factories Lifetime Story: To Production and Beyond

Life is perfect when you are small!

Page 3: Large Factories Lifetime Story: To Production and Beyond

But with OutSystems you grow very fast

What happens when

your factory reaches…

Page 4: Large Factories Lifetime Story: To Production and Beyond

10 Teams ≈ 50 Developers

Page 5: Large Factories Lifetime Story: To Production and Beyond

500 eSpaces

Page 6: Large Factories Lifetime Story: To Production and Beyond

1000 DB Tables

Page 7: Large Factories Lifetime Story: To Production and Beyond

Don’t loose control …

… good parenting is a must!

Page 8: Large Factories Lifetime Story: To Production and Beyond

Avoid long deployments …

… that don’t fit in any opportunity window!

Page 9: Large Factories Lifetime Story: To Production and Beyond

Deploying one app …

… should not mess with other apps!

Page 10: Large Factories Lifetime Story: To Production and Beyond

Prevent unforeseen impacts …

… to reduce costs and ease deployment prep!

Page 11: Large Factories Lifetime Story: To Production and Beyond

1. Keep a sound architecture

Don’t loosen up…

layer applications without cyclic dependencies

Application 1 Application 2

X Core Service 1

Application 1 Application 2

Core Service 2

Infrastructure modules

Core Service 3

Page 12: Large Factories Lifetime Story: To Production and Beyond

Don’t loosen up… 1. Keep a sound architecture

2. Promote ownership ???

Team B App B

Team A App A

Core App

Anyone changes… • Unexpected

impacts; • Uncontrolled

deployments of Applications.

Page 13: Large Factories Lifetime Story: To Production and Beyond

Team B App B

Team A App A

Core App

Don’t loosen up… 1. Keep a sound architecture

2. Promote ownership Team Core A owner adds:

• Accountability; • Change control; • Code stability.

Page 14: Large Factories Lifetime Story: To Production and Beyond

Don’t loosen up… 1. Keep a sound architecture 2. Promote ownership

3. Coordinate deployments by ≠ teams

Teams with different paces making Quality look like Development.

Dev Teams

Development Quality Production

Operations

Page 15: Large Factories Lifetime Story: To Production and Beyond

Execute without control on impacts

Don’t loosen up… 1. Keep a sound architecture 2. Promote ownership

3. Coordinate deployments by ≠ teams

Development Quality Production

Dev Teams Operations

Page 16: Large Factories Lifetime Story: To Production and Beyond

Don’t loosen up… 1. Keep a sound architecture 2. Promote ownership

3. Coordinate deployments by ≠ teams

Dev Teams

Development Quality Production

Release Manager Role

• Reduce risk • Faster and fewer deployments

Validate Deploy Consolidate Plan Consistency

Operations

Page 17: Large Factories Lifetime Story: To Production and Beyond

Let the tools help you!

Development

Quality

Production

LifeTime Discovery tool

Page 18: Large Factories Lifetime Story: To Production and Beyond

Configure your Infrastructure

Page 19: Large Factories Lifetime Story: To Production and Beyond

Promote control and ownership

Release Manager

Operations

Page 20: Large Factories Lifetime Story: To Production and Beyond

Release Manager

Operations

Promote control and ownership

Operations Users

Page 21: Large Factories Lifetime Story: To Production and Beyond

Tag a version Got new version ready to QA. Can you deploy it?

Got it!

Page 22: Large Factories Lifetime Story: To Production and Beyond

Impact analysis

What will happen if I deploy the requested version?

CRM Services version in QA will be incompatible!!!

Customer Portal Owner

What will happen if I deploy Customer Portal?

Page 23: Large Factories Lifetime Story: To Production and Beyond

Now What???

CRM Services Team

Go ahead!

Scenario 1

Can I also push CRM Services 1.1 to QA?

Scenario 2

CRM Services Team

Not ready!

Great! I’ll deploy it along with Customer Portal

Customer Portal Team

Make it compatible with CRM Services 1.0

No problem!

Page 24: Large Factories Lifetime Story: To Production and Beyond

Monitor environments consistency

We can’t have this !!!

Page 25: Large Factories Lifetime Story: To Production and Beyond

1st Stage prepare work in advance

LifeTime 2-step deployment Deploy in a short deployment window

• Compile code • Generate SQL Script • Upload binaries to destination

• Update database

• Switch running versions

2nd Stage

short deployment window

Page 26: Large Factories Lifetime Story: To Production and Beyond

How to compose LifeTime applications?

That will:

• Minimize impacts between applications

• Simplify deployments

• Cope with different paces

Page 27: Large Factories Lifetime Story: To Production and Beyond

5 Steps for composing LifeTime applications

Page 28: Large Factories Lifetime Story: To Production and Beyond

Recall Executive Store Manager Supplier Supplier Auditor Store Auditor

Product Services

Store Services Supplier Services

Look&Feel UI Patterns Goodies ERP

Connector

Backoffice Intranet Supplier portal

Recall Store Audit Supplier

Audit

No side dependencies

No upward dependencies

No cyclic dependencies

Step #1 Layer modules

Page 29: Large Factories Lifetime Story: To Production and Beyond

Application composition Layered module architecture

Step #2 Layer applications w/o cycles

Application 1

Composite

App 1

Core

service A

Infrastruct.

service A

Core

service B

Infrastruct.

service B

Application 2

Composite

App 2

Core

service C

Infrastruct.

service C

Core

service D

Infrastruct.

service D

Composite

App 1

Core

service A

Core

service B

Infrastruct.

service A

Infrastruct.

service B

1st project

Composite

App 2

Core

service C

Infrastruct.

service C

Core

service D

Infrastruct.

service D

2nd project

3rd project

Page 30: Large Factories Lifetime Story: To Production and Beyond

Application composition

Layered module architecture

Step #2 Layer applications w/o cycles

Composite

App 1

Core

service A

Core

service B

Infrastruct.

service A

Infrastruct.

service B

Composite

App 2

Core

service C

Infrastruct.

service C

Core

service D

Infrastruct.

service D

Application 1

Composite

App 1

Core

service A

Infrastruct.

service A

Common app

Core

service B

Infrastruct.

service B

Core

service C

Infrastruct.

service C

Application 2

Composite

App 2

Core

service D

Infrastruct.

service D

Page 31: Large Factories Lifetime Story: To Production and Beyond

Unecessary impacts

Core components

Stable

module 2

New

module

Stable

module 1

App 1 App 2 App n … App 3

Young module with high change frequency

Step #3 Don’t mix change paces

Page 32: Large Factories Lifetime Story: To Production and Beyond

New Service

New

molule

Core components

Stable

module 2

Stable

module 1

No longer affected

Split

App 1 App 2 App n … App 3

Step #3 Don’t mix change paces

Page 33: Large Factories Lifetime Story: To Production and Beyond

Common application

Module 3 Module 1 Module 2

Owner 2 Owner 1

Who is responsible?

Step #4 Don’t mix owners

Page 34: Large Factories Lifetime Story: To Production and Beyond

Owner 1

Application 1

New

molule

Owner 2

Application 2

Stable

module 2

Stable

module 1

Promote ownership

Split

Step #4 Don’t mix owners

Page 35: Large Factories Lifetime Story: To Production and Beyond

Simulators Simulation

Portal

Engines Policies

… Auto

… Life

… Property

Different project dates

Step #5 Don’t mix business sponsors

Auto Business

Life Business

Property Business

Page 36: Large Factories Lifetime Story: To Production and Beyond

Step #5 Don’t mix sponsors

Simulators Simulation

Portal

Core

Engines Policies

Property Suite

… Property

Life Suite

… Life

Auto Suite

… Auto

Each LOB can be deployed independently

Auto Business

Life Business

Property Business

Page 37: Large Factories Lifetime Story: To Production and Beyond

#1 Validate layered architecture

#2 Find cycles

#3 Analyze application composition

Discovery tool can help!

Page 38: Large Factories Lifetime Story: To Production and Beyond
Page 39: Large Factories Lifetime Story: To Production and Beyond

Thank you!

Q?

A! &

http://bit.ly/largefactories www.outsystems.com