enterprise ci as-a-service using jenkins

26
Enterprise CI-As-A-Service A Case Study in Jenkins and OSS Tools to Support CI at Scale Enterprise Transformation Manager [email protected] Brian Dawson

Upload: collabnet

Post on 07-Jul-2015

1.960 views

Category:

Technology


3 download

DESCRIPTION

Continuous Integration (CI) is frequently implemented as a dev process and not tied to the rest of the software development life cycle. Resulting in shadow IT, silo’d processes and information, and ultimately a lack of real time visibility across all stakeholders. And even greater implications such as risk of IP loss due to lack of corporate governance controls (e.g., RBAC, security and traceability). Watch this webinar to learn how to scale CI as-as-service using Jenkins across an enterprise. As teams self-select their CI tools, using TeamForge would allow individuals across your enterprise to rapidly access CI tools of their choosing, while central IT maintains full visibility and control with minimal effort. In this webinar, we also present a case study for establishing an organization-wide build ecosystem at a global financial services company.

TRANSCRIPT

Page 1: Enterprise CI as-a-Service using Jenkins

1 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Enterprise CI-As-A-Service A Case Study in Jenkins and OSS Tools to Support CI at Scale

Enterprise Transformation Manager [email protected]

Brian Dawson

Page 2: Enterprise CI as-a-Service using Jenkins

2 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Presenter

Brian Dawson, Manager Enterprise Transformation, CollabNet

As a Consultant CollabNet, for 10 years Brian Dawson has helped software development organizations transform development processes through the use of TeamForge and development best practices, including Continuous Integration, Continuous Delivery, and Agile.

Prior to CollabNet, Brian spent 12 years in software development most recently at Sony Computer Entertainment where he worked as the Director of Tools and Technology and oversaw the development and deployment of TeamForge as a worldwide collaboration and reuse portal.

Page 3: Enterprise CI as-a-Service using Jenkins

3 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• Review of Continuous Integration

• CI In the Enterprise

• Case Study: CI-As-A-Service

• Conclusion

• Q & A

Agenda

Page 4: Enterprise CI as-a-Service using Jenkins

4 Copyright ©2014 CollabNet, Inc. All Rights Reserved. 4 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Review of CI

Page 5: Enterprise CI as-a-Service using Jenkins

5 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

– Fail fast so problems can be found and corrected early

– CI feedback

• Coding and architectural issues

• Unit tests

• Security issues

• etc

What is CI?

“Continuous integration (CI) is a software engineering practice in which isolated changes are frequently

integrated, immediately tested and reported on. The goal of CI is to provide rapid feedback so that if a

defect is introduced into the code base, it can be identified and corrected as soon as possible.”

Page 6: Enterprise CI as-a-Service using Jenkins

6 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Why CI?

• Automation of repetitive manual processes

• More time focusing on adding value

• No need to wait hours, days, months to know how check-in affects the

build

• Constant availability for the build for testing, demo or release

• Shared visibility

• Increased team productivity

• Higher quality software, faster!

Page 7: Enterprise CI as-a-Service using Jenkins

7 Copyright ©2014 CollabNet, Inc. All Rights Reserved. 7 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

CI In The Enterprise

Page 8: Enterprise CI as-a-Service using Jenkins

8 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

CI In The Enterprise: Current State

– Rapid adoption

– Spanning languages and technologies

– “Shadow” Implementations (Internal and Cloud)

– Implemented at team level

– Implemented and maintained by developers

Page 9: Enterprise CI as-a-Service using Jenkins

9 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

CI In The Enterprise: Issues and Challenges

– Server, application sprawl and/or external exposure

– Developers spending time as admins

– Lack of shared knowledge

– Slow project start-up and ramp-up

– CI disconnected from enterprise development processes

– Lack of security

– Lack of governance

Page 10: Enterprise CI as-a-Service using Jenkins

10 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Centralize Source Code • Reduce ramp-up administration overhead • Manage IP • Supports traceability, visibility and governance

Manage binaries • Reduce risk • Promote reuse

Support Security • Project, Dept. and/or organizationally aligned access controls

Naturally connect the build process to the common platform • Supports traceability, visibility and governance

CI in The Enterprise: Path to Success

Page 11: Enterprise CI as-a-Service using Jenkins

11 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Support Dynamically Scaling • Server provisioning

• Virtual Machines

Establish central build platform and/or eco-system • Flexible support for different teams needs

• Support easy on-boarding

Document process and shared knowledge • Develop community to support best practices

• Reduce ramp-up and onboarding time

CI in The Enterprise: Path to Success

Page 12: Enterprise CI as-a-Service using Jenkins

12 Copyright ©2014 CollabNet, Inc. All Rights Reserved. 12 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Case Study: CI-As-A-Service

Page 13: Enterprise CI as-a-Service using Jenkins

13 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Case Study: Customer Overiew

Large Financial Services Company • 4000+ users

• 100’s of applications

• >100 teams

Globally Distributed • US, UK, Eastern Europe, Asia, etc

Multiple Technologies

• Java, .Net, Batch, etc

• Web, Desktop, Mobile,etc

Page 14: Enterprise CI as-a-Service using Jenkins

14 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Case Study: Goals and Challenges Goals

– Change the culture of development Create open-source development culture • Deliver productivity to the developer … for the developer • Interested, passionate developer can be 10x more productive than a developer “just doing his(her)

job”

– Provide standard build tool implementations

– Provide build to release management platform

– Leverage private cloud to enable scalable solution

– Provide a support structure

Challenges – Multiple technologies

– Multiple tools and processes

– Regulatory compliance mandates

– Scale

Page 15: Enterprise CI as-a-Service using Jenkins

15 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Case Study: Solution

Common Platform = TeamForge SCM = Managed Subversion CI Server = Jenkins w/Integration Binary Artifact Management = Sonatype Nexus w/Integration

Quality = SonarQube Sonar w/Integration Server/VM Provisioning = Lab Management

• VM Ware and EC2 • LM Profiles (IAAS) • Puppet for Config Management

Community Support • Dedicated Build Engineer • TeamForge Trackers • Wikis

Established common CI tooling, with rich integration to a common platform managed by a published process for CI server provisioning and support

Page 16: Enterprise CI as-a-Service using Jenkins

16 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Case Study: Process • All application development hosted in TeamForge Projects providing role-based access

controlled workspaces with common tools

• Projects use integrated Subversion for centralized administration and management of source code

• Process and shared knowledge documented in community support project wikis

• Build resources requested via TeamForge Tracker ticket with immediate notificaion to dedicated build engineer

• Jenkins server dynamically provisioned from internal Lab Management cloud using common pofiles and Puppet for configuration management

• Access provided to Jenkins through TeamForge project-level role-based access controls, providing project and role appropriate permissions

• Access provided to Nexus and Sonar via to TeamForge role-based access controls, providing access to common, department and project-specific binary assets.

• Build Environment handed off to team within hours with all necessary info provided via ticket and shared documentation

• Team has ability to configure environment and create jobs on-going support and server configuration is facilitated via Trackers by build engineer with High SLA

Page 17: Enterprise CI as-a-Service using Jenkins

17 Copyright ©2014 CollabNet, Inc. All Rights Reserved. Copyright © 2008 CollabNet, Inc. All Rights Reserved.

~29 virtual machines

~20+ Jenkins Servers

1 Nexus Artifact Repository

1 Sonar Server

1 Puppet Server

1 OpenNMS Server

~100 Development Teams >500 Developers ~150 Applications

…Supported by 1 build engineer

Case Study: Current State

Page 18: Enterprise CI as-a-Service using Jenkins

18 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Case Study: Benefits Benefits

• Centralized build and test on a cloud platform

• Centralized support

• Increased productivity

• Decreased cost per developer

• Central instance SaaS and CIaaS

• Better economies of scale and higher availability

• Standard tools

• Lower support costs, fewer integration points, better resource mobility

• Central integration and “certification”

• Reduced effort per team, higher quality

Page 19: Enterprise CI as-a-Service using Jenkins

19 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Case Study: Reference Architecture

Automated Build/Test

Artifact Publication

Source Code Management

Product / Sprint Planning

Agile Project Development

Deployment Services

Build/Tag - Jenkins Unit Tests - XUnit Functional Tests - XUnit Static Code Analysis - Sonar Code Coverage – Sonar

Essential Services

Dependency Management Governance Process Artifact Reuse

Runtime Dependencies Governance Process Change Management Test Manager

Artifact Creation / Management Monitoring and Analysis Data Consolidation / Reporting Role Based Access Control

Full Subversion integration as well as future integration and support for Git

Focus on automation especially in the test area

Planning: TeamForge, SWP Development: Eclipse,Visual Studio Code Review: ReviewBoard

SCM Management: Subversion, Git

Prod UAT Test

Development Data Warehouse

Page 20: Enterprise CI as-a-Service using Jenkins

20 Copyright ©2014 CollabNet, Inc. All Rights Reserved. 20 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Conclusion

Page 21: Enterprise CI as-a-Service using Jenkins

21 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

CollabNet Solutions: TeamForge

TeamForge provides the essential components needed to drive collaborative software development and deployment: Integrated ALM development and collaboration tools, flexible

and repeatable process templates, and a cross-project collaboration architecture.

Reporting & Governance search

traceability documents

wikis

discussions

Release

Lab Management

Build & Test

Track

Code

Plan

My page

Reports

Projects

Monitoring

My settings

Open ALM

Collaboration Architecture

Communities

My workspace Deploy

GitEye

Orchestrate

Process Templates

Dashboards & Report Catalog

Desktops

Page 22: Enterprise CI as-a-Service using Jenkins

22 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Agile Delivery & DevOps

Agile Development

Enterprise SCM

Training Training

Implementation Implementation

Consulting Consulting Consulting

Solutions

Product

Services

TeamForge

Enterprise Agility Assessment Service

Solution Pack Solution Pack

Blueprint for Enterprise Agility

DevOps Applied Workshop

Agile Dev Applied Workshop

Custom Continuous Integration Implementation

Private/Public Agile, CSM and ALM Training

CollabNet Solutions: Products and Services

Page 23: Enterprise CI as-a-Service using Jenkins

23 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

• Solution Pack solutions: • Enterprise SCM leverages TeamForge SCM

(Git and SVN) Integration

• Agile Development (CI/CD) includes Enterprise SCM

• Agile Delivery & DevOps Solution includes Agile Development

CollabNet Solutions: TeamForge Solution Packs

Agile Delivery and DevOps • Build + Release Workflow (Jenkins and ARA) • Auto-build of build and release trackers • Nexus integration – binary repos

Agile Development • Build Workflow (Jenkins) • Auto-build of build trackers • TeamForge File Release System integration

Enterprise SCM • TeamForge template – enterprise agility

template • Dashboard template component • Alerts component

• Solution Packs provide Enterprise Visibility and Traceability promote repeatable, solutions for Agile Development and Delivery (Process and Tools)

• Solution Packs provide integrated solutions (Jenkins, Team City, ARA +)

Page 24: Enterprise CI as-a-Service using Jenkins

24 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

› Across user stories, sprints, releases, products, teams

› Within workgroups—and across your organization

› Enterprise-grade security with RBAC, permissions management, authentication, encryption, auditing

› For creation and sharing of common, repeatable processes across your organization

› Throughout the development lifecycle and across projects, tools, and teams

With CollabNet Solutions, You Gain

› Organization-wide discovery, collaboration, re-use, and reporting

Page 25: Enterprise CI as-a-Service using Jenkins

25 Copyright ©2014 CollabNet, Inc. All Rights Reserved. 25 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Questions?

blogs.collab.net twitter.com/collabnet www.facebook.com/collabnet www.linkedin.com/company/collabnet-inc

Page 26: Enterprise CI as-a-Service using Jenkins

26 Copyright ©2014 CollabNet, Inc. All Rights Reserved.

Thank You