SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
Scalable Life Cycle Management
             via Perforce
Adam Breashears and Valerie Hendrickson
NYSE Euronext
June 1, 2011




                                          © NYSE Euronext. All Rights Reserved.
Agenda
  •  The Business Needs of an Exchange
  •  Business Challenges in SDLC Methodologies
  •  Perforce Environment Setup
  •  Release Installation Process
  •  Automated Production Deployment
  •  Automated Rollback Scenarios
  •  Life Cycle Management
  •  Conclusion
  •  Appendix




                                                 2
Business Makeup
NYSE Euronext Profile
   •  NYSE Euronext (NYX) is the world’s most diverse exchange
      group, offering a broad and growing array of financial products
      and services in Europe and the United States that include cash
      equities, futures, options, exchange-traded products, bonds,
      market data, and commercial technology solutions.
   •  With over 8,000 listed issues globally, NYSE Euronext's equities
      markets -- the New York Stock Exchange, Euronext, NYSE Arca,
      and NYSE Amex -- represent nearly 40% of the world's cash
      equities trading volume, the most liquidity of any global exchange
      group
   •  NYSE Euronext also operates NYSE Liffe, the leading European
      derivatives business and the world’s second largest derivatives
      business by value of trading. NYSE Euronext is part of the S&P
      500 index and the only exchange operator in the S&P 100 index


                                                                           4
Scale of the Business
The total market cap of all our listed companies is over $24 Trillion….
…Compared to country GDPs, that would make us the largest economy in the world.


                     Largest Economies by GDP (in Trillions of $)


                                            China - $10 tr
              US - $15 tr                                           Japan - $4 tr

                                                                           India - $4 tr

                                                                          Germany - $3 tr

                      $ 24 tr – NYX Issuer Mkt Cap




                                                                                       5
Scale of the Transactions
Globally, we execute $2.5 trillion in financial transactions every day….

                              …That’s 42 times more than Ebay handles in a year.

                     Monetary Value of Transactions (in Billions of $)

                2,500

                2,000

                1,500

                1,000

                 500

                    0
                             NYX daily          Annual Ebay
                           transactions         transactions

                                                                                   6
Volume of the Transactions
In the US alone, We process more than 1.4 billion messages every day….

…That’s 3.5 times more than the number of internet searches Google handles daily.

                   Number of Messages/Transactions (in Millions)


          NYX daily
          messages


       Daily Google
           searches


   Visa daily credit
  card transactions

                       0   200    400    600    800 1,000 1,200 1,400

                                                                                    7
400+ years of business and technology firsts
We are the inventors of financial exchanges…
 –    Amsterdam, founded 1602, is the world’s oldest exchange
 –    Our markets in Brussels, Lisbon, NY and Paris and trace their roots to
      the 18th and 19th centuries
 –    We have over 16 centuries of combined experience running financial
      exchanges


                       And we have a rich history of innovation in markets…
                          –    NYSE was the first exchange to use a stock ticker to disseminate data (1867)
                          –    NYSE was the first to have telephones on the trading floor (1878)
                          –    We had automated quotation services 18 years before Nasdaq was founded (1953)
                          –    First electronic ticker display board (1966)
                          –    First options exchange in Europe launched in Amsterdam (1978)
                          –    Amex pioneered the Exchange Traded Fund (1993)
                          –    Wireless handheld devices on NYSE’s floor 15 years before ipad invented (1995)
                          –    Euronext becomes first pan-European equities market (2000)
                          –    SFTI was the industry’s first network offering global connectivity (2008)




                                                                                                          8
Business Needs
Release Count Per Year
                             Total Number of Releases
    10000


     9000


     8000


     7000


     6000


     5000
                                                             Total Number of Releases

     4000


     3000


     2000


     1000


        0
            2005   2006   2007   2008   2009   2010   2011


  •  Projected 2011 release count based on releases thus far

                                                                                        10
Server Count Per Year
                              Number of Servers
    9000


    8000


    7000


    6000


    5000

                                                            Number of Servers
    4000


    3000


    2000


    1000


       0
              2007     2008     2009     2010     2011


           • Peak in server count due to data center migrations

                                                                                11
Business
Challenges in
  Software
 Deployment
Methodologies
Business Challenges
  •    Rapid growth of deployment
  •    Increase in code line complexity
  •    Increasing pressure to reduce development time to prod
  •    Increasing size of server farm due to demand
  •    Zero tolerance for system downtime
  •    Software rollbacks must be rapid, scalable and reliable
  •    Audit best practice requires traceability of all activity




                                                                   13
Business Challenges (continued)
   •    Scalability must be achieved with zero headcount growth
   •    Frequent mergers require process scalability
        •    Increasing number of business entities to cover
        •    High variance in supported operating systems and physical platforms
        •    Increasing demand for new products




                                                                                   14
Two Core Concepts Behind the Business Challenges
   •    Life cycle management - controlling how its software is used
        throughout its usable lifecycle
        •    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
   •    Software Development Life Cycles is the creating or altering of
        systems, and the models and methodologies that people use to
        develop/maintain these systems
        •    Tracking creation <> QA <> Release <> Staging <> Distribution
             <> Utilization <> Deprecation



                                                                             15
Environment Mapping Database
  •    Creating common patterns of usage for unique systems




                                                              16
Perforce
Environment Setup
Perforce Depot Structure

    Perforce	
              Dev	
                                                          Dev	
  PC	
  
                           Depot	
  


                                              Submit	
  built	
  binaries	
  




                       Verifica0on	
                                                     Verifica0on	
  
                         Depot	
                                                          Servers	
  



                                        Push	
  verified	
  binaries	
  to	
  QA	
  




                            QA	
                                                        QA	
  Servers	
  
                           Depot	
  



                                        Push	
  tested	
  binaries	
  to	
  PROD	
  




                           PROD	
                                                      PROD	
  Servers	
  
                           Depot	
  




                                                                                                             18
Release Installation
     Process
Binaries in Perforce from Dev to Production
   •    Build branches are fully preserved based only on files that are
        released
   •    Dev has no write access to verification application files
        •  Forces all code to be submitted via Perforce
        •  Audit compliance
        •  Dev verification zone files kept in Perforce
           •  Ensures binaries that pass verification are the same that go
              to QA
           •  Full integration log kept in Perforce for each file




                                                                             20
QA Perforce Pros/Cons
  •    Pros:
       •    QA can setup different environments on any release level with
            minimal overhead.
       •    QA can signoff on out of order patch levels
       •    Perforce integrations via atomic change lists
       •    Component based testing for QA
       •    Traceability back to source code based on application files
  •    Cons: (driven by organizational security practices)
       •    No third party package installs
       •    No changes that have to be done as the ‘root’ user
       •    No OS changes done (example: hugepage size changes)


                                                                            21
Automated
Production
Deployment
Production Deployment
  •    Advantages
       •    Rapid application deployment to production
       •    Distributed global proxies to reduce latency
       •    Scalability to thousands of servers with minimal overhead
       •    Ability to track application files back to source code
       •    Installation time is identical whether installing one release or
            many
       •    Efficient and accurate installations
  •    Disadvantages
       •    Third party software is packaged separately
       •    RPMs can be sold to a customer in a single package
  • 

                                                                               23
Production Deployment Process




                                24
Preview and Install Logs
   •    Ability to preview all files going to each server based on client
        meta-map
   •    Ability to script a ‘diff’ error to show if the actual install matches
        what should be getting installed
   •    All preview and install logs stored in Perforce repository
   •    Full trace of exactly what version of what file was deployed on
        what day to what server




                                                                                 25
Request for Release Deployments
 Zone	
  specified	
  in	
  client	
  
    spec	
  descrip2on	
  




                                                   Server	
  names	
  
                                                generated	
  from	
  host	
  
                                               name	
  in	
  the	
  client	
  spec	
  

             Release	
  based	
  on	
  
        change	
  list	
  descrip2on	
  
        of	
  previous	
  change	
  list	
  


                                                                                         26
Pending Installs




  Sync	
  to	
  RELID	
  will	
  
   match	
  with	
  the	
  
  descrip2on	
  of	
  the	
  
change	
  list	
  in	
  Perforce	
  	
  

                              Server	
  list	
  will	
  populate	
  
                              servers	
  to	
  install	
  to	
  and	
  
                                         P4HOST	
  

                                                                          27
Automated Rollback
    Scenarios
Perforce Rollback Pros/Cons
 •    Pros:
      •  Quickly rollback to exact point of software on hundreds of servers
         in minutes
      •  Easy intraday solution during an outage
      •  Allows for weekend testing
      •  Auto-generated in conjunction with the install script based on what
         is existing on the client before the install
      •  No order dependencies when going to any release version
      •  Full accuracy based on Perforce atomic change lists
      •  Saves man hours of getting a server back to a particular patch level
 •    Cons (driven by organizational security practices):
      •  Any OS/third party package dependencies must be done manually
      •  No changes which require ‘root’ access




                                                                                29
Application File Structure for Rollbacks
      •  Patch level submitted with release description
          •  Allows sync back to any atomic change list in the event
          of an outage




                                                                       30
Life Cycle
Management –
  Meta-data
 Lockdown
Perforce Life Cycle Control
 •    RM maintains all production client specs
 •    Locked Clients
      •  Clients for all production systems are locked and owned by prod
         system accounts for that application
      •  Locked clients can only be updated by Perforce admins, after being
         authenticated by Perforce
 •    Perforce Triggers
      •  Triggers are configured to notify RM of attempts to modify production
         clients
 •    Perforce Depot Access Control
      •  Perforce depot access can be allocated on a file by file level of
         granularity
      •  Depot access is granted on an as needed basis and continually
         evaluated

                                                                                 32
Life Cycle
 Management - Post
     Production
Installation Integrity
       Checks
Production Integrity
   •    Situation/Need
        •  Production Black Box
        •  Variances in production cause outages
   •    Solution
        •  Automated method to compare state of production (application
           files/configuration files) to Perforce meta-map
        •  Reporting framework to alert necessary teams to quickly view
           the results of comparison
        •  Per system/per file basis run to evaluate integrity of systems
        •  Files on systems are compared with the meta-map of
           production in Perforce and any noncompliance is reported via
           Diff Report.




                                                                            34
Post Production Process Workflow
             Environment	
  	
  
               Mapping	
  	
  
               Database	
  




                                                                Diff	
  Scripts	
                                          Perforce	
  
         GenerateScripts.pl	
  
                                                         Release	
  Readiness	
  Scripts	
                             (Submit	
  scripts)	
  




                                                                                                                               Prod	
  
                                                                                                                               Depot	
  




        Perforce	
                                                                                                           Perforce	
  
                                   Prod	
  Servers	
                                Admin	
  Server	
  
      (Submit	
  logs)	
                                                                                  (Sync	
  up	
  scripts	
  on	
  admin	
  servers)	
  




           Prod	
  
           Depot	
  




                                                                                                                                                                  35
Post Installation Reports




                            36
Version Viewer
   •  Driven via Perforce change list description last synced on any
   given client spec
   •  History based on the past change lists synced down




                                                                       37
Post Production Audit
   •    All scripts run in production are kept in Perforce
   •    Full historical tracking of server nightly audits against the
        Perforce meta-map
   •    All scripts are auto-generated based on Perforce client specs,
        hosts, users to allow for no manual changes to scripts to take
        place




                                                                         38
Conclusion
Appendix
(examples)
Common Perforce Commands in Automation
  •    Preview code example:
       •  p4 -P $ticket -u $app_user -c $Spec -H $serverindex -d
          $ROOT sync -n ...@$CL
  •    Preview log/install log – diff command
       •  p4 diff2 -dw $INSTALL_LOG $PREVIEW_LOG




                                                                   41
Client Spec Meta-maps Example
Development:
//utp_depot/RM/AppFileMgmt/US_Cash/dev/release_1.2/... //<servername>/...
//utp_depot/RM/ConfigFileMgmt/US_Cash/dev/<servername>/cf/... //<servername>/cf/...
//utp_depot/RM/ConfigFileMgmt/US_Cash/dev/<servername>/db/... //<servername>/db/...
RM/Development Verification:
//utp_depot/RM/AppFileMgmt/US_Cash/rm/release_1.2/... //<servername>/...
//utp_depot/RM/ConfigFileMgmt/US_Cash/rm/<servername>/cf/... //<servername>/cf/...
//utp_depot/RM/ConfigFileMgmt/US_Cash/rm/<servername>/db/... //<servername>/db/...
QA:
//utp_depot/RM/AppFileMgmt/US_Cash/qa/release_1.2/... //<servername>/...
//utp_depot/RM/ConfigFileMgmt/US_Cash/qa/<servername>/cf/... //<servername>/cf/...
//utp_depot/RM/ConfigFileMgmt/US_Cash/qa/<servername>/db/... //<servername>/db/...
PROD:
//utp_depot/RM/AppFileMgmt/US_Cash/prod/... //<servername>/...
//utp_depot/RM/ConfigFileMgmt/US_Cash/prod/<servername>/cf/... //<servername>/cf/...
//utp_depot/RM/ConfigFileMgmt/US_Cash/prod/<servername>/db/... //<servername>/db/...


                                                                                       42
Partial Auto-generated Install Script Example

LOG=${INSTALL_ROOT}/index_service/logs/index_install_prod_tt24108.log
BACKUP_LOG=${INSTALL_ROOT}/index_service/logs/index_service_prod_backup_${DATE}.log
MAIL_RECIPIENT="ReleaseManagement@nyse.com"
echo "" > $LOG
. ${INSTALL_ROOT}/InstallFunctions
VerifySync
DiffItself "${INSTALL_ROOT}/index_service/index_install"
SERVERS="mep01 mep02 mep03 mep04 "
APP="index_service“
LABEL=…@1195053
APP_USER="prod"
CheckUser prod
CLIENT='${server}a‘
for server in $SERVERS
do
echo "<SERVER_P4SYNC_OUTPUT>" >> $LOG
  ssh $APP_USER@$server ". ~prod/.bash_profile; umask 0022; export P4CONFIG=; export P4CLIENT=${server}
a; export P4USER=prod; export P4PORT=perforce:1666; export P4HOST=${server}; cd /app/index; /usr/local/bin/
p4 -u prod sync $LABEL " >> $LOG 2>&1
  echo "" >> $LOG
echo "</SERVER_P4SYNC_OUTPUT>" >> $LOG
done
SubmitInstallLog $LOG
DiffPreviewAndInstallLogs




                                                                                                              43
Scalable Lifecycle Management via Perforce

Más contenido relacionado

Similar a Scalable Lifecycle Management via Perforce

Quantlogic Product &amp; Services Offerring
Quantlogic Product &amp; Services OfferringQuantlogic Product &amp; Services Offerring
Quantlogic Product &amp; Services Offerringnscarr
 
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017  - ...Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017  - ...
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...Haidee McMahon
 
Mongo for the Mission Critical Enterprise
Mongo for the Mission Critical EnterpriseMongo for the Mission Critical Enterprise
Mongo for the Mission Critical EnterpriseMongoDB
 
Pytec Specialist Areas For Development
Pytec Specialist Areas For DevelopmentPytec Specialist Areas For Development
Pytec Specialist Areas For Developmentwillcantrell29
 
Juniper "New Network" Launch Press Conference
Juniper "New Network" Launch Press ConferenceJuniper "New Network" Launch Press Conference
Juniper "New Network" Launch Press ConferenceJuniper Networks
 
DockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDocker, Inc.
 
OpenStack Ottawa MeetUp - April 3rd 2018
OpenStack Ottawa MeetUp - April 3rd 2018OpenStack Ottawa MeetUp - April 3rd 2018
OpenStack Ottawa MeetUp - April 3rd 2018Stacy Véronneau
 
Oslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringOslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringAlmudena Vivanco
 
Utilizing Aster nCluster to support processing in excess of 100 Billion rows ...
Utilizing Aster nCluster to support processing in excess of 100 Billion rows ...Utilizing Aster nCluster to support processing in excess of 100 Billion rows ...
Utilizing Aster nCluster to support processing in excess of 100 Billion rows ...Teradata Aster
 
IBM i and Your IT Strategy - Trevor Perry
IBM i and Your IT Strategy - Trevor PerryIBM i and Your IT Strategy - Trevor Perry
IBM i and Your IT Strategy - Trevor PerryFresche Solutions
 
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...Dan Cundiff
 
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...Docker, Inc.
 
Gallant VPS - Short Version
Gallant VPS - Short VersionGallant VPS - Short Version
Gallant VPS - Short VersionSimon Grunfeld
 
Broadcast Business Management in a Multiplatform Era
Broadcast Business Management in a Multiplatform EraBroadcast Business Management in a Multiplatform Era
Broadcast Business Management in a Multiplatform EraSprinklr
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifeSeveralnines
 

Similar a Scalable Lifecycle Management via Perforce (20)

Quantlogic Product &amp; Services Offerring
Quantlogic Product &amp; Services OfferringQuantlogic Product &amp; Services Offerring
Quantlogic Product &amp; Services Offerring
 
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017  - ...Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017  - ...
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...
 
Mongo for the Mission Critical Enterprise
Mongo for the Mission Critical EnterpriseMongo for the Mission Critical Enterprise
Mongo for the Mission Critical Enterprise
 
NISO Webinar: What to Expect When You're Expecting a Platform Change: Perspec...
NISO Webinar: What to Expect When You're Expecting a Platform Change: Perspec...NISO Webinar: What to Expect When You're Expecting a Platform Change: Perspec...
NISO Webinar: What to Expect When You're Expecting a Platform Change: Perspec...
 
NASDOQ 2015
NASDOQ 2015 NASDOQ 2015
NASDOQ 2015
 
Pytec Specialist Areas For Development
Pytec Specialist Areas For DevelopmentPytec Specialist Areas For Development
Pytec Specialist Areas For Development
 
Juniper "New Network" Launch Press Conference
Juniper "New Network" Launch Press ConferenceJuniper "New Network" Launch Press Conference
Juniper "New Network" Launch Press Conference
 
DockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General Session
 
OpenStack Ottawa MeetUp - April 3rd 2018
OpenStack Ottawa MeetUp - April 3rd 2018OpenStack Ottawa MeetUp - April 3rd 2018
OpenStack Ottawa MeetUp - April 3rd 2018
 
Oslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringOslo Schibsted Performance Gathering
Oslo Schibsted Performance Gathering
 
comScore
comScorecomScore
comScore
 
Utilizing Aster nCluster to support processing in excess of 100 Billion rows ...
Utilizing Aster nCluster to support processing in excess of 100 Billion rows ...Utilizing Aster nCluster to support processing in excess of 100 Billion rows ...
Utilizing Aster nCluster to support processing in excess of 100 Billion rows ...
 
IBM i and Your IT Strategy - Trevor Perry
IBM i and Your IT Strategy - Trevor PerryIBM i and Your IT Strategy - Trevor Perry
IBM i and Your IT Strategy - Trevor Perry
 
Join FIWARE Lab
Join FIWARE LabJoin FIWARE Lab
Join FIWARE Lab
 
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...
Splunk All the Things: Our First 3 Months Monitoring Web Service APIs - Splun...
 
Stock exchanges of India
Stock exchanges of IndiaStock exchanges of India
Stock exchanges of India
 
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
 
Gallant VPS - Short Version
Gallant VPS - Short VersionGallant VPS - Short Version
Gallant VPS - Short Version
 
Broadcast Business Management in a Multiplatform Era
Broadcast Business Management in a Multiplatform EraBroadcast Business Management in a Multiplatform Era
Broadcast Business Management in a Multiplatform Era
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
 

Más de 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
 

Más de 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
 

Último

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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Último (20)

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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Scalable Lifecycle Management via Perforce

  • 1. Scalable Life Cycle Management via Perforce Adam Breashears and Valerie Hendrickson NYSE Euronext June 1, 2011 © NYSE Euronext. All Rights Reserved.
  • 2. Agenda •  The Business Needs of an Exchange •  Business Challenges in SDLC Methodologies •  Perforce Environment Setup •  Release Installation Process •  Automated Production Deployment •  Automated Rollback Scenarios •  Life Cycle Management •  Conclusion •  Appendix 2
  • 4. NYSE Euronext Profile •  NYSE Euronext (NYX) is the world’s most diverse exchange group, offering a broad and growing array of financial products and services in Europe and the United States that include cash equities, futures, options, exchange-traded products, bonds, market data, and commercial technology solutions. •  With over 8,000 listed issues globally, NYSE Euronext's equities markets -- the New York Stock Exchange, Euronext, NYSE Arca, and NYSE Amex -- represent nearly 40% of the world's cash equities trading volume, the most liquidity of any global exchange group •  NYSE Euronext also operates NYSE Liffe, the leading European derivatives business and the world’s second largest derivatives business by value of trading. NYSE Euronext is part of the S&P 500 index and the only exchange operator in the S&P 100 index 4
  • 5. Scale of the Business The total market cap of all our listed companies is over $24 Trillion…. …Compared to country GDPs, that would make us the largest economy in the world. Largest Economies by GDP (in Trillions of $) China - $10 tr US - $15 tr Japan - $4 tr India - $4 tr Germany - $3 tr $ 24 tr – NYX Issuer Mkt Cap 5
  • 6. Scale of the Transactions Globally, we execute $2.5 trillion in financial transactions every day…. …That’s 42 times more than Ebay handles in a year. Monetary Value of Transactions (in Billions of $) 2,500 2,000 1,500 1,000 500 0 NYX daily Annual Ebay transactions transactions 6
  • 7. Volume of the Transactions In the US alone, We process more than 1.4 billion messages every day…. …That’s 3.5 times more than the number of internet searches Google handles daily. Number of Messages/Transactions (in Millions) NYX daily messages Daily Google searches Visa daily credit card transactions 0 200 400 600 800 1,000 1,200 1,400 7
  • 8. 400+ years of business and technology firsts We are the inventors of financial exchanges… –  Amsterdam, founded 1602, is the world’s oldest exchange –  Our markets in Brussels, Lisbon, NY and Paris and trace their roots to the 18th and 19th centuries –  We have over 16 centuries of combined experience running financial exchanges And we have a rich history of innovation in markets… –  NYSE was the first exchange to use a stock ticker to disseminate data (1867) –  NYSE was the first to have telephones on the trading floor (1878) –  We had automated quotation services 18 years before Nasdaq was founded (1953) –  First electronic ticker display board (1966) –  First options exchange in Europe launched in Amsterdam (1978) –  Amex pioneered the Exchange Traded Fund (1993) –  Wireless handheld devices on NYSE’s floor 15 years before ipad invented (1995) –  Euronext becomes first pan-European equities market (2000) –  SFTI was the industry’s first network offering global connectivity (2008) 8
  • 10. Release Count Per Year Total Number of Releases 10000 9000 8000 7000 6000 5000 Total Number of Releases 4000 3000 2000 1000 0 2005 2006 2007 2008 2009 2010 2011 •  Projected 2011 release count based on releases thus far 10
  • 11. Server Count Per Year Number of Servers 9000 8000 7000 6000 5000 Number of Servers 4000 3000 2000 1000 0 2007 2008 2009 2010 2011 • Peak in server count due to data center migrations 11
  • 12. Business Challenges in Software Deployment Methodologies
  • 13. Business Challenges •  Rapid growth of deployment •  Increase in code line complexity •  Increasing pressure to reduce development time to prod •  Increasing size of server farm due to demand •  Zero tolerance for system downtime •  Software rollbacks must be rapid, scalable and reliable •  Audit best practice requires traceability of all activity 13
  • 14. Business Challenges (continued) •  Scalability must be achieved with zero headcount growth •  Frequent mergers require process scalability •  Increasing number of business entities to cover •  High variance in supported operating systems and physical platforms •  Increasing demand for new products 14
  • 15. Two Core Concepts Behind the Business Challenges •  Life cycle management - controlling how its software is used throughout its usable lifecycle •  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 •  Software Development Life Cycles is the creating or altering of systems, and the models and methodologies that people use to develop/maintain these systems •  Tracking creation <> QA <> Release <> Staging <> Distribution <> Utilization <> Deprecation 15
  • 16. Environment Mapping Database •  Creating common patterns of usage for unique systems 16
  • 18. Perforce Depot Structure Perforce   Dev   Dev  PC   Depot   Submit  built  binaries   Verifica0on   Verifica0on   Depot   Servers   Push  verified  binaries  to  QA   QA   QA  Servers   Depot   Push  tested  binaries  to  PROD   PROD   PROD  Servers   Depot   18
  • 20. Binaries in Perforce from Dev to Production •  Build branches are fully preserved based only on files that are released •  Dev has no write access to verification application files •  Forces all code to be submitted via Perforce •  Audit compliance •  Dev verification zone files kept in Perforce •  Ensures binaries that pass verification are the same that go to QA •  Full integration log kept in Perforce for each file 20
  • 21. QA Perforce Pros/Cons •  Pros: •  QA can setup different environments on any release level with minimal overhead. •  QA can signoff on out of order patch levels •  Perforce integrations via atomic change lists •  Component based testing for QA •  Traceability back to source code based on application files •  Cons: (driven by organizational security practices) •  No third party package installs •  No changes that have to be done as the ‘root’ user •  No OS changes done (example: hugepage size changes) 21
  • 23. Production Deployment •  Advantages •  Rapid application deployment to production •  Distributed global proxies to reduce latency •  Scalability to thousands of servers with minimal overhead •  Ability to track application files back to source code •  Installation time is identical whether installing one release or many •  Efficient and accurate installations •  Disadvantages •  Third party software is packaged separately •  RPMs can be sold to a customer in a single package •  23
  • 25. Preview and Install Logs •  Ability to preview all files going to each server based on client meta-map •  Ability to script a ‘diff’ error to show if the actual install matches what should be getting installed •  All preview and install logs stored in Perforce repository •  Full trace of exactly what version of what file was deployed on what day to what server 25
  • 26. Request for Release Deployments Zone  specified  in  client   spec  descrip2on   Server  names   generated  from  host   name  in  the  client  spec   Release  based  on   change  list  descrip2on   of  previous  change  list   26
  • 27. Pending Installs Sync  to  RELID  will   match  with  the   descrip2on  of  the   change  list  in  Perforce     Server  list  will  populate   servers  to  install  to  and   P4HOST   27
  • 28. Automated Rollback Scenarios
  • 29. Perforce Rollback Pros/Cons •  Pros: •  Quickly rollback to exact point of software on hundreds of servers in minutes •  Easy intraday solution during an outage •  Allows for weekend testing •  Auto-generated in conjunction with the install script based on what is existing on the client before the install •  No order dependencies when going to any release version •  Full accuracy based on Perforce atomic change lists •  Saves man hours of getting a server back to a particular patch level •  Cons (driven by organizational security practices): •  Any OS/third party package dependencies must be done manually •  No changes which require ‘root’ access 29
  • 30. Application File Structure for Rollbacks •  Patch level submitted with release description •  Allows sync back to any atomic change list in the event of an outage 30
  • 31. Life Cycle Management – Meta-data Lockdown
  • 32. Perforce Life Cycle Control •  RM maintains all production client specs •  Locked Clients •  Clients for all production systems are locked and owned by prod system accounts for that application •  Locked clients can only be updated by Perforce admins, after being authenticated by Perforce •  Perforce Triggers •  Triggers are configured to notify RM of attempts to modify production clients •  Perforce Depot Access Control •  Perforce depot access can be allocated on a file by file level of granularity •  Depot access is granted on an as needed basis and continually evaluated 32
  • 33. Life Cycle Management - Post Production Installation Integrity Checks
  • 34. Production Integrity •  Situation/Need •  Production Black Box •  Variances in production cause outages •  Solution •  Automated method to compare state of production (application files/configuration files) to Perforce meta-map •  Reporting framework to alert necessary teams to quickly view the results of comparison •  Per system/per file basis run to evaluate integrity of systems •  Files on systems are compared with the meta-map of production in Perforce and any noncompliance is reported via Diff Report. 34
  • 35. Post Production Process Workflow Environment     Mapping     Database   Diff  Scripts   Perforce   GenerateScripts.pl   Release  Readiness  Scripts   (Submit  scripts)   Prod   Depot   Perforce   Perforce   Prod  Servers   Admin  Server   (Submit  logs)   (Sync  up  scripts  on  admin  servers)   Prod   Depot   35
  • 37. Version Viewer •  Driven via Perforce change list description last synced on any given client spec •  History based on the past change lists synced down 37
  • 38. Post Production Audit •  All scripts run in production are kept in Perforce •  Full historical tracking of server nightly audits against the Perforce meta-map •  All scripts are auto-generated based on Perforce client specs, hosts, users to allow for no manual changes to scripts to take place 38
  • 41. Common Perforce Commands in Automation •  Preview code example: •  p4 -P $ticket -u $app_user -c $Spec -H $serverindex -d $ROOT sync -n ...@$CL •  Preview log/install log – diff command •  p4 diff2 -dw $INSTALL_LOG $PREVIEW_LOG 41
  • 42. Client Spec Meta-maps Example Development: //utp_depot/RM/AppFileMgmt/US_Cash/dev/release_1.2/... //<servername>/... //utp_depot/RM/ConfigFileMgmt/US_Cash/dev/<servername>/cf/... //<servername>/cf/... //utp_depot/RM/ConfigFileMgmt/US_Cash/dev/<servername>/db/... //<servername>/db/... RM/Development Verification: //utp_depot/RM/AppFileMgmt/US_Cash/rm/release_1.2/... //<servername>/... //utp_depot/RM/ConfigFileMgmt/US_Cash/rm/<servername>/cf/... //<servername>/cf/... //utp_depot/RM/ConfigFileMgmt/US_Cash/rm/<servername>/db/... //<servername>/db/... QA: //utp_depot/RM/AppFileMgmt/US_Cash/qa/release_1.2/... //<servername>/... //utp_depot/RM/ConfigFileMgmt/US_Cash/qa/<servername>/cf/... //<servername>/cf/... //utp_depot/RM/ConfigFileMgmt/US_Cash/qa/<servername>/db/... //<servername>/db/... PROD: //utp_depot/RM/AppFileMgmt/US_Cash/prod/... //<servername>/... //utp_depot/RM/ConfigFileMgmt/US_Cash/prod/<servername>/cf/... //<servername>/cf/... //utp_depot/RM/ConfigFileMgmt/US_Cash/prod/<servername>/db/... //<servername>/db/... 42
  • 43. Partial Auto-generated Install Script Example LOG=${INSTALL_ROOT}/index_service/logs/index_install_prod_tt24108.log BACKUP_LOG=${INSTALL_ROOT}/index_service/logs/index_service_prod_backup_${DATE}.log MAIL_RECIPIENT="ReleaseManagement@nyse.com" echo "" > $LOG . ${INSTALL_ROOT}/InstallFunctions VerifySync DiffItself "${INSTALL_ROOT}/index_service/index_install" SERVERS="mep01 mep02 mep03 mep04 " APP="index_service“ LABEL=…@1195053 APP_USER="prod" CheckUser prod CLIENT='${server}a‘ for server in $SERVERS do echo "<SERVER_P4SYNC_OUTPUT>" >> $LOG ssh $APP_USER@$server ". ~prod/.bash_profile; umask 0022; export P4CONFIG=; export P4CLIENT=${server} a; export P4USER=prod; export P4PORT=perforce:1666; export P4HOST=${server}; cd /app/index; /usr/local/bin/ p4 -u prod sync $LABEL " >> $LOG 2>&1 echo "" >> $LOG echo "</SERVER_P4SYNC_OUTPUT>" >> $LOG done SubmitInstallLog $LOG DiffPreviewAndInstallLogs 43