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

update roadmap for 2022 #445

Merged
merged 4 commits into from
Oct 12, 2022
Merged

update roadmap for 2022 #445

merged 4 commits into from
Oct 12, 2022

Conversation

localvar
Copy link
Collaborator

No description provided.

Copy link
Contributor

@xxx7xxxx xxx7xxxx left a comment

Choose a reason for hiding this comment

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

I have some improvements in my backup list, @localvar could decide whether to add (part of) them into the roadmap:

  1. Eliminate global components(such as logger) in order to get a better experience of unit testing, even we need a global/simple unit testing framework for Easegress itself.
  2. API layer uses standard json(generated by protobuf), and CLI could produce/consume both yaml and json like kubectl.
  3. Make json schema failure messages more readable(current ones are not indexed).
  4. Support updating config for system controller.
  5. Clarify the location of config and status of static config (fix httpserver httppipeline status not show error #441 (comment)).

@jxd134
Copy link
Contributor

jxd134 commented Dec 29, 2021

I have some improvements in my backup list, @localvar could decide whether to add (part of) them into the roadmap:

1. Eliminate global components(such as logger) in order to get a better experience of unit testing, even we need a global/simple unit testing framework for Easegress itself.

2. API layer uses standard json(generated by protobuf), and CLI could produce/consume both yaml and json like kubectl.

3. Make json schema failure messages more readable(current ones are not indexed).

4. Support updating config for system controller.

5. Clarify the location of config and status of static config ([#441 (comment)](https://github.com/megaease/easegress/pull/441#issuecomment-1001953374)).

I strongly agree with the second/third point.
In addition, we need to create multiple types of http filters, such as session sticky filter.

@localvar
Copy link
Collaborator Author

I have some improvements in my backup list, @localvar could decide whether to add (part of) them into the roadmap:

  1. Eliminate global components(such as logger) in order to get a better experience of unit testing, even we need a global/simple unit testing framework for Easegress itself.
    ...
    (fix httpserver httppipeline status not show error #441 (comment))).

We have logger.InitNop to create a nop logger for the unit test, so, do we still need the 1st one?

@suchen-sci
Copy link
Contributor

we also have logger.InitMock to print log to stdout for the unit test to debug...

@xxx7xxxx
Copy link
Contributor

xxx7xxxx commented Dec 29, 2021

We have logger.InitNop to create a nop logger for the unit test, so, do we still need the 1st one?

IMHO, yes. My deep opinion is actually we need to make logger modularized and automatical environment perception, for example:

func (rl *RateLimiter) Init() {
    // ...
    if x {
        // It prints `[filter/RateLimiter/ratelimiter-001]: BUG: duration is invalid` to stderr and file stdout.log.
        // But in unit testing, it prints the same message to the stderr only.
        rl.Log().Bugf("duration is invalid")
        return
    }

    // It prints `[filter/RateLimiter/ratelimiter-001]: initialization completed`.
    // The printing endpoint chosen are the same above.
    rl.Log().Infof("initialization completed")
}

And object/supervisor/cluster and so on got different prefixes for their own modules/scopes, I know it seems a little complex for Golang stuff. But as Easegress codebase inflates, the modularized logger should be the road ahead.

@localvar localvar marked this pull request as draft December 30, 2021 06:22
@localvar
Copy link
Collaborator Author

updated according to comments.

For "API layer uses standard json(generated by protobuf)", I think it has been covered by "Protobuf models generating".
And I didn't include "Clarify the location of config and status of static config" in the roadmap, because I think it is not user awarable change.

@localvar localvar marked this pull request as ready for review December 30, 2021 07:07
@xxx7xxxx
Copy link
Contributor

How about adding modularized logger which is not the completely same as the better unit testings?

@localvar
Copy link
Collaborator Author

added.

How about adding modularized logger which is not the completely same as the better unit testings?

@zhao-kun
Copy link
Collaborator

zhao-kun commented Jan 19, 2022

Do we need to add some enterprise features to the roadmap?

For example:

  • I think we could figure out some tools (or methodology) to help users operate the cluster of the Easegress (eg: [question] backup and recovery #452 ), so this could be added to the backlogs?
  • A suit of ansible script help user to rapidly set up the Easegress cluster on bare metals
    etc...

A general mTLS support? The #467 is dedicated to the EaseMesh, we could figure out a more general mTLS support?

Continue refining cookbooks and manuals should be a long term goal

@localvar localvar merged commit 5832fe9 into easegress-io:main Oct 12, 2022
@localvar localvar deleted the roadmap branch October 12, 2022 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants