Are You Failing Fast Enough? Tips & tricks for a speedy build system

Size: px
Start display at page:

Download "Are You Failing Fast Enough? Tips & tricks for a speedy build system"

Transcription

1 Are You Failing Fast Enough? Tips & tricks for a speedy build system Sarah Goff-Dupont Atlassian Greetings! If you ve come to hear a few tips for making your build system run faster then you re in the right place! 1 Before we begin... this talk is designed for people who have a basic continuous integration system in place. If you and your team are already doing full continuous delivery, this talk might be too basic for you. So if you d like to go find another session to attend, I won t be offended. My name is Sarah Goff-Dupont, and I have a confession to make.

2 I work at Atlassian. And as you may have heard, we make a build server called Bamboo. Not only that, but I am the marketing manager for Bamboo. Which means my credibility with you just took a nose-dive. 2 But before that, I did spend about 4 years as a test automation engineer, working mostly in Java. So maybe that gives me a bit of my nerd-cred back. You didn't come here to listen to a sales pitch. So for the next 20 minutes we're going to take a look at things from the conceptual level. Most of the screenshots you'll see are indeed from Bamboo. And I ll also show examples from Hudson, Jenkins and TeamCity since those are also very popular tools. But the purpose of this talk is to share with you some tips and practices that we at Atlassian have found useful --and that you can implement as well, no matter if you use Bamboo, Hudson, Jenkins, or one of the other CI products out there.

3 Why Do We Care? W.I.P. = 3 Start IssueD W.I.P. = 3 W.I.P. = 2 W.I.P. = 2 Start IssueC Code C Push Get Build Results Code C Push Start IssueB Code B Code B Push Get Build Results Code B Push Get Build Results Code B Push Start IssueA Push Get Build Results Code A Push Get Build Results Code A Push Get Build Results Close IssueA 8am 12pm 4pm 8am 12pm 4pm 8am 12pm 4pm 8am 12pm 4pm 8am 12pm Day 1 Day 2 Day 3 Day 4 Day 5 First, let's talk about why you even care how fast your builds run. 3 IMO, it's all about getting feedback to the developers --like the results of automated tests or whether there were any compile errors. If it takes hours for a developer to find out whether their latest changes broke anything, they're going to make that commit, then move on to something else for a while, then find out there are more changes needed on the previous commit, then spend (waste) some time getting their head back into it... and repeat that cycle several times. By the time the original task is complete, a developer may have 2 or 3 additional tasks in motion. Multi-tasking is great for computers. But let's face it: we humans do our best, and most efficient work, when we are focused. So the goal of an efficient build system is to get feedback to developers fast enough that they don't have time to get wrapped up in a new task --and end up in a confusing mess like this.

4 Fast Feedback Promotes Efficiency What s in it for managers, product owners, and other stakeholders? Efficiency! Oh yeah, how? Limiting the amount of work in progress......allows developers to focus...decreases chances of locked files and time wasted on merges...increases chances of finding bugs while they re still cheap to fix Some of you are managers, product owners, etc. You might say "Well, I'm not a developer, so if I get my devs faster feedback, what's in it for me?" 4 In a word: efficiency. We write better code, and write it faster, when we're not switching back and forth between 3 or 4 different tasks. We don t drive safely while talking on the phone, and we don t code safely while working on 3 user stories simultaneously. Why? Because we re distracted. This leads to more bugs being introduced and more features implemented incorrectly --and then we have to waste time cleaning up the mess. Another consequence of juggling 3 or 4 tasks is that each task will extend out over many days. And depending on what your source control system looks like, you may have one developer locking up files that another developer needs to work on and creating a bottleneck. Even if files aren't locked down when you're working on them, if another developer needs to work in the same code, we'll have to spend additional time working through merging our changes. The third reason fast feedback increases efficiency is that code changes might introduce defects in the application. Those are easiest and cheapest to address when they are discovered right away. The work is still fresh in the developer's mind, and more code hasn't yet been layered on top of it. So as much as we were all inspired by the Cirque d Eclipse performers last night, leave the juggling to them.

5 Fast Feedback Promotes Efficiency W.I.P. = 2 Start IssueC Push Get Build Results Push Get Build IssueC ResultsClose Start IssueB Push Get Build Results Push Get Build Results Close IssueB Start IssueA Push Get Build Results Push Get Build Results Push Get Build Results Close IssueA 8am 12pm 4pm 8am 12pm 4pm 8am 12pm 4pm 8am 12pm 4pm 8am 12pm Day 1 Day 2 Day 3 Day 4 Day 5 5 If we can get our build systems to give feedback so quickly that devs have only 1 or 2 tasks in progress, we simply waste less time. Ultimately, the more we can streamline our development workflows, the more features we can build in an iteration. And the faster we can deliver value to our customers. Or to put it another way, when our workflows are IN-efficient, we loose time --and when we loose time, we loose customers.

6 If you re going to fail, fail fast! #ece2012 All of this is a really long way of saying that if your code is going to fail for any reason, we want to discover that failure as fast as possible so we can address it right away. 6

7 Terminate Hung Builds So now that you care, let's get on with it! 7 Probably the easiest and cheapest improvements you can make is to ensure hung builds don't sit there hanging for hours and hours, locking up build agents while your queue gets all clogged up.

8 Terminate Hung Builds Most of the popular build tools handle this in basically the same way. 8 You set a time limit for how long the build should be allowed to run, and if that threshold is exceeded, the build is stopped. With the commercial tools, this is a standard feature. WIth Jenkins and Hudson, you just need to install the Build Timeout plugin. If you take only one action based on this talk, set your system up to terminate hung builds. It doesn t cost anything extra, it's easy, it's effective.

9 Terminate Hung Builds Repo Give me free-flowing builds, or give me death! CI Server 9 So if we visualize a build system, it might look something like this.

10 Automate Deploys So that was the easiest thing you can do. Next, let s jump right to probably the hardest thing: automate your deploys. 10

11 Automate Deploys Impact from automating deploys goes beyond fast feedback Encourages standardization across environments and discourages server drift Ops engineers can focus on improvements and innovations Prioritize low-level environments that receive frequent deploys 11 Why? Because to get fast feedback you should build with every commit, and test each build so any problems are found right away when they re easiest to fix. Now, unit tests alone won t find all your bugs because most bugs live in the integration points between different parts of your application. So you need to run some integration, API, and possibly UI-level tests. This usually means deploying the build to an environment. But to deploy each build by hand would require at least one person dedicated to it full time. So you automate it. Automating deploys IS an up-front investment in staff time, but it pays off. See, automated deploys themselves aren't all that hard to accomplish. It's the prerequisites: standardizing your environments is the biggest thing. You can't do auto deploys effectively if your servers are like snowflakes --if each one is a little different. Or from the glass-half-full perspective, automating deploys sort of forces you to eat your vegetables and keep your environments from drifting. And the more deploys you automate, the more your Ops engineers have bandwidth to work on more interesting things like scalability projects, production monitoring, increasing uptime, etc. Now, in my opinion, you get the most impact by automating deploys to your lowest-level environment, probably your dev or QA environment. This is where you re going to deploy most frequently. So make that those the priority, then replicate it upwards through your environments.

12 Automate Deploys Repo CI Server So with automated deploys, now our build system is lookin something like this. 12

13 Pass The Artifact, Please! If and when you have deploys automated, the next step is to pass a pre-packaged build to that deploy step rather than re-building a second (or third) time. 13

14 Pass Artifacts What is an artifact? JARs, WARs, TARs, ZIPs javadocs, rdocs cobertura.ser, checkstyle.xml, etc. Artifact passing saves time artifact passing for the win! Compile only once Check out code only once Store artifacts in Archiva, NexusPro, Artifactory, temp file server, or in the CI tool So, when I refer to an artifact, that of course includes the JARs, WARs and TARs that we re accustomed to with compiled languages. 14 But an artifact is really anything that you need manipulate or operate on in your builds: a ZIP file containing your source code is an artifact - a Checkstyle or Cobertura report is an artifact... for purposes of this discussion, we can keep the definition very broad. Now, when we started passing artifacts at Atlassian instead of rebuilding for each environment, we cut about 40 minutes off the time it takes to run a full test cycle. Not only do you save time on the compile step, but you skip the additional checkout step too. That can be a huge win if your code base is large and/or your network is prone to slowness. You can upload artifacts to external repositories like the ones listed here, if you need to. For most use cases, your CI tool will just handle it for you.

15 Pass Artifacts 15 Here s how it works: In the configs of the job that produces the artifact, you tell the tool where on the server to find it, and the file name. Then in the consumer job, you declare the artifact as a dependency, and tell the tool where to place it so the deploy step can find it. There are slight differences from tool to tool, but they all work in basically this way. The tool s documentation is your friend.

16 Pass Artifacts What else is in it for me? Confidence! Oh yeah, how? Deploy the build you tested No un-tested code sneaks in No file corruption There are other benefits to artifact passing as well: confidence being the biggest one. 16 When you build an artifact once, then pass it up through all your environments, you know with certainty that the build you are about to release into the wild is the exact same build you worked so hard to vet in your pre-production environments. No worries about whether it was built from the right revision number, and no opportunities for a network hiccup to corrupt files as they're being checked out from the repo. Give your build one last check on Staging, hit the 'deploy to prod' button, and head out for a beer.

17 Pass Artifacts Repo CI Server Let s check in on our build system... lookin pretty good. 17 But I think we can do even more. So, what if you don't have automated deploys? Is killing hung builds the only thing you can do to tighten the feedback loop?

18 Run Tests In Parallel 18 Thankfully, no. Running your automated tests in parallel can make a huge difference. In fact, it s probably the most effective way to speed up your builds.

19 Parallelize Tests Prioritize parallelization of longer-running tests Break the test suite into batches, and run each as a separate job You are limited only by the number of build agents you have 19 First, let me say that this is most effective when applied to integration-, API-, and UI-level tests. Unit tests run really fast anyway, so your biggest return on investment is working with tests that involve calls across different modules of the application or across a network. Parallelizing tests is done by dividing your test suite into batches and running each batch as it's own job. All the major CI servers are capable of running jobs in parallel, so long as you have build agents available to do so.

20 Parallelize Tests I want to share my personal favorite way to split tests into batches: with groups. 20 Groups are a feature of several testing frameworks: TestNG (java & Ruby), Proboscis (python), and PHP Unit to name a few I ll use Java & TestNG as my example Inside annotation, you can specify one or more groups that the test or class belongs to. The groups are arbitrary, so you can slice n' dice your collection based on functional area of the application, level of the technology stack, or even whether or not the test is currently expected to pass.

21 Parallelize Tests So back in your CI tool, you set up jobs based on groups. 21 When it's time to run tests, you pass in the group name as a parameter, and only the tests belonging to that group will run in that job. Doesn't matter if the tests in that group are distributed across classes or packages. If you're executing tests via Maven, Gradle or Ant, this is pretty trivial.

22 Parallelize Tests You can take this idea of parallel test jobs about as far as you want. 22 As you can see here, some of our CI builds for JIRA have over 20 jobs running in parallel The next thing you ll want to do is aggregate the results from your testing batches so you have one nice easy number to look at. Bamboo, TeamCity, and most of the other commercial CI tools do it for you automatically. Jenkins and Hudson do not... get what you pay for?

23 Parallelize Tests Repo CI Server So back in our build system Hey, now we re getting somewhere!!

24 Create Multiple Feedback Loops Last on our journey today is the idea of dividing your build & testing cycles into tiers, or loops, that run at strategic intervals. 24 Now, what the heck are loops and what do I mean by "strategic intervals"?

25 Create Multiple Feedback Loops Let's say that your entire build & test phase takes 3 hours to run through. That's a long time for a developer to wait before getting any results back about their commit. 25 And let's say that you have 20 committers, and between them, your repository sees an average of 5 commits per hour. Unless you have an army of build agents, your queue is going to clog up FAST, making the wait time even longer.

26 Create Multiple Feedback Loops Repo CI Server So try this: 26 First, create one build/job/pipeline that gets triggered by each commit, and does just 4 things: source code checkout, unit tests, artifact packaging, and storing the artifact somewhere where downstream loops can get at it. That loop might take minutes to execute. Long enough to document the changes made and get a cup of coffee before you get the results but not long enough to get going on another user story. That becomes your inner loop. It's a quick sanity check for your developers.

27 Create Multiple Feedback Loops Repo CI Server Test Env. Then, create an outer-loop that deploys your build to a test environment and executes the longer-running integration and UI-level tests. 27 Ideally, you'll pass this job the artifact you packaged up in the inner-loop. Otherwise, you can recompile as your first step. Run that a few times each day, maybe 3 times during working hours. That keeps the overall load on your build system low and keeps your queue from getting backed up, and it's still frequent enough for there to be a small number of changes between each run. So when new failures pop up, you can still trace them to the offending commit pretty quickly.

28 Create Multiple Feedback Loops Repo CI Server Test Env. For extra credit, some projects will benefit from a nightly build that runs your entire test suite against multiple platforms. 28 Atlassian does this with most of it's products. We deploy builds of JIRA, for example, to a linux box that uses Oracle as the DB, a linux box that uses MySQL, a windows box using Postgress, etc, etc... there are about 8 combinations of OS, DB and browser that our products get tested against. Platform-specific bugs are fairly rare, and are almost never show-stoppers. So running this gauntlet once a day is probably enough. And it's strategic to run it at night when your devs aren't making commits and your build agents would otherwise be sitting idle. Now, none of these ideas are silver bullets by themselves. Each of you will cherry-pick the combination of concepts that are best suited for your projects, and apply them. And you won't get it perfect the first time. So it's important to measure and track your progress so you know exactly what's working and what not.

29 Know Where You re Starting From! 29 Fortunately, any CI tool can generate reports on build duration. Bamboo also has native support for reporting how long builds are waiting in the queue before they're picked up. Get to know these reports before you start making any changes so you know where your baseline is.

30 Know Where You re Starting From! There are also plugins that can help you out. 30 Jenkins offers the Global Build Stats plugin which lets you refine your reports to look at, say, average build time for only passing builds, or only failed builds. Jenkins also has the Wasted Minutes plugin which tallies the total amount of time wasted by all builds in the queue Similarly, TeamCity has the Queue Statistics Report, and Bamboo offers a queue report out of the box. Bamboo also has the Build Times plugin that graphs the duration of each step and identifies bottlenecks in your pipeline These are all useful plugins, and they don t cost anything extra. So take advantage.

31 Know Where You re Starting From! x3 x6 31 Because you might feel like it's good enough to have a gut feeling that your build times are improving. But when you present all your hard work to management and tell them you deserve a raise, they're gonna want to see some stats.

32 Q & A Sarah Goff-Dupont #ece At this point, I'm going to stop so we have time for Q&A. I've had a great time. I hope you've enjoyed this talk, and gotten a little bit of inspiration for improvements to try out in your build systems. (CLICK) Here is my contact information. If you d like a copy of the slide deck from today, I m happy to share it with you. And if you enjoyed this talk, feel free to send a tweet about it with the #ece2012 hash tag --that ll help me persuade Christian and the selection committee that I should come back next year ;o) And with that, let s open it up for questions.

Git Branching for Continuous Delivery

Git Branching for Continuous Delivery Git Branching for Continuous Delivery Sarah Goff-Dupont Automation Enthusiast Hello everyone I ll be talking about how teams at Atlassian use Git branches for continuous delivery. My name is Sarah, and

More information

Continuous Integration and Bamboo. Ryan Cutter CSCI 5828 2012 Spring Semester

Continuous Integration and Bamboo. Ryan Cutter CSCI 5828 2012 Spring Semester Continuous Integration and Bamboo Ryan Cutter CSCI 5828 2012 Spring Semester Agenda What is CI and how can it help me? Fundamentals of CI Fundamentals of Bamboo Configuration / Price Quick example Features

More information

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012 Jenkins Continuous Build System Jesse Bowes CSCI-5828 Spring 2012 Executive summary Continuous integration systems are a vital part of any Agile team because they help enforce the ideals of Agile development

More information

Building, testing and deploying mobile apps with Jenkins & friends

Building, testing and deploying mobile apps with Jenkins & friends Building, testing and deploying mobile apps with Jenkins & friends Christopher Orr https://chris.orr.me.uk/ This is a lightning talk which is basically described by its title, where "mobile apps" really

More information

Continuous Integration and Delivery at NSIDC

Continuous Integration and Delivery at NSIDC National Snow and Ice Data Center Supporting Cryospheric Research Since 1976 Continuous Integration and Delivery at NSIDC Julia Collins National Snow and Ice Data Center Cooperative Institute for Research

More information

Super-powered CI with Git

Super-powered CI with Git Super-powered CI with Git SARAH GOFF-DUPONT DEV TOOLS MARKETING ATLASSIAN @DEVTOOLSUPERFAN Good morning My name is Sarah and I m on the DevTools marketing team at Atlassian. And today I ll be sharing with

More information

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery! Continuous Delivery for Alfresco Solutions Satisfied customers and happy developers with!! Continuous Delivery! About me Roeland Hofkens #rhofkens roeland.hofkens@westernacher.com http://opensource.westernacher.com

More information

Software infrastructure for Java development projects

Software infrastructure for Java development projects Tools that can optimize your development process Software infrastructure for Java development projects Presentation plan Software Development Lifecycle Tools What tools exist? Where can tools help? Practical

More information

Implementing Continuous Integration Testing Prepared by:

Implementing Continuous Integration Testing Prepared by: Implementing Continuous Integration Testing Prepared by: Mr Sandeep M Table of Contents 1. ABSTRACT... 2 2. INTRODUCTION TO CONTINUOUS INTEGRATION (CI)... 3 3. CI FOR AGILE METHODOLOGY... 4 4. WORK FLOW...

More information

Transcription. Crashplan vs Backblaze. Which service should you pick the short version

Transcription. Crashplan vs Backblaze. Which service should you pick the short version Transcription Crashplan vs Backblaze Hey and welcome to cloudwards.net and another exciting video of two major unlimited online backup services namely Backblaze and CrashPlan or CrashPlan or Backblaze.

More information

Continuous Integration: Put it at the heart of your development

Continuous Integration: Put it at the heart of your development Continuous Integration: Put it at the heart of your development Susan Duncan Tools Product Manager, Oracle 1 Program Agenda What is CI? What Does It Mean To You? Make it Hudson Evolving Best Practice For

More information

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS @huibschoots & @mieldonkers INTRODUCTION Huib Schoots Tester @huibschoots Miel Donkers Developer @mieldonkers TYPICAL Experience with Continuous Delivery?

More information

Agile support with Kanban some tips and tricks By Tomas Björkholm

Agile support with Kanban some tips and tricks By Tomas Björkholm Agile support with Kanban some tips and tricks By Tomas Björkholm Foreword A year ago I held an Open Space at Scrum Gathering in Stockholm about Agile Support. I have since received several requests to

More information

Transcription. Founder Interview - Panayotis Vryonis Talks About BigStash Cloud Storage. Media Duration: 28:45

Transcription. Founder Interview - Panayotis Vryonis Talks About BigStash Cloud Storage. Media Duration: 28:45 Transcription Founder Interview - Panayotis Vryonis Talks About BigStash Cloud Storage Media Duration: 28:45 Feel free to quote any passage from this interview for your articles. Please reference cloudwards.net

More information

http://www.wakaleo.com john.smart@wakaleo.com Java Software Quality Tools and techniques

http://www.wakaleo.com john.smart@wakaleo.com Java Software Quality Tools and techniques Wakaleo Consulting O p t i m i z i n g y o u r s o f t w a r e d e v e l o p m e n t http://www.wakaleo.com john.smart@wakaleo.com Java Software Quality Tools and techniques 1 Introduction Agenda tools

More information

Jenesis Software - Podcast Episode 3

Jenesis Software - Podcast Episode 3 Jenesis Software - Podcast Episode 3 Welcome to Episode 3. This is Benny speaking, and I'm with- Eddie. Chuck. Today we'll be addressing system requirements. We will also be talking about some monitor

More information

How To Manage Change In Jeepers

How To Manage Change In Jeepers Continuous Integration Continuous Integration What is Continuous Integration? In software engineering, continuous integration (CI) implements continuous processes of applying quality control small pieces

More information

Continuous Integration

Continuous Integration Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal

More information

Continuous integration with Jenkins CI

Continuous integration with Jenkins CI Continuous integration with Jenkins CI Vojtěch Juránek JBoss - a division by Red Hat 17. 2. 2012, Developer conference, Brno Vojtěch Juránek (Red Hat) Continuous integration with Jenkins CI 17. 2. 2012,

More information

Continuous Integration (CI) for Mobile Applications

Continuous Integration (CI) for Mobile Applications Continuous Integration (CI) for Mobile Applications Author: Guy Arieli, CTO, Experitest Table of Contents: What Continuous Integration Adds to the Mobile Development Process 2 What is Continuous Integration?

More information

The care of open source creatures. Vincent Sanders

The care of open source creatures. Vincent Sanders The care of open source creatures Vincent Sanders What am I on about? An examination of: What a services a project ought to have What options exist to fulfil those requirements A practical look at some

More information

Software Development In the Cloud Cloud management and ALM

Software Development In the Cloud Cloud management and ALM Software Development In the Cloud Cloud management and ALM First published in Dr. Dobb's Journal, February 2009: http://www.ddj.com/development-tools/212900736 Nick Gulrajani is a Senior Solutions Architect

More information

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation Practicing Continuous Delivery using Hudson Winston Prakash Oracle Corporation Development Lifecycle Dev Dev QA Ops DevOps QA Ops Typical turn around time is 6 months to 1 year Sprint cycle is typically

More information

Introduction to Open Atrium s workflow

Introduction to Open Atrium s workflow Okay welcome everybody! Thanks for attending the webinar today, my name is Mike Potter and we're going to be doing a demonstration today of some really exciting new features in open atrium 2 for handling

More information

Successful PaaS and CI in the Cloud

Successful PaaS and CI in the Cloud Successful PaaS and CI in the Cloud Steven G. Harris steven.g.harris@cloudbees.com @stevengharris AgileALM/EclipseCon 2012 Platform as a Service As-a-Service Examples Today SaaS PaaS "Cloud computing is

More information

Continuous Integration

Continuous Integration Continuous Integration WITH FITNESSE AND SELENIUM By Brian Kitchener briank@ecollege.com Intro Who am I? Overview Continuous Integration The Tools Selenium Overview Fitnesse Overview Data Dependence My

More information

Eliminate Workflow Friction with Git

Eliminate Workflow Friction with Git Eliminate Workflow Friction with Git Joel Clermont @jclermont I come from the distant land of Milwaukee. Organizer of Milwaukee PHP and Milwaukee FP. Feel free to reach out to me on Twitter. World s problems

More information

Hudson configuration manual

Hudson configuration manual Hudson configuration manual 1 Chapter 1 What is Hudson? Hudson is a powerful and widely used open source continuous integration server providing development teams with a reliable way to monitor changes

More information

Continuous Integration and Deployment Modern Technique's

Continuous Integration and Deployment Modern Technique's International Journal of Computer Sciences and Engineering Open Access Review Paper Volume-4, Issue-4 E-ISSN: 2347-2693 Continuous Integration and Deployment Modern Technique's Vivek Verma 1* and Vinay

More information

A How-to Guide By: Riaan Van Der Merwe, General Manager, Dynamics, Neudesic

A How-to Guide By: Riaan Van Der Merwe, General Manager, Dynamics, Neudesic Managing Dynamics CRM 2013 Applications from Cradle to Grave A How-to Guide By: Riaan Van Der Merwe, General Manager, Dynamics, Neudesic Table of Contents Introduction...3 Creating the Right Fit...3 Solutions

More information

Part II. Managing Issues

Part II. Managing Issues Managing Issues Part II. Managing Issues If projects are the most important part of Redmine, then issues are the second most important. Projects are where you describe what to do, bring everyone together,

More information

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley Continuous Delivery Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley Copyright 2011 ThoughtWorks Inc. All rights reserved www.thoughtworks-studios.com Introduction Continuous

More information

New Relic & JMeter - Perfect Performance Testing

New Relic & JMeter - Perfect Performance Testing TUTORIAL New Relic & JMeter - Perfect Performance Testing by David Sale Contents Introduction 3 Demo Application 4 Hooking Into New Relic 4 What Is JMeter? 6 Installation and Usage 6 Analysis In New Relic

More information

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) i Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) ii Contents 1

More information

Managed Services in a Month - Part Five

Managed Services in a Month - Part Five Managed Services in a Month 59 Managed Services in a Month - Part Five Where we've been: Topic One: Start making a plan Topic Two: Create a three-tiered pricing structure Topic Three: Weed your client

More information

Jenkins: The Definitive Guide

Jenkins: The Definitive Guide Jenkins: The Definitive Guide John Ferguson Smart O'REILLY8 Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Foreword xiii Preface xv 1. Introducing Jenkins 1 Introduction 1 Continuous

More information

XpoLog Center Suite Log Management & Analysis platform

XpoLog Center Suite Log Management & Analysis platform XpoLog Center Suite Log Management & Analysis platform Summary: 1. End to End data management collects and indexes data in any format from any machine / device in the environment. 2. Logs Monitoring -

More information

Jenkins on Windows with StreamBase

Jenkins on Windows with StreamBase Jenkins on Windows with StreamBase Using a Continuous Integration (CI) process and server to perform frequent application building, packaging, and automated testing is such a good idea that it s now a

More information

MEDIABURST: SMS GUIDE 1. SMS Guide

MEDIABURST: SMS GUIDE 1. SMS Guide MEDIABURST: SMS GUIDE 1 SMS Guide MEDIABURST: SMS GUIDE 2 Contents Introduction 3 This guide will cover 3 Why use SMS in business? 4 Our products 5 How do I add existing contacts? 6 Who are you sending

More information

Lean Software Development and Kanban

Lean Software Development and Kanban 1 of 7 10.04.2013 21:30 Lean Software Development and Kanban Learning Objectives After completing this topic, you should be able to recognize the seven principles of lean software development identify

More information

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style Introducing Hudson Click to edit Master subtitle style Winston Prakash What is Hudson? Hudson is an open source continuous integration (CI) server. A CI server can do various tasks

More information

Developer Workshop 2015. Marc Dumontier McMaster/OSCAR-EMR

Developer Workshop 2015. Marc Dumontier McMaster/OSCAR-EMR Developer Workshop 2015 Marc Dumontier McMaster/OSCAR-EMR Agenda Code Submission 101 Infrastructure Tools Developing OSCAR Code Submission: Process OSCAR EMR Sourceforge http://www.sourceforge.net/projects/oscarmcmaster

More information

Effektiver Tool-Einsatz

Effektiver Tool-Einsatz Effektiver Tool-Einsatz für Scrum-Projekte im Java-Umfeld Agile Softwareentwicklung Werte, Prinzipien, Methoden und Prozesse 13. OBJEKTspektrum Information Days 29. April 2010, München Gerhard Müller,

More information

Continuous integration @ Keylane

Continuous integration @ Keylane Continuous integration @ Keylane 1 Keylane Software for pension funds In the business since 2005 Working mostly on EU market 2 1 Teams Around 30 developers and project managers Divided in 10 teams Mostly

More information

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS @pascal_dufour & @hrietman INTRODUCTION Pascal Dufour Agile Tester @Pascal_Dufour Harald Rietman Developer Scrum Master @hrietman TYPICAL Experience with

More information

Sreerupa Sen Senior Technical Staff Member, IBM December 15, 2013

Sreerupa Sen Senior Technical Staff Member, IBM December 15, 2013 Sreerupa Sen Senior Technical Staff Member, IBM December 15, 2013 Abstract In this experience report, I ll talk about how we transformed ourselves from a team that does one big bang release a year, to

More information

Version Uncontrolled! : How to Manage Your Version Control

Version Uncontrolled! : How to Manage Your Version Control Version Uncontrolled! : How to Manage Your Version Control Harold Dost III, Raastech ABSTRACT Are you constantly wondering what is in your production environment? Do you have any doubts about what code

More information

AWS CodePipeline. User Guide API Version 2015-07-09

AWS CodePipeline. User Guide API Version 2015-07-09 AWS CodePipeline User Guide AWS CodePipeline: User Guide Copyright 2015 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection

More information

TestOps: Continuous Integration when infrastructure is the product. Barry Jaspan Senior Architect, Acquia Inc.

TestOps: Continuous Integration when infrastructure is the product. Barry Jaspan Senior Architect, Acquia Inc. TestOps: Continuous Integration when infrastructure is the product Barry Jaspan Senior Architect, Acquia Inc. This talk is about the hard parts. Rainbows and ponies have left the building. Intro to Continuous

More information

Getting Started with Kanban Paul Klipp

Getting Started with Kanban Paul Klipp Getting Started with Kanban Paul Klipp kanbanery 2 Contents 3/ Getting Started with Kanban 4/ What is Kanban? 7/ Using Kanban Does kanban apply to me? How can it help me? What will I have to change? 10/

More information

CONTINUOUS INTEGRATION. Introduction

CONTINUOUS INTEGRATION. Introduction CONTINUOUS INTEGRATION Introduction Continuous Integration is the topic of quite a bit of buzz in Silicon Valley and beyond. And with good reason: continuous integration helps teams ship better software

More information

Continuous???? Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Continuous???? Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. ???? 1 Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Application Delivery is Accelerating Surge in # of releases per app

More information

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software Systems @georgebarnett

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software Systems @georgebarnett Automated performance testing using Maven & JMeter George Barnett, Atlassian Software Systems @georgebarnett Create controllable JMeter tests Configure Maven to create a repeatable cycle Run this build

More information

Paul Barham (pabarham@microsoft.com) Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

Paul Barham (pabarham@microsoft.com) Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java Paul Barham (pabarham@microsoft.com) Program Manager - Java David Staheli (dastahel@microsoft.com) Software Development Manager - Java to empower every person and every organization on the planet to achieve

More information

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Sushant G.Gaikwad Department of Computer Science and engineering, Walchand College of Engineering, Sangli, India. M.A.Shah

More information

Automated testing and continuous integration

Automated testing and continuous integration Technical white paper Automated testing and continuous integration Build and test your software at the same time Table of contents Introduction 2 Who should read this document? 2 Build managers 2 Developers

More information

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

Jenkins World Tour 2015 Santa Clara, CA, September 2-3 1 Jenkins World Tour 2015 Santa Clara, CA, September 2-3 Continuous Delivery with Container Ecosystem CAD @ Platform Equinix - Overview CAD Current Industry - Opportunities Monolithic to Micro Service

More information

The Deployment Production Line

The Deployment Production Line The Deployment Production Line Jez Humble, Chris Read, Dan North ThoughtWorks Limited jez.humble@thoughtworks.com, chris.read@thoughtworks.com, dan.north@thoughtworks.com Abstract Testing and deployment

More information

Simple Tips to Improve Drupal Performance: No Coding Required. By Erik Webb, Senior Technical Consultant, Acquia

Simple Tips to Improve Drupal Performance: No Coding Required. By Erik Webb, Senior Technical Consultant, Acquia Simple Tips to Improve Drupal Performance: No Coding Required By Erik Webb, Senior Technical Consultant, Acquia Table of Contents Introduction................................................ 3 Types of

More information

Build management & Continuous integration. with Maven & Hudson

Build management & Continuous integration. with Maven & Hudson Build management & Continuous integration with Maven & Hudson About me Tim te Beek tim.te.beek@nbic.nl Computer science student Bioinformatics Research Support Overview Build automation with Maven Repository

More information

A: We really embarrassed ourselves last night at that business function.

A: We really embarrassed ourselves last night at that business function. Dialog: VIP LESSON 049 - Future of Business A: We really embarrassed ourselves last night at that business function. B: What are you talking about? A: We didn't even have business cards to hand out. We

More information

Continuous Integration: A case study

Continuous Integration: A case study Continuous Integration: A case study Vaibhav Kothari Talentica Software (I) Pvt ltd 1 Abstract Developer s dilemma QA s dilemma Continuous Integration? Case study What is accomplished? Benefits of CI Recommended

More information

The Deployment Pipeline

The Deployment Pipeline The Deployment Pipeline (Extending the range of Continuous Integration) Dave Farley 2007 Continuous Build A core practice in Agile development projects is the use of Continuous Integration. CI is a process

More information

23 Ways to Sell More Using Social Media Marketing

23 Ways to Sell More Using Social Media Marketing 23 Ways to Sell More Using Social Media Marketing 1. Be visible Don't just tweet/post once or twice and think your job is done. Get online and speak to people. Network and let your target market get to

More information

A Simple Guide to Churn Analysis

A Simple Guide to Churn Analysis A Simple Guide to Churn Analysis A Publication by Evergage Introduction Thank you for downloading A Simple Guide to Churn Analysis. The goal of this guide is to make analyzing churn easy, meaning you wont

More information

Upping the game. Improving your software development process

Upping the game. Improving your software development process Upping the game Improving your software development process John Ferguson Smart Principle Consultant Wakaleo Consulting Email: john.smart@wakaleo.com Web: http://www.wakaleo.com Twitter: wakaleo Presentation

More information

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison Version control with git and GitHub Karl Broman Biostatistics & Medical Informatics, UW Madison kbroman.org github.com/kbroman @kwbroman Course web: kbroman.org/tools4rr Slides prepared with Sam Younkin

More information

Introduction. What is RAID? The Array and RAID Controller Concept. Click here to print this article. Re-Printed From SLCentral

Introduction. What is RAID? The Array and RAID Controller Concept. Click here to print this article. Re-Printed From SLCentral Click here to print this article. Re-Printed From SLCentral RAID: An In-Depth Guide To RAID Technology Author: Tom Solinap Date Posted: January 24th, 2001 URL: http://www.slcentral.com/articles/01/1/raid

More information

Glassbox: Open Source and Automated Application Troubleshooting. Ron Bodkin Glassbox Project Leader ron.bodkin@glasssbox.com

Glassbox: Open Source and Automated Application Troubleshooting. Ron Bodkin Glassbox Project Leader ron.bodkin@glasssbox.com Glassbox: Open Source and Automated Application Troubleshooting Ron Bodkin Glassbox Project Leader ron.bodkin@glasssbox.com First a summary Glassbox is an open source automated troubleshooter for Java

More information

Achieving Rolling Updates & Continuous Deployment with Zero Downtime

Achieving Rolling Updates & Continuous Deployment with Zero Downtime +1 800-825-0212 WHITEPAPER Achieving Rolling Updates & Continuous Deployment with Zero Downtime Get started with ANSIBLE now: /get-started-with-ansible or contact us for more information: info@ INTRODUCTION

More information

WINDOWS AZURE EXECUTION MODELS

WINDOWS AZURE EXECUTION MODELS WINDOWS AZURE EXECUTION MODELS Windows Azure provides three different execution models for running applications: Virtual Machines, Web Sites, and Cloud Services. Each one provides a different set of services,

More information

Why Alerts Suck and Monitoring Solutions need to become Smarter

Why Alerts Suck and Monitoring Solutions need to become Smarter An AppDynamics Business White Paper HOW MUCH REVENUE DOES IT GENERATE? Why Alerts Suck and Monitoring Solutions need to become Smarter I have yet to meet anyone in Dev or Ops who likes alerts. I ve also

More information

Penetration Testing Walkthrough

Penetration Testing Walkthrough Penetration Testing Walkthrough Table of Contents Penetration Testing Walkthrough... 3 Practical Walkthrough of Phases 2-5... 4 Chose Tool BackTrack (Armitage)... 5 Choose Target... 6 Phase 2 - Basic Scan...

More information

Testing Rails. by Josh Steiner. thoughtbot

Testing Rails. by Josh Steiner. thoughtbot Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................

More information

Title: Continuous Delivery and Continuous Integration. Conference: 13 th Annual Software Testing Conference 2013

Title: Continuous Delivery and Continuous Integration. Conference: 13 th Annual Software Testing Conference 2013 1 Title: Continuous Delivery and Continuous Integration Conference: 13 th Annual Software Testing Conference 2013 Author: Tanvi Dharmarha Email: tbajajdh@adobe.com Organization Name: Adobe Systems Inc

More information

Jenkins and Chef Infrastructure CI and Application Deployment

Jenkins and Chef Infrastructure CI and Application Deployment Jenkins and Chef Infrastructure CI and Application Deployment Dan Stine Copyright Clearance Center www.copyright.com June 18, 2014 #jenkinsconf About Me! Software Architect! Library & Framework Developer!

More information

5 Frustrating Web Hosting Tasks You Will NEVER Be Forced To Do - EVER After You Move Your Web Hosting To The Anchor Partner Program

5 Frustrating Web Hosting Tasks You Will NEVER Be Forced To Do - EVER After You Move Your Web Hosting To The Anchor Partner Program PARTNER PROGRAM Why join? 5 Frustrating Web Hosting Tasks You Will NEVER Be Forced To Do - EVER After You Move Your Web Hosting To The Anchor Partner Program Providing web-hosting for your clients is a

More information

Continuous Integration. Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK

Continuous Integration. Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK Continuous Integration Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK 1 Plan 1. Why OME needs Continuous Integration? 1. OME

More information

Using Apache Derby in the real world

Using Apache Derby in the real world Apache Derby a 100% Java Open Source RDBMS Using Apache Derby in the real world Victorian AJUG, Australia 28 th August 2008 Chris Dance Chris Dance Introduction Director and Found of PaperCut Software

More information

SAS on a Mac? Yes! Jack Hamilton, Kaiser Foundation Health Plan, Oakland, California

SAS on a Mac? Yes! Jack Hamilton, Kaiser Foundation Health Plan, Oakland, California SAS on a Mac? Yes! Jack Hamilton, Kaiser Foundation Health Plan, Oakland, California SAS ON A MAC? In recent years, Apple Computer has progressed from being a niche player, whose products were used only

More information

17 of the Internet s Best Banner Ads. Love em or Hate em They Do Work!

17 of the Internet s Best Banner Ads. Love em or Hate em They Do Work! Love em or Hate em They Do Work! Banner Ads What are they? Ever since the Internet started to take off in the mid 90 s, banner ads have been an acceptable way of advertising on the Web. Banner ads come

More information

Module 8 Increase Conversions by 29% for EACH Branch through Technology! What You'll Learn in this Module...

Module 8 Increase Conversions by 29% for EACH Branch through Technology! What You'll Learn in this Module... Module 8 Increase Conversions by 29% for EACH Branch through Technology! What You'll Learn in this Module... In Module 8 you re going to learn about a technology that can raise conversions by 29% for every

More information

What the heck is that bar over there?

What the heck is that bar over there? This is Theme Metro What the heck is that bar over there? Design -> Far right -> Check Hide Background Graphics Voila! Thomas Ferris Nicolaisen (Objectware) presents i. Some real-life besserwissening ii.

More information

DJANGOCODERS.COM THE PROCESS. Core strength built on healthy process

DJANGOCODERS.COM THE PROCESS. Core strength built on healthy process DJANGOCODERS.COM THE PROCESS This is a guide that outlines our operating procedures and coding processes. These practices help us to create the best possible software products while ensuring a successful

More information

Version Control with. Ben Morgan

Version Control with. Ben Morgan Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove

More information

Winning the Battle against Automated Testing. Elena Laskavaia March 2016

Winning the Battle against Automated Testing. Elena Laskavaia March 2016 Winning the Battle against Automated Testing Elena Laskavaia March 2016 Quality Foundation of Quality People Process Tools Development vs Testing Developers don t test Testers don t develop Testers don

More information

Agile SCM Build Management for an Agile Team. Some Definitions. Building and Agility. Steve Berczuk, Brad Appleton, and Steve Konieczka October 2003

Agile SCM Build Management for an Agile Team. Some Definitions. Building and Agility. Steve Berczuk, Brad Appleton, and Steve Konieczka October 2003 Agile SCM Management for an Agile Team Steve Berczuk, Brad Appleton, and Steve Konieczka October 2003 A number of people work together to develop a software application. The application is useful only

More information

Okay, good. He's gonna release the computers for you and allow you to log into NSLDS.

Okay, good. He's gonna release the computers for you and allow you to log into NSLDS. Welcome to the NSLDS hands-on session. My name is Larry Parker. I'm from the Department of Education NSLDS. Today, I have with me a whole host of folks, so we're gonna make sure that if you have any questions

More information

A central continuous integration platform

A central continuous integration platform A central continuous integration platform Agile Infrastructure use case and future plans Dec 5th, 2014 1/3 The Agile Infrastructure Use Case By Stefanos Georgiou What? Development practice Build better

More information

Best Overall Use of Technology. Jaspersoft

Best Overall Use of Technology. Jaspersoft Best Overall Use of Technology Jaspersoft Kerstin Klein Manager, Engineering Processes/ Infrastructure, Jaspersoft From requirements to release QA centric development From Requirement to Release QA-Centric

More information

TeamCity A Professional Solution for Delivering Quality Software, on Time

TeamCity A Professional Solution for Delivering Quality Software, on Time TeamCity A Professional Solution for Delivering Quality Software, on Time Vaclav Pech Senior Software Developer JetBrains, Inc. About Us Vaclav Pech Professional software developer for 9 years IntelliJ

More information

Module 6.3 Client Catcher The Sequence (Already Buying Leads)

Module 6.3 Client Catcher The Sequence (Already Buying Leads) Module 6.3 Client Catcher The Sequence (Already Buying Leads) Welcome to Module 6.3 of the Client Catcher entitled The Sequence. I recently pulled over 300 of the local lead generation explosion members

More information

MS Learn Online Feature Presentation Managing Symptoms: Vision Nancy Holland, Ed.D, RN, MSCN. Tom>> Welcome to MS Learn Online, I m Tom Kimball

MS Learn Online Feature Presentation Managing Symptoms: Vision Nancy Holland, Ed.D, RN, MSCN. Tom>> Welcome to MS Learn Online, I m Tom Kimball Page 1 MS Learn Online Feature Presentation Managing Symptoms: Vision Nancy Holland, Ed.D, RN, MSCN Tom>> Welcome to MS Learn Online, I m Tom Kimball Tracey>> And I m Tracey Kimball. People living with

More information

My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies

My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies About the author My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies I am going to take you through the journey that my team embarked on as we looked for ways to automate processes,

More information

Content. Development Tools 2(63)

Content. Development Tools 2(63) Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)

More information

INTRODUCING CONTINUOUS DELIVERY IN THE ENTERPRISE

INTRODUCING CONTINUOUS DELIVERY IN THE ENTERPRISE INTRODUCING CONTINUOUS DELIVERY IN THE ENTERPRISE The situation Today Not too long ago customers and prospects had to find a computer to visit your site. In stark contrast with just a few years ago, this

More information

MITI Coding: Transcript 5

MITI Coding: Transcript 5 1 MITI Coding: Transcript 5 T: Randy, thanks for coming in today. I wonder if it would be ok if I shared just a few facts with you that I ve gotten from the intake worker. And then we can go on to talk

More information

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Nexus Professional Whitepaper. Repository Management: Stages of Adoption Sonatype Nexus Professional Whitepaper Repository Management: Stages of Adoption Adopting Repository Management Best Practices SONATYPE www.sonatype.com sales@sonatype.com +1 301-684-8080 12501 Prosperity

More information

Database Build and Release will get started soon

Database Build and Release will get started soon #sqlinthecity Database Build and Release will get started soon Ernest Hwang Principal Software Engineer, Practice Fusion http://practicefusion.com/careers/ While you re waiting, check out SQL Prompt #sqlinthecity

More information

The Importance of Continuous Integration for Quality Assurance Teams

The Importance of Continuous Integration for Quality Assurance Teams The Importance of Continuous Integration for Quality Assurance Teams Without proper implementation, a continuous integration system will go from a competitive advantage for a software quality assurance

More information