SlideShare a Scribd company logo
1 of 102
Download to read offline
Core Principles of CI
        STPcon




                        1
Intro



        2
Who Am I?
•   Principal of OpenSource
    Connections

•   Contributer to CruiseControl
    and Continuum CI projects

•   Member of Apache Software
    Foundation

•   Presenter at conferences
    (OSCON, ApacheCON, jTDS,
    ExpoQA, STPcon)

•   Fascinated by the art of
    software development
                                   3
Author




         4
Father




         5
Agilista




           6
Schedule
Core Principles of
                       9 to 10:15
       CI

      Break           15 minutes

 Hudson to the
                     10:30 to 11:15
    Rescue

  Agile and CI        11:15 to 12


                                      7
Rules of the Road

• Cell phones on Silent.
• Ask Questions!
• Feel free to get up and
  move around the room.




                            8
What is CI?



              9
Conceptual




             10
Definition

a fully automated and reproducible build, including testing, that
             runs many times a day - Martin Fowler




               http://martinfowler.com/articles/continuousIntegration.html
                                                                             11
Martin Fowler

•   Coined the term
    Continuous Integration

•   Chief Scientist for
    ThoughtWorks

•   Speaks and Blogs on
    software:

    •   http://martinfowler.com/


                                   12
Mapping




diagram credit to Brian Di Croce @ http://blog.briandicroce.com/2008/03/17/setting-up-a-continuous-
                                  integration-environment-preface/
                                                                                                      13
Activity

Turn to the person next to you, and see how many
     non-obvious things you have in common.




                                                   14
Arm Bands!
•   Elisabeth Hendrickson is
    TestObsessed.com

•   Focuses on Testing in the Agile
    community

•   Really great blogger: Specialized
    Test Management Systems are an
    Agile Impediment and Adventures
    with Auto-Generated Tests and
    RSpec are typical posts




                                        15
CI in a nutshell



                   16
Demo



       17
People



         18
Version Control
  Repository


                  19
CI Server



            20
Build Script


• Automated Script is Key!
• Needs to be robust and simple


                                  21
Feedback Mechanism

 From: 
cruisecontrol@opensourceconnections.com

 ubject: 
 [CruiseControl] agenda_direcciones build 370 fixed
S

 Date: 
 October 7, 2008 2:22:50 PM EDT

     To: 
epugh@opensourceconnections.com

 The build has been fixed.

 CHANGES
 -------
 New revision 370 detected
 Revision 370 committed by epugh on 2008-10-07 18:22:03
 mysql esta mejor que sqlite
  M /branches/ERIC_EXPO_08_DEMO/agenda_direcciones/config/database.yml



 See http://cruise.opensourceconnections.com:3333/builds/agenda_direcciones/370 for details.




                                                                                               22
photo credit to Jay Grieves @ www.bigswingingdeveloper.com
                                                             23
Aspects of CI




                24
Source Code
             Compilation

•   Eclipse “Export to War”
    is NOT the solution




                              25
Database Integration
•   Database is integral to   •   Don’t require a multi gig
    your code                     database file to run
                                  tests!
    •   DDL, stored
        procedures are        •   Look at techniques like
        treated as source         fixtures or mock objects
                                  to reduce database
•   Involve your DBA in           coupling
    your project
                              •   Developers need
•   DBUnit for Java               database sandbox
    projects!



                                                              26
Testing
with out testing, CI is just a glorified compiler- Eric Pugh
    •   Testing proves the intent
        of the programmer was
        met.

    •   Typically provides the
        “checkability” that James
        Bach talks about

    •   Multiple Levels of testing




                                                               27
Inspection
•   Code Coverage

•   Code Complexity

•   Copy’n’pasting

•   Architectural Standards

•   Lint Checking

•   Static Analysis




                               28
Deployment

• Turns what is normally a difficult process
  into a non event...
• ant deploy
• Simplifies standup new environments


                                              29
Documentation




                30
Feedback
•   Email

•   IRC

•   Devices

•   Blog Posts

•   Twitter Notifications

•   Tray Icons




                            31
So What is the Value?



                        32
Life with out CI
•   Unstable code, integration is difficult

•   Many build errors reported

•   Only one person on the team can build
    the entire project

•   Getting “test ready” product is hard

•   Feedback cycle is long

•   Same bug keeps coming back

          Every day is a struggle to be productive
                                                     33
Life with CI

•   The build process is simple and
    repeatable

•   Elimination of Human Error

•   Bugs stay fixed!

•   Feedback cycle is very rapid



      Every day you know you can produce better software!
                                                            34
Risk Reduction

•   What is in the build?

•   What has changed
    between builds?

•    How do I verify
    functionality?




                            35
Reduce Human Error




                     36
My Ah-hah! moment




                    37
Reduce Repetitive
         Processes

•   DRY: Don’t Repeat
    Yourself

•   Script Everything!

•   “ant deploy”




                          38
Make Painful Things
    Painless!




 photo credit to Paul Duvall @ http://www.integratebutton.com/
                                                                 39
Produce Deployable
       Software
• It’s what we are here to do!
• Always in a “Demo Ready” state
• No last minute administrivia tasks to get
  the product ready
  • Installer is built
  • Documentation is written
  • Changelog is written
                                              40
Enable Project Visibility
                            41
42
Increase Project
  Confidence


                   43
44
photo credit to ThoughtWorks
                               45
Facilitate
Communication


                46
photo credit to Eric Pugh @ www.opensourceconnections.com
                                                            47
48
49
Activity

Exquisite corpse (also known as "exquisite
cadaver" or "rotating corpse") is a method
by which a collection of words or images is
   collectively assembled, the result being
  known as the exquisite corpse or cadavre
               exquis in French.


                                              50
What Prevents Teams
  from Using CI?
                      51
Cultural Challenges



                      52
Fear of Commitment

• Developers and Testers
    need to commit changes
    frequently!
• Incremental small changes
    make finding integration
    issues simpler


drawing credit to Tom Armitage @ http://infovore.org/archives/2007/03/14/the-continuous-integration-
                                             barometer/
                                                                                                       53
This isn’t 1984
                  54
Fear of Blame
                55
•    CI needs a champion who acts as the
    ambassador to the leaders of the
    organization.

• Thought leaders in the organization who
    can help encourage team to accept the
    process changes that CI brings

• A very successful test case
 • A greenfield project if possible
                                            56
57
Structural Challenges



                        58
Testability
•   Modularity?              •   Perform code
                                 complexity analysis to
•   Coupling to underlying       see if some parts are
                                 more amenable to
    platform?
                                 testing.
•   Requires external
    services to be up and
    available for testing?




                                                          59
Tight Coupling




photo credit to Jay Grieves @ www.bigswingingdeveloper.com
                                                             60
CI Tool Stability
  Challenges


                    61
Invest in CI Server
• The CI system must be as well
                                              X
  maintained as the Source Control
  system.
• The CI system performs builds very
                                              ✓
  quickly.
• Who has responsibility for CI?  It’s very
  important to have a “throat to choke”.
• No false alarms. If there are false
  alarms then the team loses confidence
  in the CI system.
                                                  62
Monkey CI
photo credit to Eric Pugh @ www.opensourceconnections.com
                                                            63
When Should You
  Adopt CI?


                  64
From
 good CI
   to
great CI!

            65
10 minute rule




photo credit to Jay Grieves @ www.bigswingingdeveloper.com
                                                             66
Multi Stage CI
• Reduce the amount of
  integration required
• Teams integrate as
  modules are marked as
  ready.
• Maven2 was built with
  this in mind!

  Damon Poole @ http://damonpoole.blogspot.com/2008/01/advanced-multi-stage-continous.html
                                                                                             67
Break up Tests

• “preflight” or “smoke” tests
• longer integration tests
• periodic full site generation and report
  generation




                                             68
Predictive Testing


• Some commercial tools support predicting
  which tests will fail based on previous
  behavior, and running those first!




                                             69
Cup of Coffee Metric
What happens in the time it takes to get a cup of coffee can
tell you a lot about the quality of your continuous integration
system. - Paul Julius

 •   Builds shouldn’t take any longer!

 •   Getting a cup of coffee or drink of
     water breaks up your day

 •   Gives you a chance to review your
     work

 •   Requires a moduler fast build

      http://pauljulius.com/blog/2009/09/14/cup-of-coffee-metric-for-continuous-integration/
                                                                                               70
Paul Julius

•   co-founder of CITCON

•   Original developer of
    CruiseControl

•   Speaks and Blogs on CI
    extensively

    •   http://pauljulius.com/blog/



                                      71
Virtuous Circle
•   Metrics are hard to get

•   Teams (Developers?)
    rebel against on high
    management

•   Need good processes
    that support and
    encourage other good
    processes




                              72
HackyStat




            73
CI isn’t one specific
      method


                       74
!F!2!89.+;D+!89!:G:7.!+67
                                               789:;0<69;:=          8;>76!              789!:2!07?9!       ?0>?86!0              78.?8!




                                  !"#$%#&'
                                               !"#$%&'"()*+          ?-#4+!@)1-#)+       0)/)3*)31A+        95$1B'3C+             ,-'&*+D54E+
                                               ,-'&*+.#)/"           ,-'&*+.#)/"         :)/4"'#45A         !"#$%&!'(#%)*         >2+.3$/"(4#"

                                               0)*'1$#)*+                                ,-'&*+6&-"#)5      .)1-5)+
                                               ,-'&*+2$1('3)                                                !"#$%&!'(#%)*
                                                                                         643#'3-4-"+
                                               .4&'*+                                    ,-'&*"
                                               .4-51)+643#54&




 Enterprise CI


                                  !"#$%&'()
                                               789:;0<69;:=          8;>76!              789!:2!07?9!       ?0>?86!0              78.?8!

                                               H)&/)5+.15'/#"        D-&&A+.15'/#)*      .)&IJ.)5K'1)+      G-"(J,-##43+          ?-#4E$#'1+
                                                                                         9)"#+0)/&4A"       G54*+0)/&4AE)3#       G54*-1#'43+
                                                                                                                                  0)/&4A"
                                                                                         ?-#4+0)/&4A+#4+    N$#)*O+?-#4E$#'1+
                                                                                         ;3)+!3KL           G54E4#'43"




Maturity Model
                                                                                         24"#&A+            D-&&A+.#$3*$5*'M)*+
                                                                                         .#$3*$5*'M)*       0)/&4A"




                                               789:;0<69;:=          8;>76!              789!:2!07?9!       ?0>?86!0              78.?8!


Came out of discussions at 2009


                                  !"#!$%&
                                               .4E)++                :)C5)""'43+         .4E)+.#$#'1+       !@#)3"'K)+            QRRS+
                                               9)"#+?-#4E$#'43       9)"#"+:-3+P'#(+     ?3$&A"'"+<")*      <3'#+9)"#"            9)"#+64K)5$C)
                                                                     ,-'&*

  CITcon. Developed by Eric                                                              ?-#4E$#)*+
                                                                                         D-31#'43$&+9)"#"
                                                                                                            !@#)3"'K)+
                                                                                                            ?-#4E$#)*+
                                                                                                            D-31#'43+9)"#"


    Minick of UrbanCode                                                                                     :'"BJ,$")*+
                                                                                                            2$3-$&+9)"#"

                                                                                                            .)1-5'#A+.1$3"

                                  !"#$!%&'(

                                               789:;0<69;:=          8;>76!              789!:2!07?9!       ?0>?86!0              78.?8!

                                               944&J,$")*+           .'&4)*+:)/45#'3C    H'"#45'1$&+        95)3*'3C              G5)*'1#'K)
                                               :)/45#"                                   :)/45#"                                  24*)&'3C
                                                                     G-%&'"(+                               654""J.'&4
                                               >'"'%'&'#AT+:)/45#+   F$#)"#+:)/45#"      654""+D-31#'43+    ?3$&A"'"
                                               :-33)5                                    :)/45#+?11)""

                                                                                         ,$"'1+
                                                                                         :)/45#+?3$&A"'"



                                                  '!()*+,"$-!).$/     !"#$%&"!'


                                              !"#$%&'()*&)+(&,%-$(.(/0$&12&3"-+(/-4&3)5$6&78/-$.".$(
                                              !""#$%%&&&'()"!*++#,-'.-/%!"/+%,01-2,.01%&!*"03#(#0,1


                                                                                                                                                  75
789:;0<69;:=     8;>76!          789!:2!07?9!    ?0>?86!0        78.?8!
!"#$%#&'




           !"#$%&'"()*+     ?-#4+!@)1-#)+   0)/)3*)31A+     95$1B'3C+       ,-'&*+D54E+
           ,-'&*+.#)/"      ,-'&*+.#)/"     :)/4"'#45A      !"#$%&!'(#%)*   >2+.3$/"(4#"

           0)*'1$#)*+                       ,-'&*+6&-"#)5   .)1-5)+
           ,-'&*+2$1('3)                                    !"#$%&!'(#%)*
                                            643#'3-4-"+
           .4&'*+                           ,-'&*"
           .4-51)+643#54&




                                                                                           76
!"#$%&'()




            789:;0<69;:=     8;>76!           789!:2!07?9!      ?0>?86!0              78.?8!

            H)&/)5+.15'/#"   D-&&A+.15'/#)*   .)&IJ.)5K'1)+     G-"(J,-##43+          ?-#4E$#'1+
                                              9)"#+0)/&4A"      G54*+0)/&4AE)3#       G54*-1#'43+
                                                                                      0)/&4A"
                                              ?-#4+0)/&4A+#4+   N$#)*O+?-#4E$#'1+
                                              ;3)+!3KL          G54E4#'43"

                                              24"#&A+           D-&&A+.#$3*$5*'M)*+
                                              .#$3*$5*'M)*      0)/&4A"




                                                                                                    77
789:;0<69;:=      8;>76!            789!:2!07?9!       ?0>?86!0         78.?8!
!"#!$%&




          .4E)++            :)C5)""'43+       .4E)+.#$#'1+       !@#)3"'K)+       QRRS+
          9)"#+?-#4E$#'43   9)"#"+:-3+P'#(+   ?3$&A"'"+<")*      <3'#+9)"#"       9)"#+64K)5$C)
                            ,-'&*
                                              ?-#4E$#)*+         !@#)3"'K)+
                                              D-31#'43$&+9)"#"   ?-#4E$#)*+
                                                                 D-31#'43+9)"#"

                                                                 :'"BJ,$")*+
                                                                 2$3-$&+9)"#"

                                                                 .)1-5'#A+.1$3"




                                                                                                  78
!"#$!%&'(




            789:;0<69;:=          8;>76!             789!:2!07?9!      ?0>?86!0     78.?8!

            944&J,$")*+           .'&4)*+:)/45#'3C   H'"#45'1$&+       95)3*'3C     G5)*'1#'K)
            :)/45#"                                  :)/45#"                        24*)&'3C
                                  G-%&'"(+                             654""J.'&4
            >'"'%'&'#AT+:)/45#+   F$#)"#+:)/45#"     654""+D-31#'43+   ?3$&A"'"
            :-33)5                                   :)/45#+?11)""

                                                     ,$"'1+
                                                     :)/45#+?3$&A"'"




                                                                                                 79
What about People?



                     80
CI on a Dollar a Day
"From now on, our code in revision control will always build
successfully and pass its tests.". - James Shore


     • Build Computer
     • Ridiculous Toy
     • Annoying Bell
     • Automated Build
     • Group Agreement
         http://jamesshore.com/Blog/Continuous-Integration-on-a-Dollar-a-Day.html
                                                                                    81
credit to Paul Julius @ http://www.anthillpro.com/blogs/anthillpro-blog/2009/09/11/
                        enterprise_ci_cultural_maturity.html
                                                                                      82
Lots of
                                   advanced
                                  techniques!


credit to Christine Mitterbauer @ Microdoc
                                             83
Perils of CI



               84
Getting too focused on
      Green Bar
       Glare of the Green Bar in CI can
       obscure issues with your product-
       James Bach




                                           85
Making CI the core of too
     many systems
                            86
Making decisions based
  on your available
       tooling


                         87
Selecting a CI System



                        88
Approaches

• Big Hand Rolled System
• Cloud Based Solution
• Completely Hosted


                           89
Hand Rolled System
        Pros                        Cons

 Complete control of      Rolling your own can take
   configuration                   more work
 Data and code inside       Dealing with disparate
       firewall           platform elements is harder
Works with any type of   Multiple kinds of projects can
      system                  be hard to manage
                           Must provide Sys Admin
      Cheapest
                                   work

                                                          90
CI Matrix
Matrix of differences between CI tools: http://tinyurl.com/39hol7




                                                               91
Cloud Based Solution
         Pros                      Cons

                           Data and Code outside
     Very Scalable
                                  firewall
Use CPU resources only
                          Cloud computing still new
     when needed
Deal well with multiple
                            GUI apps hard to test
  kinds of projects
                           Must provide Sys Admin
           ?
                                   work

                                                      92
CI in a Box


• Amazon EC2 Hosted
  instance
• http://www.ciinabox.com/


                              93
Hosted Solution
       Pros                      Cons

                      Typically limited in language
   Very Scalable
                                 support
                        data and code outside
No Sys Admin tasks
                               firewall
  Pricing is fairly
                        GUI apps hard to test
 straightforward

         ?               vendors are still new


                                                      94
RunCodeRun.com




                 95
MikeCI.com




             96
Where to Next?



                 97
CITCON

• Open Spaces Style
• Twice a year, US and International
• Raleigh-Durham, NC, April 2010
• http://www.citconf.com/

                                       98
99
CI Yahoo Group
http://tech.groups.yahoo.com/group/citcon/




                                             100
The Book
    Continuous Integration:
Improving Software Quality and
        Reducing Risk




                                 101
The CI guys
  http://ci-guys.com/

Free online consulting




                         102

More Related Content

What's hot

But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?gagravarr
 
The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remanijaxconf
 
A Global In-memory Data System for MySQL
A Global In-memory Data System for MySQLA Global In-memory Data System for MySQL
A Global In-memory Data System for MySQLDaniel Austin
 
The Internet-of-things: Architecting for the deluge of data
The Internet-of-things: Architecting for the deluge of dataThe Internet-of-things: Architecting for the deluge of data
The Internet-of-things: Architecting for the deluge of databcantrill
 
Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...
Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...
Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...DataStax Academy
 
BGOUG "Agile Data: revolutionizing database cloning'
BGOUG  "Agile Data: revolutionizing database cloning'BGOUG  "Agile Data: revolutionizing database cloning'
BGOUG "Agile Data: revolutionizing database cloning'Kyle Hailey
 
Dockerizing Oracle Database
Dockerizing Oracle Database Dockerizing Oracle Database
Dockerizing Oracle Database gvenzl
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture stylesAraf Karsh Hamid
 
Cassandra Day Denver 2014: A Cassandra Data Model for Serving up Cat Videos
Cassandra Day Denver 2014: A Cassandra Data Model for Serving up Cat VideosCassandra Day Denver 2014: A Cassandra Data Model for Serving up Cat Videos
Cassandra Day Denver 2014: A Cassandra Data Model for Serving up Cat VideosDataStax Academy
 
Operational Buddhism: Building Reliable Services From Unreliable Components -...
Operational Buddhism: Building Reliable Services From Unreliable Components -...Operational Buddhism: Building Reliable Services From Unreliable Components -...
Operational Buddhism: Building Reliable Services From Unreliable Components -...Ernie Souhrada
 
Billions of hits: Scaling Twitter (Web 2.0 Expo, SF)
Billions of hits: Scaling Twitter (Web 2.0 Expo, SF)Billions of hits: Scaling Twitter (Web 2.0 Expo, SF)
Billions of hits: Scaling Twitter (Web 2.0 Expo, SF)John Adams
 
Running Oracle Database on Docker
Running Oracle Database on DockerRunning Oracle Database on Docker
Running Oracle Database on Dockergvenzl
 
Transforming IT Infrastructure
Transforming IT InfrastructureTransforming IT Infrastructure
Transforming IT Infrastructuretim_evdbt
 
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVMState: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVMJonas Bonér
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...smallerror
 
Why proper logging is important
Why proper logging is importantWhy proper logging is important
Why proper logging is importantBalaBit
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012Eonblast
 

What's hot (19)

But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
 
The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remani
 
A Global In-memory Data System for MySQL
A Global In-memory Data System for MySQLA Global In-memory Data System for MySQL
A Global In-memory Data System for MySQL
 
The Internet-of-things: Architecting for the deluge of data
The Internet-of-things: Architecting for the deluge of dataThe Internet-of-things: Architecting for the deluge of data
The Internet-of-things: Architecting for the deluge of data
 
Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...
Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...
Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...
 
BGOUG "Agile Data: revolutionizing database cloning'
BGOUG  "Agile Data: revolutionizing database cloning'BGOUG  "Agile Data: revolutionizing database cloning'
BGOUG "Agile Data: revolutionizing database cloning'
 
Dockerizing Oracle Database
Dockerizing Oracle Database Dockerizing Oracle Database
Dockerizing Oracle Database
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture styles
 
Cassandra Day Denver 2014: A Cassandra Data Model for Serving up Cat Videos
Cassandra Day Denver 2014: A Cassandra Data Model for Serving up Cat VideosCassandra Day Denver 2014: A Cassandra Data Model for Serving up Cat Videos
Cassandra Day Denver 2014: A Cassandra Data Model for Serving up Cat Videos
 
Operational Buddhism: Building Reliable Services From Unreliable Components -...
Operational Buddhism: Building Reliable Services From Unreliable Components -...Operational Buddhism: Building Reliable Services From Unreliable Components -...
Operational Buddhism: Building Reliable Services From Unreliable Components -...
 
Billions of hits: Scaling Twitter (Web 2.0 Expo, SF)
Billions of hits: Scaling Twitter (Web 2.0 Expo, SF)Billions of hits: Scaling Twitter (Web 2.0 Expo, SF)
Billions of hits: Scaling Twitter (Web 2.0 Expo, SF)
 
Running Oracle Database on Docker
Running Oracle Database on DockerRunning Oracle Database on Docker
Running Oracle Database on Docker
 
Transforming IT Infrastructure
Transforming IT InfrastructureTransforming IT Infrastructure
Transforming IT Infrastructure
 
Dev Ops without the Ops
Dev Ops without the OpsDev Ops without the Ops
Dev Ops without the Ops
 
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVMState: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
What is Delphix
What is DelphixWhat is Delphix
What is Delphix
 
Why proper logging is important
Why proper logging is importantWhy proper logging is important
Why proper logging is important
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
 

Viewers also liked

CI in the mobile world
CI in the mobile worldCI in the mobile world
CI in the mobile worldGodfrey Nolan
 
Enterprise level cloud CI
Enterprise level cloud CIEnterprise level cloud CI
Enterprise level cloud CISQUADEX
 
The art of .net deployment automation
The art of .net deployment automationThe art of .net deployment automation
The art of .net deployment automationMidVision
 
I gotta dependency on dependency injection
I gotta dependency on dependency injectionI gotta dependency on dependency injection
I gotta dependency on dependency injectionmhenroid
 
Implementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for CheapskatesImplementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for Cheapskatesmhenroid
 
Ci tools Introduce
Ci tools IntroduceCi tools Introduce
Ci tools IntroduceYin-Hong Hsu
 
The art of wmb deployment automation
The art of wmb deployment automationThe art of wmb deployment automation
The art of wmb deployment automationMidVision
 
Test driven development
Test driven developmentTest driven development
Test driven developmentShalabh Saxena
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationTung Nguyen Thanh
 
Domain's Robot Army
Domain's Robot ArmyDomain's Robot Army
Domain's Robot Armydomaingroup
 
Fast deterministic screenshot tests for Android
Fast deterministic screenshot tests for AndroidFast deterministic screenshot tests for Android
Fast deterministic screenshot tests for AndroidArnold Noronha
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Martin de Keijzer
 
Tips for better CI on Android
Tips for better CI on AndroidTips for better CI on Android
Tips for better CI on AndroidTomoaki Imai
 
Ideal Deployment In .NET World
Ideal Deployment In .NET WorldIdeal Deployment In .NET World
Ideal Deployment In .NET WorldDima Pasko
 
Continuous Integration, the minimum viable product
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable productJulian Simpson
 
Screenshots Test spoon + espresso
Screenshots Test spoon + espressoScreenshots Test spoon + espresso
Screenshots Test spoon + espressoShinobu Okano
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven developmenttoteb5
 

Viewers also liked (20)

CI in the mobile world
CI in the mobile worldCI in the mobile world
CI in the mobile world
 
Enterprise level cloud CI
Enterprise level cloud CIEnterprise level cloud CI
Enterprise level cloud CI
 
The art of .net deployment automation
The art of .net deployment automationThe art of .net deployment automation
The art of .net deployment automation
 
I gotta dependency on dependency injection
I gotta dependency on dependency injectionI gotta dependency on dependency injection
I gotta dependency on dependency injection
 
Agile Systems Admin
Agile Systems AdminAgile Systems Admin
Agile Systems Admin
 
Implementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for CheapskatesImplementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for Cheapskates
 
Ci tools Introduce
Ci tools IntroduceCi tools Introduce
Ci tools Introduce
 
The art of wmb deployment automation
The art of wmb deployment automationThe art of wmb deployment automation
The art of wmb deployment automation
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
 
Domain's Robot Army
Domain's Robot ArmyDomain's Robot Army
Domain's Robot Army
 
Buildbot
BuildbotBuildbot
Buildbot
 
Fast deterministic screenshot tests for Android
Fast deterministic screenshot tests for AndroidFast deterministic screenshot tests for Android
Fast deterministic screenshot tests for Android
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)
 
Tips for better CI on Android
Tips for better CI on AndroidTips for better CI on Android
Tips for better CI on Android
 
Ideal Deployment In .NET World
Ideal Deployment In .NET WorldIdeal Deployment In .NET World
Ideal Deployment In .NET World
 
Continuous Integration, the minimum viable product
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable product
 
Screenshots Test spoon + espresso
Screenshots Test spoon + espressoScreenshots Test spoon + espresso
Screenshots Test spoon + espresso
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven development
 

Similar to Core Principles Of Ci

Get your Project back in Shape!
Get your Project back in Shape!Get your Project back in Shape!
Get your Project back in Shape!Joachim Tuchel
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Mike McGarr
 
Continuous integration with jenkins
Continuous integration with jenkinsContinuous integration with jenkins
Continuous integration with jenkinsPei-Tang Huang
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentChristopher Read
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro - Database DevOps
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxGrace Jansen
 
Delivering the Dude: Continuous X
Delivering the Dude: Continuous XDelivering the Dude: Continuous X
Delivering the Dude: Continuous XBrent Pabst
 
Engineering Culture and Infrastructure
Engineering Culture and InfrastructureEngineering Culture and Infrastructure
Engineering Culture and InfrastructureSchubert Zhang
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxGrace Jansen
 
Rising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsRising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsIBM UrbanCode Products
 
From XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOpsFrom XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOpsIBM UrbanCode Products
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...CloudBees
 
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010Atlassian
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationNils Hofmeister
 
Adopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops GroupAdopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops Groupcolleenfry
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthGrace Jansen
 
Continuous Delivery Decision points
Continuous Delivery Decision pointsContinuous Delivery Decision points
Continuous Delivery Decision pointsKelly Looney
 

Similar to Core Principles Of Ci (20)

Get your Project back in Shape!
Get your Project back in Shape!Get your Project back in Shape!
Get your Project back in Shape!
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
Continuous integration with jenkins
Continuous integration with jenkinsContinuous integration with jenkins
Continuous integration with jenkins
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
DevOps: IT's Automation Revolution
DevOps: IT's Automation RevolutionDevOps: IT's Automation Revolution
DevOps: IT's Automation Revolution
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
 
Delivering the Dude: Continuous X
Delivering the Dude: Continuous XDelivering the Dude: Continuous X
Delivering the Dude: Continuous X
 
Engineering Culture and Infrastructure
Engineering Culture and InfrastructureEngineering Culture and Infrastructure
Engineering Culture and Infrastructure
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx
 
Rising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsRising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOps
 
From XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOpsFrom XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOps
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
 
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
Adopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops GroupAdopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops Group
 
Kku2011
Kku2011Kku2011
Kku2011
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
 
Continuous Delivery Decision points
Continuous Delivery Decision pointsContinuous Delivery Decision points
Continuous Delivery Decision points
 
DevOps intro
DevOps introDevOps intro
DevOps intro
 

More from OpenSource Connections

How To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessHow To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessOpenSource Connections
 
The right path to making search relevant - Taxonomy Bootcamp London 2019
The right path to making search relevant  - Taxonomy Bootcamp London 2019The right path to making search relevant  - Taxonomy Bootcamp London 2019
The right path to making search relevant - Taxonomy Bootcamp London 2019OpenSource Connections
 
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie HullHaystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie HullOpenSource Connections
 
Haystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim AllisonHaystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim AllisonOpenSource Connections
 
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...OpenSource Connections
 
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj BharadwajHaystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj BharadwajOpenSource Connections
 
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...OpenSource Connections
 
Haystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan KohlHaystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan KohlOpenSource Connections
 
Haystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon HughesHaystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon HughesOpenSource Connections
 
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey GraingerHaystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey GraingerOpenSource Connections
 
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...OpenSource Connections
 
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...OpenSource Connections
 
Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...OpenSource Connections
 
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...OpenSource Connections
 
Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...OpenSource Connections
 
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...OpenSource Connections
 
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah ViaOpenSource Connections
 

More from OpenSource Connections (20)

Encores
EncoresEncores
Encores
 
Test driven relevancy
Test driven relevancyTest driven relevancy
Test driven relevancy
 
How To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessHow To Structure Your Search Team for Success
How To Structure Your Search Team for Success
 
The right path to making search relevant - Taxonomy Bootcamp London 2019
The right path to making search relevant  - Taxonomy Bootcamp London 2019The right path to making search relevant  - Taxonomy Bootcamp London 2019
The right path to making search relevant - Taxonomy Bootcamp London 2019
 
Payloads and OCR with Solr
Payloads and OCR with SolrPayloads and OCR with Solr
Payloads and OCR with Solr
 
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie HullHaystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
 
Haystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim AllisonHaystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
 
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
 
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj BharadwajHaystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
 
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
 
Haystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan KohlHaystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan Kohl
 
Haystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon HughesHaystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon Hughes
 
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey GraingerHaystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
 
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
 
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
 
Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...
 
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
 
Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...
 
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
 
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Core Principles Of Ci

  • 1. Core Principles of CI STPcon 1
  • 2. Intro 2
  • 3. Who Am I? • Principal of OpenSource Connections • Contributer to CruiseControl and Continuum CI projects • Member of Apache Software Foundation • Presenter at conferences (OSCON, ApacheCON, jTDS, ExpoQA, STPcon) • Fascinated by the art of software development 3
  • 4. Author 4
  • 5. Father 5
  • 7. Schedule Core Principles of 9 to 10:15 CI Break 15 minutes Hudson to the 10:30 to 11:15 Rescue Agile and CI 11:15 to 12 7
  • 8. Rules of the Road • Cell phones on Silent. • Ask Questions! • Feel free to get up and move around the room. 8
  • 11. Definition a fully automated and reproducible build, including testing, that runs many times a day - Martin Fowler http://martinfowler.com/articles/continuousIntegration.html 11
  • 12. Martin Fowler • Coined the term Continuous Integration • Chief Scientist for ThoughtWorks • Speaks and Blogs on software: • http://martinfowler.com/ 12
  • 13. Mapping diagram credit to Brian Di Croce @ http://blog.briandicroce.com/2008/03/17/setting-up-a-continuous- integration-environment-preface/ 13
  • 14. Activity Turn to the person next to you, and see how many non-obvious things you have in common. 14
  • 15. Arm Bands! • Elisabeth Hendrickson is TestObsessed.com • Focuses on Testing in the Agile community • Really great blogger: Specialized Test Management Systems are an Agile Impediment and Adventures with Auto-Generated Tests and RSpec are typical posts 15
  • 16. CI in a nutshell 16
  • 17. Demo 17
  • 18. People 18
  • 19. Version Control Repository 19
  • 20. CI Server 20
  • 21. Build Script • Automated Script is Key! • Needs to be robust and simple 21
  • 22. Feedback Mechanism From: cruisecontrol@opensourceconnections.com ubject: [CruiseControl] agenda_direcciones build 370 fixed S Date: October 7, 2008 2:22:50 PM EDT To: epugh@opensourceconnections.com The build has been fixed. CHANGES ------- New revision 370 detected Revision 370 committed by epugh on 2008-10-07 18:22:03 mysql esta mejor que sqlite  M /branches/ERIC_EXPO_08_DEMO/agenda_direcciones/config/database.yml See http://cruise.opensourceconnections.com:3333/builds/agenda_direcciones/370 for details. 22
  • 23. photo credit to Jay Grieves @ www.bigswingingdeveloper.com 23
  • 25. Source Code Compilation • Eclipse “Export to War” is NOT the solution 25
  • 26. Database Integration • Database is integral to • Don’t require a multi gig your code database file to run tests! • DDL, stored procedures are • Look at techniques like treated as source fixtures or mock objects to reduce database • Involve your DBA in coupling your project • Developers need • DBUnit for Java database sandbox projects! 26
  • 27. Testing with out testing, CI is just a glorified compiler- Eric Pugh • Testing proves the intent of the programmer was met. • Typically provides the “checkability” that James Bach talks about • Multiple Levels of testing 27
  • 28. Inspection • Code Coverage • Code Complexity • Copy’n’pasting • Architectural Standards • Lint Checking • Static Analysis 28
  • 29. Deployment • Turns what is normally a difficult process into a non event... • ant deploy • Simplifies standup new environments 29
  • 31. Feedback • Email • IRC • Devices • Blog Posts • Twitter Notifications • Tray Icons 31
  • 32. So What is the Value? 32
  • 33. Life with out CI • Unstable code, integration is difficult • Many build errors reported • Only one person on the team can build the entire project • Getting “test ready” product is hard • Feedback cycle is long • Same bug keeps coming back Every day is a struggle to be productive 33
  • 34. Life with CI • The build process is simple and repeatable • Elimination of Human Error • Bugs stay fixed! • Feedback cycle is very rapid Every day you know you can produce better software! 34
  • 35. Risk Reduction • What is in the build? • What has changed between builds? • How do I verify functionality? 35
  • 38. Reduce Repetitive Processes • DRY: Don’t Repeat Yourself • Script Everything! • “ant deploy” 38
  • 39. Make Painful Things Painless! photo credit to Paul Duvall @ http://www.integratebutton.com/ 39
  • 40. Produce Deployable Software • It’s what we are here to do! • Always in a “Demo Ready” state • No last minute administrivia tasks to get the product ready • Installer is built • Documentation is written • Changelog is written 40
  • 42. 42
  • 43. Increase Project Confidence 43
  • 44. 44
  • 45. photo credit to ThoughtWorks 45
  • 47. photo credit to Eric Pugh @ www.opensourceconnections.com 47
  • 48. 48
  • 49. 49
  • 50. Activity Exquisite corpse (also known as "exquisite cadaver" or "rotating corpse") is a method by which a collection of words or images is collectively assembled, the result being known as the exquisite corpse or cadavre exquis in French. 50
  • 51. What Prevents Teams from Using CI? 51
  • 53. Fear of Commitment • Developers and Testers need to commit changes frequently! • Incremental small changes make finding integration issues simpler drawing credit to Tom Armitage @ http://infovore.org/archives/2007/03/14/the-continuous-integration- barometer/ 53
  • 56. CI needs a champion who acts as the ambassador to the leaders of the organization. • Thought leaders in the organization who can help encourage team to accept the process changes that CI brings • A very successful test case • A greenfield project if possible 56
  • 57. 57
  • 59. Testability • Modularity? • Perform code complexity analysis to • Coupling to underlying see if some parts are more amenable to platform? testing. • Requires external services to be up and available for testing? 59
  • 60. Tight Coupling photo credit to Jay Grieves @ www.bigswingingdeveloper.com 60
  • 61. CI Tool Stability Challenges 61
  • 62. Invest in CI Server • The CI system must be as well X maintained as the Source Control system. • The CI system performs builds very ✓ quickly. • Who has responsibility for CI? It’s very important to have a “throat to choke”. • No false alarms. If there are false alarms then the team loses confidence in the CI system. 62
  • 63. Monkey CI photo credit to Eric Pugh @ www.opensourceconnections.com 63
  • 64. When Should You Adopt CI? 64
  • 65. From good CI to great CI! 65
  • 66. 10 minute rule photo credit to Jay Grieves @ www.bigswingingdeveloper.com 66
  • 67. Multi Stage CI • Reduce the amount of integration required • Teams integrate as modules are marked as ready. • Maven2 was built with this in mind! Damon Poole @ http://damonpoole.blogspot.com/2008/01/advanced-multi-stage-continous.html 67
  • 68. Break up Tests • “preflight” or “smoke” tests • longer integration tests • periodic full site generation and report generation 68
  • 69. Predictive Testing • Some commercial tools support predicting which tests will fail based on previous behavior, and running those first! 69
  • 70. Cup of Coffee Metric What happens in the time it takes to get a cup of coffee can tell you a lot about the quality of your continuous integration system. - Paul Julius • Builds shouldn’t take any longer! • Getting a cup of coffee or drink of water breaks up your day • Gives you a chance to review your work • Requires a moduler fast build http://pauljulius.com/blog/2009/09/14/cup-of-coffee-metric-for-continuous-integration/ 70
  • 71. Paul Julius • co-founder of CITCON • Original developer of CruiseControl • Speaks and Blogs on CI extensively • http://pauljulius.com/blog/ 71
  • 72. Virtuous Circle • Metrics are hard to get • Teams (Developers?) rebel against on high management • Need good processes that support and encourage other good processes 72
  • 73. HackyStat 73
  • 74. CI isn’t one specific method 74
  • 75. !F!2!89.+;D+!89!:G:7.!+67 789:;0<69;:= 8;>76! 789!:2!07?9! ?0>?86!0 78.?8! !"#$%#&' !"#$%&'"()*+ ?-#4+!@)1-#)+ 0)/)3*)31A+ 95$1B'3C+ ,-'&*+D54E+ ,-'&*+.#)/" ,-'&*+.#)/" :)/4"'#45A !"#$%&!'(#%)* >2+.3$/"(4#" 0)*'1$#)*+ ,-'&*+6&-"#)5 .)1-5)+ ,-'&*+2$1('3) !"#$%&!'(#%)* 643#'3-4-"+ .4&'*+ ,-'&*" .4-51)+643#54& Enterprise CI !"#$%&'() 789:;0<69;:= 8;>76! 789!:2!07?9! ?0>?86!0 78.?8! H)&/)5+.15'/#" D-&&A+.15'/#)* .)&IJ.)5K'1)+ G-"(J,-##43+ ?-#4E$#'1+ 9)"#+0)/&4A" G54*+0)/&4AE)3# G54*-1#'43+ 0)/&4A" ?-#4+0)/&4A+#4+ N$#)*O+?-#4E$#'1+ ;3)+!3KL G54E4#'43" Maturity Model 24"#&A+ D-&&A+.#$3*$5*'M)*+ .#$3*$5*'M)* 0)/&4A" 789:;0<69;:= 8;>76! 789!:2!07?9! ?0>?86!0 78.?8! Came out of discussions at 2009 !"#!$%& .4E)++ :)C5)""'43+ .4E)+.#$#'1+ !@#)3"'K)+ QRRS+ 9)"#+?-#4E$#'43 9)"#"+:-3+P'#(+ ?3$&A"'"+<")* <3'#+9)"#" 9)"#+64K)5$C) ,-'&* CITcon. Developed by Eric ?-#4E$#)*+ D-31#'43$&+9)"#" !@#)3"'K)+ ?-#4E$#)*+ D-31#'43+9)"#" Minick of UrbanCode :'"BJ,$")*+ 2$3-$&+9)"#" .)1-5'#A+.1$3" !"#$!%&'( 789:;0<69;:= 8;>76! 789!:2!07?9! ?0>?86!0 78.?8! 944&J,$")*+ .'&4)*+:)/45#'3C H'"#45'1$&+ 95)3*'3C G5)*'1#'K) :)/45#" :)/45#" 24*)&'3C G-%&'"(+ 654""J.'&4 >'"'%'&'#AT+:)/45#+ F$#)"#+:)/45#" 654""+D-31#'43+ ?3$&A"'" :-33)5 :)/45#+?11)"" ,$"'1+ :)/45#+?3$&A"'" '!()*+,"$-!).$/ !"#$%&"!' !"#$%&'()*&)+(&,%-$(.(/0$&12&3"-+(/-4&3)5$6&78/-$.".$( !""#$%%&&&'()"!*++#,-'.-/%!"/+%,01-2,.01%&!*"03#(#0,1 75
  • 76. 789:;0<69;:= 8;>76! 789!:2!07?9! ?0>?86!0 78.?8! !"#$%#&' !"#$%&'"()*+ ?-#4+!@)1-#)+ 0)/)3*)31A+ 95$1B'3C+ ,-'&*+D54E+ ,-'&*+.#)/" ,-'&*+.#)/" :)/4"'#45A !"#$%&!'(#%)* >2+.3$/"(4#" 0)*'1$#)*+ ,-'&*+6&-"#)5 .)1-5)+ ,-'&*+2$1('3) !"#$%&!'(#%)* 643#'3-4-"+ .4&'*+ ,-'&*" .4-51)+643#54& 76
  • 77. !"#$%&'() 789:;0<69;:= 8;>76! 789!:2!07?9! ?0>?86!0 78.?8! H)&/)5+.15'/#" D-&&A+.15'/#)* .)&IJ.)5K'1)+ G-"(J,-##43+ ?-#4E$#'1+ 9)"#+0)/&4A" G54*+0)/&4AE)3# G54*-1#'43+ 0)/&4A" ?-#4+0)/&4A+#4+ N$#)*O+?-#4E$#'1+ ;3)+!3KL G54E4#'43" 24"#&A+ D-&&A+.#$3*$5*'M)*+ .#$3*$5*'M)* 0)/&4A" 77
  • 78. 789:;0<69;:= 8;>76! 789!:2!07?9! ?0>?86!0 78.?8! !"#!$%& .4E)++ :)C5)""'43+ .4E)+.#$#'1+ !@#)3"'K)+ QRRS+ 9)"#+?-#4E$#'43 9)"#"+:-3+P'#(+ ?3$&A"'"+<")* <3'#+9)"#" 9)"#+64K)5$C) ,-'&* ?-#4E$#)*+ !@#)3"'K)+ D-31#'43$&+9)"#" ?-#4E$#)*+ D-31#'43+9)"#" :'"BJ,$")*+ 2$3-$&+9)"#" .)1-5'#A+.1$3" 78
  • 79. !"#$!%&'( 789:;0<69;:= 8;>76! 789!:2!07?9! ?0>?86!0 78.?8! 944&J,$")*+ .'&4)*+:)/45#'3C H'"#45'1$&+ 95)3*'3C G5)*'1#'K) :)/45#" :)/45#" 24*)&'3C G-%&'"(+ 654""J.'&4 >'"'%'&'#AT+:)/45#+ F$#)"#+:)/45#" 654""+D-31#'43+ ?3$&A"'" :-33)5 :)/45#+?11)"" ,$"'1+ :)/45#+?3$&A"'" 79
  • 81. CI on a Dollar a Day "From now on, our code in revision control will always build successfully and pass its tests.". - James Shore • Build Computer • Ridiculous Toy • Annoying Bell • Automated Build • Group Agreement http://jamesshore.com/Blog/Continuous-Integration-on-a-Dollar-a-Day.html 81
  • 82. credit to Paul Julius @ http://www.anthillpro.com/blogs/anthillpro-blog/2009/09/11/ enterprise_ci_cultural_maturity.html 82
  • 83. Lots of advanced techniques! credit to Christine Mitterbauer @ Microdoc 83
  • 85. Getting too focused on Green Bar Glare of the Green Bar in CI can obscure issues with your product- James Bach 85
  • 86. Making CI the core of too many systems 86
  • 87. Making decisions based on your available tooling 87
  • 88. Selecting a CI System 88
  • 89. Approaches • Big Hand Rolled System • Cloud Based Solution • Completely Hosted 89
  • 90. Hand Rolled System Pros Cons Complete control of Rolling your own can take configuration more work Data and code inside Dealing with disparate firewall platform elements is harder Works with any type of Multiple kinds of projects can system be hard to manage Must provide Sys Admin Cheapest work 90
  • 91. CI Matrix Matrix of differences between CI tools: http://tinyurl.com/39hol7 91
  • 92. Cloud Based Solution Pros Cons Data and Code outside Very Scalable firewall Use CPU resources only Cloud computing still new when needed Deal well with multiple GUI apps hard to test kinds of projects Must provide Sys Admin ? work 92
  • 93. CI in a Box • Amazon EC2 Hosted instance • http://www.ciinabox.com/ 93
  • 94. Hosted Solution Pros Cons Typically limited in language Very Scalable support data and code outside No Sys Admin tasks firewall Pricing is fairly GUI apps hard to test straightforward ? vendors are still new 94
  • 98. CITCON • Open Spaces Style • Twice a year, US and International • Raleigh-Durham, NC, April 2010 • http://www.citconf.com/ 98
  • 99. 99
  • 101. The Book Continuous Integration: Improving Software Quality and Reducing Risk 101
  • 102. The CI guys http://ci-guys.com/ Free online consulting 102