1 / 10

Configuration Management

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.

mona-lucas
Download Presentation

Configuration Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Configuration Management Ernest Williams

  2. OUTLINE • Introduction • Scope • Software Development and Deployment Standards • CVS/Subversion + Relational Database • System Monitoring/Maintenance • EPICS IOC Software and Extensions

  3. 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

  4. SCOPE • The Focus in this talk is on Software Configuration Management

  5. 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

  6. 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)

  7. 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

  8. 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.

  9. 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

  10. 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

More Related