23
Sven Erik Knop Technical Marketing Manager

Modern Deployment Strategies

Embed Size (px)

DESCRIPTION

An overview of modern software deployment strategies

Citation preview

Page 1: Modern Deployment Strategies

1

Sven Erik Knop Technical Marketing Manager

Page 2: Modern Deployment Strategies

2

•  Lockless Reads •  AD/LDAP Integration •  Deployment Strategies

–  Edge/Commit Servers –  DCS

•  Linux Packaging

Page 3: Modern Deployment Strategies

3

Page 4: Modern Deployment Strategies

4

Reduce waiting time for users

Better utilization of hardware

Support Continuous Integration

Page 5: Modern Deployment Strategies

5

•  Requires server locks activated (“server.locks.dir”) •  Requires change in database format

–  Need to restore checkpoint for the upgrade •  Changes locking order of some tables

•  Controlled with configurable “db.peeking”

Page 6: Modern Deployment Strategies

6

List of commands that run lockless: •  annotate, branches, changes, clients, counters, depots, diff,

•  diff2, dirs, filelog, files (-a) fixes, fstat (peeking=3), have,

•  interchanges, integ, integed, istat, jobs, keys, labels, merge,

•  print (-a), resolved, streams, sizes (-a), sync (peeking=3), users

•  verify (2014.2), describe (2014.2)

List of commands that run partial lockless:

•  copy, cstat, fstat, interchanges (copy), istat (copy), opened, sync

Page 7: Modern Deployment Strategies

7

•  Default in 2014.2 •  Configurable db.peeking

–  0 : No peeking, old lock order –  1 : No peeking, new lock order (diagnostics only) –  2 : Peeking enabled (default in 2014.2) –  3 : Peeking enabled (no hx/dx optimization)

•  Peeking=3 slower for many revisions per file –  but no locking of db.revhx/db.revdx table

Page 8: Modern Deployment Strategies

8

Page 9: Modern Deployment Strategies

9

•  Authenticate user with password against AD/LDAP •  Replaces auth-check triggers

–  when used, disables existing auth triggers

•  Several new commands –  p4 ldap [-t username] <ldapname> –  p4 ldaps [-t username] –  p4 configure set auth.ldap.order.N

Page 10: Modern Deployment Strategies

10

Page 11: Modern Deployment Strategies

11

•  Simple –  Search explicitly for a DN –  cn=%user%,ou=Users,dc=p4,dc=com

•  Search –  Use a query to find a DN –  (&(objectClass=user)(sAMAccountName=%user%))

•  SASL –  Easiest form and supported by AD (but not all LDAP)

Page 12: Modern Deployment Strategies

12

•  User spec contains new field –  AuthMethod : perforce or ldap –  A perforce user is authenticated through P4D

•  Configurable auth.default.method –  Used for new users –  If matching user in LDAP, the user is created in P4D

Page 13: Modern Deployment Strategies

13

Page 14: Modern Deployment Strategies

14

•  Full Perforce Server – contains all users and data •  Build Servers – local workspaces, but no updates •  Forwarding Replicas – full server, local content •  Filtered Replicas – Replicas with some content

•  Depot Server – Only contains data •  Workspace Server – Data and workspaces

Page 15: Modern Deployment Strategies

15

Depot

Workspace Workspace

•  Reduce hardware requirements for individual servers

•  Keep workspaces local

•  Submits propagated to the depot server •  All other commands executed locally

•  Workspace server contains replica of depot

Page 16: Modern Deployment Strategies

16

•  Replace build servers –  Enable build processes to submit artifacts

•  Regional Workspace servers –  Co-located teams –  Workspaces and shelves are only visible locally

•  Large-scale development teams –  Separate local workspace servers –  Shared storage environment

Page 17: Modern Deployment Strategies

17

Page 18: Modern Deployment Strategies

18

•  Perforce DCS appears as a single server •  Horizontal scalability

–  Multiple workspace servers •  Automatic DCS failover

–  Depot-master to depot-standby

•  Shared depot storage

Page 19: Modern Deployment Strategies

19

•  Underlying architecture is available in 2014.2 •  Perforce Cluster Manager later in 2014

•  Simplifies deployment of DCS

Page 20: Modern Deployment Strategies

20

Page 21: Modern Deployment Strategies

21

•  Simple installation on Linux –  Both APT and RPM repositories are supported

•  http:://package.perforce.com

•  Add public key and repo to available sources –  APT: sudo apt-get install perforce-server –  RPM: sudo yum install perforce-server

Page 22: Modern Deployment Strategies

22

•  Perforce Server (incl. P4DCTL) •  Perforce Client •  Swarm •  Git Fusion •  P4Python

Page 23: Modern Deployment Strategies

23