2
      The z 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...




                                                              Dev, QA, or Prod. Runtime
      Sources


                             Define what's
                             happening there


                                                          ,
                                                       bug
                    M



                                                    de
                     od



                                                  t, t
                                                es por
                       ify



                                               T p
                                                 su




                                 Developers


© 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
The “classical” approach
               Sources
                                 Nightly build




                                                                                 QA. Runtime
                                 (everything?)
                                                               deploy/push
                                                               (everything?)


                                                 Deployables
                commit changes
                Check out and




central




                                                                                  Dev. Runtime
local
                                   Dev build
                                   (what?)                         deploy/push
 (workspace)
 Developers




                                                                   (what?)


                                                 Deployables

                                                 debug

  © ZFabrik Software KG 2010
The “classical” approach
               Sources
                                         Nightly build




                                                                                                          QA. Runtime
                                         (everything?)
                                                                                   deploy/push
                                                                                   (everything?)


                                                            Deployables

                                 How “hard” is it to     How “equal” are these?
                commit changes
                Check out and




                                     introduce a
                                 structural change?      How “hard” is it to get this
central                                                        up to date?




                                                                                                           Dev. Runtime
local
                                           Dev build
                                           (what?)                                      deploy/push
 (workspace)
 Developers




                                                                                        (what?)


                                                             Deployables

                                                             debug
                                                                           What are the sources of
  © ZFabrik Software KG 2010                                     what you are debugging (but others change)?
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
               Sources




                                                                                       QA. Runtime
                                 Continuous
                                                 depoy
                                 Integration
                                                                     deploy/push




                                                                            ush
                                                     SNAPSHOT Repo




                                                                               p
                                                                          loy/
                                                                      de p
                commit changes
                Check out and




central                                        se
                                                      Release Repo




                                                                                        Dev. Runtime
                                                ea


local
                                             rel
 (workspace)
 Developers




                                                                                   h
                                                                             us
                                                                          /p
                                                                        oy
                                 Dev Build



                                                                      pl
                                                                     de
                                 (mvn)                 Deployables


                                                          debug
  © ZFabrik Software KG 2010
Who maintains
                                         The Maven Way
                                      all this
                                  infrastructure?
               Sources




                                                                                                           QA. Runtime
                                          Continuous
                                                          depoy
                                          Integration
                                                                                  deploy/push




                                                                                        ush
                                                         SNAPSHOT Repo




                                                                                           p
                                                                                      loy/
                                   How hard is it to   How “equal” are these?




                                                                                  de p
                                       keep the
                commit changes
                Check out and




                                     dependency
                                 version vector right? How “hard” is it to get this
central                                                 se
                                                             up to date?
                                                          Release Repo




                                                                                                            Dev. Runtime
                                                         ea


local
                                                      rel
 (workspace)
 Developers




                                                                                               h
                                                                                         us
                                                                                      /p
                                                                                    oy
                                         Dev Build



                                                                                  pl
                                                                                de
                                         (mvn)                Deployables
                      binary release
                   management requires
                       extreme care                               debug     What are the sources of
  © ZFabrik Software KG 2010                                      what you are debugging (but others change)?
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
2
                                     And in z
               Sources




                                                                 Dev or QA Runtime
                                                                     QA. Runtime
                                     Pull what has changed
                                     since the last pull


                                      Pull
                                     sinc what h
                commit changes
                Check out and




                                         e th    a
                                             e la s chan
                                                 st p
                                                      ull ged
central




                                                                           Dev. Runtime
                                 Pull from workspace with prio
 (workspace)
 Developers




                                         Debug




  © ZFabrik Software KG 2010
2
                             In z
●   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:
                       contact@zfabrik.de




© ZFabrik Software KG 2010

1004 z2 env_positioned

  • 1.
    2 The z Environment - positioned - © ZFabrik Software KG 2010
  • 2.
    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
  • 3.
    What's the Problem? Havea consistently up-to-date execution environment for development and production Efficiently develop and support your solution © ZFabrik Software KG 2010
  • 4.
    In Principle... Dev, QA, or Prod. Runtime Sources Define what's happening there , bug M de od t, t es por ify T p su Developers © ZFabrik Software KG 2010
  • 5.
    So, Where isthe 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
  • 6.
    The “classical” approach Sources Nightly build QA. Runtime (everything?) deploy/push (everything?) Deployables commit changes Check out and central Dev. Runtime local Dev build (what?) deploy/push (workspace) Developers (what?) Deployables debug © ZFabrik Software KG 2010
  • 7.
    The “classical” approach Sources Nightly build QA. Runtime (everything?) deploy/push (everything?) Deployables How “hard” is it to How “equal” are these? commit changes Check out and introduce a structural change? How “hard” is it to get this central up to date? Dev. Runtime local Dev build (what?) deploy/push (workspace) Developers (what?) Deployables debug What are the sources of © ZFabrik Software KG 2010 what you are debugging (but others change)?
  • 8.
    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
  • 9.
    The Maven Way Sources QA. Runtime Continuous depoy Integration deploy/push ush SNAPSHOT Repo p loy/ de p commit changes Check out and central se Release Repo Dev. Runtime ea local rel (workspace) Developers h us /p oy Dev Build pl de (mvn) Deployables debug © ZFabrik Software KG 2010
  • 10.
    Who maintains The Maven Way all this infrastructure? Sources QA. Runtime Continuous depoy Integration deploy/push ush SNAPSHOT Repo p loy/ How hard is it to How “equal” are these? de p keep the commit changes Check out and dependency version vector right? How “hard” is it to get this central se up to date? Release Repo Dev. Runtime ea local rel (workspace) Developers h us /p oy Dev Build pl de (mvn) Deployables binary release management requires extreme care debug What are the sources of © ZFabrik Software KG 2010 what you are debugging (but others change)?
  • 11.
    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
  • 12.
    2 And in z Sources Dev or QA Runtime QA. Runtime Pull what has changed since the last pull Pull sinc what h commit changes Check out and e th a e la s chan st p ull ged central Dev. Runtime Pull from workspace with prio (workspace) Developers Debug © ZFabrik Software KG 2010
  • 13.
    2 In z ● 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
  • 14.
    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
  • 15.
    More Information Try itout at: www.z2-environment.de Contact us at: contact@zfabrik.de © ZFabrik Software KG 2010