Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RSD v2 release #787

Merged
merged 56 commits into from
Sep 12, 2023
Merged

RSD v2 release #787

merged 56 commits into from
Sep 12, 2023

Conversation

dmijatovic
Copy link
Contributor

@dmijatovic dmijatovic commented Mar 21, 2023

RSD 2 release

This PR collects all features to be included in v2 release.
include BREAKING CHANGES in the last commit. - DONE in #927

Closes #655
Closes #789
Closes #792
Closes #803
Closes #806
Closes #823
Closes #824
Closes #838
Closes #888
Closes #896
Closes #916
Closes #913
Closes #924
Closes #922
Closes #932
Closes #933
Closes #934
Closes #935
Closes #936
Closes #937
Closes #938
Closes #955
Closes #976
Closes #979
Closes #980
Closes #982

Changes proposed in this pull request:

  • See separate issues 

Conclusion

The load tests show that RSD v2 server capacity dropped significantly compared to v1. The additional features introduced in v2 require more resources. However, the current capacity of RSD hardware is sufficient to offer additional v2 features under the current traffic. After implementing few optimizations the page load of v2 is comparable to v1 when analysed using Lighthouse.

RSD capacity difference RSD-v1.26.0 vs RSD-v2.0.0

In the K6 load test below, performed on the same hardware, we see that achieving same througoutput (100 users) with v2 is not possible. However, our current hardware CPU capacity on RSD VM seem sufficient. We utilize <10% of the hardware CPU capacity on average day. Based on this test results I expect hardware's CPU utilization to increase to ~30%. For the partners is it important to check their current hardware utilization and take into a count required increase in capacity when upgrading to v2. The data traffic is estimated to be ~150% of v1. Partners are adviced to test v2 performance before commiting to upgrade.

image

Performance improvements

Based on performed load tests on pages and the api we identified few improvement points. These are implemented in #973. Although the performance of specific api calls is improved significantly the total server capacity remains significantly lower compared to v1 as shown in the image below.

image

Lighthouse audit improvements

In addition to api improvements we implemented lighthouse audit suggestions. This lead to significant improvement in the lighthouse scores especially on software overview page. The project overview page, for example, have slightly better score in v2 than in v1 (see image).

Software overview

image

Project overview

image

How to test:

  • make start to build app
  • test all functionalities specified in the separate issues

PR Checklist:

  • Increase version numbers in docker-compose.yml
  • Link to a GitHub issue
  • Update documentation
  • Tests

@sonarcloud
Copy link

sonarcloud bot commented Aug 4, 2023

SonarCloud Quality Gate failed.    Quality Gate failed

Bug D 4 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot E 9 Security Hotspots
Code Smell A 59 Code Smells

No Coverage information No Coverage information
3.7% 3.7% Duplication

idea Catch issues before they fail your Quality Gate with our IDE extension sonarlint SonarLint

@dmijatovic dmijatovic force-pushed the rsd-v2-release branch 2 times, most recently from 8927b2b to b23eec9 Compare August 8, 2023 14:54
@sonarcloud
Copy link

sonarcloud bot commented Aug 8, 2023

[authentication] Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@sonarcloud
Copy link

sonarcloud bot commented Aug 8, 2023

[scrapers] Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@dmijatovic dmijatovic mentioned this pull request Aug 14, 2023
4 tasks
@dmijatovic dmijatovic force-pushed the rsd-v2-release branch 3 times, most recently from 9b37a12 to d338619 Compare August 21, 2023 13:47
@dmijatovic dmijatovic marked this pull request as ready for review August 21, 2023 13:49
dmijatovic and others added 20 commits September 8, 2023 11:55
…t card position and the image resizing problem in the card.
…ts for future test purposes and use theme colors.
@dmijatovic
Copy link
Contributor Author

@cmeessen @fembau @jmaassen @ewan-escience @ctwhome I rebased this PR onto the last release of v1.27.0. Can you test this version of PR as the first release candidate of v2.0.0, please?

I would like to merge this PR into main as soon as possible and set it on our dev server for further testing. Before official release we want to invite some "power users" to have a look at this version before official release. I expect official release of v2 to be ~1-2 weeks from now if no major errors are discovered.

@sonarcloud
Copy link

sonarcloud bot commented Sep 11, 2023

[rsd-database] Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 1 Code Smell

No Coverage information No Coverage information
30.2% 30.2% Duplication

@sonarcloud
Copy link

sonarcloud bot commented Sep 11, 2023

[rsd-frontend] SonarCloud Quality Gate failed.    Quality Gate failed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 20 Code Smells

54.0% 54.0% Coverage
3.5% 3.5% Duplication

idea Catch issues before they fail your Quality Gate with our IDE extension sonarlint SonarLint

@dmijatovic
Copy link
Contributor Author

@cmeessen Can you perform final test of this PR on your side. NOTE! We made one minor DB update on rpc in 100-xxx script.

-- programming language filter for software
-- used by software_overview func
CREATE FUNCTION prog_lang_filter_for_software() RETURNS TABLE (
	software UUID,
	prog_lang TEXT[]
) LANGUAGE plpgsql STABLE AS
$$
BEGIN
	RETURN QUERY
	SELECT
		repository_url.software,
		(SELECT
			ARRAY_AGG(p_lang ORDER BY repository_url.languages -> p_lang DESC)
		FROM
			JSONB_OBJECT_KEYS(repository_url.languages) p_lang
		) AS "prog_lang"
	FROM
		repository_url
	;
END
$$;

If you have any questions let me know :-).

Copy link
Contributor

@cmeessen cmeessen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job, I am looking forward to seeing this live!

@dmijatovic dmijatovic merged commit 7aa0451 into main Sep 12, 2023
6 of 7 checks passed
@dmijatovic dmijatovic deleted the rsd-v2-release branch September 28, 2023 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants