Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020

Die Seite wird erstellt Finja Diehl
 
WEITER LESEN
Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020
Alles nur CI-Theater?
     Konstantin Diener | cosee GmbH
 konstantin.diener@cosee.biz | @onkelkodi
Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020
KONSTANTIN DIENER
CTO und Gründer von cosee
Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020
Abrechnungs-
                                                       modelle

                       Experten-Teams
             Backlog

                                                           Software-
Discovery-                              Auslieferung       Releases
Phase                                   in Sprints
Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020
Continuous Integration
Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020
„Continuous Integration is a so ware development practice where
     members of a team integrate their work
  frequently, usually each person integrates at least daily -
leading to multiple integrations per day. Each integration is verified by an
automated build (including test) to detect integration errors as quickly as
possible. Many teams find that this approach leads to significantly
   reduced integration problems and allows a team to
    develop cohesive so ware more rapidly. …“
               https://martinfowler.com/articles/continuousIntegration.html
                      ft
                           ft
Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020
11 Praktiken
Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020
Maintain a Single Source
      Repository
Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020
Automate the Build
Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020
Make Your Build Self-Testing
Alles nur CI-Theater? - Konstantin Diener | cosee GmbH - IT-Tage 2020
Everyone Commits To the
   Mainline Every Day
Every Commit Should Build the
Mainline on an Integration Machine
Fix Broken Builds Immediately
Keep the Build Fast
Test in a Clone of the
Production Environment
Make it Easy for Anyone to Get
   the Latest Executable
Everyone can see what's
      happening
Automate Deployment
CI-Theater
„CI theatre” describes the illusion of practising continuous integration (CI)
                        while not really practising it.

         Suzie Prince, https://www.gocd.org/2017/05/16/its-not-CI-its-CI-theatre.html
Cargo Cult
Top 3
#3
Make Your Build Self-Testing
„If you've skipped unit tests because you plan to
refactor the code soon, you might not understand
             refactoring (or unit tests).“
                     @DocOnDev
mvn install -DskipTests
--no-verify
#2
Fix Broken Builds Immediately
„A phrase I remember Kent Beck using was "nobody has a
   higher priority task than fixing the build". This
doesn't mean that everyone on the team has to stop what they are doing
  in order to fix the build, usually it only needs a couple of people to get
things working again. It does mean a conscious prioritization of a build fix
                       as an urgent, high priority task.“

                                Martin Fowler
#1
Everyone Commits To the
   Mainline Every Day
Continuous Delivery
Jez Humble,
David Farley
„… it has been our experience that
  poor version control
practices are one of the most
common barriers to fast,
   low-risk releases.“

                       Continuous Delivery
•   Develop on Mainline

•   Branch for Release

•   Branch by Feature

•   Branch by Team

                     Continuous Delivery
Branch by Feature
„It is worth emphasizing that
 branching by feature is
 really the antithesis of
continuous integration, …

                      Continuous Delivery
Branching is not the problem, merging is the problem.

                      Jez Humble
Merge Hell
Continuous Isolation
DON’T DO FEATURE BRANCHES!
Develop on Mainline
Trunk Based Development
early integration vs. late integration
•   Ensuring that all code is
    continuously integrated

•   Ensuring developers pick up
    each others’ changes
    immediately

•   Avoiding „merge hell“ and
    „integration hell“ at the end of
    the project
                           Continuous Delivery
Branch by Release
Creating a branch for release
     replaces the evil practice of
        the code freeze, in which
     checking in to version control is entirely
      switched o for days and sometimes
                      weeks.

                                Continuous Delivery
ff
Keeping Your Application
      Releasable
•   Hide new functionality until it is
    finished.
•   Make all changes incrementally as a
    series of small changes, each of which is
    releasable.
•   Use branch by abstraction to make
    large-scale changes to the codebase.
•   Use components to decouple parts of your
    application that change at di erent rates.
                         ff
•   Dark Releases
•   Feature Toggles
•   Build Time Switches
•   Hide new functionality until it is
    finished.
•   Make all changes incrementally as a
    series of small changes, each of which is
    releasable.
•   Use branch by abstraction to make
    large-scale changes to the codebase.
•   Use components to decouple parts of your
    application that change at di erent rates.
                         ff
•   Hide new functionality until it is
    finished.
•   Make all changes incrementally as a
    series of small changes, each of which is
    releasable.
•   Use branch by abstraction to make
    large-scale changes to the codebase.
•   Use components to decouple parts of your
    application that change at di erent rates.
                         ff
•   Hide new functionality until it is
    finished.
•   Make all changes incrementally as a
    series of small changes, each of which is
    releasable.
•   Use branch by abstraction to make
    large-scale changes to the codebase.
•   Use components to decouple parts of your
    application that change at di erent rates.
                         ff
Kolumne DevOps

   Kolumne:
   DevOps Stories
                                       DevOps Kolumne

                                                                                                                                                                                                                                                                                                                                                                                                       Kolumne:
                                                                                                                                                                                                                                                                                                                                                                                                       DevOps Stories
                                                                                              DevOps Kolumne

                       Kolumne:
       von Konstantin Diener

                       DevOps Stories                                                                                                      Titelthema Kolumne

Technologieentscheidungen an der Basis
                                               Kolumne:     von Konstantin Diener

                                               DevOps Stories
Donnerstag, 23:14 Uhr: Im Entwicklerbüro stapeln sich               Lukas: „Weglassen können wir die Metadaten nicht.
Pizzakartons, die Luft ist schlecht und vom Geruch von Sonst heißen alle Alben auf der Plattform „Untitled“
                                                                                                                                                                                                                                                                                                                                            Kolumne DevOps
Club Mate durchsetzt. Der Produktmanager Erik sitzt und die Titel sind einfach durchnummeriert.“

                                                                                                                                                                                                                                                                                                                                                                                                       von Konstantin Diener
                                                                     Kolumne:
gemeinsam mit den Entwicklern Lukas und Christian                   Erik: „Und das innovative Bedienkonzept des Kun-
vor dem Rechner (Abb. 1). Vor den beiden ziehen lang- den, das auf der Messe präsentiert werden soll, funktio-
                                                                                                          von Konstantin Diener
sam Logausgaben auf einer Konsole vorbei.                         niert ohne Metadaten natürlich auch nicht, oder?“
   Erik: „Lukas, lässt sich hochrechnen, wie lange wir              Lukas: „Genau!“
für den Upload aller Musiktitel brauchen, wenn es in
dieser Geschwindigkeit weitergeht?“
                                                                     DevOps Stories
                                                                    Erik: „Aber warum macht ausgerechnet das Laden
                                                                  der Metadaten solche Probleme? Nach meinem Ver-
   Lukas: „Im Moment brauchen wir für ein Album ständnis ist das Vorbereiten der Audiodateien viel auf-
                                                                                                                                                                                                                                      DevOps Kolumne

                                            So wird hier gearbeitet!
wichtigsten Alben für den ersten Batch haben will, brau-
chen wir bei der aktuellen Geschwindigkeit ungefähr ein
                                                                                  Kolumne:
ungefähr 25 bis 30 Minuten. Da der Kunde die 20 000 wendiger, braucht mehr Rechenleistung etc.“

                                                                                                  In der letzten Folge der Kolumne haben Lukas und sei-
                                                                                                                                                               von Konstantin Diener
                                                                                                                                                                                   Das Team hat ein Daily-Stand-up-Meeting eingeführt,

                                                                                  DevOps Stories
Jahr. Der Prozess wird aber immer langsamer. Es dauert                                            ne Kollegen festgestellt, dass sich für ihre Art der Pro- das jeden Tag um 10 Uhr stattfindet. Bis auf Jörg sind alle
                                                                                                  duktentwicklung crossfunktionale Teams anbieten. In pünktlich versammelt. Er kommt um 10:10 Uhr durch die
                    Jetzt ziehen wir an einem Strang
also eher noch länger.“
   Vor etwas über einem Jahr hat ein Kunde Lukas’ Ar-                                             einem solchen Team sind alle Disziplinen vertreten, die Tür geschlendert und hat einen Kaffeebecher in der Hand.

                                                                                             Kolumne:
beitgeber mit der Entwicklung einer neuen Musikplatt-                                             es für die Herstellung eines Shippable Product Incre-                            Christian: „Hey Jörg, wie schön, dass du auch schon
form mit innovativem Bedienkonzept beauftragt.      DirektFolge der Kolumne hatten Lukas          ments braucht. Als Konsequenz wurden die Mitglieder da bist. Wir warten                                     schon seit zehn Minuten auf dich,
                                          In der ersten                                                 und sein points verzögert und der Releasetermin damit gefähr- von Konstantin Diener
im Anschluss haben Lukas und seine Teamkollegen         mit bei der Auslieferung einer der             bestehenden Teams Backend, Frontend und Mobile um mit dem Stand-up zu beginnen.“
                                          Team Probleme
                                                                  Das haben wir entschieden?       Musikplatt- det ist.“

                                                                                             DevOps Stories
der Entwicklung begonnen. Erik betreutform die Entwick-                                           auf verschiedene neue Produktteams verteilt. Lukas’                              Jörg: „Wieso regst du dich so auf, Christian? Wir hat-
                                                  für einen ihrer Kunden. Mit viel Einsatz haben sie                      Christian (Backend): „Was? Sorry, Jungs, das meint
lung als Product Manager. Am Montag es     soll  das neue                                         neues Team besteht neben seinem Backend-Kollegen ten uns locker für 10 Uhr verabredet. Sind diese zehn
                                             geschafft,    die Lösung rechtzeitig für den Messeauftritt ihr aber jetzt nicht ernst, oder? Ihr habt wochenlang ge-
Produkt auf einer Messe der Öffentlichkeit                                                        Christian noch aus Jörg (mobile Entwicklung)                  und  Juliaseit Minuten      jetzt wirklich      so wichtig?     Meine Bahn     hatte    Ver-
                                          zur vorgestellt
                                               Verfügung zu stellen. Der Kunde hat auf der Mes- braucht, um uns zu sagen,                              Lukas    arbeitet
                                                                                                                                                            welche    Daten einigen        Monaten
                                                                                                                                                                                ihr braucht.              mit seinen    Kollegen           Julia:  „Ich    hatte Dienstag Urlaub. Jörg ist zwei Wo-
werden. Dazu muss Lukas’ Team noch se     20sehr
                                              000 gutes
                                                     AlbenFeedback bekommen und möchte            (Frontend-Entwicklung) (Abb. 1).                     in einem                spätung und
                                                                                                                                                                   crossfunktionalen               bei Starbucks
                                                                                                                                                                                             Produktteam.         Nachwaranfäng-
                                                                                                                                                                                                                            eine riesige
                                                                                                                                                                                                                                       chenSchlange     ...“ Entscheidungen wollten wir doch alle
                                                                                                                                                                                                                                               weg! Solche
                                                                                                         zusätz- Jetzt bekommen wir nach                   acht Wochen        das erste Mal
über einen Load-Prozess auf der Plattformlich
                                            bereitstellen.                                                                                                                         Julia:  „Ich      finde   schon,    dass   du  pünktlich      sein   soll-
                                                zur bereits existierenden Webversion Apps für iOS Feedback und euch fälltlichen                         nichtsSchwierigkeiten
                                                                                                                                                                  Besseres ein, alshat      das Team die Zusammenar- gemeinsam treffen,
                                                                                                                                                                                         gleich                                                                       oder? Außerdem
                                                                                                                                                                                                                                                             von Konstantin     Diener         finde ich es wich-
In den letzten Stunden hat sich herausgestellt,   dass derentwickeln lassen. Lukas und sein Kollege in der Woche danach beibeit                              inauf
                                                                                                                                                                einem          test. Wirgeregelt.
                                                                                                                                                                                             haben die      Zeit nämlich
                                                                                                                                                                                                                     könnenmit  dienutzlosem
                                                                                                                                                                                                                                       tig, dassRumste-
                                          und Android                                                                                                   Erik        der Teamvertrag
                                                                                                                                                                         Matte zu stehen?                 Seitdem                                   wir Magnus mit dazunehmen!“
Prozess viel langsamer läuft als geplant. Christian sind für die Umsetzung des Backends zustän- Erik, natürlich gibt es Verzögerungen.                 Kollegen immerAber      hen   verbracht.
                                                                                                                                                                             flüssiger                 Du   könntest
                                                                                                                                                                                         zusammenarbeiten. Im Team-     wenigstens     Bescheid      sagen,
                                                                                                                                                                                                                                           Lukas: „Du hast Recht. Bei einer Entscheidung hät-
                                                                                                                                                                                   das Prob-
   Christian: „Der Ladeprozess für die Metadaten          ist                                                                                                                  wenn es bei dir eng wird!“
                                          dig, Julia kümmert        sich mit ihren Kollegen um die Web- lem liegt sicher nicht bei vertrag             uns!“ ist unter anderem festgelegt, dass das Team test du dabei sein sollen.“
jetzt vollkommen steckengeblieben. Die Maschinen       sindund Abb.                                                                                    wichtige Entscheidungen     Jörg:   „OK,       wenn    ihr
                                                                                                                                                                                         immer gemeinsam trifft.   darauf    Wert    legt,  versuche ich
                                                                                                                                                                                                                                           Christian:      „Wir wussten ja aber gar nicht, dass wir
                                          anwendung                Jörg1: und   Adrian
                                                                          Das Produkt, an bauen   die mobilen
                                                                                          dem die beiden                  Jörg in(Mobile-App):
                                                                                                          arbeiten, ist gerade    einer              „Christian,     darf ich dich daran
unter Volllast.“                                                                                                                                          Die   ersteneine     mich des
                                                                                                                                                                        Versionen       danachProduktszu richten.
                                                                                                                                                                                                             von Lukas’Soll Team
                                                                                                                                                                                                                              ich direkt
                                                                                                                                                                                                                                       etwas mitentscheiden.
                                                                                                                                                                                                                                                   meinen Wie hätten wir da wissen sollen, dass
                                          Apps. Es gibt erste       Anzeichen,
                                                                                                                                                                                               Das kann doch nicht jeder anderswir’s
                                                                                                                                                                                                                                machen!
                                                                  äußerst prekärendass
                                                                                   Lage sich die Auslieferung          erinnern, dass wir direkt zu          Beginn          Schnittstellen-
   Erik: „Was bedeutet das?“
   Christian: „Das Hochladen eines Albums
                                          verzögern wird. Deshalb hat Erik, der Produktmanager, beschreibung bei euch angefragt
                                                   besteht Meeting einberufen.
                                                                                                                                                       hatten durchschlagenden Punkten
                                                                                                                                                                   haben? Die habenErfolg.
                                                                                                                                                                                   Lukas:
                                                                                                                                                                                             fürs    Daily
                                                                                                                                                                                                                    Wie halten
                                                                                                                                                                                                             loslegen?“
                                                                                                                                                                                                                                     mit dem Betrieb?
                                                                                                                                                                                             wir Deshalb hat der Kun- Julia und Jörg uns dazu fehlen?“
                                                                                                                                                                                              „Gerne.“
                                          ein gemeinsames                                                              nie bekommen und mussten        de große
                                                                                                                                                              uns Pläne
                                                                                                                                                                    selbst für
                                                                                                                                                                            etwasdie  nächsten
                                                                                                                                                                                      aus   den zwölf Monate. Außer-                       Lukas: „Wieso willst du Magnus dazunehmen, Julia,
aus mehreren Aufgaben. Die AudiodateienErik     liegen   als
                                                                     Porträt                                                                                                       Jörg:  „Ich      habeum gestern versucht,       die neuegehört
                                                                                                                                                                                                                                               Titelsuche
                                                    (Produktmanager):          „Lukas, Christian, ich habe Fingern saugen!“                            dem wurde das Team mitJeden            Martin  Monat einenstarten weiteren
                                                                                                                                                                                                                           in Lukas’der  Firma neue Vor doch    gar nicht
                                                                                                                                                                                                                                                            Kollegen,
                                                                                                                                                                                                                                                           einigen     Monatenzum    Team?“
                                                                                                                                                                                                                                                                                  Lukas:
                                                                                                                                                                                                                                                                                     haben„Hallo
                                                                                                                                                                                                                                                                                               sich dieihr    beiden. Wir schlagenGordon:
                                                                                                                                                                                                                                                                                                          Backend-Entwick-                  uns gerade
                                                                                                                                                                                                                                                                                                                                                     „Genau.“
WAV-, OGG- oder MP3-Dateien vor. Wir          müssen     sie einberufen, Konstantin                                                                                            in   die  App     zu   integrieren.     Ich  habe    aber   direkt
                                                                                                                                                                                                                                           Julia:   festge-
                                          diesen    Termin                      weil JörgDiener
                                                                                             und ist CTO beimir
                                                                                                   Adrian      cosee. Dort   hat er
                                                                                                                          Julia     selbst die
                                                                                                                                 (Web-Frontend):       Backend-Entwickler
                                                                                                                                                        „Wir haben auch dasverstärkt. Gefühl,
                                                                                                                                                                                           und beim  Ruben     unterstütztMittagessen
                                                                                                                                                                                                           gemeinsamen          das                „Ja,
                                                                                                                                                                                                                                               in der      aberverschiedenen
                                                                                                                                                                                                                                                    ler großen
                                                                                                                                                                                                                                                          der       erKü-
                                                                                                                                                                                                                                                                        hat diemitmeisten
                                                                                                                                                                                                                                                                                       TeamsErfahrungen
                                                                                                                                                                                                                                                                                     unserer                       mit
                                                                                                                                                                                                                                                                                                Spring-Boot-Konfiguration
                                                                                                                                                                                                                                                                                                  in einer Community            of herum.“Lukas: „Wie deployt ihr denn eure Software?“
in ein einheitliches Format überführen und      die Laut-                      Erfahrung gemacht,   wie viel schnellerdass
                                                                                                                        und besser   Entscheidun-      Team als     Scrum      stellt,  dass
                                                                                                                                                                             Master. Martin      der   App    Build
                                                                                                                                                                                                      hatesimlangsam  rot
                                                                                                                                                                                                                Stand-up   ist. Die
                                                                                                                                                                                                                             ange-    Integrationstests
                                                                                                                                                                                                                                       NoSQL-Datenbanken                   –  auch    was    den    Betrieb     in der
                                          sagten,    dass sich die Bereitstellung           der Service-End-                  Serviceimplementierungen           immer    unglaublich       lan-wird
                                                                                                                                                                                           che                            eng.  Julia hat    den letzten
                                                                                                                                                                                                                                                    Practice  Platz    an         Jerome:     „Deswegen
                                                                                                                                                                                                                                                                  organisiert. Denn die Entwickler hatten fest-haben   wir   Spring  Boot   rausgewor-
                                                                                                                                                                                                                                                                                                                                          Gordon: „Gar nicht. Wir schicken den Kollegen einen
stärke und so weiter anpassen. Außerdem haben das                              gen getroffen werden können, wenn sie                                                           schlagen      fehl, weil ihr, Lukas        und   Christian,    nicht    kom-Außerdem
                                                                                                                       ge nah  am Problem
                                                                                                                           brauchen     undstatt-
                                                                                                                                               dann diekündigt,
                                                                                                                                                          Servicesdass   er passen.
                                                                                                                                                                     nicht  heute    mit   einem
                                                                                                                                                                                             wie Prototyp
                                                                                                                                                                                        Soeinem        der Tische  fürergattert.
                                                                                                                                                                                                                        die  Mon-      Cloud
                                                                                                                                                                                                                                   Sie sitzt  beiangeht.
                                                                                                                                                                                                                                                    einer Kollegin,            stimmen
                                                                                                                                                                                                                                                                               fen und       wir doch
                                                                                                                                                                                                                                                                                          bauen     unserealleServices
                                                                                                                                                                                                                                                                                                                 Tech-   jetzt mit Dropwizard.“
Album und die einzelnen Titel Metadaten, die wir ins                           finden. Seit ungefähr drei Jahren entscheiden     die Entwickler        goDB-Persistenz         patible Änderungen             am   Backend-Service       gemachtgestellt,
                                                                                                                                                                                                                                                       habt. dass inimmer    allen    crossfunktionalen          Produktteams          Link, unter dem sie das Paket herunterladen können. Sie
                                                                                                                       die Services     Daten liefern,    können wir siebeginnen
                                                                                                                                                                               im Frontend wird.
                                                                                                                                                                                           die   sieDaraus      entwickelt
                                                                                                                                                                                                       vorher noch     nicht sich
                                                                                                                                                                                                                               gesehennologieentscheidungen
                                                                                                                                                                                                                                          hat (Abb.      1).                         mit  ihm
                                                                                                                                                                                                                                                                                  Christian:     ab.“
                                                                                                                                                                                                                                                                               Frameworks und Technologien für deployenSpring
                                                                                                                                                                                                                                                                                                   „Dropwizard?          Haben     wir   nicht
                                             Porträt
System laden. Mit diesem Schritt haben wir jetzt    gerade           bei cosee eigenständig über die verwendeten Technologien.                         einemüssen
                                                                                                                                                             Diskussion        So kann
                                                                                                                                                                            (Abb.    1): ich        den Service nicht mehr nutzen              undunterschiedliche
                                                                                                                                                                                                                                           Martin:     muss
                                                                                                                                                                                                                                                       „Erwir hathaben
                                                                                                                                                                                                                                                                    auf   jeden   Fallbeidieuns
                                                                                                                                                                                                                                                                                              meisten     Erfahrun-
                                                                                                                                                                                                                                                                                                                                                   es dann für uns.“
                                                                                                                       nicht sinnvoll anzeigen und                    sie konvertieren.“       Julia: „Hallo, ich heiße Julia. Ich             glaube,
                                                                                                                                                                                                                                                    Build    und     DeploymentBoot     von      als Standard?
                                                                                                                                                                                                                                                                                               Backend-Services     Wieso     nehmt ihrChristian:
                                                                                                                                                                                                                                                                                                                         verwen-           einfach was „Oh Gott, und wie bekommt ihr mit, ob
die größten Probleme.“                                                                                                                                    Christian:           mühsam
                                                                                                                                                                        „MongoDB          istnachvollziehen,         was  sich  geändert     hat.“
                                                         Konstantin Diener ist CTO bei cosee. Dort waren                  Christian: „Da wir nicht           wissen, wie                   unsdeine
                                                                                                                                                                              ihr die Servi-      nochbevorzugte         Lösung! gen und kann
                                                                                                                                                                                                          gar nicht kennengelernt.“                 det     uns   gerne    mit   Infos
                                                                                                                                                                                                                                                                               anderes?“ versorgen.     Ich   möchte
                                                                                                                                                                                                                                                          werden. Die Mitglieder haben bei einem ihrer ersten das Deployment erfolgreich war?“
                                                                                                                                                       Wann     haben   wir denn   Lukas:     „Ich wusste
                                                                                                                                                                                      entschieden,        dass gar
                                                                                                                                                                                                                wirnicht,
                                                                                                                                                                                                                      MongoDBdass du inaberdeinem
                                                                                                                                                                                                                                              nicht,   Build
                                                                                                                                                                                                                                                        dass   er  mitentscheidet.“
                                                         die Teams zunächst als funktionale Teams      aufge-          ces  im   Weblayer      und  in den   Apps    einsetzt,   müssen      wir
                                                                                                                                                                                               Su:    „Hallo    Julia,  ich  bin  Su.  Ich   habe    letzten     Monat                                                                    Gordon: „Die Kollegen schicken uns eine Mail mit
                                                                                                  Abb. 1: In einem crossfunktionalen Team sind alle Disziplinen vertre-        Integrationstests
                                                                                                                                                                                             wollen?“für unsere Services hast. Lukas:       Das istTreffen      auch direkt auf die Tagesordnung gesetzt, über
                                                                                                                                                                                                                                                       ja ei- findest
                                                         stellt, was zu ähnlichen Problemen wie ten,   die das Projektimmer
                                                                                                   bei Lukas                            ganze Reihefürvon
                                                                                                                                 einebraucht
                                                                                                                        oder Produkt                        die Annahmen
                                                                                                                                                                 Persistenz einsetzen
                                                                                                                                                                                 treffen angefangen.“
                                                                                                                                                                                            und                                                       „Aber
                                                                                                                                                                                                                                                    eine    mögliche du         es nicht schwierig,
                                                                                                                                                                                                                                                                            Vereinheitlichung          zu dass     kei- Dabei dem Logfile des Servers.“
                                                                                                                                                                                                                                                                                                            sprechen.
                                                                                                                                                          Martin:              gentlichDienstag.“
                                                                                                                                                                                           eine tolle Sache. Aber wie sollen ner        wir von
                                                                                                                                                                                                                                             deiner     Mei-
                                                         und Erik führte. Vor rund zwei Jahren haben er und            bekommen immer erst nach                zwei „Letzte
                                                                                                                                                                      WochenWoche  Feedback.   Julia: „Freut mich, dich kennenzulernen,            uns    Ahnung
                                                                                                                                                                                                                                                          Su.   In     von
                                                                                                                                                                                                                                                                     wel-    MongoDB          hat?“
                                                                                                                                                                                                                                                    entwickelt sich eine Diskussion über die verschiedenen                                Lukas: „Wie oft liefert ihr neue Software in Produkti-
www.JAXenter.de                              seine Kollegen begonnen, konsequent auf crossfunktionale                  Meist,   dass unsere
                                                                                                                         javamagazin            Annahmen
                                                                                                                                           5 | 2017       Christian:
                                                                                                                                                         35             „Dasnung
                                                                                                                                                               falsch waren.“
                                                                                                                                                                                       nachnicht
                                                                                                                                                                                 war mir        vorgehen?“
                                                                                                                                                                                           chem Team    klar.bist
                                                                                                                                                                                                               Ichdu?dachte,
                                                                                                                                                                                                                         Woran             Christian:
                                                                                                                                                                                                                                wirarbeitest   du?“        „Wir müssen
                                                                                                                                                                                                                                                    Betriebsmodelle              das1):
                                                                                                                                                                                                                                                                             (Abb.      Ding dann schließlich                          on aus, Gordon?“
                                             Produktteams umzusteigen.                               Porträt              Erik: „Wie bekommensprechen     wir dieeinfach
                                                                                                                                                                     Kuh denn nurJörg:
                                                                                                                                                                                    über  „Mir
                                                                                                                                                                                    nun vomeinSu:   wäre
                                                                                                                                                                                                 paar„Ich
                                                                                                                                                                                                            es am liebsten, wenn warten
                                                                                                                                                                                                         Themen.“                       ihr meine
                                                                                                                                                                                                            arbeite am Frontend von Bookery,      und  Tests
                                                                                                                                                                                                                                                         betreiben.
                                                                                                                                                                                                                                                            der
                                                                                                                                                                                                                                                        Lars:     neuen  Gibt    es  einen   Mongo      as
                                                                                                                                                                                                                                                                „Wir haben sehr gute Erfahrungen mit GitLab a Service                     Gordon: „Maximal einmal alle drei Monate. Das ist
                                                                                                                                                          Lukas: „Mir          in euren Continuous-Integration-Zyklus                      integriert.     So
                                                                                                                       Eis? Was können wir als Nächstes
                                                                                                                 Konstantin Diener ist CTO bei cosee. Nach der
                                                                                                                                                                    tun?“war das auch          nicht klar. Ich wusste auch oder
                                                                                                                                                                                           eBook-Plattform.“                                   müssen      wir das selbst
                                                                                                                                                                                                                                                    CI gemacht.         Haben   machen?       Was kostet uns
                                                                                                                                                                                                                                                                                    dort verschiedene              der konfi- uns einfach zu viel Zirkus.“
                                                                                                                                                                                                                                                                                                              Pipelines
                                                                                                                                                       nicht, was die Optionen könntsind ihr verhindern,
                                                                                                                                                                                                ... und„Cool,
                                                                                                                                                                                                          die Vor-dassund
                                                                                                                                                                                                                        dieNach-
                                                                                                                                                                                                                              ServicesSpaß
                                                                                                                                                                                                                                         nichtmonatlich?“
                                                                                                                                                                                                                                                  mehr     so
                                                                                                                 Einführung von crossfunktionalen Teams bei                                    Julia:              ich  bin  Frontend-Entwicklerin             im    Mu-
                                                                                                                                                                                                                                                    guriert, die auf unser Git Repo lauschen. Bauen, testen,                              Lukas: „Und ihr, Lars?“
                                                                                                                                                       teile.“                 funktionieren, wie ich es erwarte.“                         Martin:     „Keine Ahnung!            Damit habe
                                                                                                                 cosee zeigte sich schnell, dass sich diese Teams                          sicStore-Team. Was setzt ihr für eine
                                                                                                                                                                                   Christian: „Ja, aber ...“
                                                                                                                                                                                                                                               Frontend-Techno-
                                                                                                                                                                                                                                                    deployen,        Integrationstests         undich    mich noch
                                                                                                                                                                                                                                                                                                     Produktions-Deploy-                  Lars: „Bis zu zehnmal am Tag, Tendenz steigend.
                                                                                                                                                                                           logie     ein?“                             nicht beschäftigt
                                                                                                                                                                                                                                                    ments        ...“
                                                                                                                 Regeln für eine effektive Zusammenarbeit geben                    Julia: „Ich glaube, dass eure Diskussion wichtig        Ruben:    ist. Sie– passiert
                                                                                                                                                                                                                                                       „Lasst     uns   in
                                                                                                                                                                                                                                                                             jetzt alles automatisiert.“
                                                                                                                                                                                                                                                                             unserer    Retrospektive        morgen
                                                                                                                                                                                                                                                                                                                                       Aber manchmal würde ich mir auch ein Betriebsteam
                                                                                                                                                                                               Su:    „Angular      2.  Vorher    habe    ich  bei    einer   Agentur
                            52     javamagazin 6 | 2017                                              müssen, die aus den Teams selbst kommen.                          www.JAXenter.de
                                                                                                                                                                               gehört aber nicht ins Daily Stand-up. Sienoch                    zu tiefGordon:
                                                                                                                                                                                                                                         geht einmal      ins
                                                                                                                                                                                                                                                           den
                                                                                                                                                                                                                                                                      „Wo ist eure Anwendung gehostet?“
                                                                                                                                                                                                                                                                  Ablauf      der verschiedene
                                                                                                                                                                                                                                                                                    Technologieentscheidung
                                                                                                                                                                                                                                                                                                                                       wünschen.“
                                                                                                                                             Porträt                                       gearbeitet. Da habe ich eher Erfahrungen                    mit
                                                                                                                                                                                                                                                        Lars:React
                                                                                                                                                                                                                                                                „Wir  ge-haben                         Maschinen, eine Da-                Christian: „Das ist nicht dein Ernst!“
                                                                                                           @onkelkodi                                                          Detail. Lasst uns das bitte im Nachgang besprechen.“
                                                                                                                                                                                           sammelt. Im Moment knabbereunter              ich an dieeinem
                                                                                                                                                                                                                                                      Lupe    nehmen.“
                                                                                                                                                                                                                                                             Problem
                                                                                                                                                                                                                                                    tenbank und Storage in der Cloud. Alle Ressourcen sind                                Lukas: „Wieso, Lars?“
                                                                                                                                                       Konstantin Diener ist CTOChristian:
                                                                                                                                                                                    bei cosee.    In„OK,
                                                                                                                                                                                           mit AngulardieserJulia,  du hast Recht.“
                                                                                                                                                                                                             Funktion
                                                                                                                                                                                                              ...“ musste                           über Infrastructure as Code beschrieben.“                                             Lars: „Wir liefern unsere Services alle in Docker-Con-
                                                                                                                                                       er der Versuchung widerstehen, dieJulia:         „Echt? Ich habe relativ Welche
                                                                                                                                                                                                 Technologieentscheidungen                         Probleme
                                                                                                                                                                                                                                        viel Erfahrung         mit gibt
                                                                                                                                                                                                                                                                      An-es mit
                                                                                                                                                                                                                                                        Gordon: „Da fängt es ja schon an! Wir sind eines der tainern aus. Die komplette Infrastruktur zum Betreiben
                                                                                                                                                       wieder zu zentralisieren, als erstegular.
                                                                                                                                                                                              Probleme    auftraten.
                                                                                                                                                                                                      Vielleicht                       Technologieentscheidungen
                                                                                                                                                                                                                      Als ich dir helfen.“
                                                                                                                                                                                                                    kann                                                           im  Team?
                                                                                                                                                                                                                                                    letzten Produkte, dass noch On-Prem bei uns im Haus dieser Container mussten wir uns schrittweise selber
                                                                                                                                                       Lösung hat er zusammen mit einemSu:       Team    bei cosee  dendass
                                                                                                                                                                                                                         be- wir unsSo       oder läuft.
                                                                                                                                                                                                                                                     in  einer
                                                                                                                                                                                                      „Cool!    Gut,                     zufällig            Ihr ähnlichen
                                                                                                                                                                                                                                                     kennengelernt wisst, was     Form
                                                                                                                                                                                                                                                                               Abb.
                                                                                                                                                                                                                                                                                  das1: Juliawird
                                                                                                                                                                                                                                                                                              und Su
                                                                                                                                                                                                                                                                                        bedeutet?“  mancher
                                                                                                                                                                                                                                                                                                      lernen sichEnt-
                                                                                                                                                                                                                                                                                                                   zufällig beim Mittagessen kennen
                                                                                                                                                                                                                                                                                                                                       bauen. Die ersten paar waren noch kein Problem, aber
                                                                                                                                                       schriebenen Leitfaden entwickelt.                                               wickler solche         Diskussionen          auchdie schon
                                                                                56      javamagazin 7 | 2017                                                                               haben.“                                  www.JAXenter.de     Lukas:     „Ihr habt noch               altenerlebt    haben.
                                                                                                                                                                                                                                                                                                        Organisationsstruk-            mittlerweile sind wir bei rund sechzig Containern. Seit
                                                                                                                                                            @onkelkodi                         Julia: „Ja, früher habe ich mit         Oftallen
                                                                                                                                                                                                                                              trifftturen
                                                                                                                                                                                                                                                       ein einzelner
                                                                                                                                                                                                                                                     Frontend-Ent-
                                                                                                                                                                                                                                                             und verwendet  Entwickler        alleinedie
                                                                                                                                                                                                                                                                                     Maschinen,         einenichtTech-
                                                                                                                                                                                                                                                                                                                    unter eurer letzter Woche hosten und warten wir sogar ein Kuber-
                                                                                                                                                                                                                                       nologieentscheidung,              ohne      Porträt
                                                                                                                                                                                                                                                                                  mit den     anderen      im Team
                                                                                                                                                                                           wicklern in einem Team zusammengearbeitet.               Hoheit  Daliegen,
                                                                                                                                                                                                                                                                  kann-    sondern      von den     restlichen     Kollegen im netes selber, um die ganzen Container zu betreiben!“
                                                                                                                                                                                           te ich alle. Heute nicht mehr!“                          Betriebsteam betrieben werden.“            Konstantin Diener ist CTO bei cosee. Dort     experimentiert
                                                                                                                                                                                                                                                                                                                                          Gordon:            er seit
                                                                                                                                                                                                                                                                                                                                                     „Ihr seid    ja heiß drauf! Davon kann ich nur
                                                                                                                                                                                               In einer anderen Ecke der Küche sitzen Lukas und                                                einiger Zeit mit Communities of Practice     und hatWir
                                                                                                                                                                                                                                                                                                                                       träumen.      mit seinem
                                                                                                                                                                                                                                                                                                                                                          hosten gar nichts selber. Wir haben nur
                                                                                                                                                                                           Christian mit Lars und Jerome zusammen. Vor der Um-                                                 Team schon einige Erkenntnisse gesammelt.
                                                                                                                                                                                                                                                                                                                                       ein paarMittlerweile  gibt
                                                                                                                                                                                                                                                                                                                                                  inoffizielle     er
                                                                                                                                                                                                                                                                                                                                                                Testumgebungen,    von denen die Be-
                                                                                                                                    54                                                     stellung auf crossfunktionale Produktteams                       haben die                          diese Erkenntnisse in Form von Trainings      weiter. nichts wissen dürfen.“
                                                                                                                                                                                                                                                                                                                                       triebsjungs
                                                                                                                                             javamagazin 8 | 2017                                                                       Porträt                                               www.JAXenter.de
                                                                                                                                                                                           vier im Backend-Team zusammengearbeitet.                                                      @onkelkodi                                       Lars: „So traumhaft finde ich das gar nicht. Wir ent-
                                                                                                                                                                                                                                                                                                            https://cosee.biz/trainings/cop-training.html
                                                                                                                                                                                               Lars: „Hallo Christian, hi Lukas, wie läuft’s        Konstantin     Diener ist CTO bei cosee. Dort gab es in der Vergan-
                                                                                                                                                                                                                                                           bei euch?“                                                                  wickeln eigentlich ein E-Book-Produkt und wollen uns
                                                                                                                                                                                                                                                    genheit noch nie dedizierte Ops-Teams, weil die Produkte alle                      darauf konzentrieren. Und jetzt müssen wir ein Kuber-
                                                                                                                                                                                                                                                    sehr früh auf den Einsatz von Cloud-Technologien setzten.                          netes betreiben – selber patchen, updaten usw. Das ma-
                                                                                                                                                                                                                                                    Mittlerweile denkt er mit seinen Kollegen über interne Ops für                     chen bei eurer Infrastruktur alles die Betriebsjungs für
                                                                                                                                                                                                                                        Build/Deployment as a Service nach.                                                            euch.“
                                                                                                                                                                                           www.JAXenter.de                                                                                                                                 javamagazin 9 | 2017         25
                                                                                                                                                                                                                                              @onkelkodi           https://to.cosee.biz/cop                                               Lukas: „Wir haben langsam auch so viele Services,
                                                                                                                                                                                                                                                                                                                                       dass sich ein Kubernetes lohnen würde. Vielleicht kön-

                                                                                                                                                                                                                                48      javamagazin 10 | 2017                                                                                                               www.JAXenter.de
Kolumne:
     DevOps Kolumne

                   Kolumne:
                   DevOps Stories                                                                                                          DevOps Stories
                                                                                                                                           von Konstantin Diener
                    von Konstantin Diener

              (Un)regelmäßige Integration: Stolpersteine für Continuous
              Integration
              Nur noch wenige Stunden bis zum Sprint Review. Das              zukommt. Die Anzahl der Testfälle ist aber fast gleich
              MusicStore-Team arbeitet intensiv daran, letzte Stories         geblieben.“
              fertigzustellen.                                                   Martin: „Ich habe doch gesagt, dass das Feature kniff-
                 Martin: „Tschakka, Erster!“                                  lig war. Für zusätzliche Tests hatte ich keine Zeit!“
                 Christian: „Hä?“                                                Ruben: „In unserer Definition of Done steht doch
                 Martin: „Ich habe meinen Feature Branch in den               aber, dass es für jede Klasse Tests gibt.“
              Master gemergt. Das war ein hartes Stück Arbeit. Ihr               Martin: „Die gibt es ja auch. Nur halt nicht für die
              müsst bei euren Branches aufpassen. Ich habe vor allem          neuen Funktionen.“
              in den Services für den Recommender und die Timeline               Christian: „Na, das ist doch sowieso egal. Ein Teil der
              einiges geändert.“                                              vorhandenen Tests schlägt seit ungefähr einer Woche
                 Christian: „Super, ich auch. Und wenn ich das richtig        fehl, und das interessiert hier auch niemanden.“
              verstanden habe, hat Lukas dort auch einiges geändert.“            Martin: „Aber ich musste doch das Feature fertigma-
                 Lukas: „Ja, habe ich.“                                       chen, damit wir es im Review zeigen können ...“
                 Christian: „Und Martin ist noch stolz drauf, dass wir           Lukas: „Wie möchtest du das Feature denn im Review
              jetzt die Merge Hell haben! Danke, Martin. Wir haben            zeigen? Die Tests schlagen fehl und der Build ist rot. Der
              noch zwei Stunden bis zum Review und dürfen das jetzt           neue Code ist also nicht auf der Demo-Environment de-
              unter Hochdruck zusammenpuzzeln.“                               ployt worden.“
                 Martin: „Sorry, aber das Feature war echt knifflig. Ich         Martin: „Ups, stimmt. Wollen wir dann die Tests fürs
              habe ja beinahe den ganzen Sprint für die Entwicklung           Review ausschalten und danach wieder an?“
              gebraucht.“                                                        Christian: „Was ein Quatsch. Dann können wir deinen
                 Ruben: „Der Build nach deinem Merge ist gerade               Kram gleich von Hand auf der Umgebung deployen!“
              gelaufen. Ich hätte erwartet, dass einiges an Tests da-            Martin: „Aber dann hätten wir doch keine Conti-
                                                                              nuous Integration mehr.“
                                                                                 Ruben: „Haben wir die denn jetzt?“
                 Porträt                                                      Continuous Integration heißt ...
                         Konstantin Diener ist CTO bei cosee. Er beobach-     Rubens Frage ist absolut berechtigt. Ja, das Team hat
                         tet immer wieder die Probleme von Continuous         einen Continuous-Integration-Server, der auf Ände-
                         Isolation und CI Theatre. Als CTO versucht er, die   rungen im Versionskontrollsystem reagiert, den Build
                         Teams bei der Anwendung von Trunk Based              durchführt und im Erfolgsfall das entstandene Artefakt
                         Development und sinnvoller CI zu unterstützen.       auf eine Umgebung deployt. Aber bringt dieser Prozess
                              @onkelkodi       https://cosee.biz              dem Team im aktuellen Zustand irgendeinen Erkennt-
                                                                              nisgewinn?

30    javamagazin 12 | 2018                                                                                         www.JAXenter.de
cosee TechTalks
 talks.cosee.biz
Dieser Vortrag bei euch?
cosee.biz

                                                                                                   Picture credits:
                                                     Verkehrszeichen: https://www.shutterstock.com/g/FocusDzign
                                                    Theaterbühne: https://www.shutterstock.com/g/Mario+Lisovski
                                           Autobahnbaustelle: https://www.istockphoto.com/de/portfolio/orinoco-art
                                                  Handzeichen: https://www.shutterstock.com/de/g/robertkneschke

Konstantin Diener | cosee GmbH
konstantin.diener@cosee.biz | @onkelkodi
Sie können auch lesen