10
Ernest L. Williams Jr. FAC November 2008 [email protected] Control Systems Software Section Configuration Management Ernest Williams

Configuration Management

Embed Size (px)

DESCRIPTION

Configuration Management. Ernest Williams. OUTLINE. Introduction Scope Software Development and Deployment Standards CVS/Subversion + Relational Database System Monitoring/Maintenance EPICS IOC Software and Extensions. Introduction. - PowerPoint PPT Presentation

Citation preview

Page 1: Configuration Management

Ernest L. Williams Jr. FAC November 2008 [email protected] Systems Software Section

Configuration Management

Ernest Williams

Page 2: Configuration Management

Ernest L. Williams Jr. FAC November 2008 [email protected] Systems Software Section

OUTLINEIntroductionScopeSoftware Development and Deployment StandardsCVS/Subversion + Relational DatabaseSystem Monitoring/MaintenanceEPICS IOC Software and Extensions

Page 3: Configuration Management

Ernest L. Williams Jr. FAC November 2008 [email protected] Systems Software Section

IntroductionIn 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:

HardwareSoftwareDocumentation (e.g. procedures and drawings)

Plan to hire a Database Software Architect and Engineer

Page 4: Configuration Management

Ernest L. Williams Jr. FAC November 2008 [email protected] Systems Software Section

SCOPEThe Focus in this talk is on Software Configuration Management

Page 5: Configuration Management

Ernest L. Williams Jr. FAC November 2008 [email protected] Systems Software Section

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

Page 6: Configuration Management

Ernest L. Williams Jr. FAC November 2008 [email protected] Systems Software Section

Software DevelopmentMulti-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 toolsCompiler/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)

Software Development

Page 7: Configuration Management

Ernest L. Williams Jr. FAC November 2008 [email protected] Systems Software Section

Software DeploymentSoftware 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

Page 8: Configuration Management

Ernest L. Williams Jr. FAC November 2008 [email protected] Systems Software Section

CVS/Subversion + Relational DatabaseWhat do we need to capture in an RDB?

Location of software documentationAuthor’s information

Email address, phone number, etc…Release/Version versus machine operating periodVersion 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.

Page 9: Configuration Management

Ernest L. Williams Jr. FAC November 2008 [email protected] Systems Software Section

System Monitoring/MaintenanceConfiguration 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.BugzillaMantisRequestTracker (RT)

Again, we should integrate this in with a relational database to help us monitor/maintain our systems

Page 10: Configuration Management

Ernest L. Williams Jr. FAC November 2008 [email protected] Systems Software Section

Concerns/IssuesMany 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