Continuous integration meetup

562 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
562
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Principal at Palomino Labs; software development consultancy Desktop webapps, native mobile apps, low level systems programming, and big data Also process consulting, focusing on making teams more efficient
  • GORUCK challenge is about building an efficient team
  • If you don’t understand why you’re doing something, you’re going to have a bad time
  • The core of what we’re trying to do with CI & lean principles is efficiency
  • We’re trying to eliminate waste and the prime way to do that is reducing bugs Finding & fixing bug is a waste of time; the best thing to do is eliminate them Writing testable code and the tests for it, be they unit or more comprehensive, helps prevent bugs in the first place Tests find regressions early
  • Be it bugs or simultaneous feature development, context switching is costly. By eliminating bugs you decrease the need to revisit features.
  • Be it bugs or simultaneous feature development, context switching is costly. By eliminating bugs you decrease the need to revisit features.
  • Be it bugs or simultaneous feature development, context switching is costly. By eliminating bugs you decrease the need to revisit features.
  • Must have automatic test runs Stop the line reduces cost of context switching—find problems sooner
  • Jenkins has this box. Many are tempted to do things in it. They cry when the something goes wrong and they lose their build script. Relate to database triggers—hidden code that is ungreppable
  • Even though DB setup ought to only happen once, you’ll be happier (and prevent potential failures) if you check it every time.
  • Interaction between sdms-cucumber & s3cp Mocks are OK for unit tests, but not integration—systems can change without the mocks being updated Selenium tests take a while—use Sauce or VMs
  • HIPAA requires proof of tests run against code on production We’re keeping data in OpenTSDB, producing graphs for each Jenkins run
  • Continuous integration meetup

    1. 1. Palomino Labs, Inc. palominolabs.comContinuous Integration, Agile, andJenkins, Oh My!
    2. 2. Title Goes Here
    3. 3. Why Continuous Integration?• Desire be lean & agile• Google does it• Small startups do it• Everyone talks about it• VP read a blog post
    4. 4. It’s About Efficiency
    5. 5. Eliminate Waste• Bugs are bad• Tests prevent bugs• Tests find bugs early
    6. 6. One Piece Flow• Eliminate need to revisit featuresSource: 1991, Gerald Weinberg, Quality Software Management: Systems Thinking
    7. 7. One Piece Flow• Eliminate need to revisit features• Faster shipping = more money
    8. 8. One Piece Flow• Eliminate need to revisit features• Faster shipping = more money• More money = happiness
    9. 9. This Is Where Jenkins Comes In• Tests runs must be automatic• Stop the line• No false positives• Failures must be visible
    10. 10. Notify on Failure• Email team on failure
    11. 11. Setting Up a New Machine• AWS? Use EBS• Allows snapshotting & embiggening• Ubuntuwget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -sudo sh -c echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.listsudo apt-get updatesudo apt-get install jenkins• RHEL/CentOS/Amazon Linuxsudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.reposudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.keyyum install jenkins
    12. 12. A Good Jenkins setup• Do all of your work in a script• Check script into source control• Rejoice when a mistake is made
    13. 13. Rails Run Script
    14. 14. Run All Of Your Tests
    15. 15. Tests Dependent Upon OtherSystemsDetails: http://blog.palominolabs.com/2013/05/06/ruby-testing-and-external-dependencies/
    16. 16. Bonuses• HIPAA compliance• Performance tests over time
    17. 17. Palomino Labs, Inc. palominolabs.comDrew Stephensdrew@palominolabs.com@dinomite

    ×