25
www.eu-etics.org INFSOM-RI-026753 The ETICS Service The ETICS Service Configuration, Building and Configuration, Building and Testing Testing Guillermo Diez-Andino Sancho Guillermo Diez-Andino Sancho (on behalf of the entire ETICS team) (on behalf of the entire ETICS team) Budapest, Hungary – 1-5th October 2007 Budapest, Hungary – 1-5th October 2007

The ETICS Service Configuration, Building and Testing

  • Upload
    trapper

  • View
    46

  • Download
    1

Embed Size (px)

DESCRIPTION

The ETICS Service Configuration, Building and Testing. Guillermo Diez-Andino Sancho (on behalf of the entire ETICS team) Budapest, Hungary – 1-5th October 2007. Contents. ETICS in a nutshell ETICS and QA The Service ETICS Features Metadata Service architecture What it looks like - PowerPoint PPT Presentation

Citation preview

Page 1: The ETICS Service  Configuration, Building and Testing

www.eu-etics.org

INFSOM-RI-026753

The ETICS Service The ETICS Service Configuration, Building and TestingConfiguration, Building and Testing

Guillermo Diez-Andino Sancho Guillermo Diez-Andino Sancho

(on behalf of the entire ETICS team)(on behalf of the entire ETICS team)

Budapest, Hungary – 1-5th October 2007Budapest, Hungary – 1-5th October 2007

Page 2: The ETICS Service  Configuration, Building and Testing

2INFSOM-RI-026753 2

Contents

• ETICS in a nutshellETICS in a nutshell• ETICS and QA ETICS and QA • The ServiceThe Service

– ETICS Features– Metadata– Service architecture

• What it looks likeWhat it looks like• ConclusionsConclusions

Page 3: The ETICS Service  Configuration, Building and Testing

3INFSOM-RI-026753

ETICS in a nutshell

• ETICS stands fore-Infrastructure for Testing, Integration and Configuration of Software

• Project started on January 1st, 2006 and has a duration of two years

• Goal is to provide efficient automated tools for building and testing

• ETICS is born from the experience of developing, integrating and testing grid and distributed software

Page 4: The ETICS Service  Configuration, Building and Testing

4INFSOM-RI-026753

The ETICS partners

Build system, software

configuration, service infrastructure,

dissemination, EGEE, gLite, project coord.

Software configuration, service infrastructure, dissemination

Web portals and tools, quality process, dissemination, DILIGENT

Test methods and metrics, unit testing tools, EBIT

The Condor batch system, distributed testing tools, service infrastructure, NMI

Page 5: The ETICS Service  Configuration, Building and Testing

5INFSOM-RI-026753

ETICS and QA (I)

• ETICS is about providing build/test tools and useful information to help guaranteeing software quality

• How it is achieved– Automation and reproducibility is a first step towards QA

– Of the Build Process

– Early error detection and bug fixing– Of the Test Process

– Automatically deploying distributed tests– Wrong behaviors are detected in early development stages

– Collecting software metrics– Can be customized (ETICS plugin framework)

– All the previous points are summarized in Build and Test reports sent to the user

Page 6: The ETICS Service  Configuration, Building and Testing

6INFSOM-RI-026753

ETICS and QA (II)

• How is it automated– Everything about the software to be built/tested is expressed in the

ETICS data model– Define the project structure– Define the different versions of the components– What software depends on what

– Software dependencies (in code development it is a source of problems)

– How to build/test

– On top of that ETICS provides tools to run tests on the code– Coding conventions, coverage tests, etc …– This tools can be extended/adapted by the users (plugin based framework)

– Framework allows users with investments in existing build, test, Framework allows users with investments in existing build, test, certification and/or software quality assurance tools to leverage this certification and/or software quality assurance tools to leverage this investmentinvestment

– Users can select, from a rich set, which metrics are important to Users can select, from a rich set, which metrics are important to them and have ETICS automatically calculate them during build them and have ETICS automatically calculate them during build and test, and make them visibleand test, and make them visible

Page 7: The ETICS Service  Configuration, Building and Testing

7INFSOM-RI-026753

Features of the ETICS Service

• Out-of-the-box Out-of-the-box automatic build/testautomatic build/test system system• Multiplatform supportMultiplatform support for development and testing for development and testing• Powerful and flexible Powerful and flexible automatic dependency automatic dependency

managementmanagement (internal and external dependencies) (internal and external dependencies)• Trigger coding convention checks, unit test, documentation Trigger coding convention checks, unit test, documentation

tools and collect and publish the resultstools and collect and publish the results• Possible to build everything Possible to build everything from sourcefrom source or use pre-built or use pre-built

binary packagesbinary packages• Designed to Designed to support several Version Control Systemssupport several Version Control Systems• Possible to Possible to register artefacts on the repositoryregister artefacts on the repository• Publishes run-time configuration informationPublishes run-time configuration information such as such as

environment variables, runtime dependencies, etc …environment variables, runtime dependencies, etc …• Produce Produce different package formatsdifferent package formats (rpms, tar, msi, debs) (rpms, tar, msi, debs)• Produces Produces rich build and test reportsrich build and test reports

7

Page 8: The ETICS Service  Configuration, Building and Testing

8INFSOM-RI-026753 8

Metadata: the heart of ETICS’ intelligence

• In order to understand how to build and test, ETICS In order to understand how to build and test, ETICS relies on metadatarelies on metadata

• Simple to view and edit by the user, this metadata Simple to view and edit by the user, this metadata allows the ETICS Service to perform complex allows the ETICS Service to perform complex reasoning, hence performing high-level functions on reasoning, hence performing high-level functions on behalf of the user – e.g.behalf of the user – e.g.– Dependency analysisDependency analysis– Property processingProperty processing

Page 9: The ETICS Service  Configuration, Building and Testing

9INFSOM-RI-026753

Service Architecture (I)

• ETICS Service build as an N-tier architecture• All elements of ETICS are configured, built and tested

with ETICS• ETICS Service is Open Source: Apache 2.0 license

Page 10: The ETICS Service  Configuration, Building and Testing

10INFSOM-RI-026753 10

Service Architecture (II)

Build/TestArtefacts

Web Application

ReportDB

ProjectDB

NMI Execution Engine

Clients

Web Service

NMI ClientWrapper

Via browser

WNs ETICS Infrastructure

Page 11: The ETICS Service  Configuration, Building and Testing

11INFSOM-RI-026753

Service Architecture (III)

• Build and Test Web Service (WS) – Provides single secure interface to the ETICS backend system– Performs complex queries on behalf of the clients (WA and CLI)– Authentication is performed using digital certificates (x.509)– Authorisation is role-based– Submit build/test jobs to the underlying execution engine (NMI)– Clients connecting without certificate are mapped to Guest, with

minimal privileges (most likely just read access)

• Build and Test Command-Line client (CLI)– Build and test locally– Browse metadata– Edit metadata– Submit build and test jobs– State-full and secure application– Interfaces with the ETICS Build and Test Web Service

Page 12: The ETICS Service  Configuration, Building and Testing

12INFSOM-RI-026753 12

Service Architecture (IV)

• Execution engineExecution engine– NMI is an execution engine internally used by ETICS to

manage remote build and test jobs on different platforms– NMI is a layer built on the top of Condor– Following features were added to NMI/Condor to better support Following features were added to NMI/Condor to better support

the ETICS Execution Enginethe ETICS Execution Engine– Private resourcesPrivate resources: projects can provide specific resources for : projects can provide specific resources for

exclusive usageexclusive usage– FreezeFreeze: lock the node for further analysis in case of failure: lock the node for further analysis in case of failure– Root-enabled environmentRoot-enabled environment: build or test jobs can request to run : build or test jobs can request to run

as rootas root

Page 13: The ETICS Service  Configuration, Building and Testing

13INFSOM-RI-026753

Service Architecture (V)

• ETICS composed of following Web Applications:– Build and Test (WA)– Repository– Administration

• Build and Test Web Application (WA) allows users to– Interfaces with the ETICS Build and Test Web Service– Browse metadata– Edit metadata– State-full and secure application– Submit build and test jobs

• Report and repository applications– Provide to users access to build products, logs and test results

(artefacts)– Provides permanent and volatile artefact storage

• Administration– Assign roles to users (Developer, Integrator, ProjectAdministrator, …)– Visualize the active users/roles in a given module/configuration

Page 14: The ETICS Service  Configuration, Building and Testing

14INFSOM-RI-026753

Some screenshots

What it looks like

Page 15: The ETICS Service  Configuration, Building and Testing

15INFSOM-RI-026753

Getting started

Page 16: The ETICS Service  Configuration, Building and Testing

16INFSOM-RI-026753

ETICS registration

https://etics.cern.ch:8443/eticsAdmin/

/public/registration/requestRegistration.jsp

Page 17: The ETICS Service  Configuration, Building and Testing

17INFSOM-RI-026753 17

Project Metadata (I)

• All ETICS registered projects are available from a All ETICS registered projects are available from a central entry point: central entry point: https://etics.cern.ch:8443/etics

• Project details are shown upon selection in a drop-Project details are shown upon selection in a drop-down listdown list

Project Details

Page 18: The ETICS Service  Configuration, Building and Testing

18INFSOM-RI-026753 18

Project Metadata (II)

Browse Panel

Configuration List

View/Edit Panel

Page 19: The ETICS Service  Configuration, Building and Testing

19INFSOM-RI-026753 19

Configuration Metadata

• ETICS defines ETICS defines configuration configuration similar to similar to version in CVSversion in CVS

• Configurations can be defined Configurations can be defined differently for different differently for different platformsplatforms

• Configurations include what to do to Configurations include what to do to checkout, build and test software checkout, build and test software modules:modules:– Version control system (VCS) - e.g. Version control system (VCS) - e.g.

CVS, SVN - commandsCVS, SVN - commands– Build commandsBuild commands– Test commandsTest commands– Properties and environmentProperties and environment– DependenciesDependencies

• Properties and environment variables Properties and environment variables are are inherited and propagatedinherited and propagated

• Each command includes clear set Each command includes clear set targets. targets. e.g. build: clear, init, checkstyle, doc, e.g. build: clear, init, checkstyle, doc, compile, package, publishcompile, package, publish

Page 20: The ETICS Service  Configuration, Building and Testing

20INFSOM-RI-026753 20

Remote build/test

Page 21: The ETICS Service  Configuration, Building and Testing

21INFSOM-RI-026753

ETICS Reports – (I)

Page 22: The ETICS Service  Configuration, Building and Testing

22INFSOM-RI-026753

ETICS Reports – (II)

• Trees– Easy browsing trees– Organised by Project or

by Build Date

• Detailed reports– Package Summary– Build Summary– Build Configuration– Build Logs

http://etics.cern.ch:8080/reportBrowser/

Page 23: The ETICS Service  Configuration, Building and Testing

23INFSOM-RI-026753

ETICS Repository

Page 24: The ETICS Service  Configuration, Building and Testing

24INFSOM-RI-026753 24

Conclusions

• ETICS defined, integrated and delivered a novel ETICS defined, integrated and delivered a novel ConfigurationConfiguration, , BuildBuild and and Test ServiceTest Service

• Valuable Valuable and and usefuluseful information is provided out of the information is provided out of the build/test processbuild/test process

• The service The service leverage the rich knowledge foundationleverage the rich knowledge foundation of of the consortium partners in the domain of software the consortium partners in the domain of software quality assurance, development, integration and test of quality assurance, development, integration and test of complex Grid and distributed softwarecomplex Grid and distributed software

• The ETICS service was used in an incremental fashion The ETICS service was used in an incremental fashion to build and test the ETICS service, providing rapid to build and test the ETICS service, providing rapid feedback to the teamfeedback to the team

Page 25: The ETICS Service  Configuration, Building and Testing

25INFSOM-RI-026753 25

Thanks

http://www.eu-etics.org