Today's production scale-out applications include many sub-application components, such as storage backends, logging infrastructure and AI models. These components have drastically different characteristics, are required to work in collaboration, and interface with each other as microservices. This leads to increasingly high complexity in developing, optimizing, configuring, and deploying scale-out applications, raising the barrier to entry for most individuals and small teams. We developed a novel co-designed runtime system, Jaseci, and programming language, Jac, which aims to reduce this complexity. The key design principle throughout Jaseci's design is to raise the level of abstraction by moving as much of the scale-out data management, microservice componentization, and live update complexity into the runtime stack to be automated and optimized automatically. We use real-world AI applications to demonstrate Jaseci's benefit for application performance and developer productivity.
翻译:当今生产级可扩展应用包含众多子应用组件,如存储后端、日志基础设施和AI模型。这些组件具有截然不同的特性,需要协同工作并通过微服务相互接口。这导致开发、优化、配置和部署可扩展应用的复杂性日益攀升,提高了大多数个人和小型团队的准入门槛。我们开发了一套新型协同设计运行时系统Jaseci及其编程语言Jac,旨在降低这种复杂性。贯穿Jaseci设计过程的核心原则是:通过将尽可能多的可扩展数据管理、微服务组件化和实时更新复杂性转移到运行时栈中实现自动化与优化,从而提高抽象层级。我们通过实际AI应用展示了Jaseci在应用性能和开发效率方面的优势。