用于大规模的生产部署 Squbs

2016年08月19日 Linux 软件 暂无评论 阅读 780 次

Squbs 是一个起源于 eBay 和 PayPal 的开源项目。

Squbs 是一个软件容器,一套能实现 Akka and Spray 应用/服务在大规模管理、云服务中标准化和运作的组件。

squbs Components

  • Unicomplex: The micro-container that bootstraps and standardizes the deployment of Akka/Spray applications and how they are configured, allowing teams other than PD to understand the configuration and tweak the configuration of applications, partly at runtime, as needed. In addition, the Unicomplex encourages coexistence of different modules, called cubes, and/or operational tooling in a flexible, loosely-coupled fashion that will not incur any code change in order to include new ops tooling or drop out/change some ops tooling. For instance, in cases where we have mixed cloud environments such as private and public cloud needing different operational tools, the same codebase will work with both allowing deployment-time addition of environment-specific tooling.

  • TestKit: Used to help test applications written for squbs, or even Akka applications altogether. It provides unit test and small scale load testing facilities that can be run as part of CI.

  • ZKCluster: A ZooKeeper-based, datacenter-aware clustering library allowing clustered applications or services to span datacenter and hold the availability characteristics across data centers. This is needed for applications that need intra-cluster communications.

  • HttpClient: An operationalized, simplified client that supports both environment and endpoint resolution to fit into different operational environments (QA, Prod) as well as organizational requirements (Topo, direct).

  • Pattern: A set of programming patterns and DSLs provided to users.

  1. Orchestration DSL allowing developers to describe their orchestration sequence in an extremely concise manner while running the whole orchestration asynchronously, thus largely simplifying code and reduces latency for the application.

  2. Asynchronous systems depend heavily on timeouts and fixed timeouts are never right. TimeoutPolicy allows users to set policy (like 2.5 sigma) instead of fixed timeout values and takes care of the heuristics by itself allowing systems to adapt to their operating conditions.

  3. Spray doesn't have friendly API for Java, the spray.japi package provides a few of Helpers and Factories to help Java developers to construct spray entities easily.

  4. Validation provides a Spray directive for data validation by using Accord Validation Library.

  5. PersistentBuffer provides a high-performance Akka Streams flow buffer component that persists its content to a memory-mapped file and recovers the content after failure and restart.

  • ActorRegistry: A core lookup facility allowing actors of loosely-coupled modules to find each others, or even to model different services as actors.

  • ActorMonitor: An add-on operational module that uses JMX to report the stats and behavior of actors in the system. These stats can be seen by any JMX tooling

  • Pipeline: An infrastructure allowing sequencing and plugging in of request/response filters. These are used, for instance, for security, rate limiting, logging, etc. Each of the components have virtually no dependency on each others. They are truly loosely coupled. Developers and organizations are free to pick and choose the components needed for their environment.

  • Console: A drop-in module allowing web access to system and application stats through a simple web and service interface returning pretty-printed JSON.



Copyright © SEARU.ORG 保留所有权利.   Theme  Ality 网站地图 360网站安全检测平台