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

Feature Request: Recommendation/guidance on developer experience #256

Open
alecor191 opened this issue Jun 5, 2022 · 4 comments
Open

Feature Request: Recommendation/guidance on developer experience #256

alecor191 opened this issue Jun 5, 2022 · 4 comments
Labels
enhancement New feature or request

Comments

@alecor191
Copy link

Is your feature request related to a problem? Please describe.
Scenario: Developer works on a microservice M locally. This microservice has dependencies to other microservices D1..Dn. And D1..Dn have dependencies to other microservices etc. In total there are 300+ microservices running in the cluster.

The developer would like to debug her microservice, tweak the code, test out the changes quickly etc. (IOW have a productive inner loop development experience). Let's also say that for certain scenarios mocking all dependencies is not convenient.

What are recommended ways to develop a Container App in the above scenario? How do customers of Container Apps productively develop/debug/test their services (in non-trivially small environments)?

Describe the solution you'd like.
What we have today is the ability to run/debug/test a microservice locally with all dependencies, by allowing it to connect to other microservices hosted in an AKS cluster (using kubectl port-forward). This is not possible in Container Apps, as no access to K8S API is available.

Describe alternatives you've considered.
Options we tried:

  • Using Dapr locally, i.e. have a local K8S cluster, deploy Dapr, deploy services to the local cluster...however, this is too cumbersome for a large cluster with many microservices.
  • Mocking: essentially remove dependencies from other microservices during local development. This works fine for certain scenarios, but not so great for work related to dependency interactions.
  • Deploy the container app to Azure Container Apps after "every" change. This was very unproductive as updating a Container App can take >1min.

Additional context.
None.

@alecor191 alecor191 added the enhancement New feature or request label Jun 5, 2022
@ghost ghost added the Needs: triage 🔍 Pending a first pass to read, tag, and assign label Jun 5, 2022
@andrewweston
Copy link

👍

@BigMorty
Copy link
Member

BigMorty commented Jun 9, 2022

The team would like to see this improved as well, it is on our list to investigate. Sorry I can't give you a timeframe at this time.

@dariagrigoriu dariagrigoriu removed the Needs: triage 🔍 Pending a first pass to read, tag, and assign label Jun 13, 2022
@marcindulak
Copy link

Developer (local and operational) experience has been mentioned several times, e.g. #193 #182 #103. Maybe it's worth creating a meta-issue to manage the feedback and provide an overview, and pin it to the repo?

@rickbatka
Copy link

rickbatka commented Jul 21, 2022

If a full-blown local development environment isn't on the near-term horizon, perhaps the team could enable Telepresence or MS's "Bridge to Kubernetes" to replace a pod in the underlying k8s cluster with a local container under development?

This workflow has worked great for me in the past with vanilla k8s clusters where local setup / mocking is cumbersome or difficult for some reason.

Container Apps is a great solution for running simplified multi-container apps in production, but without a development story it's hard to recommend.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants