Presentation is loading. Please wait.

Presentation is loading. Please wait.

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,

Similar presentations


Presentation on theme: "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,"— Presentation transcript:

1 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

2 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

3 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

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

5 The ETICS System ETICS in Plain English, Lorenzo Dini57/5/2011 INFSO-RI-223782 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

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

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

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

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

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

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

12 Data Model: Component versions and dependencies MY PROJECT UTILSSERVICE EXTERNALS TOMCAT BOOST JDK UTILSWA … CLIENT 1.6 1.4 1.5 v. 3 v. 1.3.7 v. 2.1.8 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-223782 Project Subsystem Component Configuration

13 Data Model: Defining releases Release v. 1.0.0 Service v. 2.1.0Utils v. 1.1.0 MY PROJECT UTILSSERVICE UTILSWACLIENT v. 3 v. 1.3.7 v. 1 v. 2 v. 2.1.8 v. 1.1.0 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-223782 Project Subsystem Component Configuration v. 1 v. 1.3.7 v. 2.1.8

14 Data Model: Metapackages MY PROJECT UTILSSERVICE EXTERNALS TOMCAT JDK UTILSWACLIENT 1.6 1.4 1.5 v. 3 v. 1.3.7v. 1 v. 2 1.5 1.4 v. 2.4.5 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-223782 Project Subsystem Component Configuration Metapackage

15 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-223782 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri

16 Properties Key-Value Pairs for customization CUSTOM Inherited, overwritable, isolated enable.optimization=yes DEFAULT Used to manipulate dependencies MySQL.DEAFULT=mysql v 5.0.28 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-223782

17 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-223782 ETICS in Plain English, Lorenzo Dini

18 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-223782 ETICS in Plain English, Lorenzo Dini

19 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-223782 ETICS in Plain English, Lorenzo Dini

20 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-223782 ETICS in Plain English, Lorenzo Dini

21 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-223782 ETICS in Plain English, Lorenzo Dini

22 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

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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 Useful Links ETICS Portal – https://etics.cern.ch/eticsPortal/ https://etics.cern.ch/eticsPortal/ ETICS Documentation – http://etics.web.cern.ch/etics/ http://etics.web.cern.ch/etics/ FAQs – https://web.infn.it/etics-support/index.php/faq2 https://web.infn.it/etics-support/index.php/faq2 Mailing list – etics-support@cern.ch 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 33

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


Download ppt "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,"

Similar presentations


Ads by Google