The eInfrastructure for Testing, Integrational and Configuration of Software (ETICS) project was started two years ago as a spin-off from the Enabling Grids for E-sciencE (EGEE) project. It was initially co-funded by the European Commission for two years and has now received a new grant for a second phase, the ETICS 2 project, from March 2008 to February 2010. The project is coordinated by CERN and has eight partners: CERN, INFN, Engineering SpA, 4D Soft Ltd, University of Wisconsin-Madison, SZTAKI, Forschungszentrum Jülich (FZJ) and VEGA GmbH.
The major goal of the ETICS project is to assist the software engineering activities of small and large software projects by providing tools and services to build, test and evaluate the quality of their software. The major objective inherited from the EGEE project was to handle complex software products developed and deployed on distributed infrastructures. Building and testing sophisticated software products, such as the gLite middleware that was developed by EGEE or the gCube software produced by the DILIGENT/D4Science project, is a major challenge. It requires ways of managing complex dependencies; building on many different platforms; deploying clients and services located on the Internet in different sites; collecting metrics; and producing reports to help the certification teams spot and address existing or potential issues.
ETICS helps to manage this complexity by providing web-based tools and command-line application programming interfaces (APIs) to describe the software, build it, produce packages for different platforms, test the deployment, and perform static, dynamic and functional tests. In addition to providing tools and guidelines, we directly manage a distributed computing infrastructure located at CERN, the University of Wisconsin and INFN, where projects using the ETICS services can test their software on more than 40 different combinations of operating systems, CPU architectures and compilers.
Who's involved?
ETICS 2 is a distributed project. Our partners are located in Europe and the USA and we have started collaborations with commercial companies to explore the use of Grid middleware and applications for business activities. While the most prolific users are the Grid middleware developers from EGEE, we have more than 200 users from about 25 projects registered in the ETICS database. ETICS 2 is now expanding its scope to include new infrastructures like DEISA (with support for the UNICORE middleware) and new engineering communities like the Aerospace Engineering sector.
We use the PPT project-planning tool developed at CERN to manage the internal project effort. Over the past two years 37 people have collaborated in one way or another with the development and operation of the ETICS infrastructure, and more people are joining from new infrastructures and communities.
At CERN, the ETICS 2 project is run by six people, including the project director Alberto Di Meglio. Five of them work in the Grid deployment group and one in the EGEE project office, dealing with the administrative management of the project.
Major achievements
As a spin-off of the EGEE project, ETICS inherited the single-platform build system that was originally used for the gLite middleware and a simple set of quality assurance tools. However, since the beginning ETICS has been addressing one of the basic challenges that many large-scale, open-source software projects have to deal with, namely the need to set up complex software lifecycle management infrastructures and processes to guarantee acceptable levels of quality, interoperability and maintainability.
The major achievement of the ETICS project has been the deployment of a managed distributed infrastructure with more than 40 different platforms and a rich set of command-line and web clients to configure, build and test small and large software projects. This has been made available to a reasonably large user base (25 projects and more than 200 users). A rather sophisticated build and test configuration management system helps the users (developers, integrators or testers) to record detailed information for thousands of build and test configurations. A repository service can also be used to store and publish build and test reports and packages.
Another important achievement is the possibility of running complex test suites involving the use of many different interoperating nodes in a fairly automated way. This is a major challenge in the distributed and Grid software development world. With ETICS you can define "multi-node" tests composed of services, clients and test scripts, and then automatically allocate and configure the required nodes (computers), deploying the software as needed.
The execution flow is managed by a set of synchronization commands to be used in the test scripts, and all logs and test results are consolidated and stored in the repository for later analysis. In this way, the test environment is always reproducible, the test conditions are well under control and the effort needed to manage the testbeds is reduced.
Looking ahead
During the first two years most of the ETICS users came from projects already involved in Grid activities worldwide. Even so, it has not always been easy to convince developers and testers to trust a new build and test system that claims to run everything in an automated way. Indeed, collecting all user requirements, implementing the services and managing the test infrastructure has been a very challenging task. We are very grateful to the projects that have been using the system since its infancy – especially EGEE, DILIGENT and OMII-Europe, who have provided invaluable feedback to make the system reliable. The fact that they are still using ETICS proves how worthwhile the project is.
Now that a stable environment for building and testing software is deployed and running, our next major goal and challenge is to extend this to more infrastructures. We have started collaborations with the gLite CREAM development team in INFN and the UNICORE development team in FZJ to add support for running ETICS on new types of Grids (currently ETICS uses Condor from the University of Wisconsin). Our aim is to turn ETICS into a standard service that is provided by the Grid infrastructures to their users.
Within CERN, another important goal is to propose ETICS to software development projects outside the typical Grid development world. We have started collaborations with other groups in the IT department to see what benefits projects such as Quattor or CASTOR can receive from using ETICS. We would also like to work with teams outside the department to share our experiences and improve the system even more.
Finally, one of the major challenges is to make ETICS and its quality assurance process a standard. ETICS has a quality assurance model called Grid-QCM (Grid Quality Certification Model), which was developed by the Engineering SpA. It is based on a number of existing ISO standards, but is more practical and easier to apply in dynamic environments such as scientific communities.
We know it will be a difficult task, but we are convinced tha t the value of collaborations like ETICS, EGEE or LCG is also in the definition of open standards and the creation of new markets and opportunities.
For more information about the ETICS project, visit www.eu-etics.org.
Alberto Di Meglio, IT/GD