Date post: | 16-Apr-2017 |
Category: |
Technology |
Upload: | perforce |
View: | 778 times |
Download: | 5 times |
DVCS in the EnterpriseChallenges, Opportunities and Bits of String
Mark WarrenProduct Marketing Director
30% 10873
30% Adoption of Git & Mercurial according to Gartner.
873 Number of repos for an Android distribution
10 Age of Git. The new Legacy?
Version Management Evolution
SHARED SERVER
DEVELOPER WORKSTATIONS – Thin Clients
First Generation: Server-based, mainframe-style
C:> ~me:
SHARED SERVER
DEVELOPER WORKSTATIONS
Second Generation: Client-Server, Centralized Repository
DEVELOPER WORKSTATIONS
Third Generation: Distributed Versioning
Dictator & Lieutenants Workflow
Looks a lot like a shared,
centralized repository?
Integration Manager Workflow
DEVELOPER WORKSTATIONS
SHARED SERVER
Generation 3.5 : “Centralized” Git
DEVELOPER WORKSTATIONS
Fourth Generation: Hybrid Versioning
SHARED SERVER
Adopting DVCS in the Enterprise
Opportunities for DVCS in the Enterprise
• Fast local workflows• Independent contributors/teams• Pool of potential recruits/strong community
Challenges for DVCS in the Enterprise
• Not suitable for all content • No visibility• Poor security• IP loss risk• Not built for enterprise projects• Lack of ownership & roadmap
Helix Distributed
•Your personal Helix server, running locally•Streams workflow•Consistent command line•Handle any file type/size•Honours protections•Narrow clones•Share with the team when ready•Server to Server sharing
New DVCS commands
• init - Create a new personal server•clone - Clone a new personal server from a shared server• remote - Define a connection to a shared server• fetch - Copy files from a shared server to a personal server•push - Copy files from a personal server to a shared server• switch - Switch to a new stream, optionally creating it•unsubmit - Unsubmit a change, leaving the work in a shelf• resubmit - Resubmit unsubmitted changes
FETCH
FETC
H
FETCH
PUSH
PUSH
No need to split projects into multiple repos Select relevant content, clone, and work offline Better performance with large clones
Helix Distributed for Server/Server
GitSwarm
Helix GitSwarm
Distributed environment for developers Git experience and workflow equivalent
to well known tools
Configurable sync
Single source of truth Perforce reliability and stability
protecting your assets
HelixGitSwarm
Helix GitSwarm
•Rich, browser-based environment for managing Git repositories, workflow & tooling•Automatic mirroring with the shared Helix server•Helix enforces security – traditional Perforce protection down to the file level, maintains immutable audit trail•Work with narrow clones from the Helix depot
GitSwarm EE
• Available as an add-on option• Extends LDAP support• Share projects between groups• Jira integration• Import from GitHub Enterprise
Tower – Desktop Client
•Beta support for GitSwarm
Git Fusion?
•At the heart of GitSwarm integration•Still used for standalone Git – Helix integration•Significant performance improvements• > 1000x in some cases
In Summary
Modern Version Management• Helix GitSwarm/Git Fusion• Helix Distributed• Helix Shared
Shared enterprise master repository/depotGitSwarm
Git Fusion
Interact with Helix via Git
Tower*
Browser-based code review, collaborations, pull requests, work items, wiki
Cmdline, IDE & other git clients
3rd Party desktop client
Swarm
Browser-based code collaborationCI integration
Helix Distributed
Desktop client
P4, P4V, APICmd line, desktop & IDE clients
Cmd line, local Helix repos
Interact directly with Helix
Jenkins/Puppet/Chef/…
High Performance CI/CD
Enterprise Repo
ID & Access MgmtIP Threat Detection*Immutable audit trailsFederation, HA/DR deployments
Gartner
Centralized management practices, evolved from centalized VCS … needed to match freedom of DVCS with discipline required by large-scale enterprise deployments.
Although DVCS alone may suffice on the desktop, additional central management needed for good release discipline