1	
  
Distributed Development Roadmap
John Palmer
Product Specialist
2	
  
Perforce Today
Current Solutions
3	
  
13.1 Update
§  Filtered Replication
§  Task Streams
§  Unshelve to Branch
§  Submit Shelf Directly
4	
  
13.1 Server
Task	
  Streams	
  
• Alleviates	
  branch	
  
metadata	
  problem	
  
• Can	
  be	
  used	
  with	
  
streams	
  or	
  normal	
  
branches	
  
• Fits	
  with	
  task	
  
branching	
  /	
  
conAnuous	
  delivery	
  
Shelving	
  
• Lightweight	
  code	
  
review	
  
• Lightweight	
  task	
  
management	
  
• Unshelve	
  to	
  Branch	
  
• Submit	
  Shelf	
  
Git	
  Fusion	
  
• Maintain	
  big	
  
picture	
  branch	
  
model	
  in	
  Perforce	
  
• Mirror	
  the	
  model	
  
to	
  Git,	
  rebase	
  if	
  
desired	
  
• Use	
  Git	
  for	
  task	
  
branches	
  
5	
  
Branching with Task Streams
6	
  
Task Streams
§  Use p4 populate to put data into a task stream.
§  (This command is the best way to put data into any new branch or stream.)
§  Task streams cannot be re-parented.
§  They're tied tightly to the original source.
§  Task streams cannot have children of their own.
§  Multiple users per Task Stream.
§  Task streams can be converted to regular
§  Task streams parented to another stream follow the rules!
§  merge-down copy-up.
7	
  
13.1 Server - Replication
Filtered	
  ReplicaAon	
  
• Only	
  take	
  what	
  you	
  
need	
  at	
  each	
  site	
  
• Reduce	
  bandwidth	
  	
  
• Faster	
  setup	
  
Chained	
  Replicas	
  
• Have	
  one	
  replica	
  
feed	
  others	
  
• Easily	
  support	
  a	
  
larger	
  build	
  farm	
  or	
  
several	
  satellite	
  
offices	
  
• Only	
  once	
  “across	
  
the	
  ocean”	
  
Git	
  ReplicaAon	
  
• Fast	
  local	
  data	
  
access	
  
• Consistent	
  push/
pull	
  
• Consistent	
  security	
  
• Trusted	
  HA/DR	
  
And of course you can use regular proxies and replicas…
8	
  
Perforce Today
Current Solutions
The Problem is…
9	
  
§  Remote sites
§  Large teams
§  Automation
§  Git mirrors
Supporting
Versioning
Service
Proxy
Proxy
Replication
Service
11	
  
Road Map
New Solutions
12	
  
“100X” Initiative
“100X”	
  
Data Centre
Distributed
Today
13	
  
100X Includes…
FailoverDistributed
optimization
Reduced
network load
Horizontal
scaling
Concurrency
14	
  
The Road to 100X
Proxy
Replicas
Filtered /
Chained
Commit /
Edge
Clustering
14	
  
15	
  
100X: Advanced Replication
DO NOT DISTRIBUTE
15	
  
Filtered
Replication
Chained
Replicas
Git
Replication
Available Now
16	
  
100X: Remote
Site Support
16	
  
Eliminate	
  WAN	
  
traffic	
  for	
  
many	
  
opera9ons	
  
Reduce	
  data	
  
transfer	
  
Commit	
  
Edge	
   Edge	
  
17	
  
Reduced Activity on Commit Instance
17	
  
Replica	
   Master	
   Edge	
   Master	
  
18	
  
Remote Sites: Just Faster
56.6	
  
8.7	
  
61	
  
9.8	
  
0.9	
   0.7	
   1.8	
   0.2	
  
0	
  
10	
  
20	
  
30	
  
40	
  
50	
  
60	
  
70	
  
Sync	
   Revert	
   Integrate	
   Edit	
  
COMMON	
  OPERATIONS	
  WITH	
  128MS	
  LATENCY	
  BETWEEN	
  	
  
CLIENT	
  AND	
  P4D	
  
Direct	
   Edge	
  
19	
  
100X: 2014
Horizontal scaling (read ops)
High availability (failover)
Concurrency
20	
  
Nuts and Bolts
Details, details, details…
21	
  
100X
FailoverCommit/edge
Chain
replicas
Horizontal
scaling
Concurrency
Filter replicas
22	
  
Chaining Replicas
22	
  
p4	
  configure	
  set	
  replicaSingapore#P4TARGET=master:1666
p4	
  configure	
  set	
  replicaHK#P4TARGET=replicaSingapore:1666
Configuration
Use common sense
Ask for help when necessary
Master Repository
(California)
Read-Only Replica
(Singapore)
Read-Only Replica
(Hong Kong)
Read-Only Replica
(Singapore)
Read-Only Replica
(Singapore)
23	
  
Filtering Replicas
Configure in server spec
and pull commands
23	
  
>	
  p4	
  server	
  repl	
  
	
  	
  
ServerID:	
  	
  	
  	
  	
  	
  	
  repl	
  
	
  	
  
RevisionDataFilter:	
  
	
  	
  	
  	
  	
  	
  	
  	
  //gui/...	
  
	
  	
  
>	
  p4	
  configure	
  set	
  "repl#startup.1=pull	
  -­‐i	
  1	
  -­‐P	
  repl"	
  
Singapore Replica
Estonia Replica
Toronto Replica 20 TB
500 GB
50 GB
Master Repository
(US)
500 TB
24	
  
Git Replication
24	
  
Configuration
•  Set P4PORT in Git Fusion
configuration to proxy, broker, or
replica
Access control
•  Set IP-based rules on Git Fusion
account
FAQ
•  Commits are identical across all Git
Fusion instances
Upgrading
to commit /
edge
DR Replica
Build Server
Replica
Versioning Service
Small Remote
Office
Large Remote Office
Proxy Service
Forwarding Replica Git Fusion
Main Office
Upgrading
to commit /
edge
DR
Replica
Edge Server
(for Build Farm)
Versioning Service
Small Remote
Office
Large Remote Office
Proxy
Service
Edge Server Git Fusion
Main Office
Edge Server
(for Users)
27	
  
2014: Horizontal Scaling of Read Operations
Write	
  Node	
  
Read	
  Node	
  
Read	
  Node	
  
Read	
  Node	
  
Journal	
  Service	
  
Coordinator
Read Node
28	
  
Write	
  Node	
  
Read	
  Node	
  
Read	
  Node	
  
Read	
  Node	
  
Coordinator	
  
Journal	
  Service	
  
2014: High Availability and Failover
29	
  
2014: Improved Replication Throughput
Write	
  Node	
  
Read	
  Node	
  
Read	
  Node	
  
Read	
  Node	
  
Coordinator	
  
Journal	
  Service	
  
Durable	
  write	
  
30	
  
100X
Advanced	
  
replicaAon	
  
Remote	
  Sites	
  
Scaling,	
  failover,	
  
and	
  concurrency	
  
Perforce	
  
Git	
  
31	
  
Questions?
See Git Fusion in the Demo Area
P4Ideax	
   Forums	
  

[Tel aviv merge world tour] Perforce Server Update

  • 1.
    1   Distributed DevelopmentRoadmap John Palmer Product Specialist
  • 2.
  • 3.
    3   13.1 Update § Filtered Replication §  Task Streams §  Unshelve to Branch §  Submit Shelf Directly
  • 4.
    4   13.1 Server Task  Streams   • Alleviates  branch   metadata  problem   • Can  be  used  with   streams  or  normal   branches   • Fits  with  task   branching  /   conAnuous  delivery   Shelving   • Lightweight  code   review   • Lightweight  task   management   • Unshelve  to  Branch   • Submit  Shelf   Git  Fusion   • Maintain  big   picture  branch   model  in  Perforce   • Mirror  the  model   to  Git,  rebase  if   desired   • Use  Git  for  task   branches  
  • 5.
    5   Branching withTask Streams
  • 6.
    6   Task Streams § Use p4 populate to put data into a task stream. §  (This command is the best way to put data into any new branch or stream.) §  Task streams cannot be re-parented. §  They're tied tightly to the original source. §  Task streams cannot have children of their own. §  Multiple users per Task Stream. §  Task streams can be converted to regular §  Task streams parented to another stream follow the rules! §  merge-down copy-up.
  • 7.
    7   13.1 Server- Replication Filtered  ReplicaAon   • Only  take  what  you   need  at  each  site   • Reduce  bandwidth     • Faster  setup   Chained  Replicas   • Have  one  replica   feed  others   • Easily  support  a   larger  build  farm  or   several  satellite   offices   • Only  once  “across   the  ocean”   Git  ReplicaAon   • Fast  local  data   access   • Consistent  push/ pull   • Consistent  security   • Trusted  HA/DR   And of course you can use regular proxies and replicas…
  • 8.
  • 9.
    The Problem is… 9   §  Remote sites §  Large teams §  Automation §  Git mirrors Supporting
  • 10.
  • 11.
  • 12.
    12   “100X” Initiative “100X”   Data Centre Distributed Today
  • 13.
  • 14.
    14   The Roadto 100X Proxy Replicas Filtered / Chained Commit / Edge Clustering 14  
  • 15.
    15   100X: AdvancedReplication DO NOT DISTRIBUTE 15   Filtered Replication Chained Replicas Git Replication Available Now
  • 16.
    16   100X: Remote SiteSupport 16   Eliminate  WAN   traffic  for   many   opera9ons   Reduce  data   transfer   Commit   Edge   Edge  
  • 17.
    17   Reduced Activityon Commit Instance 17   Replica   Master   Edge   Master  
  • 18.
    18   Remote Sites:Just Faster 56.6   8.7   61   9.8   0.9   0.7   1.8   0.2   0   10   20   30   40   50   60   70   Sync   Revert   Integrate   Edit   COMMON  OPERATIONS  WITH  128MS  LATENCY  BETWEEN     CLIENT  AND  P4D   Direct   Edge  
  • 19.
    19   100X: 2014 Horizontalscaling (read ops) High availability (failover) Concurrency
  • 20.
    20   Nuts andBolts Details, details, details…
  • 21.
  • 22.
    22   Chaining Replicas 22   p4  configure  set  replicaSingapore#P4TARGET=master:1666 p4  configure  set  replicaHK#P4TARGET=replicaSingapore:1666 Configuration Use common sense Ask for help when necessary Master Repository (California) Read-Only Replica (Singapore) Read-Only Replica (Hong Kong) Read-Only Replica (Singapore) Read-Only Replica (Singapore)
  • 23.
    23   Filtering Replicas Configurein server spec and pull commands 23   >  p4  server  repl       ServerID:              repl       RevisionDataFilter:                  //gui/...       >  p4  configure  set  "repl#startup.1=pull  -­‐i  1  -­‐P  repl"   Singapore Replica Estonia Replica Toronto Replica 20 TB 500 GB 50 GB Master Repository (US) 500 TB
  • 24.
    24   Git Replication 24   Configuration •  Set P4PORT in Git Fusion configuration to proxy, broker, or replica Access control •  Set IP-based rules on Git Fusion account FAQ •  Commits are identical across all Git Fusion instances
  • 25.
    Upgrading to commit / edge DRReplica Build Server Replica Versioning Service Small Remote Office Large Remote Office Proxy Service Forwarding Replica Git Fusion Main Office
  • 26.
    Upgrading to commit / edge DR Replica EdgeServer (for Build Farm) Versioning Service Small Remote Office Large Remote Office Proxy Service Edge Server Git Fusion Main Office Edge Server (for Users)
  • 27.
    27   2014: HorizontalScaling of Read Operations Write  Node   Read  Node   Read  Node   Read  Node   Journal  Service   Coordinator Read Node
  • 28.
    28   Write  Node   Read  Node   Read  Node   Read  Node   Coordinator   Journal  Service   2014: High Availability and Failover
  • 29.
    29   2014: ImprovedReplication Throughput Write  Node   Read  Node   Read  Node   Read  Node   Coordinator   Journal  Service   Durable  write  
  • 30.
    30   100X Advanced   replicaAon   Remote  Sites   Scaling,  failover,   and  concurrency   Perforce   Git  
  • 31.
    31   Questions? See GitFusion in the Demo Area P4Ideax   Forums