Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Development in Dataverse SSHOC project

Scrum development process in DataverseEU project.

  • Be the first to comment

  • Be the first to like this

Development in Dataverse SSHOC project

  1. 1. dans.knaw.nl DANS is een instituut van KNAW en NWO The development process in DataverseSSHOC Vyacheslav Tykhonov Technical lead, Senior Information Scientist (DANS-KNAW, Netherlands) DataverseEU Kick-Off meeting, 10.04.2019
  2. 2. Development teams DataverseSSHOC project have two parallel tracks of the development: • Core development team will be working on the modification and extension of the Dataverse core functionality. All tasks of this team will get label Core. • The application development team will create new or will integrate existent tools that will be published on Dataverse App Store website. Tasks of this team will be labelled as App.
  3. 3. Trello for tasks management
  4. 4. Source code and issues • GitHub for the development http://github.com/IQSS/dataverse-docker • BitBucket for the Cloud infrastructure with secrets
  5. 5. Decentralized but centralized development
  6. 6. IDE: Eclipse/NetBeans, Maven for building/deployment in containers
  7. 7. Development process We follow SCRUM with quick but small updates, all new functionality will go through DTAP (Development, testing, acceptance and production ) pipeline: local (own PC) – test (cloud) – acceptance (cloud) – production (cloud)
  8. 8. Docker images Images will be available on Docker Hub for all collaborators from Dataverse community and in CESSDA Containers Registry for DataverseSSHOC devops
  9. 9. Orchestration Orchestration is the automated configuration, coordination, and management of computer systems and software. (Wikipedia) DataverseSSHOC tools: • Docker Compose for the local development and testing • Kubernetes (K8s) for deployment on Google Cloud (CI/CD pipeline with Jenkins and Helm on Kubernetes)
  10. 10. Testing procedures • Unit tests (Java) for core development team • Integration tests (Selenium) for app development team • Performance/stress tests (Apache JMeter) before Dataverse will go to Acceptance/Production
  11. 11. Testing core functionality and Dataverse apps Testing process should be compliant with CESSDA services maturity model https://zenodo.org/record/2591055#.XKR6ny2B2u5 Important: every change of Dataverse functionality should be supplied with unit test, changes of external functionality should get Selenium scenarios. Goal: to score as high as possible according to CESSDA maturity model
  12. 12. A/B testing

×