Strategy to achieve smooth upgrades during operations Vito Baggiolini BE/CO 1.

Slides:



Advertisements
Similar presentations
BE/CO Changes in LS1 to the Software Development Infrastructure and Widely Used Libraries Chris Roderick, Greg Kruk, Katarina Sigerud, Luigi Gallerani,
Advertisements

Controls Configuration Service Overview GSI Antonio on behalf of the Controls Configuration team Beams Department Controls Group Data & Applications.
CERN Middleware OVERVIEW 25th april 2013
Supervision of Production Computers in ALICE Peter Chochula for the ALICE DCS team.
 M.A - BIS Workshop – 4th of February 2015 BIS software layers at CERN Maxime Audrain BIS workshop for CERN and ESS, 3-4 of February 2015 On behalf of.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 11 Managing and Monitoring a Windows Server 2008 Network.
Industrial Control Engineering Industrial Controls in the Injectors: "You (will) know that they are here" Hervé Milcent On behalf of EN/ICE IEFC workshop.
Microsoft ® Application Virtualization 4.5 Infrastructure Planning and Design Series.
Isabelle Laugier, AT/VAC/ICM Section February 7 th 2008.
Overview of Data Management solutions for the Control and Operation of the CERN Accelerators Database Futures Workshop, CERN June 2011 Zory Zaharieva,
controls Middleware – OVERVIEW & architecture 26th June 2013
GSI Operating Software – Migration OpenVMS to Linux Ralf Huhmann PCaPAC 2008 October 20, 2008.
Presented by Brian Griffin On behalf of Manu Goel Mohit Goel Nov 12 th, 2014 Building a dynamic GUI, configurable at runtime by backend tool.
E. Hatziangeli – LHC Beam Commissioning meeting - 17th March 2009.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
INFO 355Week #61 Systems Analysis II Essentials of design INFO 355 Glenn Booker.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
A. Dworak BE-CO-IN, CERN. Agenda 228th June 2012  Sum up of the previous report  Middleware prototyping  Transport  Serialization  Design concepts.
W. Sliwinski – eLTC – 7March08 1 LSA & Safety – Integration of RBAC and MCS in the LHC control system.
06/05/2004AB/CO TC RF controls issues Brief overview & status Requested from AB/CO Hardware, Timing, VME/FESA for LEIR, SPS, LHC Controls for LHC RF Power.
6st ACS Workshop UTFSM ACS Course Component, Container, Lifecycle Management 6st ACS Workshop UTFSM, Valparaiso, Chile H. Sommer, G. Chiozzi.
Middle-tier servers for CMW Bartek Paszkowski AB-CO-FC.
Mandate of CO/DO section and Status/Outlook for Build tools
Git – versioning and managing your software L. Grewe.
14 December 2006 CO3 Data Management section Controls group Accelerator & Beams department Limits of Responsibilities in our Domains of Activities Ronny.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
EMI INFSO-RI SA2 - Quality Assurance Alberto Aimar (CERN) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
Service Transition & Planning Service Validation & Testing
Log analysis in the accelerator sector Steen Jensen, BE-CO-DO.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
FAIR Accelerator Controls Strategy
20th September 2004ALICE DCS Meeting1 Overview FW News PVSS News PVSS Scaling Up News Front-end News Questions.
Industrial Control Engineering UNICOS device and front-end Hervé Milcent UNICOS device front-endHervé Milcent1.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
Eugenia Hatziangeli Beams Department Controls Group CERN, Accelerators and Technology Sector E.Hatziangeli - CERN-Greece Industry day, Athens 31st March.
T HE BE/CO T ESTBED AND ITS USE FOR TIMING AND SOFTWARE VALIDATION 22 June BE-CO-HT Jean-Claude BAU.
Session 1 Introduction  What is RADE  Technology  Palette  Tools  Template  Combined Example  How to get RADE  Questions? RADE Applications EN-ICE-MTA.
Wojciech Sliwinski BE/CO for the RBAC team 25/04/2013.
14th Oct 2005CERN AB Controls Development Process of Accelerator Controls Software G.Kruk L.Mestre, V.Paris, S.Oglaza, V. Baggiolini, E.Roux and Application.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Nov, F. Di Maio, M.Vanden Eynden1 CO Proposal concerning AB Front-End Software Responsibilities First detailed proposal based on the global Front-end.
Firmware - 1 CMS Upgrade Workshop October SLHC CMS Firmware SLHC CMS Firmware Organization, Validation, and Commissioning M. Schulte, University.
Definition (Wikipedia)  What is deployment ? “Software deployment is all of the activities that make a software system available for use.” 1. Install.
Creating SmartArt 1.Create a slide and select Insert > SmartArt. 2.Choose a SmartArt design and type your text. (Choose any format to start. You can change.
BE-CO-DO - Development tools (Eclipse, CBNG, Artifactory, …) - Atlassian (Jira, Wikis, Bamboo, Crucible), CO Testbed - DIAMON/LASER - JMS (Java messaging.
26 Jan 06Marine Pace - AB/CO1 LEIR Controls : Gain of Experience for the Running-in of LHC Marine Pace on behalf of AB/CO and LSA.
BE-CO review Looking back at LS1 CERN /12/2015 Delphine Jacquet BE/OP/LHC Denis Cotte BE/OP/PS 1.
Feedbacks from EN/STI A. Masi On behalf of EN-STI Mathieu Donze` Odd Oyvind Andreassen Adriaan Rijllart Paul Peronnard Salvatore Danzeca Mario Di Castro.
FESA S. Deghaye for the FESA team BE/CO. What happened since April? followed by “Our plans”
DIAMON Project Project Definition and Specifications Based on input from the AB/CO Section leaders.
TS workshop 2004U. Epting, M.C. Morodo Testa - TS department1 Improving Industrial Process Control Systems Security Uwe Epting (TS/CSE) Maria Carmen Morodo.
Configuration & Management for Joachim Flammer Integration Team EGEE is a project funded by the European Union under contract IST JRA1 all-hands-meeting,
Archives/References for SPS Faraday Cage Timing Vito Baggiolini AB/CO after discussions with M. Arruat, J.-C. Bau, R. Billen, A. Butterworth, F. Follin,
Industrial Control Engineering ADE Rapid Application Development Environment.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Industrial Control Engineering Session 1 Introduction  What is RADE  Technology  Palette  Tools  Template  Combined Example  How to get RADE 
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
AB-CO Exploitation 2006 & Beyond Presented at AB/CO Review 20Sept05 C.H.Sicard (based on the work of Exploitation WG)
H2LC The Hitchhiker's guide to LSA Core Rule #1 Don’t panic.
LS1 Review BE-CO-SRC Section Contributions from: A.Radeva, J.C Bau, J.Betz, S.Deghaye, A.Dworak, F.Hoguin, S.Jensen, I.Koszar, J.Lauener, F.Locci, W.Sliwinski,
Introduction to RBAC Wojciech Sliwinski BE/CO for the CMW/RBAC team
C/C++ Build tools & Testbed
Status and Plans for InCA
Data quality, or how to keep afloat in the growing data flood
Computing infrastructure for accelerator controls and security-related aspects BE/CO Day – 22.June.2010 The first part of this talk gives an overview of.
FESA evolution and the vision for Front-End Software
Presentation transcript:

Strategy to achieve smooth upgrades during operations Vito Baggiolini BE/CO 1

Outline Motivation Strategy for smooth upgrades Two concrete examples Conclusions V. Baggiolini, CO Day 22 June

OPERATOR CONSOLES TCP/IP communication services FIXED DISPLAYS OPERATOR CONSOLES TCP/IP communication services TIMING GENERATION CERN GIGABIT ETHERNET TECHNICAL NETWORK FILE SERVERS APPLICATI ON SERVERS SCADA SERVE RS TCP/IP communication services RT Lynx/OS VME Front Ends WORLDFIP Front Ends PLC Core Control GUIs Fixed Displays Frame Alarms (LASER) Data Concentrators Data Concentrators LHC Software Architecture Core Software Interlock System Front-End FESA servers Business Layer Front End Layer Controls SW Infrastructure Front-End FESA servers FESA servers Equipment GUIs Post Mortem Post Mortem Timing Management DB Settings & Logging DB Settings & Logging Role Based Access RBAC – Critical Settings Management Sequencer Diagnostics Monitoring DIAMON - TIM Diagnostics Monitoring DIAMON - TIM Core Control GUIs GUI Layer 3 Front-End servers GM servers CMW Controls Middleware DB Settings & Logging DB Settings & Logging DB Settings & Logging DB Settings & Logging DB Access

A distributed, highly modular control system GUI and Business Layer (Java) –850 binary components (jar files) in production –Combined to 400 different GUIs and 150 server programs –Up to 600 processes on 400 machines –Developed by 50 people from 10 different groups Front-End Layer (C/C++) –550 different device types (FESA + GM classes) –70’000 devices deployed on 800 different machines –Developed by 80 people from 8 different groups Informal organization of development and deployments 4 V. Baggiolini, CO Day 22 June 2010

Upgrades are necessary but risky The control system needs to be upgraded regularly –New functionality, improvements, bugfixes Upgrades during operational periods –We don’t have yearly long shutdowns anymore –Just 4-day technical stops every six weeks Upgrades can break the control system –Bugs inside a given component –Incompatibility between components –Incomplete upgrades due to bad coordination –…–… 5 V. Baggiolini, CO Day 22 June 2010

Outline Motivation Strategy for smooth upgrades Two concrete examples Conclusions 6 V. Baggiolini, CO Day 22 June

Strategy for Smooth Upgrades Investment in quality mandated by management Official approach now (already practiced informally) –Analyse the impact of a change upfront (c.f. next slide) –Backward compatible upgrades if possible –Non-backward compatible upgrades only with careful coordination and follow-up –Big changes on central systems only during shutdown (2011/12) Other ingredients to smooth upgrades (not detailed here) : –Planning before even starting development work –Good unit and integration testing (  Testbed) –Deploy upgrades only in those accelerators that need them –Tools to quickly revert back in case of problems 7 V. Baggiolini, CO Day 22 June 2010

The developer’s perspective Developer receives a user request for change –New functionality / improvement / bugfix / request to adapt Developer analyzes impact –Is the change localized in my component? –Can I do it in a backward compatible way? –If not, how many dependent projects are affected? Can I convince them to follow me?  Requires careful consideration and discussions with others Three outcomes and answer to users: –Yes I can do it in isolation or in a backward compatible way –Yes, but I need to coordinate with N other developers –No, I cannot do this change during the physics run 8 V. Baggiolini, CO Day 22 June 2010

Two upgrading scenarios Either an upgrade is fully backward compatible Or NOT backward compatible but carefully coordinated, to ensure all necessary changes in all dependent components are done and validated Why not always impose backward compatibility? Advantages of backward compatibility Does not break anything Isolated upgrades possible, no big coordination needed Disadvantages of backward compatibility  Constraint for development, not always easy to achieve and to validate  Leads to sub-optimal solutions and technical debt  Cannot just blindly advocate backward compatibility! 9 V. Baggiolini, CO Day 22 June

Resulting needs for development process + tools Need to easily find active incoming dependencies (“which active components depend on mine?”) –Need a list of all active (operational) client components –Possibility to find those that depend on my component Need clear public interfaces between components –E.g. Application Programming Interface (API), I/O points or Device/Properties, network protocol –Can change everything that is not part of public interface Need means to validate backward compatibility –Tools to guarantee truly backward compatible changes 10 V. Baggiolini, CO Day 22 June 2010

Resulting needs for development process + tools Need to easily find active incoming dependencies (“which active components depend on mine?”) –Need a list of all active (operational) client components –Possibility to find those that depend on my component Need clear public interfaces between components –E.g. Application Programming Interface (API), I/O points or Device/Properties, network protocol –Can change everything that is not part of public interface Need means to validate backward compatibility –Tools to guarantee truly backward compatible changes 11 V. Baggiolini, CO Day 22 June 2010

How to find active incoming dependencies Static analysis (without execution of code) –Configuration in Databases or files –Inspection of source code or binaries Dynamic analysis (gathering of info while code is executed) –Instrument operational programs –Analysis of logfiles Propose to use a combination of both –First dynamic analysis to identify active programs –Then static analysis of the dependencies of each program 12 V. Baggiolini, CO Day 22 June

How to achieve Backward Compatibility (BC) Interfaces have a static and a dynamic aspect –Static: Interface definition (API, device/properties) –Dynamic: Sequence of interactions Both aspects must be preserved Tools needed to assess backward compatibility –Specific tools to validate static aspect for each kind of interface –Function tests (e.g. testbed) to validate dynamic aspects 13 V. Baggiolini, CO Day 22 June 2010

Outline Motivation Strategy for smooth upgrades Two concrete examples: FESA and Java Conclusions 14 V. Baggiolini, CO Day 22 June

FESA: Analysis of Incoming Dependencies Questions of a FESA developer –Who uses my device Magnet11/current ? –Can I change / rename / remove it? Static analysis (Goal: find all operational devices) –Data-driven applications  Database or configuration files –Java programs with hardcoded device/property names  Source code analysis (Fisheye), byte-code analysis Dynamic analysis (Goal: find all operational devices) –Spy on client programs that connect to devices  Log-files of middleware directory service Manual dependency analysis is still needed –“Loosely coupled” systems, e.g. data published via JMS or DIP  Difficult to conclude that a device is not used at all! –Default recommendation to stay backward compatible 15 V. Baggiolini, CO Day 22 June 2010

FESA: Achieving Backward Compatibility FESA interface = Device/property model –Public (non-expert) properties defined in a FESA class How to preserve backward compatibility: –No devices and properties are renamed or removed –No data types are modified –Sequence of interactions (protocol) is not changed Will integrate BC checks into FESA development tools –Early warning to developer –Ongoing work between FESA and database teams in CO –Exact policy to be discussed with equipment groups 16 V. Baggiolini, CO Day 22 June 2010

Java: Analysis of Incoming Dependencies Questions of a Java developer –Who uses my MyClass.myMethod(…) ? –Can I freely modify it? Active clients = operational programs –GUIs started by operations on CCC consoles –Programs running on server machines –  We know the jar files used in these applications Byte-code analysis on all classes of operational Jars –Invocations of method of classes in other Jars –References to fields of classes in other Jars –Inheritance relations between classes from different jars Currently developing a tool for Eclipse –Proof-of-concept implemented 17 V. Baggiolini, CO Day 22 June 2010

Java: Achieving Backward Compatibility Assessing BC of Application Programming Interfaces –Trickier than you first think ;-) Tools exist for Eclipse (“PDE API tools”) Immediate feedback to the developer when they break BC  Configuration in Eclipse not straight-forward, must be automated First tests done, but nothing yet decided 18 V. Baggiolini, CO Day 22 June 2010

Conclusion Backward Compatibility as default approach for upgrades during operations –The only choice for widely used systems (e.g. middleware) –Default approach for FESA devices and core Java systems –“Technical Debt” needs to be cleaned up during shutdowns Non Backward Compatible upgrades accepted if: –All dependent components can be reliably identified and owners are willing to follow and re-validate changes –Non-BC can be best solution in some cases. Risk must be discussed with users on a case-by-case basis. In any case, (non-)BC is only one aspect of smooth upgrades 19 V. Baggiolini, CO Day 22 June 2010

20 V. Baggiolini, CO Day 22 June 2010

Commnbuild/release 21 SVN sources Cmmnbuild/ release binary repository Checkout sources to clean directory; Tag in SVN with release version number Build: Compile, run unit tests, Create binaries (jars/libs) Release: Save versioned products to binary repository Accelerator Deploy: run in operations [Separate step] V. Baggiolini, TC 12-Mar-2010

Java: API Consolidation Need to clearly specify the contract (API) to make sure it is not broken –Which packages, classes, methods are part of the API –Which ones are not (thus can be modified freely, without BC constraints!) Need tools to enforce correct use of APIs Start with make “key” APIs between clients and servers Part of the Software Improvement Process V. Baggiolini, TC 12-Mar