Continuous Integration. Johannes Seitz

Size: px
Start display at page:

Download "Continuous Integration. Johannes Seitz"

Transcription

1 Continuous Integration Johannes Seitz

2 What is Continuous Integration? That Jenkins job may be necessary, but not sufficient.

3 Ways of working in a team Integrating often Integrating in a Big Bang All changes integrated Commits Branches

4 Integrating in a Big Bang e. G. Long-lived feature branching, Some Implementations of Git Flow Pros: Cherry-picking features for release is easy Individual developers keep focussed on their branh Cons: Branch handling complexity Merges can get very complex Uncalculable Stabilisation phases Refactoring may make you unpopular

5 If it hurts, do it more often!

6 Integrating often e. G. Trunk-Based Development, Short lived (1-3 days) feature branching Pros: Merge conflicts are usually small Refactorings are easier Little to no branching overhead There is no chaotic integration phase Features don t rot in abandoned branches Enables continuous delivery Cons: Cherry-picking features for release is harder Individual team members may feel less productive Stories need to be small enough

7

8 The controversy Taste everything [all advice] but only swallow what tastes right for you. Virginia Satir, the Mother of Systemic Family Therapy

9 Techniques for a more frequent integration

10

11 Big Refactorings Continuously integrated

12

13 Don t rip out the old code (yet)!

14 Branch by abstraction

15 Branch by abstraction

16 Branch by abstraction

17 Branch by abstraction

18 Branch by abstraction Pros Compare old vs new in Prod Integrating early and often Refactorings en passant or [Obsolete] Cons Should be used sparsely Works best with whole team approaches

19 Baby steps

20 Unfinished Features Continuously integrated

21 Feature toggles (Changes)

22 Feature toggles (New features) UI Domain DB

23 Feature toggles Pros: Allows canary releases of features Features are integrated all the time Product is always shippable Unfinishedfeatures can easily be tested Cons: Toggles become a form of tech debt unless removed Painful to do if your architecture is a nonmodular mess

24 DB schema changes Continuously integrated

25 Schema versioning Image Source:

26 Schema migrations

27 Schema versioning & migrations Pros: Schemas are versioned Everyone can change the Schema incrementally Schema is in version control Schema is documented Cons: Migrations bear a risk Your DBA may object Adding migrations can cause race conditions that need manual handling

28

29 Library Changes Continuously integrated

30 Version pinning

31 Upgrade pains: Github In total the project took a year and a half to upgrade from Rails 3.2 to Rails 5.2 Upgrading Rails on an application as large and as trafficked as GitHub is no small task Lessons learned: Upgrade early and upgrade often. Source:

32 Version Pinning Pros: Dependency changes don t break your build Cons: You are missing out on features You are missing out on bug fixes Security holes creep in The inevitable update to the latest version will be VERY panful

33 Canary builds

34 Canary Builds Pros: Feedback about integration pains ahead Encourages continuous integration without breaking the build Great for security patches Cons: Two pipelines Works best with comprehensive test suites

35 Service Changes Continuously integrated

36 Consumer-Driven Contracts Consumer Service Provider Consumer

37 Consumer-Driven Contracts Source:

38 Consumer-Driven Contracts Consumer Service Provider Consumer

39 Consumer-Driven Contracts Pros: Producers can tell when they break compatibility Producers can tell which consumers will break Cons: Consumers and producers of services need to collaborate APIs need to expose (some) of their state for good contract tests

40 Thank you for your attention! Johannes Seitz, Blog: printhelloworld.de,

41

42 Bonus Section!

43 Service test doubles Continuously tested

44 Integration Contract Tests Image Source:

45 Shared code Continuously integrated

46 Monorepositories Können gut benutzt werden um Abhängigkeiten zwischen Systemen synchron zu halten.

47 Build breaking commits Rejected before they reach the repo

48 Pre-tested commits

DevOps, Continuous Integration & Automated Testing: Rule Them All

DevOps, Continuous Integration & Automated Testing: Rule Them All DevOps, Continuous Integration & Automated Testing: Rule Them All SAMIR BEHARA Solution Architect EBSCO, Birmingham, AL DATABASE RELEASE? EMAIL THE SCRIPTS & I WILL EXECUTE IT Database Lifecycle Management

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

Hypothesis/Data-Driven Development using Feature nealford.com

Hypothesis/Data-Driven Development using Feature nealford.com Hypothesis/Data-Driven Development using Feature Toggles @neal4d nealford.com Agenda The Trust Engineers http://www.radiolab.org/story/trust-engineers/ Agile 101 "Agile" team Analysis + Design Development

More information

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC Jenkins: A complete solution From Integration to Delivery For HSBC Rajesh Kumar DevOps Architect @RajeshKumarIN www.rajeshkumar.xyz Agenda Why Jenkins? Introduction and some facts about Jenkins Supported

More information

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read) 1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?

More information

Brief overview of the topic and myself the 7 VCS used so far (different one each time), still many unused Acts as a time-machine, and almost as

Brief overview of the topic and myself the 7 VCS used so far (different one each time), still many unused Acts as a time-machine, and almost as Brief overview of the topic and myself the 7 VCS used so far (different one each time), still many unused Acts as a time-machine, and almost as contentious as the text editor This talk tries to address

More information

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS LOGISTICS HW5 due today Project presentation on 12/6 Review for final on 12/6 2 EXAMPLE: NPM https://twitter.com/garybernhardt/status/1067111872225136640

More information

Version Control for PL/SQL

Version Control for PL/SQL Version Control for PL/SQL Customer Spotlight Success Story: Rhenus Logistics, leading logistics service company from Germany, uses this solution. Manages over 20,000 packages Packages are spread over

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

WHITEPAPER. Database DevOps with the Redgate Deployment Suite for Oracle

WHITEPAPER. Database DevOps with the Redgate Deployment Suite for Oracle WHITEPAPER Database DevOps with the Redgate Deployment Suite for Oracle 1 Abstract Building great software is never just about the code. It s also about managing multiple teams, timelines, and frequently

More information

Git Branching for Agile Teams

Git Branching for Agile Teams Git Branching for Agile Teams Why use Git + agile? Git helps agile teams unleash their potential How? Developer First, let s review two pillars of agile 1 Build in narrow vertical slices Waterfall: can

More information

Continuous Delivery of your infrastructure. Christophe

Continuous Delivery of your infrastructure. Christophe Continuous Delivery of your infrastructure Christophe Vanlancker @Carroarmato0 Christophe Vanlancker Internal operations and consulting Mentor Kris couldn t make it so I s/kris/christophe/g Todays Goals

More information

ERICH PRIMEHAMMER REFACTORING

ERICH PRIMEHAMMER REFACTORING ERICH KADERKA @ PRIMEHAMMER REFACTORING WHAT IS REFACTORING? Martin Fowler: Refactoring is a controlled technique for improving the design of an existing code base. Its essence is applying a series of

More information

Automated Testing of Tableau Dashboards

Automated Testing of Tableau Dashboards Kinesis Technical Whitepapers April 2018 Kinesis CI Automated Testing of Tableau Dashboards Abstract Companies make business critical decisions every day, based on data from their business intelligence

More information

Introduction to Git and GitHub. Tools for collaboratively managing your source code.

Introduction to Git and GitHub. Tools for collaboratively managing your source code. Introduction to Git and GitHub Tools for collaboratively managing your source code. This Is Not a Tutorial About Git There are many tutorials online. What is Git? Git is a collaborative, distributed version

More information

Visualizing Git Workflows. A visual guide to 539 workflows

Visualizing Git Workflows. A visual guide to 539 workflows Visualizing Git Workflows A visual guide to 539 workflows Table of Contents Notation Collaboration Without Review or Branches Merge Conflicts Requesting Code Review Collaboration with Multiple Branches

More information

Daniel Lynn Lukas Klose. Technical Practices Refresher

Daniel Lynn Lukas Klose. Technical Practices Refresher Daniel Lynn Lukas Klose Technical Practices Refresher agile principle #3 Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. agile

More information

Review Version Control Concepts

Review Version Control Concepts Review Version Control Concepts SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Managing change is a constant aspect of software development.

More information

Improving Your Life With Git

Improving Your Life With Git Improving Your Life With Git Lizzie Lundgren elundgren@seas.harvard.edu Graduate Student Forum 26 April 2018 Scenarios to Avoid My code was deleted from 90-day retention! Crap, I can t remember what I

More information

Refactoring Without Ropes

Refactoring Without Ropes Refactoring Without Ropes Roger Orr OR/2 Limited The term 'refactoring' has become popular in recent years; but how do we do it safely in actual practice? Refactoring... Improving the design of existing

More information

Version Control for PL/SQL

Version Control for PL/SQL Version Control for PL/SQL What is the problem? How did we solve it? Implementation Strategies Demo!! Customer Spotlight Success Story: (In other words, this really works. :-) ) Rhenus Logistics, leading

More information

Keeping Rails on the Tracks

Keeping Rails on the Tracks Keeping Rails on the Tracks Mikel Lindsaar @raasdnil lindsaar.net Working in Rails & Ruby for 5+ Years http://lindsaar.net/ http://stillalive.com/ http://rubyx.com/ On the Rails? What do I mean by on the

More information

CONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010

CONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010 PACIFIC NW 28TH ANNUAL SOFTWARE QUALITY CONFERENCE October 18th 19th, 2010 Conference Paper Excerpt from the CONFERENCE PROCEEDINGS Permission to copy, without fee, all or part of this material, except

More information

Branching and Merging

Branching and Merging Branching and Merging SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Version control branching supports the ability to manage software

More information

ETOOMANYCATS. How we produce OpenStack

ETOOMANYCATS. How we produce OpenStack ETOOMANYCATS How we produce OpenStack OpenStack is large & growing 90+ code repositories.6+ MLOC (+30 %) Stats by OpenStack is complex 9 integrated projects Each project is a framework OpenStack is painful

More information

Lecture 6 Remotes. Sign in on the attendance sheet!

Lecture 6 Remotes. Sign in on the attendance sheet! Lecture 6 Remotes Sign in on the attendance sheet! Midterm Review Everyone did great! What We ve Learned So Far Creating and cloning repositories git init, git clone Linear commit histories and diffs git

More information

You Can t Move Forward Unless You Can Roll Back. By: Michael Black

You Can t Move Forward Unless You Can Roll Back. By: Michael Black You Can t Move Forward Unless You Can Roll Back By: Michael Black The VP of Sales walks in and tells you that your largest and oldest client wants to pay for a custom modification. But here s the clincher,

More information

1Copyright 2012, Oracle and/or its affiliates. All rights reserved.

1Copyright 2012, Oracle and/or its affiliates. All rights reserved. 1Copyright 2012, Oracle and/or its affiliates. All rights reserved. Patterns of SaaS: Database refactoring Leonid Igolnik, Marcin Burlinski Insert Picture Here The following is intended to outline our

More information

Continuous Testing at Scale

Continuous Testing at Scale Continuous Testing at Scale TAPOST Conference October 12th 2016, Riga dmitry@buzdin.lv @buzdin Dmitry Buzdin Introduction to Continuous Testing Continuous Delivery Get changes to production in fast and

More information

Con. Continuous Integration

Con. Continuous Integration Con Continuous Integration Table of Contents Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 What is Continuous Integration (CI)? The benefits of CI The CI landscape Why should I care about CI? Mock Scenario +

More information

How technical excellence helps in LeSS adoption. Anton Bevzuk Dodo Pizza Chief Agile Officer

How technical excellence helps in LeSS adoption. Anton Bevzuk Dodo Pizza Chief Agile Officer How technical excellence helps in LeSS adoption Anton Bevzuk Dodo Pizza Chief Agile Officer The plan Why engineering practices? Deep dive into Pair Programming Test Automation Continuous Integration Q&A

More information

Expert Guidance on Migrating from Magento 1 to Magento 2

Expert Guidance on Migrating from Magento 1 to Magento 2 Expert Guidance on Migrating from Magento 1 to Magento 2 Gordon Knoppe Business Solutions Architect, ECG James Cowie Technical Architect, ECG Expert Consulting Group ECG Charter: To provide expert insight,

More information

AEM Code Promotion and Content Synchronization Best Practices

AEM Code Promotion and Content Synchronization Best Practices AEM Code Promotion and Content Synchronization Best Practices Ian Reasor, Technical Architect, Adobe Partner Experience Introduction When considering the movement of content through environments in an

More information

Pipeline as Code for your IAC. Kris

Pipeline as Code for your IAC. Kris Pipeline as Code for your IAC Kris Buytaert @krisbuytaert Kris Buytaert I used to be a Dev, Then Became an Op Chief Trolling Officer and Open Source Consultant @inuits.eu Everything is an effing DNS Problem

More information

Beyond git add/commit/push

Beyond git add/commit/push add Working dir commit Staging area push Local Remote Based on original version made by Alexis López @aa_lopez About us @tuxtor @edivargas jorgevargas.mx github.com/tuxtor Review traditionals commands

More information

Research Faculty Summit Systems Fueling future disruptions

Research Faculty Summit Systems Fueling future disruptions Research Faculty Summit 2018 Systems Fueling future disruptions Continuous Delivery for Bing UX Chap Alex Engineering Manager, Microsoft Core Bing-wide Principles Live-site quality is paramount Constant

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Christian Kroiß (based on slides by Dr. Andreas Schroeder) 18.04.2013 Christian Kroiß Outline Lecture 1 I. Eclipse II. Redmine, Jenkins,

More information

Git, the magical version control

Git, the magical version control Git, the magical version control Git is an open-source version control system (meaning, it s free!) that allows developers to track changes made on their code files throughout the lifetime of a project.

More information

Pulling the Plug on Your Mainframe. Automated Refactoring. Colorado s Automated Child Support Enforcement System

Pulling the Plug on Your Mainframe. Automated Refactoring. Colorado s Automated Child Support Enforcement System 1 Pulling the Plug on Your Mainframe Automated Refactoring Colorado s Automated Child Support Enforcement System 2 Workshop Speakers Susie Gager, Colorado Child Support Services Craig Carson, Colorado

More information

Seven Habits of Highly Effective Jenkins Users. Andrew Bayer Cloudera OSCON Java 2011

Seven Habits of Highly Effective Jenkins Users. Andrew Bayer Cloudera OSCON Java 2011 Seven Habits of Highly Effective Jenkins Users Andrew Bayer Cloudera OSCON Java 2011 Introduction Who am I? I'm a build guy, with a focus on Java builds. I've been using and working on Jenkins since early

More information

git-flow Documentation

git-flow Documentation git-flow Documentation Release 1.0 Johan Cwiklinski Jul 14, 2017 Contents 1 Presentation 3 1.1 Conventions............................................... 4 1.2 Pre-requisites...............................................

More information

Development Practice and Quality Assurance. Version Control. The first thing you should be told when you start a new job - Steve Freeman

Development Practice and Quality Assurance. Version Control. The first thing you should be told when you start a new job - Steve Freeman 302 Development Practice and Quality Assurance In this section we will talk about and demonstrate technical practices that modern development teams commonly undertake in order to deliver software smoothly

More information

Lab Objective. Lab Assignment. Downloads and Installation

Lab Objective. Lab Assignment. Downloads and Installation How I Start Working with Git: Git Lab 01 Adapted from: (1) https://github.com/quantstack/xeus-cling (2) https://code.visualstudio.com/docs/languages/cpp Lab Objective 1. Installing and using VS Code 2.

More information

Organising benchmarking LLVM-based compiler: Arm experience

Organising benchmarking LLVM-based compiler: Arm experience Organising benchmarking LLVM-based compiler: Arm experience Evgeny Astigeevich LLVM Dev Meeting April 2018 2018 Arm Limited Terminology Upstream: everything on llvm.org side. Downstream: everything on

More information

Intro to Github. Jessica Young

Intro to Github. Jessica Young Intro to Github Jessica Young jyoung22@nd.edu GitHub Basics 1. Installing GitHub and Git 2. Connecting Git and GitHub 3. Why use Git? Installing GitHub If you haven t already, create an account on GitHub

More information

Tracking FreeBSD in a Commercial Environment

Tracking FreeBSD in a Commercial Environment Tracking FreeBSD in a Commercial Environment imp@freebsd.org The FreeBSD Project BSDCan 2009 Ottawa, Canada 8 May 2009 Outline Background and Context 1 Background and Context 2 Theory Reality 3 Upgrading

More information

A Survivor's Guide to Contributing to the Linux Kernel

A Survivor's Guide to Contributing to the Linux Kernel A Survivor's Guide to Contributing to the Linux Kernel Javier Martinez Canillas Samsung Open Source Group javier@osg.samsung.com Samsung Open Source Group 1 Agenda Motivation Linux development process

More information

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one. Multiple-Choice Questions: 1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.) a. update b. checkout c. clone d. import

More information

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

TM DevOps Use Case. 2017TechMinfy All Rights Reserved Document Details Use Case Name TMDevOps Use Case04 First Draft 10 th Dec 2017 Author Reviewed By Amrendra Kumar Pradeep Narayanaswamy Contents Scope... 4 About Customer... 4 Pre-Conditions/Trigger... 4

More information

Version Control for the 2- Pizza Team: Merge Conflicts (ELLS 9.5) Armando Fox

Version Control for the 2- Pizza Team: Merge Conflicts (ELLS 9.5) Armando Fox Version Control for the 2- Pizza Team: Merge Conflicts (ELLS 9.5) Armando Fox 2012 Armando Fox & David Patterson Licensed under Creative Commons Attribution- NonCommercial-ShareAlike 3.0 Unported License

More information

Continuous Integration / Continuous Testing

Continuous Integration / Continuous Testing Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm) Continuous Integration / Continuous Testing IIC What s SW Integration? Integration

More information

Stylight Apps - Our Learnings. Sebastian Schuon

Stylight Apps - Our Learnings. Sebastian Schuon Stylight Apps - Our Learnings Sebastian Schuon Stylight Make Style happen Millennial Women - 18 to 35 years old - 60% are living in big cities - 55% have a higher education How to create the product that

More information

/ Cloud Computing. Recitation 7 October 10, 2017

/ Cloud Computing. Recitation 7 October 10, 2017 15-319 / 15-619 Cloud Computing Recitation 7 October 10, 2017 Overview Last week s reflection Project 3.1 OLI Unit 3 - Module 10, 11, 12 Quiz 5 This week s schedule OLI Unit 3 - Module 13 Quiz 6 Project

More information

Comparison and merge use-cases from practice with EMF Compare

Comparison and merge use-cases from practice with EMF Compare Comparison and merge use-cases from practice with EMF Compare Laurent Delaigue Philip Langer EMF Compare Working with models Comparing text files EMF Compare Working with models Comparing models EMF Compare

More information

DevOps Anti-Patterns. Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! COPYRIGHT 2019 MANICODE SECURITY

DevOps Anti-Patterns. Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! COPYRIGHT 2019 MANICODE SECURITY DevOps Anti-Patterns Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! 31 Anti-Pattern: Throw it Over the Wall Development Operations 32 Anti-Pattern: DevOps Team Silo

More information

Oracle Corporation OSCON 2012

Oracle Corporation OSCON 2012 1 2012 Oracle Corporation OSCON 2012 Reducing Technical Debt in OpenJDK The Legacy and the Burden Stuart W. Marks Oracle JDK Core Libraries Group 2 2012 Oracle Corporation OSCON 2012 Let s Look At Some

More information

Introduction to Version Control with Git

Introduction to Version Control with Git Introduction to Version Control with Git Dark Cosmology Centre Niels Bohr Institute License All images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0. See

More information

GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX DOWNLOAD EBOOK : GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX PDF

GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX DOWNLOAD EBOOK : GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX PDF Read Online and Download Ebook GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX DOWNLOAD EBOOK : GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX PDF Click link bellow and free register to download ebook: GIT : BEST

More information

2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM)

2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM) Overview Project Management How to manage a project? What is software configuration management? Version control systems Issue tracking systems N. Meng, L. Zhang 2 What is Project Management? Effective

More information

Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved.

Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved. Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS 1 Introduction MOBILE, SOCIAL & CLOUD ARE RAISING CUSTOMER EXPECTATIONS We need a way to deliver software so fast that our

More information

b. Developing multiple versions of a software project in parallel

b. Developing multiple versions of a software project in parallel Multiple-Choice Questions: 1. Which of these terms best describes Git? a. Integrated Development Environment b. Distributed Version Control System c. Issue Tracking System d. Web-Based Repository Hosting

More information

Project Management. Overview

Project Management. Overview Project Management Overview How to manage a project? What is software configuration management? Version control systems Issue tracking systems N. Meng, L. Zhang 2 1 What is Project Management? Effective

More information

Collaborative Design with Oracle SQL Developer Data Modeler

Collaborative Design with Oracle SQL Developer Data Modeler Collaborative Design with Oracle SQL Developer Data Modeler Heli Helskyaho Miracle Finland Oy Jeff Smith Oracle Corp Cary, North Carolina, USA Keywords: SQL Developer, design, architect, model, ERD, diagram,

More information

Data Analysis and Validation for ML

Data Analysis and Validation for ML Analysis and for ML Neoklis (Alkis) Polyzotis, Google Research Collaborators: Eric Breck, Sudip Roy, Steven Whang, Martin Zinkevich Outline ML in production is hard, and a big part of hardness is related

More information

Configuration Management

Configuration Management Configuration Management VIMIMA11 Design and integration of embedded systems Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2017 Configuration

More information

Living and Working with Aging Software. Ralph Johnson. University of Illinois at Urbana-Champaign

Living and Working with Aging Software. Ralph Johnson. University of Illinois at Urbana-Champaign Living and Working with Aging Software Ralph Johnson University of Illinois at Urbana-Champaign rjohnson@illinois.edu Old software gets brittle n n Hard to change Hard to understand Software should be

More information

Software Project (Lecture 4): Git & Github

Software Project (Lecture 4): Git & Github Software Project (Lecture 4): Git & Github Wouter Swierstra, Atze Dijkstra Feb 2016 Wouter Swierstra, Atze Dijkstra Software Project (Lecture 4): Git & Github Feb 2016 1 / 45 Wouter Swierstra, Atze Dijkstra

More information

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav BUILDING MICROSERVICES ON AZURE ~ Vaibhav Gujral @vabgujral About Me Over 11 years of experience Working with Assurant Inc. Microsoft Certified Azure Architect MCSD, MCP, Microsoft Specialist Aspiring

More information

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup Managing Data at Scale: Microservices and Events Randy Shoup @randyshoup linkedin.com/in/randyshoup Background VP Engineering at Stitch Fix o Combining Art and Science to revolutionize apparel retail Consulting

More information

Test Driven Development (TDD)

Test Driven Development (TDD) Test Driven Development (TDD) Test Driven Development Introduction Good programmers write code, great programmers write tests Never, in the field of programming, have so many owed so much to so few - Martin

More information

Advanced Configuration Management with Config Split et al. Fabian Bircher

Advanced Configuration Management with Config Split et al. Fabian Bircher Advanced Configuration Management with Config Split et al. Fabian Bircher fabian@nuvole.org web: nuvole.org twitter: @nuvoleweb Our Distributed Team Nuvole: a 100% Drupal company with a distributed team

More information

Redgate Database Lifecycle Management (DLM) vs SQL Server Data Tools (SSDT)

Redgate Database Lifecycle Management (DLM) vs SQL Server Data Tools (SSDT) Redgate Database Lifecycle Management (DLM) vs SQL Server Data Tools (SSDT) "Once the team saw they could deploy all their database changes error-free at the click of a button, with no more manual scripts,

More information

Change-sets. Basavaraj Karadakal

Change-sets. Basavaraj Karadakal Change-sets Basavaraj Karadakal (bkrdkl@juniper.net) Development environment Component based development model. Developers spread across multiple sites. Over 800 components. Over 500 repos. Repos nested

More information

Lab Exercise Test First using JUnit

Lab Exercise Test First using JUnit Lunds tekniska högskola Datavetenskap, Nov, 2017 Görel Hedin/Ulf Asklund EDAF45 Programvaruutveckling i grupp projekt Lab Exercise Test First using JUnit Goal This lab is intended to demonstrate basic

More information

Software Development I

Software Development I 6.148 Software Development I Two things How to write code for web apps. How to collaborate and keep track of your work. A text editor A text editor A text editor Anything that you re used to using Even

More information

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process? How Can a Tester Cope With the Fast Paced Iterative/Incremental Process? by Timothy D. Korson Version 7.0814 QualSys Solutions 2009 1 Restricted Use This copyrighted material is provided to attendees of

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering V. Working Together Working together Management Process Models Version Management Systems Collaborative Development Environments 3 Parts

More information

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group About SJTUG SJTU *nix User Group SJTU Joyful Techie User Group Homepage - https://sjtug.org/ SJTUG Mirrors - https://mirrors.sjtug.sjtu.edu.cn/ GitHub - https://github.com/sjtug Git Basic Tutorial Zhou

More information

Achieving Continuous Delivery - Micro Services. - Vikram Gadang

Achieving Continuous Delivery - Micro Services. - Vikram Gadang Achieving Continuous Delivery - Micro Services - Vikram Gadang Agenda Starting point Observations and lessons learned Architecting for CD Build pipeline strategy Testing strategy Deployment strategy State

More information

High Availability- Disaster Recovery 101

High Availability- Disaster Recovery 101 High Availability- Disaster Recovery 101 DBA-100 Glenn Berry, Principal Consultant, SQLskills.com Glenn Berry Consultant/Trainer/Speaker/Author Principal Consultant, SQLskills.com Email: Glenn@SQLskills.com

More information

Pragmatic Guide to Git

Pragmatic Guide to Git Extracted from: Pragmatic Guide to Git This PDF file contains pages extracted from Pragmatic Guide to Git, published by the Pragmatic Bookshelf. For more information or to purchase a paperback or PDF copy,

More information

Mistakes to Avoid when Open Sourcing Proprietary Tech

Mistakes to Avoid when Open Sourcing Proprietary Tech Mistakes to Avoid when Open Sourcing Proprietary Tech Open Source Summit North America 2018 @IndeedEng opensource.indeedeng.io Hi, I m Jack. Jack Humphrey, VP Engineering @IndeedEng @youknowjack http://jackhumphrey.me

More information

Seven Key Factors for Agile Testing Success

Seven Key Factors for Agile Testing Success Seven Key Factors for Agile Testing Success Agile Development Practices 2009 Lisa Crispin With Material from Janet Gregory 1 Introduction Tester on agile teams since 2000 My teams: Delight customers Deliver

More information

1

1 1 2 3 6 7 8 9 10 Storage & IO Benchmarking Primer Running sysbench and preparing data Use the prepare option to generate the data. Experiments Run sysbench with different storage systems and instance

More information

Laboratorio di Programmazione. Prof. Marco Bertini

Laboratorio di Programmazione. Prof. Marco Bertini Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each

More information

Using Git to Manage Source RTL

Using Git to Manage Source RTL Using Git to Manage Source RTL CS250 Tutorial 1 (Version 082311) August 24, 2011 Brian Zimmer How to use this tutorial This class will be using Git for all of the labs and projects. This will allow the

More information

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli Microservice Software Engineering II Sharif University of Technology MohammadAmin Fazli Topics Seams Why to split the monolith Tangled Dependencies Splitting and Refactoring Databases Transactional Boundaries

More information

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do? Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.

More information

Seven Habits of Highly Effective Jenkins Users

Seven Habits of Highly Effective Jenkins Users Seven Habits of Highly Effective Jenkins Users What is this talk about? Lessons learned: Maintaining multiple large Jenkins instances. Working on Jenkins itself, and many of its plugins. Seeing customer

More information

Continuous Delivery. Episerver

Continuous Delivery. Episerver Continuous Delivery with EMVP, Systems Developer Alf Nilsson @ @alfnilsson alf.nilsson@netrelations.com github.com/alfnilsson talk.alfnilsson.se Europe s leading kitchen specialist Nobia 1 solution 16

More information

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani - KTH Royal Institute of Technology SEMINAR 2-29 March 2017 Simone Stefani - sstefani@kth.se WHAT IS THIS SEMINAR ABOUT Branching Merging and rebasing Git team workflows Pull requests and forks WHAT IS THIS

More information

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2 Git Git 1 Topics covered Introduction to Git Git workflows Git key concepts Hands on session Branching models Git 2 Introduction to Git Git 3 Version control systems The source files of a project changes

More information

Improved Database Development using SQL Compare

Improved Database Development using SQL Compare Improved Database Development using SQL Compare By David Atkinson and Brian Harris, Red Gate Software. October 2007 Introduction This white paper surveys several different methodologies of database development,

More information

Continuous delivery for native apps. Niels Frydenholm, ebay Classifieds

Continuous delivery for native apps. Niels Frydenholm, ebay Classifieds Continuous delivery for native apps Niels Frydenholm, ebay Classifieds Continuous delivery 3 Continuous delivery Being able to build a release-ready binary at any given time. 3 ebay Classifieds, Denmark

More information

monolith to micro-services? event sourcing can help Doug

monolith to micro-services? event sourcing can help Doug monolith to micro-services? event sourcing can help Doug legacy Client Culture Amp (2012-2015) Rails App (Murmur) Read-write Query Server Read-only DB Our journey Our meandering path to CQRS & event sourcing

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos

HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos Welcome This presentation will discuss Writing user

More information

Reengineering II. Transforming the System

Reengineering II. Transforming the System Reengineering II Transforming the System Recap: Reverse Engineering We have a detailed impression of the current state We identified the important parts We identified reengineering opportunities We have

More information

CASE STUDY IT. Albumprinter Adopting Redgate DLM

CASE STUDY IT. Albumprinter Adopting Redgate DLM CASE STUDY IT Albumprinter Adopting Redgate DLM "Once the team saw they could deploy all their database changes error-free at the click of a button, with no more manual scripts, it spread by word of mouth.

More information

HP Application Lifecycle Management. Upgrade Best Practices

HP Application Lifecycle Management. Upgrade Best Practices HP Application Lifecycle Management Upgrade Best Practices Document Release Date: October 2010 Legal Notices Warranty The only warranties for HP products and services are set forth in the express warranty

More information