Continuum A World Class Continuous Integration Tool Stack 20 May 2015.

Slides:



Advertisements
Similar presentations
This course is designed for system managers/administrators to better understand the SAAZ Desktop and Server Management components Students will learn.
Advertisements

Configuration management
Business Development Suit Presented by Thomas Mathews.
Software engineering tools for web development Jim Briggs 1CASE.
Continuous Integration (CI) By Jim Rush Version Control Build Test Report.
OVERVIEW TEAM5 SOFTWARE The TEAM5 software manages personnel and test data for personal ESD grounding devices. Test and personnel data may be viewed/reported.
HP Quality Center Overview.
MAE Training for User July 8, Agenda Wiki FishEye Crucible Stash.
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
Edoclite and Managing Client Engagements What is Edoclite? How is it used at IU? Development Process?
CCMDB 7.2.
T-FLEX DOCs PLM, Document and Workflow Management.
Visual Studio Team System (VSTS). Richard Hundhausen Author of software development books Microsoft Regional Director Microsoft MVP (VSTS) MCT, MCSD,
ManageEngine TM Applications Manager 8 Monitoring Custom Applications.
CVS Selim Çıracı Ahmet Kara Metin Tekkalmaz. CVS – Open Source Version Control System Outline What are Version Control Systems? And why do we need them?
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Developing the NSDL User Portal Dean Krafft, Cornell University
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Improving Software Quality with Continuous Integration
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
Standards for Technology in Automotive Retail STAR Workbench 1.0 Michelle Vidanes & Dave Carver STAR XML Data Architects, Certified Scrum Masters.
Professional Informatics & Quality Assurance Software Lifecycle Manager „Tools that are more a help than a hindrance”
Introduction to Continuous Integration Mike Roberts.
Continuous Integration Demonstration. Agenda 1.Continuous Integration Basics 2.Live Demonstration 3.Bamboo Concepts 4.Advantages 5.Version 2.0 Features.
Integrate your people maximize your knowledge Tel SalesBase Customer.
October 30, 2008 Extensible Workflow Management for Simmod ESUG32, Frankfurt, Oct 30, 2008 Alexander Scharnweber (DLR) October 30, 2008 Slide 1 > Extensible.
MAE Atlassian Tool Suite Administration Training July 8 th, 2013.
Trimble Connected Community
Continuous Integration with TeamCity Adrian Ritchie BSc, MBCS Guernsey Software Developer Forum
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Software Configuration Management
Wikis are websites where pages can be edited using an online document editor. Users can easily edit and share content. Enterprise wikis are platforms.
Subversion, an Open Source Version Control System An Introduction.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
© 2008 IBM Corporation ® IBM Cognos Business Viewpoint Miguel Garcia - Solutions Architect.
Version Control Systems with Subversion (SVN) and Tortoise.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Why use JIRA?.
TFS 2010 What’s new and interesting. Key Items Agile Planning Tools – Slides #3-#6 Improved parallel development - Slides #7-#8 Continuous Integration.
August 2003 At A Glance VMOC-CE is an application framework that facilitates real- time, remote cooperative work among geographically dispersed mission.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
COORENOR COORENOR Web Portal COORENOR Agenda Where we are? (Summarize features of the COORENOR web portal.) Where are we going? (Show how to.
South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Genesis.
EGEE is a project funded by the European Union under contract IST GLite Integration Infrastructure Integration Team JRA1.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Benchmark 2 progress report and future directions Sergey Lyskov
TSSG Case Study: Using Free & Open Source Tools to Manage Software Quality EECS811: Software/IT Project Management Agile Integration Management Case Study.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
CERN IT Department CH-1211 Genève 23 Switzerland t Bamboo users meeting IT-CS-CT.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
By: Jamie Morgan  A wiki is a web page or collection of web pages which you and your students can access to contribute or modify content without having.
The Palantir Platform… …Changes in 2.3
Chapter 13 Web Application Infrastructure
Continuous Integration (CI)
PLM, Document and Workflow Management
LECTURE 2: Software Configuration Management
LECTURE 3: Software Configuration Management
Continuous Performance Engineering
Simplified Development Toolkit
Lecture 1: Multi-tier Architecture Overview
Continuous Integration
Mark Quirk Head of Technology Developer & Platform Group
T-FLEX DOCs PLM, Document and Workflow Management.
Presentation transcript:

Continuum A World Class Continuous Integration Tool Stack 20 May 2015

2 What is Continuous Integration? Continuous Integration is generally defined as: –a software development practice where members of a team integrate their work frequently –usually each person integrates at least daily - leading to multiple integrations per day. –each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. What does this really mean? –Instead of going two months, with multiple developer branches and having to do a painful, error prone merge process at the end, changes are merged every day, by the person who wrote the code. –Breaks to the build, tests, or divergence in design philosophy are spotted quickly and early

3 What is Test Driven Development Test Driven Development is generally defined as: –a development technique where unit tests are written before the actual functional code –all function units can be exercised and tested in an repeatable manner What does this really mean? –At any time, any piece of code, software module or entire product can be verified by running the unit test(s) associated with it –It provides early feedback to the developer that The code they have written is correct The code they have changed is still correct They have not unintentionally broken another part of the system –Any break of a unit test immediately highlights a problem

4 CI and TDD create better quality software Employing CI and TDD together ensures that –You will always know when someone has broken the build –You will always know when someone has broken a unit test –You will always know when someone has broken the functional logic of your code/module/application –A developer’s code base never diverges too far from the rest of the team Identifying problems as early as possible in the development process leads to higher quality software products that are cheaper to develop

Continuum Beyond Continuous Integration: Continuous Project Insight

6 What is Continuous Project Insight? We live in a networked, hyperlinked world Our development tools should do too Continuous Project Insight is: –A step further than purely integrating code and tests –All tools and the information they provide is interlinked –Knowledge and information is easy to share and navigate through –Project reports and documentation is always current and accurate –Developers and management can connect to the heartbeat of a project with minimal effort

7 What is Continuum? Continuum is: –a world class CI and TDD tool stack –created to initially support the NextGen project –assembled from cheap or Open Source components –primarily focused on (but not limited to) Java development It supports: –Automated builds, unit tests, code coverage, project documentation, etc –Integrated SCM, Knowledge capture, Issue tracking, Peer Code review –Access is via All major web browsers From within developer tools –Notification via , RSS, IM client

8 Why Continuum? The Goals for Continuum were: –Create the best possible CI/TDD tool stack possible –Be a demonstrable experiment of what CI/TDD can and should be –Enable and encourage developers to adopt CI/TDD practices –Enable managers and project leaders to easily view project status –Provide a mechanism for tying all aspects of the development process into a coherent, interlinked whole

9 Continuum Tool Stack The CI/TDD tools used in Continuum are: –Subversion – Source code repository –Fisheye – Web based source repository viewer –Pulse – Continuous Integration build server –Jira - Issue tracking software –Confluence Wiki – Knowledge sharing/collaboration –Crucible – Web base peer code review –OpenLDAP – user credential management –Clover – code coverage reports and metrics –Ant – build system –testNG – Unit test framework –yDoc – Javadoc + UML documentation

10 Continuum Tool Relationships

11 Subversion Source Code Control System Like CVS, is a Concurrent Versioning System The bedrock of all the CI stack –All tools support/integrate with it Encourages continuous integration in developers –I.e. developers have local copy and check in frequently –Discourages multi-branch explosion No performance issues – everyone has a local copy Developers can work in disconnected manner Works over the VPN – accessed via port 80 It’s free and open source All tools to support using it are free Integrates into the explorer shell (TortoiseSVN) The manual and books are free Support for it on all OS platforms Support for it in all major IDEs

12 Fisheye Web based Subversion repository viewer Supports –Browsing of project files via the web –Multiple repositories –Related checkins are grouped into changesets –Viewing diffs of file versions –Extensive search capabilities –Displays annotated views of source files (i.e. who changed what) –Historical display of source churn –Graphing of line counts (project, dir, file) –Graphical display of a file’s branch/tag relationshipsGraphical –Linking to issue tracking systems –RSS feeds for change notifications at any level of repository

13 Pulse Continuous Integration Build server Manages continuous integration builds Triggers any time a developer checks in code Executes automated –builds, unit tests, documentation generation, code coverage –and any other artifact we need automated Supports RSS, and Jabber (IM) notification Links to issue tracking and SCCS viewers Supports distributed agent builds Supports scheduling Has remote API (xml-rpc) Can build with Ant, Maven, Make or any arbitrary binary

14 Jira Issue tracking system Multi project support (i.e. different repositories) User configurable dashboard Fine grained permissions model Customizable workflow models Sub-tasks Time tracking Configurable reports Links to Confluence, Subversion and Fisheye Notification via , RSS feeds Export to xml, excel Remote API Plugin extension architecture …

15 Confluence The Wiki –Used for knowledge capture, sharing and collaboration –New pages –Threaded comments –News items –Attachments WYSIWYG editing of content (as easy as using Word) Maintains revision history (just like a SCCS) Fine grained permissions on per space or page Notification via and RSS feeds Powerful search Extensive set of user contributed plugins –Managed from Plugin Manager within Confluence Dynamically pulls content from Jira Links to Fisheye (or any system that pushes RSS) Remote API …

16 Crucible Web based tool for peer code review Easy to manage review process through web interface Dynamically pulls changeset information from Fisheye Workflow notification via and RSS Review information captured in-situ via web browser Ability to add inline, threaded comments at the review, file, and line level. Full auditing capability with historical review access Annotated view of repository artifacts with inline review comments Summary reporting of review statistics and metrics Current running version 0.7. Extensive set of features still to be added in the future.

17 Clover Code coverage analysis tool Measures effective coverage of unit tests Fast, accurate, configurable, detailed coverage reporting of Method, Statement, and Branch coverage Accurately measures per statement coverage, rather than per-line coverage Creates historical trending graphs of code coveragehistorical trending Full IDE integration Reports in HTML, PDF, XML or a Swing GUI

18 Coding tools Intellij –Preferred IDE –Huge selection of plugins –Most powerful support for power coding –Supports (via plugins) Subversion, Clover, Jira, Ant, TestNG Ant –Used for building everything –Lowest common denominator –Industry standard –IDE Support testNG –Unit testing framework –Created to solve many deficiencies in JUnit –IDE support yDoc –Javadoc extension/replacement –Automatically creates UML diagrams from source at build time –Customizable colors

Implementing Continuum

20 Physical Implementation* Hardware: –Single 2U machine –Dual CPU, 4GB Ram –Suse Enterprise Linux 10 –Raid 1 disk configuration Software (not including tools) –Apache2 web server serves as gateway –AJP or mod_proxy used to pass through to other servers –OpenLDAP –Mysql database –Custom user management web application Account creation, verified from corp ActiveDirectory server Backups –Nightly backups of all important data –Backed up locally, and to two offsite locations –Rolling 14 day backups

21 Total Cost Manpower –3 man weeks Hardware –Scavenged box – effectively free Software Jira$4800 Confluence$4000 (but no cost to this project) Pulse$1300 Fisheye$1500 Clover$2500 yDoc$1490 Crucible$0 (not a 1.0 GCA product yet) Total$11590