Sign inSign up

megaease/easegress

By megaease

•Updated 7 months ago

`Easegress` is a Cloud Native traffic orchestration system.

Image
1

7.2K

megaease/easegress repository overview

⁠What is Easegress

Easegress is a Cloud-Native traffic orchestration system designed for:

  • High Availability: Built-in Raft consensus & leader election provides 99.99% availability.
  • Traffic Orchestration: Simple orchestration of various filters for each traffic pipeline.
  • High Performance: Lightweight and essential features speed up the performance.
  • Observability: There are many meaningful statistics periodically in a readable way.
  • Extensibility: It's easy to develop your own filter or controller with a high-level programming language.
  • Integration: The simple interfaces make it easy to integrate with other systems, such as Kubernetes Ingress, EaseMesh⁠ sidecar, Workflow, etc.

⁠Features

  • Service Management
    • Multiple protocols:
      • HTTP/1.1
      • HTTP/2
      • HTTP/3(QUIC)
      • MQTT
    • Rich Routing Rules: exact path, path prefix, regular expression of the path, method, headers.
    • Resilience&Fault Tolerance
      • Circuit breaker: temporarily blocks possible failures.
      • Rate limiter: limits the rate of incoming requests.
      • Retryer: repeats failed executions.
      • Time limiter: limits the duration of execution.
    • Deployment Management
      • Blue-green Strategy: switches traffic at one time.
      • Canary Strategy: schedules traffic slightly.
    • API Management
      • API Aggregation: aggregates results of multiple APIs.
      • API Orchestration: orchestrates the flow of APIs.
    • Security
      • IP Filter: Limits access to IP addresses.
      • Static HTTPS: static certificate files.
      • API Signature: supports HMAC⁠ verification.
      • JWT Verification: verifies JWT Token⁠.
      • OAuth2: validates OAuth/2⁠ requests.
      • Let's Encrypt: automatically manage certificate files.
    • Pipeline-Filter Mechanism
      • Chain of Responsibility Pattern: orchestrates filters chain.
      • Filter Management: makes it easy to develop new filters.
    • Service Mesh
      • Mesh Master: is the control plane to manage the lifecycle of mesh services.
      • Mesh Sidecar: is the data plane as the endpoint to do traffic interception and routing.
      • Mesh Ingress Controller: is the mesh-specific ingress controller to route external traffic to mesh services.

        Notes: This feature is leveraged by EaseMesh⁠

    • Third-Part Integration
      • FaaS integrates with the serverless platform Knative.
      • Service Discovery integrates with Eureka, Consul, Etcd, and Zookeeper.
      • Ingress Controller integrates with Kubernetes as an ingress controller.
  • Extensibility
  • High Performance and Availability
    • Adaption: adapts request and response in the handling chain.
    • Validation: headers validation, OAuth2, JWT, and HMAC verification.
    • Load Balance: round-robin, random, weighted random, IP hash, header hash.
    • Cache: for the backend servers.
    • Compression: compresses body for the response.
    • Hot-Update: updates both config and binary of Easegress in place without losing connections.
  • Operation
    • Easy to Integrate: command line(egctl), MegaEase Portal, HTTP clients such as curl, postman, etc.
    • Distributed Tracing
    • Observability
      • Node: role(primary, secondary), raft leader status, healthy or not, last heartbeat time, and so on
      • Traffic: in multi-dimension: server and backend.
        • Throughput: total and error statistics of request count, TPS/m1, m5, m15, and error percent, etc.
        • Latency: p25, p50, p75, p95, p98, p99, p999.
        • Data Size: request and response size.
        • Status Codes: HTTP status codes.
        • TopN: sorted by aggregated APIs(only in server dimension).

⁠Documentation

Please refer Getting Started ⁠ for set-up steps and basic usage, and Easegress Documentation⁠ for all documents.

⁠Community

⁠License

Easegress is under the Apache 2.0 license. See the LICENSE⁠ file for details.

Tag summary

Content type

Image

Digest

sha256:fad1c7452…

Size

59.2 MB

Last updated

7 months ago

docker pull megaease/easegress