SlideShare a Scribd company logo
1 of 5
Download to read offline
Scalable	
  lifecycle	
  management	
  via	
  Perforce
Adam Breashears - Release Automation Tools & Services
Valerie Hendrickson - Release Management

Abstract

Managing complex, dynamic production environments where speed & accuracy of deployment intersect
with a requirement of deep information about the state of each environment (current and historical) and
a guarantee of application integrity is a hallmark of high-transaction low-latency environments. The same
qualities that make Perforce a fantastic source code repository, the attention to protecting and tracking a
company’s source and intellectual property, overlap to a large degree with the requirements of
maintaining a critical production environment.

Introduction1

NYSE Euronext faces a wide range of challenges stemming from its leading market position globally, its
recent mergers which created a global exchange and financial service provider, with offices and data
centers across two continents bound together and connected to its customer base by a global private
network the Secure Financial Transactions Infrastructure (SFTI) created and maintained by NYSE
Euronext. In addition to synergistic challenges created from the various mergers, the server infrastructure
maintained by the Release Management team at NYSE Euronext has expanded from 300 (as the start-up
Archipelago) to 9,000 servers (at peak during a data center migration), with a target of 6,000 globally by
EOY 2011, in a corporate culture which prizes increases in scalability and efficiency (alongside an
indifference to extremes in variance), not increases in headcount.

Continuous corporate growth that is fueled by both organic and M&A activity has necessitated a process
where variant processes can be made common at certain systemic points. Hardware and software
migrations take time and involve organizational risks, but 'synergies' require that they be managed as a
single 'environment' on both side of the life-cycle, whether it be radically different styles of SDLC entering
into the production environment or interactions with said production environment. There's no room for
1:1 solutions to development styles and environments. Therefore, virtual consistency must be high, and
certain functions must look the same for example software installs/rollbacks.

In addition to virtual consistency, a common prerequisite to our environment is the ability to have
absolute traceability path into the production environment, binary to source, configs/scripts to baselines,
and historical definitions of all changes. Every script run in a production environment must be available
for review at a later time and of course, all of this has to happen with no human driven interaction or
time delay to the ability to execute.

Perforce at NYSE Euronext is much more than a source code repository2), it is the foundation of
information transfer and validation between any software artifact that goes between production and non-
production. As such, it is under high load 24/7 and is considered a mission critical resource for IT.

What is the full scope of Life Cycle management?

There are two related concepts at NYSE Euronext in terms of Life Cycle management - Software Life


1
    This should be read in conjunction with the presentation presented at the 2011 Perforce conference.
2
 Perforce fulfills that function , along with many others to various groups within the company, however
here we'll be limiting the scope of discussion to its role in Production focused Life Cycle management
Cycle Management (controlling how software is used in production throughout its usable life cycle) and
the Software Development Life Cycle3 (SDLC) and both utilize Perforce as a critical component.
Specifically within the scope of this white paper we'll be focusing on the final cycles of the SDLC and the
production component of software utilization.

Some specific challenges that needed to be addressed (in no order of importance):
      •   Detecting unauthorized use/deployment
      •   Detecting unauthorized change (config/script/binary)
      •   Making sure software still exists on appropriate systems
      •   Creating common patterns of usage for unique systems
      •   Having full traceability from binary on machine X in production to source files in development
      •   Be able to deploy dozens of releases to thousands of servers in under an hour
      •   Verify explicit patterns of tested software configuration
      •   Rapidly adapt (intraday) to shifting asset states by the hundreds (new/deprecate old/changes)
      •   Be able to absolutely verify the software level of all assets real-time
      •   Remove any possible source of inaccuracy (humans) from the release/install process




How does Perforce help us accomplish this task?

Perforce specific features
The key features that Perforce offers its development community also coincide perfectly with the needs
of a secure production environment, scalability, fast data operations, designed to accommodate global
user communities/solutions, Easy administration/support, flexible/fast/Intuitive branching, an affordable
pricing model and world-class technical support4.

In addition to the 'high-level' value adds of the Perforce design, some more specific points include:
      •   Maintaining integrity of data objects along pipelines (by atomic change lists)
      •   Easy & secure integrations between secure dev/qa/production sections of the repository (as a
          result of the branching system)
      •   Detailed trace of data objects as they route along pipelines for audit requirements (as a result of
          the embedded versioning mechanism)
      •   Detailed trace of Perforce's own data objects, such as the client specs that represent meta-data
          around production systems (spec depot)
      •   Protection of production meta-data objects from tampering (triggers)
      •   Secure sections within each repository for different levels of access (dev/qa/prod) combined with
          triggers to explicitly limit access to appropriate users & domains
      •   With all software objects defined by change list and pulled from a central source, Quality
          validation against known configurations can be explicitly defined and baselined for risk against
          component specific (as opposed to release) level rollbacks.
      •   The production repository is a meta-map of all production machines due to the easy yet robust
          flexibility of client specs (with spec components pulling from different repositories for 3rd party
          software packages, Release objects, scripts, configs, etc)


3
    SDLC - creating or altering systems, and the models and methodologies used to develop these systems
4
    Reference Perforce website (www.perforce.com)
•   Production machines are compared to baseline each night for possible change and additional of
        extra components (p4 diff/p4 add)
    •   Production rollbacks occur within seconds across entire machine farms and are limited only by
        dependencies on other applications (atomic changelists with release naming conventions in the
        description guarantee precise conditions can be easily duplicated during a rollback).


As an example of scalability of this method, while keeping the same general level of release management
resources (who have to manage not only Perforce, but our release/issue tracking system, our build tool,
our custom automation and provide user & branching/depot support), we've gone from approximately
100 releases per human (over a server population of 300) in 2007 to 3000 releases per human (over a
server population of 6000 with a spike at the end of 2010 of 8,500 due to data center migrations) in
2011.

Implementation of Perforce as a Life Cycle management tool

Release Installation Process

All production machines are set up in Perforce with a 'meta-map' of what their software configuration
should be in production. The meta-map is a locked client spec, drawing from multiple sections of the
repository; with a particular syntax in its description that we can use to map the client to its production
host and purpose (for automation purposes it helps to have more data than just the 'host'). Where
multiple user accounts are required for applications, multiple client specs are created and locked to their
owner only (by depot permission settings). While the locked down client specs allow us to prevent
changes to the meta-map in production, new spec creation mapping to a production section is restricted
by triggers, only Release Management can create new meta-maps for production.

Each line of software has its own sections for development, quality assurance and production, with each
being integrated to the next through the p4 integrate command set. The descriptions of each have syntax
that define what level of software they represent in our release tracking tool, which also stores the
change list number corresponding to that release. The dual storage of release/changelist in each system
allows for easy access, depending on 'which way' the user is trying to get to a particular piece of data -
with the servers as the starting point (you'd look at the p4 have with the changelist description) or the
end point (where you'd look at the release tracking tool, identify the change list number and then ask to
install that number on a particular asset). Combined with a source of reference data (our Environment
Mapping Database) we can automatically create client-specs (and meta-maps) as needed depending on
business, software, and machine/OS type requested.

The end result of this allows for very specific & rapid environment configurations in multiple
environments and across multiple branches (in QA) as client-spec behavior has an attribute that when
you change the meta-map of the spec, it removes all of the old synced files and replaces with the new
ones, allowing groups to swap between completely different development efforts in minutes without
having to work about binary overlap of differing functional levels.

Automated Production Deployment

For deployment outside of local environments, multiple proxies are setup to reduce latency of files to the
local environment, but by far the most resource intensive component of the installation is the update to
the 'Have' table in Perforce (currently at 30 gig and rising), one of the most important components of a
front end Perforce server in this configuration is RAM (and local disk for the database - running release
installations in parallel generates high levels of database activity that can exceed SAN capacity).

Since Perforce requires a 'pull' methodology, there's a built in level of 'assurance' that we can't
'accidentally' trigger an install at an inappropriate time. The 'install event' is a series of cascading scripts
(automatically generated each night before the installs) that specify what each client should be from the
client and under the watchful eye of our operations division.

Once a sync has been completed and the Have table updated (Perforce doesn't update the Have table
unless the file transfer is successful), release rollbacks are as simple as using the same scripted
methodology to sync to an earlier changelist, which removes all file versions submitted after that version,
removing the fear of having an untested release configuration in production (for example, version 7 of X
tested with version 5 of Y, but the requested rollback scenario only wants a rollback of X). Rollbacks to N-
1 releases are auto-generated and included with the release package, but rollbacks to earlier releases are
easily accommodated and take minutes to set-up and deploy. Should multiple systems require rollbacks
and there be confusion over the desired release levels, rollbacks using a variant of p4 sync @05/01/2011
are always possible as well (although fortunately we've never had to do this).

Once the software objects have been integrated into the production staging area, release times are
literally the time for any pre-install scripts to run5, a few milliseconds of database time, the raw speed of
an ftp transfer to the target system plus the time of any post-install scripts (in Perforce and a point of
variance depending on system design).

At the end of the install, all information results from scripted activity is stored in a text file and submitted
to Perforce for later use.


Post-Install

Once objects have been installed into the production environment, Perforce becomes the 'root' of our
application environment that we use to watch for change. Unlike applications that watch for file system
change, Perforce allows us to differentiate between known changes and unknown changes by doing a P4
diff against the 'have' version currently on the client. Run after shutdown and before we start for the day,
the diffs give us an excellent insight into application and configuration integrity before the beginning of a
trading day, and quickly highlight any changes made during the day based on decisions by operational
staff so those changes can be incorporated back into the baseline upon confirmation.

After each diff is run an email that groups all of the results by project area is sent out (sorted by those
projects with failures at the top) which links to an interface allowing current and historical perusal of diff
data, with links to breakdowns of the server farms and the actual diffs per machine. This allows us a
quick method of seeing the impacted business areas, the role of the servers effected and the timeliness
desired for follow-up and resolution.

With complete historical knowledge of software configurations, troubleshooting production issues
becomes much more focused, as every piece of information around how the system was setup at that
point in time is stored within Perforce and can be easily replicated in a lab environment or reviewed in
detail.

Operationally, the meta-map allows us to check the state of all software and configurations on a
production machine without actually going to the machine, which creates not only a very convenient and
easy to use method of checking any machine maintained by Perforce but also a much safer method of
giving visibility into machine specific setups without giving everyone access to secure areas.



5
 Stored in Perforce and designed to validate various criteria per project, generically refer to as 'release
readiness checks' s consisting of steps ranging from checking disk space to validating user accounts and
directory permissions.
The information stored within the meta-map6 is used throughout the company in anything involving the
production environment, the visualization tools using Perforce data to view machines related to software
projects and roles, and the historical information about software levels on that box for use in scheduling
application deployments for phased roll-outs of new software. Furthermore, it will be used on ongoing
projects building management consoles that will dynamically manage and monitor resources from a point
of view related to the business unit and software project and not from the machine perspective.

Conclusion

Perforce adds value far beyond is initial role as a source code repository for NYSE Euronext, it is a fast
flexible information rich robust 'root' of our software production environment. As we increasingly look to
expand globally and our global resource pools find themselves working in far flung environments,
Perforce will continually provide a key common structural component that allows us to continue to scale
by growing our automation platforms and not our resource pools.




6
    The combination of data from the diffs, baseline, client spec, change and have tables.

More Related Content

What's hot

Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...
Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...
Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...Precisely
 
JBoss Enterprise Overview by Quinten Laureijs
JBoss Enterprise Overview by Quinten LaureijsJBoss Enterprise Overview by Quinten Laureijs
JBoss Enterprise Overview by Quinten LaureijsJoram Barrez
 
Configurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and ControlConfigurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and ControlCognizant
 
ArcMC 2.5.1 Release Notes
ArcMC 2.5.1 Release Notes	ArcMC 2.5.1 Release Notes
ArcMC 2.5.1 Release Notes Protect724mouni
 
Configuring Oracle Enterprise Manager Cloud Control 12c for HA White Paper
Configuring Oracle Enterprise Manager Cloud Control 12c for HA White PaperConfiguring Oracle Enterprise Manager Cloud Control 12c for HA White Paper
Configuring Oracle Enterprise Manager Cloud Control 12c for HA White PaperLeighton Nelson
 
NFV resiliency whitepaper - Ali Kafel, Stratus Technologies
NFV resiliency whitepaper - Ali Kafel, Stratus TechnologiesNFV resiliency whitepaper - Ali Kafel, Stratus Technologies
NFV resiliency whitepaper - Ali Kafel, Stratus TechnologiesAli Kafel
 
U2 Replication with EDA for Report Servers
U2 Replication with EDA for Report ServersU2 Replication with EDA for Report Servers
U2 Replication with EDA for Report ServersRocket Software
 

What's hot (10)

JESSIESEMANA_CV_1
JESSIESEMANA_CV_1JESSIESEMANA_CV_1
JESSIESEMANA_CV_1
 
Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...
Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...
Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...
 
JBoss Enterprise Overview by Quinten Laureijs
JBoss Enterprise Overview by Quinten LaureijsJBoss Enterprise Overview by Quinten Laureijs
JBoss Enterprise Overview by Quinten Laureijs
 
Configurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and ControlConfigurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and Control
 
ArcMC 2.5.1 Release Notes
ArcMC 2.5.1 Release Notes	ArcMC 2.5.1 Release Notes
ArcMC 2.5.1 Release Notes
 
Configuring Oracle Enterprise Manager Cloud Control 12c for HA White Paper
Configuring Oracle Enterprise Manager Cloud Control 12c for HA White PaperConfiguring Oracle Enterprise Manager Cloud Control 12c for HA White Paper
Configuring Oracle Enterprise Manager Cloud Control 12c for HA White Paper
 
NFV resiliency whitepaper - Ali Kafel, Stratus Technologies
NFV resiliency whitepaper - Ali Kafel, Stratus TechnologiesNFV resiliency whitepaper - Ali Kafel, Stratus Technologies
NFV resiliency whitepaper - Ali Kafel, Stratus Technologies
 
U2 Replication with EDA for Report Servers
U2 Replication with EDA for Report ServersU2 Replication with EDA for Report Servers
U2 Replication with EDA for Report Servers
 
Xandria datasheet
Xandria datasheet Xandria datasheet
Xandria datasheet
 
Test Harness for Custom Product Installation
Test Harness for Custom Product InstallationTest Harness for Custom Product Installation
Test Harness for Custom Product Installation
 

Viewers also liked

SQADays19 - 50 Слайдов для повышения безопасности вашего сервиса
SQADays19 - 50 Слайдов для повышения безопасности вашего сервисаSQADays19 - 50 Слайдов для повышения безопасности вашего сервиса
SQADays19 - 50 Слайдов для повышения безопасности вашего сервисаKonstantin Zavarov, ICP
 
2012 spain presentation
2012 spain presentation2012 spain presentation
2012 spain presentationCraig Pilant
 
Online course metadata standard
Online course metadata standardOnline course metadata standard
Online course metadata standardValeriy Platonov
 
Think Out Loud's 'Language Matters' Campaign Portfolio
Think Out Loud's 'Language Matters' Campaign Portfolio Think Out Loud's 'Language Matters' Campaign Portfolio
Think Out Loud's 'Language Matters' Campaign Portfolio Aurea González
 
Trans fix portal medial st naples 2009 (ap)
Trans fix portal medial   st naples 2009 (ap)Trans fix portal medial   st naples 2009 (ap)
Trans fix portal medial st naples 2009 (ap)drnaula
 
06miriam hardware
06miriam hardware06miriam hardware
06miriam hardware06miriam
 
material-matters-v11-n2
material-matters-v11-n2material-matters-v11-n2
material-matters-v11-n2Vincent Hughes
 
María del carmen romero corregido
María del carmen romero corregidoMaría del carmen romero corregido
María del carmen romero corregidoMaryRomero77
 
Elit 48 c class 21 post qhq new
Elit 48 c class 21 post qhq newElit 48 c class 21 post qhq new
Elit 48 c class 21 post qhq newjordanlachance
 
Vivienda 1 semestre 2014
Vivienda 1 semestre 2014Vivienda 1 semestre 2014
Vivienda 1 semestre 2014fabiogomez066
 
Nuevo planeta solitario pso j318.5 22
Nuevo planeta solitario pso j318.5 22Nuevo planeta solitario pso j318.5 22
Nuevo planeta solitario pso j318.5 22cmcsabiduria
 
Informe del proyecto .colorincolorado
Informe del proyecto .colorincoloradoInforme del proyecto .colorincolorado
Informe del proyecto .colorincoloradoangarrido
 
Grammar worksheets-secondary
Grammar worksheets-secondaryGrammar worksheets-secondary
Grammar worksheets-secondaryMahmoud Ibrahim
 
Visita a la empresa transporte asturias
Visita a la empresa transporte asturiasVisita a la empresa transporte asturias
Visita a la empresa transporte asturiasJoiver Davila
 

Viewers also liked (20)

SQADays19 - 50 Слайдов для повышения безопасности вашего сервиса
SQADays19 - 50 Слайдов для повышения безопасности вашего сервисаSQADays19 - 50 Слайдов для повышения безопасности вашего сервиса
SQADays19 - 50 Слайдов для повышения безопасности вашего сервиса
 
2012 spain presentation
2012 spain presentation2012 spain presentation
2012 spain presentation
 
Online course metadata standard
Online course metadata standardOnline course metadata standard
Online course metadata standard
 
Think Out Loud's 'Language Matters' Campaign Portfolio
Think Out Loud's 'Language Matters' Campaign Portfolio Think Out Loud's 'Language Matters' Campaign Portfolio
Think Out Loud's 'Language Matters' Campaign Portfolio
 
Jornadas
JornadasJornadas
Jornadas
 
Probiotics and adhesion paper
Probiotics and adhesion paperProbiotics and adhesion paper
Probiotics and adhesion paper
 
Trans fix portal medial st naples 2009 (ap)
Trans fix portal medial   st naples 2009 (ap)Trans fix portal medial   st naples 2009 (ap)
Trans fix portal medial st naples 2009 (ap)
 
06miriam hardware
06miriam hardware06miriam hardware
06miriam hardware
 
Catalogo unitronics 2012_intrave
Catalogo unitronics 2012_intraveCatalogo unitronics 2012_intrave
Catalogo unitronics 2012_intrave
 
Nettit
NettitNettit
Nettit
 
CMSD 488 Final Research Paper
CMSD 488 Final Research PaperCMSD 488 Final Research Paper
CMSD 488 Final Research Paper
 
material-matters-v11-n2
material-matters-v11-n2material-matters-v11-n2
material-matters-v11-n2
 
María del carmen romero corregido
María del carmen romero corregidoMaría del carmen romero corregido
María del carmen romero corregido
 
Elit 48 c class 21 post qhq new
Elit 48 c class 21 post qhq newElit 48 c class 21 post qhq new
Elit 48 c class 21 post qhq new
 
Cuadernillo de repaso
Cuadernillo de repasoCuadernillo de repaso
Cuadernillo de repaso
 
Vivienda 1 semestre 2014
Vivienda 1 semestre 2014Vivienda 1 semestre 2014
Vivienda 1 semestre 2014
 
Nuevo planeta solitario pso j318.5 22
Nuevo planeta solitario pso j318.5 22Nuevo planeta solitario pso j318.5 22
Nuevo planeta solitario pso j318.5 22
 
Informe del proyecto .colorincolorado
Informe del proyecto .colorincoloradoInforme del proyecto .colorincolorado
Informe del proyecto .colorincolorado
 
Grammar worksheets-secondary
Grammar worksheets-secondaryGrammar worksheets-secondary
Grammar worksheets-secondary
 
Visita a la empresa transporte asturias
Visita a la empresa transporte asturiasVisita a la empresa transporte asturias
Visita a la empresa transporte asturias
 

Similar to White Paper: Scalable Lifecycle Management via Perforce

PCF2.2 update mkim_201807
PCF2.2 update mkim_201807PCF2.2 update mkim_201807
PCF2.2 update mkim_201807minseok kim
 
FOISDBA-Ver1.1.pptx
FOISDBA-Ver1.1.pptxFOISDBA-Ver1.1.pptx
FOISDBA-Ver1.1.pptxssuser20fcbe
 
Datasheet scriptspluginforrd
Datasheet scriptspluginforrdDatasheet scriptspluginforrd
Datasheet scriptspluginforrdMidVision
 
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...Iver Band
 
Enabling multicloud in the enterprise with DevSecOps
Enabling multicloud in the enterprise with DevSecOpsEnabling multicloud in the enterprise with DevSecOps
Enabling multicloud in the enterprise with DevSecOpsJosh Boyd
 
Time and attendance software
Time and attendance softwareTime and attendance software
Time and attendance softwarepftecsoft
 
Agile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtAgile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtVincent Burckhardt
 
oracle_workprofile.pptx
oracle_workprofile.pptxoracle_workprofile.pptx
oracle_workprofile.pptxssuser20fcbe
 
Brochure of Yokogawa's Fast/Tools Supervisory Systems
Brochure of Yokogawa's Fast/Tools Supervisory SystemsBrochure of Yokogawa's Fast/Tools Supervisory Systems
Brochure of Yokogawa's Fast/Tools Supervisory SystemsYokogawa
 
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP ProgrammingHetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP ProgrammingIntel® Software
 
Maveric - Automation of Release & Deployment Management
Maveric -  Automation of Release & Deployment ManagementMaveric -  Automation of Release & Deployment Management
Maveric - Automation of Release & Deployment ManagementMaveric Systems
 
U Forge appcenter - Datasheet
U Forge appcenter - DatasheetU Forge appcenter - Datasheet
U Forge appcenter - DatasheetAlessandro Guli
 
Enterprise Application Guidelines
Enterprise Application GuidelinesEnterprise Application Guidelines
Enterprise Application GuidelinesGuru Lakshmeekar B
 

Similar to White Paper: Scalable Lifecycle Management via Perforce (20)

EGENindepth_v3_recto
EGENindepth_v3_rectoEGENindepth_v3_recto
EGENindepth_v3_recto
 
PCF2.2 update mkim_201807
PCF2.2 update mkim_201807PCF2.2 update mkim_201807
PCF2.2 update mkim_201807
 
FOISDBA-Ver1.1.pptx
FOISDBA-Ver1.1.pptxFOISDBA-Ver1.1.pptx
FOISDBA-Ver1.1.pptx
 
Datasheet scriptspluginforrd
Datasheet scriptspluginforrdDatasheet scriptspluginforrd
Datasheet scriptspluginforrd
 
Thought Leader Interview: Dr. William Turner on the Software-Defined Future ...
Thought Leader Interview:  Dr. William Turner on the Software-Defined Future ...Thought Leader Interview:  Dr. William Turner on the Software-Defined Future ...
Thought Leader Interview: Dr. William Turner on the Software-Defined Future ...
 
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...
 
Enabling multicloud in the enterprise with DevSecOps
Enabling multicloud in the enterprise with DevSecOpsEnabling multicloud in the enterprise with DevSecOps
Enabling multicloud in the enterprise with DevSecOps
 
Time and attendance software
Time and attendance softwareTime and attendance software
Time and attendance software
 
Agile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtAgile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is built
 
Internship msc cs
Internship msc csInternship msc cs
Internship msc cs
 
Legacy Migration Overview
Legacy Migration OverviewLegacy Migration Overview
Legacy Migration Overview
 
Legacy Migration
Legacy MigrationLegacy Migration
Legacy Migration
 
oracle_workprofile.pptx
oracle_workprofile.pptxoracle_workprofile.pptx
oracle_workprofile.pptx
 
Brochure of Yokogawa's Fast/Tools Supervisory Systems
Brochure of Yokogawa's Fast/Tools Supervisory SystemsBrochure of Yokogawa's Fast/Tools Supervisory Systems
Brochure of Yokogawa's Fast/Tools Supervisory Systems
 
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP ProgrammingHetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
 
Maveric - Automation of Release & Deployment Management
Maveric -  Automation of Release & Deployment ManagementMaveric -  Automation of Release & Deployment Management
Maveric - Automation of Release & Deployment Management
 
U Forge appcenter - Datasheet
U Forge appcenter - DatasheetU Forge appcenter - Datasheet
U Forge appcenter - Datasheet
 
Enterprise Application Guidelines
Enterprise Application GuidelinesEnterprise Application Guidelines
Enterprise Application Guidelines
 
SOSCOE Overview
SOSCOE OverviewSOSCOE Overview
SOSCOE Overview
 
Enea Element Datasheet
Enea Element DatasheetEnea Element Datasheet
Enea Element Datasheet
 

More from Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsPerforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsPerforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowPerforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldPerforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMPerforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Perforce
 

More from Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

White Paper: Scalable Lifecycle Management via Perforce

  • 1. Scalable  lifecycle  management  via  Perforce Adam Breashears - Release Automation Tools & Services Valerie Hendrickson - Release Management Abstract Managing complex, dynamic production environments where speed & accuracy of deployment intersect with a requirement of deep information about the state of each environment (current and historical) and a guarantee of application integrity is a hallmark of high-transaction low-latency environments. The same qualities that make Perforce a fantastic source code repository, the attention to protecting and tracking a company’s source and intellectual property, overlap to a large degree with the requirements of maintaining a critical production environment. Introduction1 NYSE Euronext faces a wide range of challenges stemming from its leading market position globally, its recent mergers which created a global exchange and financial service provider, with offices and data centers across two continents bound together and connected to its customer base by a global private network the Secure Financial Transactions Infrastructure (SFTI) created and maintained by NYSE Euronext. In addition to synergistic challenges created from the various mergers, the server infrastructure maintained by the Release Management team at NYSE Euronext has expanded from 300 (as the start-up Archipelago) to 9,000 servers (at peak during a data center migration), with a target of 6,000 globally by EOY 2011, in a corporate culture which prizes increases in scalability and efficiency (alongside an indifference to extremes in variance), not increases in headcount. Continuous corporate growth that is fueled by both organic and M&A activity has necessitated a process where variant processes can be made common at certain systemic points. Hardware and software migrations take time and involve organizational risks, but 'synergies' require that they be managed as a single 'environment' on both side of the life-cycle, whether it be radically different styles of SDLC entering into the production environment or interactions with said production environment. There's no room for 1:1 solutions to development styles and environments. Therefore, virtual consistency must be high, and certain functions must look the same for example software installs/rollbacks. In addition to virtual consistency, a common prerequisite to our environment is the ability to have absolute traceability path into the production environment, binary to source, configs/scripts to baselines, and historical definitions of all changes. Every script run in a production environment must be available for review at a later time and of course, all of this has to happen with no human driven interaction or time delay to the ability to execute. Perforce at NYSE Euronext is much more than a source code repository2), it is the foundation of information transfer and validation between any software artifact that goes between production and non- production. As such, it is under high load 24/7 and is considered a mission critical resource for IT. What is the full scope of Life Cycle management? There are two related concepts at NYSE Euronext in terms of Life Cycle management - Software Life 1 This should be read in conjunction with the presentation presented at the 2011 Perforce conference. 2 Perforce fulfills that function , along with many others to various groups within the company, however here we'll be limiting the scope of discussion to its role in Production focused Life Cycle management
  • 2. Cycle Management (controlling how software is used in production throughout its usable life cycle) and the Software Development Life Cycle3 (SDLC) and both utilize Perforce as a critical component. Specifically within the scope of this white paper we'll be focusing on the final cycles of the SDLC and the production component of software utilization. Some specific challenges that needed to be addressed (in no order of importance): • Detecting unauthorized use/deployment • Detecting unauthorized change (config/script/binary) • Making sure software still exists on appropriate systems • Creating common patterns of usage for unique systems • Having full traceability from binary on machine X in production to source files in development • Be able to deploy dozens of releases to thousands of servers in under an hour • Verify explicit patterns of tested software configuration • Rapidly adapt (intraday) to shifting asset states by the hundreds (new/deprecate old/changes) • Be able to absolutely verify the software level of all assets real-time • Remove any possible source of inaccuracy (humans) from the release/install process How does Perforce help us accomplish this task? Perforce specific features The key features that Perforce offers its development community also coincide perfectly with the needs of a secure production environment, scalability, fast data operations, designed to accommodate global user communities/solutions, Easy administration/support, flexible/fast/Intuitive branching, an affordable pricing model and world-class technical support4. In addition to the 'high-level' value adds of the Perforce design, some more specific points include: • Maintaining integrity of data objects along pipelines (by atomic change lists) • Easy & secure integrations between secure dev/qa/production sections of the repository (as a result of the branching system) • Detailed trace of data objects as they route along pipelines for audit requirements (as a result of the embedded versioning mechanism) • Detailed trace of Perforce's own data objects, such as the client specs that represent meta-data around production systems (spec depot) • Protection of production meta-data objects from tampering (triggers) • Secure sections within each repository for different levels of access (dev/qa/prod) combined with triggers to explicitly limit access to appropriate users & domains • With all software objects defined by change list and pulled from a central source, Quality validation against known configurations can be explicitly defined and baselined for risk against component specific (as opposed to release) level rollbacks. • The production repository is a meta-map of all production machines due to the easy yet robust flexibility of client specs (with spec components pulling from different repositories for 3rd party software packages, Release objects, scripts, configs, etc) 3 SDLC - creating or altering systems, and the models and methodologies used to develop these systems 4 Reference Perforce website (www.perforce.com)
  • 3. Production machines are compared to baseline each night for possible change and additional of extra components (p4 diff/p4 add) • Production rollbacks occur within seconds across entire machine farms and are limited only by dependencies on other applications (atomic changelists with release naming conventions in the description guarantee precise conditions can be easily duplicated during a rollback). As an example of scalability of this method, while keeping the same general level of release management resources (who have to manage not only Perforce, but our release/issue tracking system, our build tool, our custom automation and provide user & branching/depot support), we've gone from approximately 100 releases per human (over a server population of 300) in 2007 to 3000 releases per human (over a server population of 6000 with a spike at the end of 2010 of 8,500 due to data center migrations) in 2011. Implementation of Perforce as a Life Cycle management tool Release Installation Process All production machines are set up in Perforce with a 'meta-map' of what their software configuration should be in production. The meta-map is a locked client spec, drawing from multiple sections of the repository; with a particular syntax in its description that we can use to map the client to its production host and purpose (for automation purposes it helps to have more data than just the 'host'). Where multiple user accounts are required for applications, multiple client specs are created and locked to their owner only (by depot permission settings). While the locked down client specs allow us to prevent changes to the meta-map in production, new spec creation mapping to a production section is restricted by triggers, only Release Management can create new meta-maps for production. Each line of software has its own sections for development, quality assurance and production, with each being integrated to the next through the p4 integrate command set. The descriptions of each have syntax that define what level of software they represent in our release tracking tool, which also stores the change list number corresponding to that release. The dual storage of release/changelist in each system allows for easy access, depending on 'which way' the user is trying to get to a particular piece of data - with the servers as the starting point (you'd look at the p4 have with the changelist description) or the end point (where you'd look at the release tracking tool, identify the change list number and then ask to install that number on a particular asset). Combined with a source of reference data (our Environment Mapping Database) we can automatically create client-specs (and meta-maps) as needed depending on business, software, and machine/OS type requested. The end result of this allows for very specific & rapid environment configurations in multiple environments and across multiple branches (in QA) as client-spec behavior has an attribute that when you change the meta-map of the spec, it removes all of the old synced files and replaces with the new ones, allowing groups to swap between completely different development efforts in minutes without having to work about binary overlap of differing functional levels. Automated Production Deployment For deployment outside of local environments, multiple proxies are setup to reduce latency of files to the local environment, but by far the most resource intensive component of the installation is the update to the 'Have' table in Perforce (currently at 30 gig and rising), one of the most important components of a front end Perforce server in this configuration is RAM (and local disk for the database - running release installations in parallel generates high levels of database activity that can exceed SAN capacity). Since Perforce requires a 'pull' methodology, there's a built in level of 'assurance' that we can't
  • 4. 'accidentally' trigger an install at an inappropriate time. The 'install event' is a series of cascading scripts (automatically generated each night before the installs) that specify what each client should be from the client and under the watchful eye of our operations division. Once a sync has been completed and the Have table updated (Perforce doesn't update the Have table unless the file transfer is successful), release rollbacks are as simple as using the same scripted methodology to sync to an earlier changelist, which removes all file versions submitted after that version, removing the fear of having an untested release configuration in production (for example, version 7 of X tested with version 5 of Y, but the requested rollback scenario only wants a rollback of X). Rollbacks to N- 1 releases are auto-generated and included with the release package, but rollbacks to earlier releases are easily accommodated and take minutes to set-up and deploy. Should multiple systems require rollbacks and there be confusion over the desired release levels, rollbacks using a variant of p4 sync @05/01/2011 are always possible as well (although fortunately we've never had to do this). Once the software objects have been integrated into the production staging area, release times are literally the time for any pre-install scripts to run5, a few milliseconds of database time, the raw speed of an ftp transfer to the target system plus the time of any post-install scripts (in Perforce and a point of variance depending on system design). At the end of the install, all information results from scripted activity is stored in a text file and submitted to Perforce for later use. Post-Install Once objects have been installed into the production environment, Perforce becomes the 'root' of our application environment that we use to watch for change. Unlike applications that watch for file system change, Perforce allows us to differentiate between known changes and unknown changes by doing a P4 diff against the 'have' version currently on the client. Run after shutdown and before we start for the day, the diffs give us an excellent insight into application and configuration integrity before the beginning of a trading day, and quickly highlight any changes made during the day based on decisions by operational staff so those changes can be incorporated back into the baseline upon confirmation. After each diff is run an email that groups all of the results by project area is sent out (sorted by those projects with failures at the top) which links to an interface allowing current and historical perusal of diff data, with links to breakdowns of the server farms and the actual diffs per machine. This allows us a quick method of seeing the impacted business areas, the role of the servers effected and the timeliness desired for follow-up and resolution. With complete historical knowledge of software configurations, troubleshooting production issues becomes much more focused, as every piece of information around how the system was setup at that point in time is stored within Perforce and can be easily replicated in a lab environment or reviewed in detail. Operationally, the meta-map allows us to check the state of all software and configurations on a production machine without actually going to the machine, which creates not only a very convenient and easy to use method of checking any machine maintained by Perforce but also a much safer method of giving visibility into machine specific setups without giving everyone access to secure areas. 5 Stored in Perforce and designed to validate various criteria per project, generically refer to as 'release readiness checks' s consisting of steps ranging from checking disk space to validating user accounts and directory permissions.
  • 5. The information stored within the meta-map6 is used throughout the company in anything involving the production environment, the visualization tools using Perforce data to view machines related to software projects and roles, and the historical information about software levels on that box for use in scheduling application deployments for phased roll-outs of new software. Furthermore, it will be used on ongoing projects building management consoles that will dynamically manage and monitor resources from a point of view related to the business unit and software project and not from the machine perspective. Conclusion Perforce adds value far beyond is initial role as a source code repository for NYSE Euronext, it is a fast flexible information rich robust 'root' of our software production environment. As we increasingly look to expand globally and our global resource pools find themselves working in far flung environments, Perforce will continually provide a key common structural component that allows us to continue to scale by growing our automation platforms and not our resource pools. 6 The combination of data from the diffs, baseline, client spec, change and have tables.