Experiencing in using ETICS, a multi-platform and open source build and test system for big software projects Elisabetta Ronchieri INFN CNAF 5 July 2011,

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

SC7 WG6 Rome Engineering Ingegneria Informatica S.p.A. INFSO-RI Isabel Matranga ETICS Automated Building,Testing and Quality Assurance.
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Developing the NSDL User Portal Dean Krafft, Cornell University
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
Deploying Dynamics Applications Thomas Hansen – Director, appSolutions a|s
EMI INFSO-RI SA2: Session Summary Alberto Aimar WP Package Leader 1 June 2011, Lund.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks gLite Release Process Maria Alandes Pradillo.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
INFSO-RI Quality Assurance with ETICS – multi- node automated testing CGW 09 M.Zurek, A. A. Rodriguez, A. Aimar, A. di Meglio, L. Dini CERN Krakow,
EMI INFSO-RI EMI SA2 Report Quality Assurance Alberto Aimar (CERN) SA2 WP Leader.
EMI INFSO-RI EMI Quality Assurance Processes (PS ) Alberto Aimar (CERN) CERN IT-GT-SL Section Leader EMI SA2 QA Activity Leader.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
INFSO-RI Enabling Grids for E-sciencE The gLite Software Development Process Alberto Di Meglio CERN.
EMI INFSO-RI SA2 - Quality Assurance Alberto Aimar (CERN) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
Configuration Management (CM)
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
INFSO-RI Module 01 ETICS Overview Alberto Di Meglio.
A DΙgital Library Infrastructure on Grid EΝabled Technology ETICS Usage in DILIGENT Pedro Andrade
INFSO-RI JRA2: Testing senarious ETICS AH meeting Budapest, Iune 2009 Eva Takacs, Jozsef Kuti, András Milassin 4D Soft.
INFSO-RI Module 01 ETICS Overview Etics Online Tutorial Marian ŻUREK Baltic Grid II Summer School Vilnius, 2-3 July 2009.
And Tier 3 monitoring Tier 3 Ivan Kadochnikov LIT JINR
EMI is partially funded by the European Commission under Grant Agreement RI SA2 – Quality Assurance Alberto AIMAR (CERN) SA2 Leader EMI Second EC.
INFSO-RI Support for IPv6 in ETICS EGEE’08 Conference, Istanbul, September 2008 Marian ZUREK CERN - ETICS
INFSO-RI ETICS The Software Engineering Infrastructure Physics Services Meeting Geneva, July 3 rd 2008 Alberto Di Meglio CERN - ETICS
INFSO-RI Module 05 The ETICS Plugins and Compliance Analysis Alberto Di Meglio.
Conference name Company name INFSOM-RI Speaker name The ETICS Job management architecture EGEE ‘08 Istanbul, September 25 th 2008 Valerio Venturi.
INFSOM-RI Elisabetta Ronchieri INFN CNAF ETICS 2 nd EU Review (CERN) 15 February 2008 WP3 - Software Configuration Tools and Methodologies.
INFSOM-RI ETICS: E-infrastructure for Testing, Integration and Configuration of Software Alberto Di Meglio Project Manager.
GLite build and integration system Building and Packaging Robert HARAKALY
Testing Grid Software on the Grid Steven Newhouse Deputy Director.
EMI is partially funded by the European Commission under Grant Agreement RI SA2 – Development Tools Andres Abad Rodriguez SA2.4 Tools Activity Leader.
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
INFSOM-RI WP 4 : Testing Tools and Methodologies Status Report ETICS Review – 15 February 2008 Éva Takács (4D SOFT)
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
ASIS + RPM: ASISwsmp German Cancio, Lionel Cons, Philippe Defert, Andras Nagy CERN/IT Presented by Alan Lovell.
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
EMI INFSO-RI Software Quality Assurance in EMI Maria Alandes Pradillo (CERN) SA2.2 Task Leader.
EMI INFSO-RI EMI Quality Assurance Tools Lorenzo Dini (CERN) SA2.4 Task Leader.
Software Deployment & Release 26/03/2015 1EN-ICE.
D4Science and ETICS Building and Testing gCube and gCore Pedro Andrade CERN EGEE’08 Conference 25 September 2008 Istanbul (Turkey)
ETICS All Hands meeting B ologna, October , 2006 WP4 Test and Metrics Plugin Framework (WP4) (WP4) Eva TAKACS.
INFSO-RI ETICS The Software Engineering Infrastructure EGEE 08 Istanbul, September 2008 Alberto Di Meglio CERN – ETICS Project manager.
Grid Technology CERN IT Department CH-1211 Geneva 23 Switzerland t DBCF GT Grid Technology SL Section Software Lifecycle Duarte Meneses.
INFSO-RI SA2 ETICS2 first Review Valerio Venturi INFN Bruxelles, 3 April 2009 Infrastructure Support.
INFSO-RI JRA2 Test Management Tools Eva Takacs (4D SOFT) ETICS 2 Final Review Brussels - 11 May 2010.
INFSOM-RI Training: Build using the ETICS Service The ETICS Build Process Alberto Di Meglio ETICS Project.
EMI is partially funded by the European Commission under Grant Agreement RI Build and Test Services of the EMI project: Lessons Learned and Perspectives.
GLite build and integration system Building and Packaging Robert HARAKALY
INFSOM-RI ETICS: E-infrastructure for Testing, Integration and Configuration of Software Alberto Di Meglio Project Manager.
ETICS An Environment for Distributed Software Development in Aerospace Applications SpaceTransfer09 Hannover Messe, April 2009.
EMI is partially funded by the European Commission under Grant Agreement RI EMI SA2 Report Andres ABAD RODRIGUEZ, CERN SA2.4, Task Leader EMI AHM,
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
EMI INFSO-RI SA2: Quality Assurance Status Report Alberto Aimar(SA2) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
CERN IT Department CH-1211 Genève 23 Switzerland t Bamboo users meeting IT-CS-CT.
M.-E. Bégin¹, S. Da Ronco², G. Diez-Andino Sancho¹, M. Gentilini³, E. Ronchieri ², and M. Selmi² ¹CERN, Switzerland, ² INFN-Padova, Italy, ³INFN-CNAF,
INFSOM-RI Elisabetta Ronchieri INFN CNAF ETICS 2 nd EU Review (CERN) 15 February 2008 WP3 - Software Configuration Tools and Methodologies.
INFSOM-RI WP3: WP3: Software configuration tools and methodologies Status Report ETICS All-Hands – 23 May 2007 E. Ronchieri.
J-guar Customization Tool Devanshu Bawa Customization Specialist SOLUTION PARTNERS TRAINING 2016.
INFSO-RI Support for IPv6 in ETICS EGEE’08 Conference, Istanbul, September 2008 Marian ZUREK CERN - ETICS
Maven 04 March
Marc-Elian Bégin ETICS Project, CERN
Plug-in Framework ETICS All Hands – October 2006
Infrastructure Support
T-StoRM: a StoRM testing framework
Supporting the gLite release process
The ETICS Build and Test Service
Advanced Integration and Deployment Techniques
Module 01 ETICS Overview ETICS Online Tutorials
Presentation transcript:

Experiencing in using ETICS, a multi-platform and open source build and test system for big software projects Elisabetta Ronchieri INFN CNAF 5 July 2011, Computing R&D Workshop, Ferrara, Italy

Overview ETICS course – From ‘ETICS in Plain English’ by Lorenzo Dini, 10 January 2010, CERN Experience as user Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 27/5/2011

Overview ETICS course – From ‘ETICS in Plain English’ by Lorenzo Dini, 10 January 2010, CERN Experience as user Experience in using ETICS, a multi-platform and open source build and test system for big software projects,Elisabetta Ronchieri 37/5/2011

ETICS Chronicles ETICS stands for “E-infrastructure for Testing, Integration and Configuration of Software” It was funded by the European Commission on January 2006 and February ETICS 2 ended on February 2010 It was a consortium of 8 partners Now it is provided by CERN and part of EMI It is also maintained by Engineering Ingegneria Informatica Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 47/5/2011

The ETICS System ETICS in Plain English, Lorenzo Dini57/5/2011 INFSO-RI Continuous software build, test and QA system – Checkout, Build, Test, Code Analysis Metrics, Reports, Packages Versatile dependency management system – Build/Test dependencies, Metapackages, Release definition Extensive collection of ready-to-use third-party libraries Extensive multi-platform virtualized infrastructure Independent from any specific language, build or test tool – CVS, SVN, Make, Ant, Maven, Java, Python, C/C++, Bash,... Plugin framework for tools integration – JUnit, FindBugs, Checkstyle, PyUnit, PyCoverage, CCCC, … Open repository of configuration metadata, packages and build, test and QA reports. With YUM generation

Architecture 67/5/2011 INFSO-RI Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri

Command-line Client 77/5/2011 INFSO-RI ETICS in Plain English, Lorenzo Dini

The ETICS Portal 87/5/2011 INFSO-RI ETICS in Plain English, Lorenzo Dini

Data Model: Basic Concepts It is compliant with the standard CIM model (Configuration Information Model) It defines: – Modules: objects representing software Components or an aggregation of components to be managed as a units of functionality or deployment (Subsystems), or Projects – Configurations: unique versions of a component, or a subsystem, or a project A module can have 0, 1 or many Configurations Each configuration: – can only belong to one Module – contains an aggregation of more specific objects to fully define its identity and behaviour, like platform, checkout command, build command, and so on Platform is a particular combination of operating system distribution, processor architecture, and c++ compiler version – A Defulat platform contains configuration objects that are platform-independent 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 9 INFSO-RI

The Configuration Web Client 107/5/2011 INFSO-RI ETICS in Plain English, Lorenzo Dini

The Repository Web Client 117/5/2011 INFSO-RI ETICS in Plain English, Lorenzo Dini

Data Model: Component versions and dependencies MY PROJECT UTILSSERVICE EXTERNALS TOMCAT BOOST JDK UTILSWA … CLIENT v. 3 v v v. 1 v. 2 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 127/5/2011 INFSO-RI Project Subsystem Component Configuration

Data Model: Defining releases Release v Service v Utils v MY PROJECT UTILSSERVICE UTILSWACLIENT v. 3 v v. 1 v. 2 v v Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 137/5/2011 INFSO-RI Project Subsystem Component Configuration v. 1 v v

Data Model: Metapackages MY PROJECT UTILSSERVICE EXTERNALS TOMCAT JDK UTILSWACLIENT v. 3 v v. 1 v v MPKG 1.0 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 147/5/2011 INFSO-RI Project Subsystem Component Configuration Metapackage

Dependencies Automatic build-order resolution WHEN? Build-time: pointer to binaries made available Run-time: REQUIRES added in package WHICH VERSION? Static: hardcoded by the component Dynamic: decided at project level Version based: Dynamic with >= X.Y.Z 157/5/2011 INFSO-RI Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri

Properties Key-Value Pairs for customization CUSTOM Inherited, overwritable, isolated enable.optimization=yes DEFAULT Used to manipulate dependencies MySQL.DEAFULT=mysql v SYSTEM Used to tune the system package.buildarch=noarch Used to load the system information libdir location Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 167/5/2011 INFSO-RI

Typical ETICS Build Execution Sequence etics-get-projectetics-checkoutetics-build Extract metadata information about a project from the ETICS DB Extract configuration information from the ETICS DB and source/binary packages from different repositories cvssvnhttp Execute the build operations make ant Unit tests, coverage, compliance, packaging, reporting 177/5/2011 INFSO-RI ETICS in Plain English, Lorenzo Dini

The ETICS Packager ETICS contains an automated packaging system, the ETICS Packager It uses configuration metadata to create package or packages for a given platform (RPMS, deb, MSIs, tarballs, zip files etc) It covers about 80% of the packaging needs of a typical software component It can be overridden by the users in various ways to get more specific behaviours Developers focus on the code not the packaging for N different packaging systems, it allows to enforce consistent packaging guidelines 187/5/2011 INFSO-RI ETICS in Plain English, Lorenzo Dini

The Repository ETICS provides an online repository where all software packages and build, test and QA reports are stored The Repository generates dynamic YUM repository at every build to automate the execution of deployment, integration and functional tests It can be browsed and queried using a web application with a REST interface (XPATH and SQL syntax), a command-line client or a mountable file system (AFS-based) 197/5/2011 INFSO-RI ETICS in Plain English, Lorenzo Dini

Plugins and Metrics Collectors The ETICS system is plugin-based Plugins are wrappers around existing or custom tools providing specific functionality Can be activated by user choice (profiles) or letting ETICS decide which tools are most appropriate (autoprofile) Plugins can publish information in the ETICS system as metrics used to do trend analysis and quality monitoring using the ETICS reporting tools 207/5/2011 INFSO-RI ETICS in Plain English, Lorenzo Dini

Examples of metrics collectors MetricsTypeProgramming languages/ technologies ToolETICS Plugin ComplexitystaticJava, PythonJavancssJCcnPlugin PyComplexityPlugin.py Design qualitystaticJavaJdependJDependPlugin N of potential bugsstaticC/C++, Python, Perl, PHP Java Flawfinder, RATS, PMD, Findbugs CFlawfinderPlugin CPyPhpRatsPlugin JPmdPlugin JFindbugsPlugin N of potential bugsdynamicC/C++ValgrindCValgrindPlugin Lines of codestaticAllSLOCCountSLOCCountPlugin CoveragedynamicJavaEmma, Cobertura PyCoverage, LCOV JUnitemmaPlugin JCoberturaPlugin Unit tests success rate dynamicJava, PythonJUnit PyUnit JUnitPlugin JUnitreportsPlugin.py PyUnitPlugin.py Compliance with standards staticIPv6, WSIIPv6Plugin WSInteroperabilityPlugin ProfilingdynamicC/C++, JavaJrat, ValgrindJRatPlugin CValgrindPlugin 217/5/2011 INFSO-RI ETICS in Plain English, Lorenzo Dini

Example of ETICS metric report 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 22 CCN = Cyclomatic Complexity Number

Screenshot of dashboard 237/5/2011 INFSO-RI ETICS in Plain English, Lorenzo Dini

Overview ETICS course – From ‘ETICS in Plain English’ by Lorenzo Dini, 10 January 2010, CERN Experience as user Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 247/5/2011

In case of StoRM The StoRM software is structured in several components: – written mainly in C++ and Java by different people – managed by autotool, ant and maven A StoRM project is being added into ETICS since ETICS 2, supported and maintained by the INFN partner of ETICS 2 – Provided changes in all components to handle non hard-coded dependencies – Requested all needed dependencies to the ETICS support team Now StoRM is a subsystem inside the EMI project of ETICS Most of the StoRM components provides a custorm spec file – Improved spec files according to fedora guidelines 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 25

In case of WNoDeS The WNoDeS software is structured in several components: – written mainly in Python – managed by autotool A WNoDeS project is being added into ETICS since the end of May 2011 – Triggered Nightly Build by a cron file executed on a machine at INFN CNAF – Re-engineered WNoDeS software to be compliant with the python best practices and the fedora guidelines 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 26

9 Steps to adopt the ETICS system 1.Asking the ETICS support to register your software project into the ETICS system and to give to your project manager permission to access it 2.Modelling your software project in terms of subsystem and components 3.Defining the project structure containing all modules that are part of a specific version of the project 4.Defining the project configuration (representing a specifc version of the project) containing one and only one configuration of one or more of the project components and subsystems relevant to prepare a specific release of the project 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 27

9 Steps to adopt the ETICS system 5.Composing the configuration structrue, the tree of configurations attached to a project configuration 6.Identifying dependencies of your software 7.Asking the ETICS support to register dependencies into the ETICS repository when necessary 8.Asking the ETICS support to register your software project users into the ETICS system 9.Granting your siftware project users with the appropriate role on modules and configurations 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 28

Considerations: Pros Trigger a build on several platforms Adhere custom scemarios: Maintaining just one configuration with several platforms easily compiling in different platforms Maintaining just one configuration per platform completely independent of changes in the other platforms Verify local build results remotelly Simplify handling of dependencies Automate the creation of a YUM repository with the contents of the builds Provide a public repository for your artefacts 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 29

Considerations: Pros Uniform the build environment of your components Improve the quality of your software thanks to the reports of the metrics calculated during the builds Produce artefacts for different distributions and operating systems Require few effort after the first porting of a software project into ETICS Ask central level to provide you with private resoruces in case of licensed external packages (like oracle) Be well-supported by the ETICS team 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 30

Considerations: Cons Local build can be unconsistent with the remote one due to a mismatch between build environments – The use of a virtual machine that replicates a remote resource of ETICS can be a solution Remote build is often time consuming – A local machine dedicated to the ETICS builds can represent a workaround Software components versions set in several locations such as ETICS configuration, configure.ac, build.xml, pom.xml, Makefile, can cause values’ discrepancy and be error prones – Be carful during the update of the version An initial training is necessary to use ETICS properly An expert packager needs no more than two weeks to port a software product 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 31

Considerations: Cons The ETICS packager does not support all rpm build functionalities – A custom spec file can be a solution Private resources at central level can be provided after a long time – An ETICS infrastructure can be installed and configured on software projct side if resources are available Guest user can look at information of all the projects metadata registered into ETICS – Software products that have strict privacy requirements can perceive this as a big issue 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 32

Useful Links ETICS Portal – ETICS Documentation – FAQs – Mailing list – 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 33

Thanks... 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 34