[Awesome Software] Fava: A web interface for the double-entry bookkeeping software Beancount
fava
Fava is a web interface for the double-entry bookkeeping software Beancount with a focus on features and usability.
Fava is a web interface for the double-entry bookkeeping software Beancount with a focus on features and usability.
active_importer
allows you to define importers that load tabular data from spreadsheets or CSV files into any ActiveRecord-like ORM.
springdoc-openapi java library helps automating the generation of API documentation using spring boot projects. springdoc-openapi works by examining an application at runtime to infer API semantics based on spring configurations, class structure and various annotations.
Swagger is a simplify API development for users, teams, and enterprises with the Swagger open source and professional toolset. Find out how Swagger can help you design and document your APIs at scale API Documentation & Design Tools for Teams | Swagger - https://swagger.io/tools/.
Altair is a beautiful feature-rich GraphQL Client IDE for all platforms. Available for MacOS, Windows, Linux, Chrome, Firefox. It enables you interact with any GraphQL server you are authorized to access from any platform you are on.
Tencent Cloud Smart Oral Evaluation-English (SOE-E) is a voice evaluation product launched by Tencent Cloud. In the past, oral English practice had to rely on professional teachers to perform subjective assessment after listening, so the cost was high and the learning time was difficult to guarantee. Tencent Cloud launched an English voice evaluation product for this scenario, supporting voice evaluation covering all ages from children to adults, supporting multiple modes such as words (words), sentences, and supporting pronunciation accuracy (GOP), fluency, completeness, and stress Accuracy and other omni-directional scoring mechanism, and the similarity of experts’ scoring is more than 95%.
A collection of lightweight, standardized, rails-oriented patterns used by RubyOnRails Developers @ Selleo
Query - complex querying on active record relation
Service - useful for handling processes involving multiple steps
Collection - when in need to add a method that relates to the collection as whole
Form - when you need a place for callbacks, want to replace strong parameters or handle virtual/composite resources
Calculation - when you need a place for calculating a simple value (numeric, array, hash) and/or cache it
Rule and Ruleset - when you need a place for conditional logic
rails-pg-extras is to provide powerful insights into the PostgreSQL database for Ruby on Rails apps that are not using the Heroku PostgreSQL plugin.
Included rake tasks and Ruby methods can be used to obtain information about a Postgres instance, that may be useful when analyzing performance issues. This includes information about locks, index usage, buffer cache hit ratios and vacuum statistics. Ruby API enables developers to easily integrate the tool into e.g. automatic monitoring tasks.
Using a Ruby version manager is critical if you plan on running many projects with different Ruby version. A project might not be compatible with the version of Ruby you have installed. We need a way to switch between versions of Ruby without installing and uninstalling them every time.
We need a way to switch between versions of Ruby without installing and uninstalling them every time.
There are two different ways to install and run multiple Ruby versions.
Host Mode - Install and run Ruby within host or virtual machine by Ruby Version Manager(RVM), asdf or rbenv.
Container Mode - Install and run Ruby within container by Docker and Docker Compose, or Kuberneters(K8S).
MongoDB Compass is an interactive tool for querying, optimizing, and analyzing your MongoDB data. Get key insights, drag and drop to build pipelines, and more.
Progressive delivery is a practice that allows organizations to control how and when new software features or changes are delivered. It builds on the capabilities and practices of feature flag management and deployment strategies like blue-green and canary deployments. Ultimately, progressive delivery combines software development and delivery practices allowing organizations to deliver with control.
Canary Release
Blue-Green Deployment
A/B Testing
Gray Release
Dark Launch
…
In some cases, you may want to “canary” a new set of changes by sending a small number of requests to a different service than the production service. The canary annotation enables the Ingress spec to act as an alternative service for requests to route to depending on the rules applied. The following annotations to configure canary can be enabled after nginx.ingress.kubernetes.io/canary: "true"
is set:
nginx.ingress.kubernetes.io/canary-by-header
: The header to use for notifying the Ingress to route the request to the service specified in the Canary Ingress. When the request header is set to always
, it will be routed to the canary. When the header is set to never
, it will never be routed to the canary. For any other value, the header will be ignored and the request compared against the other canary rules by precedence.
nginx.ingress.kubernetes.io/canary-by-header-value
: The header value to match for notifying the Ingress to route the request to the service specified in the Canary Ingress. When the request header is set to this value, it will be routed to the canary. For any other header value, the header will be ignored and the request compared against the other canary rules by precedence. This annotation has to be used together with . The annotation is an extension of the nginx.ingress.kubernetes.io/canary-by-header
to allow customizing the header value instead of using hardcoded values. It doesn’t have any effect if the nginx.ingress.kubernetes.io/canary-by-header
annotation is not defined.
nginx.ingress.kubernetes.io/canary-by-header-pattern
: This works the same way as canary-by-header-value
except it does PCRE Regex matching. Note that when canary-by-header-value
is set this annotation will be ignored. When the given Regex causes error during request processing, the request will be considered as not matching.
nginx.ingress.kubernetes.io/canary-by-cookie
: The cookie to use for notifying the Ingress to route the request to the service specified in the Canary Ingress. When the cookie value is set to always
, it will be routed to the canary. When the cookie is set to never
, it will never be routed to the canary. For any other value, the cookie will be ignored and the request compared against the other canary rules by precedence.
nginx.ingress.kubernetes.io/canary-weight
: The integer based (0 - )
percent of random requests that should be routed to the service specified in the canary Ingress. A weight of 0
implies that no requests will be sent to the service in the Canary ingress by this canary rule. A weight of means implies all requests will be sent to the alternative service specified in the Ingress. <weight-total
> defaults to 100
, and can be increased via nginx.ingress.kubernetes.io/canary-weight-total
.
nginx.ingress.kubernetes.io/canary-weight-total
: The total weight of traffic. If unspecified, it defaults to 100
.
Canary rules are evaluated in order of precedence. Precedence is as follows: canary-by-header
-> canary-by-cookie
-> canary-weight
1 | # manifests/Deployment-1.yaml |
1 | $ kubectl apply -f manifests/Deployment-1.yaml |
1 | # manifests/Service-1.yaml |
1 | $ kubectl apply -f manifests/Service-1.yaml |
1 | # manifests/Ingress-1.yaml |
1 | $ kubectl apply -f manifests/Ingress-1.yaml |
1 | # manifests/Deployment-canary.yaml |
1 | $ kubectl apply -f manifests/Deployment-canary.yaml |
1 | # manifests/Service-canary.yaml |
1 | $ kubectl apply -f manifests/Service-canary.yaml |
1 | # manifests/Ingress-canary.yaml |
1 | $ kubectl apply -f manifests/Ingress-canary.yaml |
1 | # curl Verion 1 |
1 | # manifests/Ingress-canary.yaml |
Not support automatic failover. Even if the traffic is completely cut to Canary Ingress, the old version of the service must still exist, otherwise an error 503 will be reported.
Only one Canary Ingress of the same service can be defined, so the back-end service supports up to two versions.
The domain name must be configured in Ingress, otherwise it will not be effective.
All the other non-canary annotations will be ignored. Note that when you mark an ingress as canary, then all the other non-canary annotations will be ignored (inherited from the corresponding main ingress) except nginx.ingress.kubernetes.io/load-balance
, nginx.ingress.kubernetes.io/upstream-hash-by
, and annotations related to session affinity. If you want to restore the original behavior of canaries when session affinity was ignored, set nginx.ingress.kubernetes.io/affinity-canary-behavior
annotation with value legacy
on the canary ingress definition.
Currently a maximum of one canary ingress can be applied per Ingress rule.
[2]] Welcome - NGINX Ingress Controller - https://kubernetes.github.io/ingress-nginx/