SovereignCloudStack / standards

SCS standards in a machine readable format
https://scs.community/
Creative Commons Attribution Share Alike 4.0 International
34 stars 24 forks source link

SCS IaaS Standard flavors and Flavor naming discussion #271

Closed garloff closed 1 year ago

garloff commented 1 year ago

The SCS community had agreed on a standard flavor naming scheme and standard flavors back in 2021. The discussion was somewhat lengthy. In the process a document explaining the logic and a v1 flavor naming specification were agreed upon. This was considered to be a mandatory SCS standard on the IaaS layer since then. The software engineering rule that something that is not tested is (almost) always broken also hit us here: In summer 2022, we observed SCS cloud providers not implementing the standard fully correctly. Since then a checker tool has been created that can validate a flavor or generate a flavor name from parameters. A tool to check all flavors has been added and it is called from the compliance check test suite whose results are displayed on github. Our CSP partners were successful in becoming fully compliant in fall 2022.

Unfortunately, the original v1 proposal contains : in their names and certain k8s tools (OpenShift) use the infra flavor names as labels in Kubernetes, where : is not allowed. This causes trouble running OpenShift on top of SCS IaaS with v1 flavor names. A v2 scheme was discussed and created.

Unfortunately, the migration causes some pain for providers. In the Nuremberg Hackathon, we found out that not all SCS IaaS providers have a clear commitment to implement the v2 flavors and work with us to minimize the pain. This would be unfortunate, stripping SCS from one of the benefits where flavor related pain points for migrations and/or simultaneous multi-cloud deployments are addressed.

Currently, the SCS compliance specification allows for both v1 and v2 compliance and the clouds are checked for both. However, this is currently scheduled to end on October 2023. The SCS project leader wants to have an agreed strategy long before October comes and has thus written a discussion document: Why do we need to standardize flavors and flavor names.

The document breaks down the discussion into 12 suggestions. Some of them might not be controversial at all, some may be. The author would like to invite everyone to comment on the suggestions. He would also like to suggest that anyone expressing his/her agreement or disagreement or extra consideration does relate it to a specific suggestion (or set of suggestions). For this, issues on each suggestion have been created, so the discussion does not get confusing. Of course the author might have overlooked important aspects for this discussion, so it is possible that discussion topics beyond the 12 suggestions pop up. Additional issues might be opened up and linked here then. Global discussion (comments affecting many of the suggestions at once) can happen here, would still be good to be precise on what aspect is being commented on.

tibeer commented 1 year ago

Just my two cents:

  1. Agreed
  2. No opinion
  3. Agreed
  4. Agreed (As nobody prevents CSP's to create their own, additional flavor names, I see no problem with the SCS prefix)
  5. Agreed
  6. Agreed
  7. Agreed (As nobody prevents CSP's to create their own, additional flavor names, I see no problem with the SCS prefix)
  8. Agreed
  9. No opinion (Though I might trow in that this enforces SCS providers, especially if this runs in-house, to provide some sort of local storage/hyperconverged nodes. Might be undesireable if you pay for a huge netapp cluster already and you don't have the requirement to run k8s clusters; but as already said: I have no opinion on that topic due to lack of information)
  10. Agreed
  11. Agreed
  12. Agreed

Thanks a lot for coming up with those suggestions!

PSwatchmen commented 1 year ago

Hi@all,

Suggestion 1 - agree Suggestion 2 - agree Suggestion 3 26/28 are to much  it is hard to fit all use cases. so a set of flavors with 2 and 4 CPU could be mandatory and more are recommandations Suggestion 4 speaking names instead of cryptic names  both schemes need an explanation but speaking names could be a better first user experience (the first user is often a manager instead of an administrator)  for more details please have a look to the metadata i made an example for a scheme Suggestion 5 - agree with a look to note 2 Suggestion 6 - agree Suggestion 7 disk size only as recommendation Suggestion 8 - agree Suggestion 9 Suggestion 10 Suggestion 11 longer duality Suggestion 12

i hope you can understand my bullet points

SCS flavor-naming_PSwatchmen.pdf

garloff commented 1 year ago

Suggestion 3: Number of flavors discussion. (@PSwatchmen)

Idea: Split mandatory list into a mandatory and recommended list.

garloff commented 1 year ago

26 seems completely reasonable (and convenient for user, @tibeer), commercial CSPs have more. But these are just general-purpose, if we start with special features, we'll could have many more.

garloff commented 1 year ago

Input @PSwatchmen @frosty-geek:

If we go for flavors without disks (i.e. downgrade the ones with disk to recommended), we should then push for usability of the diskless. Improve/document terraform, openstackclient, ansible.

garloff commented 1 year ago

Recommendation 4: cryptic names SCS-4V-16-50 vs. SCS-standard-medium-V-50 SCS-4V-16 vs. SCS-standard-medium-V

garloff commented 1 year ago

Long-term goal: Names don't matter any more, as we select flavors by discoverable properties (and the tools all have nice support for that, which is not currently the case). Agreement.

Medium-term: PS prefers the speaking names "-standard-medium" over "-4V-16", the SCS team does not.

garloff commented 1 year ago

A good approach to avoid the decision would be to have flavor aliases. Could be implemented by extra API (in front of nova) or by a nova improvement. (PoC exists #228) We could then even support a scheme that emulates AWS, StackIT, .... (@tibeer).

garloff commented 1 year ago

PS: Invest into discoverability and tool support for it to get quickly to a state where names are irrelevant instead of name aliases.