Best Practices and Pitfalls for Building Products out of OpenDaylight

Size: px
Start display at page:

Download "Best Practices and Pitfalls for Building Products out of OpenDaylight"

Transcription

1 Best Practices and Pitfalls for Building Products out of OpenDaylight Colin Dixon, TSC Chair, OpenDaylight Principal Software Engineer, Brocade Devin Avery, Sr Staff Software Engineer, Brocade

2 Agenda Agenda / Introduc5on Common Pi8alls Best Prac5ces Future Considera5ons Ques5ons

3 Our experience productizing OpenDaylight Brocade has released mul5ple versions of a controller for Brocade So far, based on Helium- SR1, Helium- SR2, and Helium- SR3 Rapidly approaching first Lithium- based release Running in produc5on with real customers We ve been successful in doing this even when incorpora5ng upstream changes Share our experiences - - pi8alls and successes

4 Common Pitfalls

5 wrong One way to build a release based on OpenDaylight Clone the OpenDaylight code (its public arer all!) Modify the code to customize / brand Add new code into the exis5ng projects for your proprietary logic Run the build Test, Ship and Sell it! Great, that was easy This is the first thing nearly everyone does

6 How (not) to build a custom fabric app and host tracker MyFabric App Flow Programming Host Tracking + MyFabric Δs Topology

7 This doesn t work! merely By cloning OpenDaylight code you have essen7ally forked the code! Synchronizing code with upstream can be difficult Your changes may not be accepted upstream (and you may not want them upstream) Pulling changes from upstream is likely to result in constant merge conflicts To avoid this pain, sync with upstream less oren => increases pain => even less oren Results in lower interac5on in community since code base is out of sync Don t get bug fixes, security patches, etc. OpenDaylight source code is licensed under EPL may put your proprietary changes at risk* *Note: we are not lawyers. Be sure to discuss any legal / licensing issues with your legal team

8 In Practice, this forking results in permanent divergence from upstream OpenDaylight That is, you no longer have an OpenDaylight-based product in most of the ways you and your customers care about.

9 Best Practices

10 Treat OpenDaylight as a Third-party Don t Download the OpenDaylight Source Code! Treat OpenDaylight as a collec5on read- only third- party ar5facts Reference ODL ar5facts, don t build them Leverage maven to access, maintain and manage your third- party dependencies for you For example: We don t recompile the basic java.u5l.arraylist Java class, we reference/use it We certainly don t modify the java.u5l.arraylist source code locally and build it

11 But OpenDaylight might not be a Third-party If you have modify OpenDaylight source code Push the changes upstream Wait for the next release major or stability Fold the changes in when bump your upstream versions What about cri5cal bugfixes/patches? Push the change upstream cherry-pick the patches into a locally- created clone of the upstream repo Build and release your own version of the relevant bundle(s) Note: this is complex and has risk, avoid it when possible.

12 Make changes to OpenDaylight upstream! We need OpenDaylight s core func5onality to succeed Otherwise our extensions, apps, etc. don t mamer You should Provide bug fixes Discuss new requirements Share implementa5ons, interfaces, extension points, etc. You will benefit from working more closely with upstream Get patches/fixes faster More likely have to have core OpenDaylight meet your needs faster Dave Neary on Swimming Upstream: hmp:// upstream

13 Leverage ODL Modularity / Isolate Proprietary Code Keep your proprietary code isolated to your own repositories, bundles, and Karaf features Leverage OSGi/Karaf/Maven to combine your code with OpenDaylight Leverage YANG/MD- SAL/Config system modularity to load proprietary implementa5ons into the modeling system OSGi is generally friendly with the EPL license* Exis5ng OpenDaylight Bundles Karaf MyFabric *Note: we are not lawyers. Be sure to discuss any legal / licensing issues with your legal team

14 Extension Example: Apps OpenDaylight Code/Bundles Your Proprietary Code/Bundles MyFabric App Flow Programming Host Tracking Topology

15 Extension Example: Replacing a Service Write an OSGi bundle that populates the Host Tracker YANG model OtherFabric App Exis5ng apps/services (either ODL or proprietary) will use the new implementa5on Flow Programming MyHostTracker Topology

16 Extension Example: Modifying an Existing Service OFVendorExt YANG OFVendorExt Java Flow Programming OtherFabric App Host Tracking Topology Augment exis5ng YANG models with new informa5on Provide Java code to extend behavior Requires Java extension points This is possible, but complex, needs thought and work Slides from ONS talk: hmp://colindixon.com/wp- content/uploads/2014/05/ YANG- good- bad- ugly- ONS pdf

17 Stabilize Development Environment No to Snapshots! Don t build using OpenDaylight snapshots! We don t compile against beta versions of the JRE, we compile against released versions! Snapshots are vola5le, and change constantly. Harder to determine if failures are related to your code, or snapshot change Customers want stable ar5facts (won t run on snapshots) If you use snapshots, then your release is 5ed directly to OpenDaylight release If you have 5me, you can compile dev versions of your code against dev versions of OpenDaylight to scope out poten5al issues

18 Stabilize Development Environment No to Snapshots! Ex: Mul5ple Proprietary Releases T = 0 T = 1 T = 2 T = 3 T = 4 Your Company s Ar5facts C- 1 C- 2 C- 3 C- 4 C- 5 Released OpenDaylight Ar5facts (Stable) He He- 1 He- 2 He- 3 He- 4 Ac5ve OpenDaylight Development (Vola5le) He- 1 Dev He- 2 Dev He- 3 Dev He- 4 Dev He- 5 Dev

19 The Result A product which references OpenDaylight ar5facts Proprietary code is isolated, and can be updated without affec5ng OpenDaylight code Also poten5ally avoid legal/licensing pain (ASK YOUR LAWYERS!) Changing versions of OpenDaylight code is just an update to a version in a pom file and some tes5ng Allows for a stable OpenDaylight controller on which to build proprietary implementa5ons

20 Future Considerations

21 Focus more on our users Core Developer App/Bus Log Dev REST API Dev Administrator Operator User Interface REST API App/Business Logic MD- SAL/YANG South Bound Business Logic Meta- tasks, e.g., install & upgrade

22 Focus more on our users Core Developer App/Bus Log Dev REST API Dev Administrator Operator User Interface REST API App/Business Logic MD- SAL/YANG South Bound Business Logic Meta- tasks, e.g., install & upgrade

23 Example: Easy Upgrades for Users Upgrades are a MUST! Customers will not accept a reinstall/reconfigure story Upgrades in OpenDaylight are an ajerthought Upgrades need to be a requirement No tes7ng in OpenDaylight today! Some problem areas / considera5ons Configura5on & Implementa5on stored together We have configura5on op5ons and implementa5ons (classes, etc) defined in the same file. Out- of- the- box and customer configura5ons stored together If customer change behavior then we can no longer safely upgrade (replace) the file. Need to merge! expensive Upgrades not always backwards compa5ble with previous version

24 Example: Minimizing risk of updates Currently everything needs to stay in one major monolithic release Helium- SR1 vs Helium- SR2 Interoperability / co- existence is not tested We find security vulnerability in OpenFlow Patch OpenFlow Rebuild everything Release Helium- SR2 with the fix We ve also pulled in poten5ally changes to everything else and changed all versions Exis5ng OpenDaylight Bundles (He- SR1) MD- SAL (He- SR1) Karaf (All SR1) OF (He- SR1) Exis5ng OpenDaylight Bundles (He- SR2) MD- SAL (He- SR2) Karaf (All SR2) OF (He- SR2) MyFabric w/he- SR1 MyFabric w/he- SR2

25 Example: Minimizing risk of updates We would like to to be able to upgrade only what changed Fix the OF vulnerability, release it, don t have to worry about changes in everything This would allow Faster delivery of fixes and features Lower risk to adop5ng fixes and features Some complexity in tes5ng, compa5bility matrices, avoiding huge versions skew, etc. Karaf (All SR1) MD- SAL (He- SR1) OF (He- SR1) Karaf (SR1 + OF fix) MD- SAL (He- SR1) OF (He- SR1+fix) This is all that changed!! MyFabric w/he- SR1 MyFabric w/he- SR1

26 Conclusions Treat OpenDaylight as a third-party (don t fork it!) Leverage Karaf, Maven, OSGi, YANG, Config system for modularity We still need to do better at user focus Where user is core developer, app developer, REST API developer, operator, administrator, etc. Easy upgrades, more modularity, version compa5bility, etc.

YANG Modeling: The Good, The Bad, and The Ugly

YANG Modeling: The Good, The Bad, and The Ugly YANG Modeling: The Good, The Bad, and The Ugly Colin Dixon Technical Steering Committee Chair, OpenDaylight Principal Engineer, Brocade Talk Outline Really fast intro to the OpenDaylight Architecture What

More information

Con$nuous Integra$on Development Environment. Kovács Gábor

Con$nuous Integra$on Development Environment. Kovács Gábor Con$nuous Integra$on Development Environment Kovács Gábor kovacsg@tmit.bme.hu Before we start anything Select a language Set up conven$ons Select development tools Set up development environment Set up

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

OpenDaylight: Introduction, Lithium and Beyond Colin Dixon

OpenDaylight: Introduction, Lithium and Beyond Colin Dixon OpenDaylight: Introduction, Lithium and Beyond Colin Dixon Technical Steering Committee Chair, OpenDaylight Senior Principal Engineer, Brocade Some content from: David Meyer, Neela Jaques, and Kevin Woods

More information

Con$nuous Deployment with Docker Andrew Aslinger. Oct

Con$nuous Deployment with Docker Andrew Aslinger. Oct Con$nuous Deployment with Docker Andrew Aslinger Oct 9. 2014 Who is Andrew #1 So#ware / Systems Architect for OpenWhere Passion for UX, Big Data, and Cloud/DevOps Previously Designed and Implemented automated

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

Practical C Programming

Practical C Programming Practical C Programming Advanced Preprocessor # - quotes a string ## - concatenates things #pragma h3p://gcc.gnu.org/onlinedocs/cpp/pragmas.html #warn #error Defined Constants Macro FILE LINE DATE TIME

More information

MD-SAL APPLICATION AWARE DATA STORE (AADS)

MD-SAL APPLICATION AWARE DATA STORE (AADS) MD-SAL APPLICATION AWARE DATA STORE (AADS) Chandramouli Venkataraman (chandramouli.venkataraman@ericsson.com) MD-SAL - Today Controller Platform APP MD-SAL Request Routing Notification Routing DOM tree

More information

NETCONF WG IETF 96 (Berlin)

NETCONF WG IETF 96 (Berlin) Zero Touch Provisioning for NETCONF/RESTCONF Call Home dra>-ie@-netconf-zerotouch-09 NETCONF WG IETF 96 (Berlin) Recap At IETF 95, we reviewed a significantly updated dra> and its 4 open issues. 2 issues

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

Lab 08. Command Line and Git

Lab 08. Command Line and Git Lab 08 Command Line and Git Agenda Final Project Information All Things Git! Make sure to come to lab next week for Python! Final Projects Connect 4 Arduino ios Creative AI Being on a Team - How To Maximize

More information

Version Control System GIT

Version Control System GIT Version Control System GIT Version Contol System Version (revision) control systems are software that help you track changes you make in your code over time. As you edit to your code, you tell the version

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

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control: How can 4 (or 4000) developers work on a product at once? Revision Control Revision Control Revision Control: Also called version control, source control, software configuration management. Motivation:

More information

Best Prac:ces + New Feature Overview for the Latest Version of Splunk Deployment Server

Best Prac:ces + New Feature Overview for the Latest Version of Splunk Deployment Server Copyright 2013 Splunk Inc. Best Prac:ces + New Feature Overview for the Latest Version of Splunk Deployment Server Gen: Zaimi Professional Services #splunkconf Legal No:ces During the course of this presenta:on,

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

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

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

SECTION 1: CODE REASONING + VERSION CONTROL

SECTION 1: CODE REASONING + VERSION CONTROL SECTION 1: CODE + OUTLINE Introductions Code Reasoning Forward Reasoning Backward Reasoning Weaker vs. Stronger statements Version control CSE 331 Summer 2018 slides borrowed and adapted from Alex Mariakis

More information

SECTION 1: CODE REASONING + VERSION CONTROL

SECTION 1: CODE REASONING + VERSION CONTROL SECTION 1: CODE + OUTLINE Introductions Code Reasoning Forward Reasoning Backward Reasoning Weaker vs. Stronger statements Version control CSE 331 Spring 2018 slides borrowed and adapted from Alex Mariakis

More information

Scaling MongoDB: Avoiding Common Pitfalls. Jon Tobin Senior Systems

Scaling MongoDB: Avoiding Common Pitfalls. Jon Tobin Senior Systems Scaling MongoDB: Avoiding Common Pitfalls Jon Tobin Senior Systems Engineer Jon.Tobin@percona.com @jontobs www.linkedin.com/in/jonathanetobin Agenda Document Design Data Management Replica3on & Failover

More information

ONOS YANG Tools. Thomas Vachuska Open Networking Foundation

ONOS YANG Tools. Thomas Vachuska Open Networking Foundation ONOS YANG Tools Thomas Vachuska Open Networking Foundation background SDN and Dynamic Control Dynamic control over forwarding plane behaviour from a logically centralized vantage point Configuration and

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

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week Lab #8 Git Agenda - Final Project Info - All things Git - Make sure to come to lab for Python next week Final Project Low Down The Projects are Creative AI, Arduino, Web Scheduler, ios and Connect 4 Notes

More information

Mike McQuaid INCLUDES 66 TECHNIQUES. Foreword by Scott Chacon MANNING

Mike McQuaid INCLUDES 66 TECHNIQUES. Foreword by Scott Chacon MANNING Mike McQuaid Foreword by Scott Chacon INCLUDES 66 TECHNIQUES MANNING Git in Practice by Mike McQuaid Chapter 13 Copyright 2014 Manning Publications brief contents PART 1 INTRODUCTION TO GIT...1 1 Local

More information

From Continuous Integration To Continuous Delivery With Jenkins

From Continuous Integration To Continuous Delivery With Jenkins From Continuous Integration To Continuous Delivery With Cyrille Le Clerc, Solution Architect, CloudBees About Me @cyrilleleclerc CTO Solu9on Architect Open Source Cyrille Le Clerc DevOps, Infra as Code,

More information

Docker at Lyft Speeding up development Matthew #dockercon

Docker at Lyft Speeding up development Matthew #dockercon Docker at Lyft Speeding up development Matthew Leventi @mleventi #dockercon Lyft Engineering Lyft Engineering Organization - Rapidly growing headcount - Fluid teams - Everyone does devops Technology -

More information

Release for Lithium. George Zhao, Ed Warnicke, Colin Dixon, Mathieu Lemey, Robert Varga, An Ho.

Release for Lithium. George Zhao, Ed Warnicke, Colin Dixon, Mathieu Lemey, Robert Varga, An Ho. Release for Lithium George Zhao, Ed Warnicke, Colin Dixon, Mathieu Lemey, Robert Varga, An Ho Content Opendaylight release (Ed, George) Lessons learned ( Colin, Robert) Proposal for Lithium release Release

More information

Clustering in OpenDaylight

Clustering in OpenDaylight Clustering in OpenDaylight Colin Dixon Technical Steering Committee Chair, OpenDaylight Distinguished Engineer, Brocade Borrowed ideas and content from Jan Medved, Moiz Raja, and Tom Pantelis Multi-Protocol

More information

NFS 3/25/14. Overview. Intui>on. Disconnec>on. Challenges

NFS 3/25/14. Overview. Intui>on. Disconnec>on. Challenges NFS Overview Sharing files is useful Network file systems give users seamless integra>on of a shared file system with the local file system Many op>ons: NFS, SMB/CIFS, AFS, etc. Security an important considera>on

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

USPAS Simulation of Beam and Plasma Systems Steven M. Lund, Jean-Luc Vay, Remi Lehe, Daniel Winklehner and David L. Bruhwiler Lecture: Software Version Control Instructor: David L. Bruhwiler Contributors:

More information

Intro Git Advices. Using Git. Matthieu Moy. Matthieu Moy Git 2016 < 1 / 11 >

Intro Git Advices. Using Git. Matthieu Moy. Matthieu Moy Git 2016 < 1 / 11 > Using Git Matthieu Moy Matthieu.Moy@imag.fr 2016 Matthieu Moy (Matthieu.Moy@imag.fr) Git 2016 < 1 / 11 > Outline 1 Revision Control System 2 Git: Basic Principles 3 Advices Using Git Matthieu Moy (Matthieu.Moy@imag.fr)

More information

The Embedded Linux Problem

The Embedded Linux Problem The Embedded Linux Problem Mark.gross@intel.com Android-Linux kernel Architect February 2013 outline Little about me Intro History Environment Key questions Techniques Moving modules out of tree Summary

More information

NFS. CSE/ISE 311: Systems Administra5on

NFS. CSE/ISE 311: Systems Administra5on NFS CSE/ISE 311: Systems Administra5on Sharing files is useful Overview Network file systems give users seamless integra8on of a shared file system with the local file system Many op8ons: NFS, SMB/CIFS,

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

CSE 331 Software Design & Implementation

CSE 331 Software Design & Implementation CSE 331 Software Design & Implementation Spring 2019 Section 2 Development Tools UW CSE 331 Spring 2019 1 Administrivia HW1 done! HW2 due next Tuesday. HW3 out today, deadline upcoming. Everyone should

More information

Versioning with git. Moritz August Git/Bash/Python-Course for MPE. Moritz August Versioning with Git

Versioning with git. Moritz August Git/Bash/Python-Course for MPE. Moritz August Versioning with Git Versioning with git Moritz August 13.03.2017 Git/Bash/Python-Course for MPE 1 Agenda What s git and why is it good? The general concept of git It s a graph! What is a commit? The different levels Remote

More information

Continuous Integration. Johannes Seitz

Continuous Integration. Johannes Seitz Continuous Integration Johannes Seitz - @Ookami86 What is Continuous Integration? That Jenkins job may be necessary, but not sufficient. Ways of working in a team Integrating often Integrating in a Big

More information

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Version Control September 18, 2018 Thursday (September 20) First in-class exercise On using git (today is a prelude with useful

More information

Welcome to this IBM podcast, Realizing More. Value from Your IMS Compiler Upgrade. I'm Kimberly Gist

Welcome to this IBM podcast, Realizing More. Value from Your IMS Compiler Upgrade. I'm Kimberly Gist IBM Podcast [ MUSIC ] Welcome to this IBM podcast, Realizing More Value from Your IMS Compiler Upgrade. I'm Kimberly Gist with IBM. System z compilers continue to deliver the latest programming interfaces

More information

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering Developing and Testing Java Microservices on Docker Todd Fasullo Dir. Engineering Agenda Who is Smartsheet + why we started using Docker Docker fundamentals Demo - creating a service Demo - building service

More information

Object Oriented Design (OOD): The Concept

Object Oriented Design (OOD): The Concept Object Oriented Design (OOD): The Concept Objec,ves To explain how a so8ware design may be represented as a set of interac;ng objects that manage their own state and opera;ons 1 Topics covered Object Oriented

More information

TCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE

TCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE TCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE Scrum Software Process, Version Control, Git/Github Github, Postman Wes J. Lloyd Institute of Technology University of Washington - Tacoma OBJECTIVES

More information

Where Should the Brain of Your Mobile Application Live?

Where Should the Brain of Your Mobile Application Live? Where Should the Brain of Your Mobile Application Live? Or, how Gilt architected its ios apps so compiled binaries released years ago can keep up with evolving server data models First, an introduction

More information

October 5 th 2010 NANOG 50 Jason Zurawski Internet2

October 5 th 2010 NANOG 50 Jason Zurawski Internet2 October 5 th 2010 NANOG 50 Jason Zurawski Internet2 Overview Introduc=on and Mo=va=on Design & Func=onality Current Deployment Footprint Conclusion 2 10/5/10, 2010 Internet2 Why Worry About Network Performance?

More information

CS 390 Software Engineering Lecture 3 Configuration Management

CS 390 Software Engineering Lecture 3 Configuration Management CS 390 Software Engineering Lecture 3 Configuration Management Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved.

More information

Scala Days 2018 You Are a Scala Contributor

Scala Days 2018 You Are a Scala Contributor Scala Days 2018 You Are a Scala Contributor Seth Tisue @SethTisue Scala team, Lightbend or you can be, if you want to. here s how. you are a Scala contributor If you open an issue If you comment on an

More information

Introduction to OpenDaylight: Current Events and OpenStack Neutron Integration

Introduction to OpenDaylight: Current Events and OpenStack Neutron Integration Introduction to OpenDaylight: Current Events and OpenStack Neutron Integration David Meyer Chief Scientist and SP CTO @Brocade Research Scientist @University of Oregon Chair of the OpenDaylight Board of

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 17, 2018 1 But first, Screen Readers The software you

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

INFO/CS 4302 Web Informa6on Systems

INFO/CS 4302 Web Informa6on Systems INFO/CS 4302 Web Informa6on Systems FT 2012 Week 7: RESTful Webservice APIs - Bernhard Haslhofer - 2 3 4 Source: hmp://www.blogperfume.com/new- 27- circular- social- media- icons- in- 3- sizes/ 5 Plan

More information

a handful of Git workflows for the agilist steven harman twitter: stevenharman

a handful of Git workflows for the agilist steven harman twitter: stevenharman a handful of Git workflows for the agilist steven harman twitter: stevenharman http://stevenharman.net stop worrying and start loving The Git. git is awesome - if you re using it, you know. if not, don

More information

The OpenDaylight Project

The OpenDaylight Project The OpenDaylight Project London ODLUG, November 3 rd, 2014 @OpenDaylightSDN Colin Dixon, @colin_dixon TSC Chair, OpenDaylight Principal Engineer, Brocade What is OpenDaylight OpenDaylight is an Open Source

More information

RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0

RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0 software development simplified RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0 Eric Westfall - Indiana University JASIG 2011 For those who don t know Kuali Rice consists of mul8ple sub-

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

Apache Geronimo 3.0 Deep Dive

Apache Geronimo 3.0 Deep Dive Apache Geronimo 3.0 Deep Dive Kevan Miller, IBM kevan@apache.org Nov. 9, 2011 Who Am I Kevan Miller Employer: IBM Ac@ve at the ASF since 2005: Geronimo (PMC Chair) OpenEJB, Aries, OpenWebBeans Mentoring

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

GETTING STARTED WITH NUODB

GETTING STARTED WITH NUODB February 15, 2017 GETTING STARTED WITH NUODB The elastic SQL database for hybrid cloud applications LOGISTICS AND INTRODUCTIONS 2 + All a&endees are muted + Submit ques3ons in the Q&A box on the right

More information

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU Lab 01 How to Survive & Introduction to Git Web Programming DataLab, CS, NTHU Notice These slides will focus on how to submit you code by using Git command line You can also use other Git GUI tool or built-in

More information

Rewrite or Refactor. When to declare technical bankruptcy. Laura Thomson OSCON - July 22,

Rewrite or Refactor. When to declare technical bankruptcy. Laura Thomson OSCON - July 22, Rewrite or Refactor When to declare technical bankruptcy Laura Thomson (laura@mozilla.com) OSCON - July 22, 2010 1 Technical debt Shipping first time code is like going into debt. A little debt speeds

More information

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson GIT TUTORIAL Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson SCM SOFTWARE CONFIGURATION MANAGEMENT SOURCE CODE MANAGEMENT Generic term for the ability to manage multiple

More information

There Should be One Obvious Way to Bring Python into Production. Sebastian Neubauer

There Should be One Obvious Way to Bring Python into Production. Sebastian Neubauer There Should be One Obvious Way to Bring Python into Production Sebastian Neubauer sebastian.neubauer@blue-yonder.com 1 Agenda What are we talking about and why? Delivery pipeline Dependencies Packaging

More information

CrowdCode: A Platform for Crowd Development

CrowdCode: A Platform for Crowd Development CrowdCode: A Platform for Crowd Development Thomas D. LaToza 1, Eric Chiquillo 1, 2, W. Ben Towne 3, Christian M. Adriano 1, André van der Hoek 1 1 University of California, Irvine 2 Zynga 3 Carnegie Mellon

More information

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues Founda'ons of So,ware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals Define agile as both a set of itera.ve process prac.ces and a business approach for aligning customer needs with

More information

Introduction to OpenDaylight and Hydrogen, Learnings from the Year, and What s Next for OpenDaylight

Introduction to OpenDaylight and Hydrogen, Learnings from the Year, and What s Next for OpenDaylight Introduction to OpenDaylight and Hydrogen, Learnings from the Year, and What s Next for OpenDaylight David Meyer, CTO and Chief Scientist, Brocade dmm@{brocade.com,uoregon.edu,cs.uoregon.edu,1-4-5.net,

More information

OpenDaylight as a Platform for Network Programmability FOSDEM, 3 February Charles Eckel, Cisco DevNet

OpenDaylight as a Platform for Network Programmability FOSDEM, 3 February Charles Eckel, Cisco DevNet OpenDaylight as a Platform for Network Programmability FOSDEM, 3 February 2018 Charles Eckel, Cisco DevNet eckelcu@cisco.com Agenda What is SDN What is OpenDaylight Network programmability Installation

More information

LINUX KERNEL UPDATES FOR AUTOMOTIVE: LESSONS LEARNED

LINUX KERNEL UPDATES FOR AUTOMOTIVE: LESSONS LEARNED LINUX KERNEL UPDATES FOR AUTOMOTIVE: LESSONS LEARNED TOM MCREYNOLDS, VLAD BUZOV AUTOMOTIVE SOFTWARE OCTOBER 15TH, 2013 Why kernel upgrades : the problem Linux Kernel cadence doesn t match Automotive s

More information

Splunk & Git. The joys and pitfalls of managing your Splunk deployment with Git. Copyright 2018

Splunk & Git. The joys and pitfalls of managing your Splunk deployment with Git. Copyright 2018 Splunk & Git The joys and pitfalls of managing your Splunk deployment with Git About me: Lowell Alleman Working with Splunk since 2008 Splunk consulting since 2013 Background Software development Systems

More information

Enterprise Architecture CS 4720 Web & Mobile Systems

Enterprise Architecture CS 4720 Web & Mobile Systems Enterprise Architecture Web & Mobile Systems The Concept of a Web Service Each service is built around a func=on/feature That func=on is surrounded by a specified set of protocols (SOAP, POX, WSDL, WSD,

More information

Sonatype CLM - Release Notes. Sonatype CLM - Release Notes

Sonatype CLM - Release Notes. Sonatype CLM - Release Notes Sonatype CLM - Release Notes i Sonatype CLM - Release Notes Sonatype CLM - Release Notes ii Contents 1 Introduction 1 2 Upgrade instructions 2 3 Sonatype CLM for Bamboo 3 4 Sonatype CLM 1.13 4 5 Sonatype

More information

Revision control. INF5750/ Lecture 2 (Part I)

Revision control. INF5750/ Lecture 2 (Part I) Revision control INF5750/9750 - Lecture 2 (Part I) Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same

More information

A Func'onal Introduc'on. COS 326 David Walker Princeton University

A Func'onal Introduc'on. COS 326 David Walker Princeton University A Func'onal Introduc'on COS 326 David Walker Princeton University Thinking Func'onally In Java or C, you get (most) work done by changing something temp = pair.x; pair.x = pair.y; pair.y = temp; commands

More information

Using Git and GitLab: Your first steps. Maurício

Using Git and GitLab: Your first steps. Maurício Using Git and GitLab: Your first steps Maurício Aniche m.f.aniche@tudelft.nl @mauricioaniche How do you store your files? We used to do like this before But now we do it in a different (and much better)

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

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

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1 GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1 WHO AM I? @tushar_rishav GSoC'16 student contributing to coala - a static code analysis tool, under Python So ware Foundation. A senior

More information

Sonatype CLM - IDE User Guide. Sonatype CLM - IDE User Guide

Sonatype CLM - IDE User Guide. Sonatype CLM - IDE User Guide Sonatype CLM - IDE User Guide i Sonatype CLM - IDE User Guide Sonatype CLM - IDE User Guide ii Contents 1 Introduction 1 2 Installing Sonatype CLM for Eclipse 2 3 Configuring Sonatype CLM for Eclipse 5

More information

Version Control with Git ME 461 Fall 2018

Version Control with Git ME 461 Fall 2018 Version Control with Git ME 461 Fall 2018 0. Contents Introduction Definitions Repository Remote Repository Local Repository Clone Commit Branch Pushing Pulling Create a Repository Clone a Repository Commit

More information

Tutorial 2 GitHub Tutorial

Tutorial 2 GitHub Tutorial TCSS 360: Software Development Institute of Technology and Quality Assurance Techniques University of Washington Tacoma Winter 2017 http://faculty.washington.edu/wlloyd/courses/tcss360 Tutorial 2 GitHub

More information

Better Stories, Better Languages

Better Stories, Better Languages Better Stories, Better Languages What Would Alyssa P. Hacker Do? François-René Rideau, TUNES Project Bay Area Lispers, 2009-12-29 http://fare.tunes.org/computing/bal2009.pdf 1 The Take Home Points Software

More information

Rights Cloud Connector Package Quick Install Guide

Rights Cloud Connector Package Quick Install Guide Rights Cloud Connector Package Quick Install Guide Feb 12, 2018 Version 2.0 SCOPE OF THE DOCUMENT This document illustrates the steps for installation and configuration of the FADEL s AEM Asset Rights

More information

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017 Linux System Management with Puppet, Gitlab, and R10k Scott Nolin, SSEC Technical Computing 22 June 2017 Introduction I am here to talk about how we do Linux configuration management at the Space Science

More information

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

CS 520: VCS and Git. Intermediate Topics Ben Kushigian CS 520: VCS and Git Intermediate Topics Ben Kushigian https://people.cs.umass.edu/~rjust/courses/2017fall/cs520/2017_09_19.zip Our Goal Our Goal (Overture) Overview the basics of Git w/ an eye towards

More information

Baggy bounds checking. Periklis Akri5dis, Manuel Costa, Miguel Castro, Steven Hand

Baggy bounds checking. Periklis Akri5dis, Manuel Costa, Miguel Castro, Steven Hand Baggy bounds checking Periklis Akri5dis, Manuel Costa, Miguel Castro, Steven Hand C/C++ programs are vulnerable Lots of exis5ng code in C and C++ More being wrieen every day C/C++ programs are prone to

More information

csc444h: so(ware engineering I matt medland

csc444h: so(ware engineering I matt medland csc444h: so(ware engineering I matt medland matt@cs.utoronto.ca http://www.cs.utoronto.ca/~matt/csc444 tes2ng top- 10 infrastructure source code control including other types of testing reproducible builds

More information

The Actual Real World at EclipseCon/ALM

The Actual Real World at EclipseCon/ALM Tycho The Actual Real World at EclipseCon/ALM Raise your Hand if you are Sure Addressing the Issues Real World: Tycho Issues World Wide Distributed Teams India, China, Europe, Argentina, United States

More information

Git and Gerrit Workflows. Enforcing Manual & Automated Review

Git and Gerrit Workflows. Enforcing Manual & Automated Review Git and Gerrit Workflows Enforcing Manual & Automated Review Agenda Branching and Workflow Review A Look at Gerrit The Gerrit Workflow Other Workflows Customizing Gerrit Workflow Branching and Workflow

More information

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management CPSC 491 Lecture 19 & 20: Source Code Version Control VCS = Version Control Software SCM = Source Code Management Exercise: Source Code (Version) Control 1. Pretend like you don t have a version control

More information

A L A TEX-oriented intro to Git

A L A TEX-oriented intro to Git A L A TEX-oriented intro to Git the tex part is in the interactive demo not in the slides Danielle Amethyst Brake 22 October - 26 November, 2018 ICERM Semester on Nonlinear Algebra Inter-week collaboration

More information

Software configuration management

Software configuration management Software Engineering Theory Software configuration management Lena Buffoni/ Kristian Sandahl Department of Computer and Information Science 2017-03-27 2 Maintenance Requirements System Design (Architecture,

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

Using GitHub to Share with SparkFun a

Using GitHub to Share with SparkFun a Using GitHub to Share with SparkFun a learn.sparkfun.com tutorial Available online at: http://sfe.io/t52 Contents Introduction Gitting Started Forking a Repository Committing, Pushing and Pulling Syncing

More information

Oracle VM Workshop Applica>on Driven Virtualiza>on

Oracle VM Workshop Applica>on Driven Virtualiza>on Oracle VM Workshop Applica>on Driven Virtualiza>on Simon COTER Principal Product Manager Oracle VM & VirtualBox simon.coter@oracle.com hnps://blogs.oracle.com/scoter November 25th, 2015 Copyright 2014

More information

Microservices with Red Hat. JBoss Fuse

Microservices with Red Hat. JBoss Fuse Microservices with Red Hat Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 JBoss Fuse and 3scale API Management Disclaimer The content set forth herein is Red Hat confidential information

More information

OpenEmbedded in the Real World

OpenEmbedded in the Real World OpenEmbedded in the Real World Scott Murray Senior Staff Software Engineer Konsulko Group http://konsulko.com Who am I? Long time Linux user (over 20 years) Have done Linux software development for over

More information

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan COSC 310: So*ware Engineering Dr. Bowen Hui University of Bri>sh Columbia Okanagan 1 Admin A2 is up Don t forget to keep doing peer evalua>ons Deadline can be extended but shortens A3 >meframe Labs This

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

CLOUD SERVICES. Cloud Value Assessment.

CLOUD SERVICES. Cloud Value Assessment. CLOUD SERVICES Cloud Value Assessment www.cloudcomrade.com Comrade a companion who shares one's ac8vi8es or is a fellow member of an organiza8on 2 Today s Agenda! Why Companies Should Consider Moving Business

More information

New World BGP. Geoff Huston January2010 APNIC

New World BGP. Geoff Huston January2010 APNIC New World BGP Geoff Huston January2010 APNIC 16- bit AS Number Map 16- bit AS Number Map Unadvertised AS Numbers RIR Pool AS Numbers Advertised AS Numbers IANA Pool 16- bit AS Number Map Unadvertised AS

More information