1004 z2 env_positioned

15
© ZFabrik Software KG 2010 The z 2 Environment - positioned -

Transcript of 1004 z2 env_positioned

© ZFabrik Software KG 2010

The z2 Environment- positioned -

© ZFabrik Software KG 2010

Intro

● The z2 Environment lives on sources ● It removes the complexities of build & deploy ● It implements immediate integration● We will compare this with

A)The classical way of Java team development

B)The Maven approach

© ZFabrik Software KG 2010

What's the Problem?

Have a consistently up-to-date execution environment for development and production

Efficiently develop and support your solution

© ZFabrik Software KG 2010

In Principle...Sources

Developers

Define what'shappening there

Modify

Test,

debug,

support

Dev

, Q

A,

or P

rod.

Run

time

© ZFabrik Software KG 2010

So, Where is the Problem?

● Java application servers do not live on sources but rather on binaries

● It is up to the development organization to (somehow) provide those binaries and hence... ● … find out what binaries are affected by a change● … find out what binaries belong to one solution● … keep development environments up-to-date● … integrate changes (continuously)● … live with delays between commit and run

© ZFabrik Software KG 2010

Deployables

The “classical” approach

Dev

. Run

time

Sources

Dev

elop

ers

(wor

kspa

ce)

Check out and

comm

it changes

Nightly build(everything?)

deploy/push(everything?)

Deployables

Dev build(what?)

QA

. R

untim

e

debug

deploy/push(what?)

central

local

© ZFabrik Software KG 2010

Deployables

The “classical” approach

Dev

. Run

time

Sources

Dev

elop

ers

(wor

kspa

ce)

Check out and

comm

it changes

Nightly build(everything?)

deploy/push(everything?)

Deployables

Dev build(what?)

QA

. R

untim

e

debug

deploy/push(what?)

central

local

How “equal” are these?

How “hard” is it to get thisup to date?

What are the sources of what you are debugging (but others change)?

How “hard” is it to introduce a

structural change?

© ZFabrik Software KG 2010

The “classical” approach

● Ok for monolithic projects (only few deployables)

● Breaks for modular systems (too complex to keep in sync: Due to the “push” approach, it's up to the developer to keep things straight)

● Breaks for large projects (turn around times too long)

● Summary: Simple but doesn't scale.

© ZFabrik Software KG 2010

The Maven Way

Dev

. Run

time

Sources

Dev

elop

ers

(wor

kspa

ce)

Check out and

comm

it changes

ContinuousIntegration

Deployables

QA

. R

untim

e

debugde

ploy

/pus

h

SNAPSHOT Repo

Release Repo

Dev Build(mvn)

rele

ase

depl

oy/p

ush

deploy/push

depoy

central

local

© ZFabrik Software KG 2010

The Maven Way

Dev

. Run

time

Sources

Dev

elop

ers

(wor

kspa

ce)

Check out and

comm

it changes

ContinuousIntegration

Deployables

QA

. R

untim

e

debugde

ploy

/pus

h

SNAPSHOT Repo

Release Repo

Dev Build(mvn)

rele

ase

depl

oy/p

ush

deploy/push

depoy

central

local

Who maintains all this

infrastructure?

How hard is it to keep the

dependency version vector right?

How “equal” are these?

How “hard” is it to get thisup to date?

What are the sources of what you are debugging (but others change)?

binary release management requires

extreme care

© ZFabrik Software KG 2010

The Maven Way

● Maven is built around versioning, versioned dependency and release processes for binaries

● It does not address the system consistency side of things

● It is geared towards a distributed, independent community of producers of libraries

● It does not care about source consistency● Summary: Useful for the community, much less

interesting for solution providers.

© ZFabrik Software KG 2010

And in z2

Sources

Debug

Pull what has changedsince the last pull

Pull from workspace with prio

Dev

or

QA

Run

time

Dev

. R

untim

eQ

A.

Run

time

central

Dev

elop

ers

(wor

kspa

ce)

Check out and

comm

it changes

Pull what has changed

since the last pull

© ZFabrik Software KG 2010

In z2

● A runtime that updates itself on-demand, according to changes in source repositories

● Developer runtime takes developer workspace into account with preference

● The runtime is a faithful representation of the repository – no question where sources are.

● Almost like a scripting environment

© ZFabrik Software KG 2010

Summary

● Standard Java development approaches do either not scale (classical approach) or do not have solution providers in mind

● The z2 Environment is most useful for team development of solutions, rather than for providing libraries to the community

© ZFabrik Software KG 2010

More Information

Try it out at:

www.z2-environment.de

Contact us at:

[email protected]