Azure / azure-sdk-for-java

This repository is for active development of the Azure SDK for Java. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/java/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-java.
MIT License
2.36k stars 2k forks source link

[Epic] Spring on Azure #27773

Closed chenrujun closed 1 year ago

chenrujun commented 2 years ago

This is an Epic to track all Spring on Azure related tasks.

Context

Now for a developer who used Spring and Azure, he may have many problems about documents and samples.

  1. It's difficult the find required documents and samples.
  2. The document is outdated.
  3. etc..

Goal

Investigate the problem and find a solution to solve the problem.

Solution

jialigit commented 2 years ago

Investigate and list the todos and prepare the environments?

enrich the contents: this is the next step after the above one?

chenrujun commented 2 years ago

@jialigit Detailed contents is not decided yet, need more discussion with our PM.

chenrujun commented 2 years ago

Spring on Azure samples problems and solution proposal

Preface

Proper noun explanation

Goal

Solve problems in current Spring on Azure samples.

Samples in scope

All samples are managed by GitHub repository. Repositories in scope are listed in Spring on Azure Repositories.xlsx.

Problem 1: I cannot find samples

Problem 1.1: I don't know where to find Spring on Azure related sample

Problem explanation: For example: I want to find sample about Using Azure Service Bus in Spring application, but I don't know where to find related sample.

Solution proposal:

Problem 1.2: I can't find sample by searching in search engine

Problem explanation: For example: When search spring service bus sample in google, I can't get Azure-Samples/azure-spring-boot-samples/servicebus. Here is the link to google search result

Solution proposal:

Problem 2: Sample is not easy to follow

Problem 2.1: There is error in the sample

Problem explanation: When I run the steps in the README, I faced some error, I'm not sure it's the problem of this sample or it's the problem of my develop environment.

Solution proposal:

(P0) Problem 2.2: Different Prerequisites of running sample.

Problem explanation:

Solution proposal:

Azure Portal Azure Tools extension for VS Code Azure CLI Azure PowerShell Infrastructure as Code tools: Bicep, Terraform, Ansible
Seldom change. Change can be detected :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
Can create a bunch of resources without interaction :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
Can be used in all IDE :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
Esay to use in all kinds of Operating system :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark:
User can know what he created by interaction :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :x:
Can be used without much learnning effort :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :x:

(P0) Problem 2.3: Different style of README.

Problem explanation:
For example:

Solution proposal:

Problem 3. Sample does not support all supported versions.

Problem explanation:

Solution proposal:

Problem 4: Multiple similar samples.

Problem 4.1: Similar repositories

Problem explanation: For example:

Solution proposal:

Problem 4.2: Sample of same feature in different repository

Problem explanation: For example:

Solution proposal:

(P0) Problem 5: Not provide the best solution.

Problem explanation: For example: In https://github.com/Azure-Samples/spring-jms-service-bus, use spring-cloud-azure-starter-servicebus-jms is a better option to in this sample.

Solution proposal:

Make sure every Spring on Azure sample is maintained by related expert. The experts should be responsible to provide best solution.

(P1) Problem 6: Not using supported version.

Problem explanation: For example:

Solution proposal:

(P1) Problem 7: Not updated for more than one year.

Problem explanation: Some sample repository is not updated for more than one yeat. For example: https://github.com/Azure-Samples/brewdis is not updated for 2 years.

Solution proposal:

(P0 inside spring on azure team) Problem 8: Lack of synergy between among Azure products.

Problem explanation: For example: samples from Spring Cloud Apps does not use Spring Cloud Azure libraries.

Solution proposal: This mainly happened in end-to-end-samples. It can be solved by spring-on-azure-experts system designed in the solution of Problem 5: Not provide the best solution.

Problem 9: Repo name does not describe content without contextual information

Problem explanation: Repos with name like brewdws / pet-clinic-jar / animal-rescue / todo-app will not provide enough information. I don't know what the repository is used to without reading the README.

Solution proposal:

Make repository names follow the rule described in Problem 1.2: I can't find sample by searching in search engine: spring-on-azure-samples-xxx.

(P1) Problem 10: Steep learning curve.

Problem explanation: Some samples introduce many features in one application. It will make the sample hard to learn. For example: aad-web-application contains these features:

Solution proposal:

For example, here is a folder structure of a sample repository: image There should be a learning path like this: image In the learn-path image, sample-A -> sample-B means if customer want to run sample-B, he should run sample-A first.

Next step

stliu commented 2 years ago
  1. open questions
  2. bias
  3. measure success
  4. delivery
chenrujun commented 2 years ago
  1. Open questions 1.1. Where to list all samples, as described in Problem 1.1: I don't know where to find Spring on Azure related sample.

  2. Bias (Resolved) 2.1. Method to create azure resource. Added a table to comparing all methods of creating azure resources.

  3. Measure success (Need more discussion with Sean) 3.1. ROI. Now I'm sure how to calculate the number of RIO. 3.2. OKR: 3.2.1. Subscription (Need to discuss with Sean). Now I I'm not sure how to confirm that how much 3.2.2. The count of visitor and cloner of each sample repository.

  4. Delivery 4.1. All samples follow the same template. 4.2. All repositories have a maintainer, publish a document about maintainer's responsibility. 4.3. Build SLA system to make sure all samples can work well. 4.4. Build spring-on-azure-experts system, make sure all spring-on-azure samples are maintained by related expert. And all new samples can be detected.

fangjian0423 commented 2 years ago

Updates:

Azure for Spring developers hub page is now live.

chenrujun commented 1 year ago

Closing this issue. Because we decide to use GitHub issue to track Feature or Bug. Epic is not necessary anymore.