Controls System Configuration Control

advertisement
Configuration Management
Ernest Williams
Control Systems Software Section
FAC November 2008
Ernest L. Williams Jr.
ernesto@slac.stanford.edu
OUTLINE
Introduction
Scope
Software Development and Deployment
Standards
CVS/Subversion + Relational Database
System Monitoring/Maintenance
EPICS IOC Software and Extensions
Control Systems Software Section
FAC November 2008
Ernest L. Williams Jr.
ernesto@slac.stanford.edu
Introduction
In order to meet the reliability and availability
requirements placed on the control system; a solid
configuration management system is needed.
Configuration management also supports the long term
maintenance and security of control systems.
Configuration management applies to:
Hardware
Software
Documentation (e.g. procedures and drawings)
Plan to hire a Database Software Architect and Engineer
Control Systems Software Section
FAC November 2008
Ernest L. Williams Jr.
ernesto@slac.stanford.edu
SCOPE
The Focus in this talk is on Software
Configuration Management
Control Systems Software Section
FAC November 2008
Ernest L. Williams Jr.
ernesto@slac.stanford.edu
Software Configuration Management
(Wiki-Pedia)
Configuration identification - What code are we working with?
Configuration control - Controlling the release of a product and its
changes.
Status accounting - Recording and reporting the status of components.
Review - Ensuring completeness and consistency among components.
Build management - Managing the process and tools used for builds.
Process management - Ensuring adherence to the organization's
development process.
Environment management - Managing the software and hardware that
host our system.
Teamwork - Facilitate team interactions related to the process.
Defect tracking - Making sure every defect has traceability back to the
source
Control Systems Software Section
FAC November 2008
Ernest L. Williams Jr.
ernesto@slac.stanford.edu
Software Development
Software Development
Multi-user Server/Workstation environment (e.g. linux)
Software development standards/guidelines will provide some
consistency and lead to code maintainability.
Use common frameworks and software tools
Compiler/build environment must be kept in synch with production
server.
Test, test, test on development server
Build/Construct reusable test harness for software components.
Use debugging tools: gdb, valgrind, purify, etc…
Practice software version control using such as CVS or Subversion:.
Development of shared IOC software modules such as EPICS IOC
device/driver support should undergo small informal software design
reviews.
Internal/External peer review)
Control Systems Software Section
FAC November 2008
Ernest L. Williams Jr.
ernesto@slac.stanford.edu
Software Deployment
Software Deployment
Multi-user Server/Workstation environment (e.g. linux)
Strong software release procedures/standards.
Production releases for deployment should be tagged and/or
marked with a clear versioning scheme. The version and all
dependencies could be captured in a relational database.
Mark/Embed all shared libraries with some version string or tag.
Create/Implement a reliable and sound “roll-back” scheme.
Develop a deployment checklist (manual/automated)
Test on the production side before turning over to operations
Control Systems Software Section
FAC November 2008
Ernest L. Williams Jr.
ernesto@slac.stanford.edu
CVS/Subversion + Relational Database
What do we need to capture in an RDB?
Location of software documentation
Author’s information
Email address, phone number, etc…
Release/Version versus machine operating period
Version numbers associated with an IOC but maintained with
different versioning
software or methods
Examples: FPGA code, LabView, MATLAB
A relational database can tie all of this together
and produce useful reports.
We are planning to join the IRMIS Collaboration.
Control Systems Software Section
FAC November 2008
Ernest L. Williams Jr.
ernesto@slac.stanford.edu
System Monitoring/Maintenance
Configuration management also means keeping tabs
on the status of what is running on our systems.
Is caRepeater running? Who is monitoring that? Does someone get
paged if it is down?
What about iocLogServer or some other important service that our
software relies on?
Configuration management means bug tracking and
resolution. What about patch management?
Investigating some options now.
Bugzilla
Mantis
RequestTracker (RT)
Again, we should integrate this in with a relational
database to help us monitor/maintain our systems
Control Systems Software Section
FAC November 2008
Ernest L. Williams Jr.
ernesto@slac.stanford.edu
Concerns/Issues
Many disparate Database systems here at
SLAC.
Critical Database servers outside the control
system network could reduce availability.
Hardware configuration management
requires a solid plan for developing/releasing
drawings, firmware, etc…
Need to hire Database Engineer/Architect
Control Systems Software Section
FAC November 2008
Ernest L. Williams Jr.
ernesto@slac.stanford.edu
Download