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
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
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
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
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
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
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
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
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
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
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
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
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
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
14INFSOM-RI-026753
Some screenshots
What it looks like
15INFSOM-RI-026753
Getting started
16INFSOM-RI-026753
ETICS registration
https://etics.cern.ch:8443/eticsAdmin/
/public/registration/requestRegistration.jsp
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
18INFSOM-RI-026753 18
Project Metadata (II)
Browse Panel
Configuration List
View/Edit Panel
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
20INFSOM-RI-026753 20
Remote build/test
21INFSOM-RI-026753
ETICS Reports – (I)
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/
23INFSOM-RI-026753
ETICS Repository
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
25INFSOM-RI-026753 25
Thanks
http://www.eu-etics.org