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

EAM: Suggest to add App Instance Name #255

Open
gainsley opened this issue Jun 7, 2024 · 5 comments
Open

EAM: Suggest to add App Instance Name #255

gainsley opened this issue Jun 7, 2024 · 5 comments
Labels
enhancement Suggesting ideas for new API features or questions on directions for API evolution

Comments

@gainsley
Copy link
Collaborator

gainsley commented Jun 7, 2024

Problem description
No human-readable identifier for application instances. Very difficult differentiate between application instances only via UUID.

Possible evolution
Suggest to add a user-assigned name string field to application instances, much like AppManifest has a user-defined name field. This will allow users to easily distinguish between the different application instances they have deployed.

Alternative solution
None.

Additional context
None.

@gainsley gainsley added the enhancement Suggesting ideas for new API features or questions on directions for API evolution label Jun 7, 2024
@javierlozallu
Copy link
Collaborator

javierlozallu commented Jun 13, 2024

The UUIDs of the application instances are generated by the Edge Platform depending on the Edge Cloud Zones, so it is transparent for the Application Provider and this new parameter should follow the same approach, if we want to add this new parameter we should agree on a data model name for it as well (e.g. AppName-EdgeCloudZoneName).

Some doubts here:

  • For one application it is allowed to deploy one app instance per EdgeCloudZone or several app instances per EdgeCloudZone? if multiple instances are allowed then we should add numbering to the data model name.
  • The multiple app instances option is based on auto scaling or is something that the app provider can define?
  • An application could be composed of multiple microservices, how can we define a naming for this?

@gainsley
Copy link
Collaborator Author

My intent was the name field be user-specified, not server generated. This is the same as AppManifest.Name. The user can choose any name they want, because that name will help them identify the application instance, so there is no specific format beyond being a string.

@gainsley
Copy link
Collaborator Author

Regarding your doubts:

  • We allow multiple instances of the same app per edge-cloud-site, but it's really irrelevant here. If the user chooses a name that already exists (and here we need to define the scope, i.e. the name must be unique per edge-cloud-site and per AppProvider, but not necessarily unique globally), then the API fails and the user must choose a non-conflicting name.
  • Typically autoscaling is left to Kubernetes, and so all pods that are scaled are still part of a single app instance from the platform's point of view. In any case the name is for the app instance, not individual pods or VMs that may be scaled as part of the single app instance.
  • Similarly, the name is for the app instance, not the individual microservices that may be part of the instance, so it doesn't matter how many individual services an app instance may be composed of.

@javierlozallu
Copy link
Collaborator

My intent was the name field be user-specified, not server generated. This is the same as AppManifest.Name. The user can choose any name they want, because that name will help them identify the application instance, so there is no specific format beyond being a string.

In that case, developers should define one name per instance, I think it could be complex when instantiating several instances, imagining the case for 50 instances developers have to think of 50 names. And what happens when the instantiation is triggered by an user request, dynamic instantiation, the developer receives a notification to add the name for the instance?

@gainsley
Copy link
Collaborator Author

In that case, developers should define one name per instance, I think it could be complex when instantiating several instances, imagining the case for 50 instances developers have to think of 50 names. And what happens when the instantiation is triggered by an user request, dynamic instantiation, the developer receives a notification to add the name for the instance?

That's a fair point, I would suggest that we allow the user to leave the name blank, in which case the system will either leave it blank, or perhaps fill it in with the appInstanceId.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Suggesting ideas for new API features or questions on directions for API evolution
Projects
None yet
Development

No branches or pull requests

2 participants