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

AI X Serverless X Programming Language #1

Closed
jianzs opened this issue Aug 31, 2023 · 0 comments
Closed

AI X Serverless X Programming Language #1

jianzs opened this issue Aug 31, 2023 · 0 comments

Comments

@jianzs
Copy link
Contributor

jianzs commented Aug 31, 2023

Goals

Using a unified programming interface and workspace to unify abstract applications and infrastructure, further abstracting this programming interface through natural language through AI to combine application backend and infrastructure code to quickly build and deliver cloud applications.

The project name maybe

  • fly-lang/fly
  • air-lang/air
  • ark-lang/ark

Pain Points

  • Infrastructure such as cloud and Kubernetes is becoming increasingly complex, and existing IaC tools such as terraform, cdk, help, etc. cannot and require a more advanced abstraction. Developers inevitably fall into a fragmented process between application and IaC.
  • Even existing Serverless products such as AWS Lambda require developers to handle these processes. For example, when executing code within AWS Lambda functions, I must understand that the required dependencies are bundled together, uploaded as a zip file to S3 and deployed through Terraform (or manually uploaded, which is very boring and container error prone).
  • The same applies to Kubernetes Serverless products such as Knative. Not only do I need to understand the installation and use of Knative, but I also need to install the MySQL database on K8s myself and hardcode it into my code. When I was developing, Knative was unable to provide me with assistance, which required me to maintain two databases and ensure that when I went online, I used the prod database. Moreover, to understand the more specific operation of the product, it is necessary to deploy components such as Grafana, Prometheus, Fluent bit, and enable them to coordinate their work. I would like to switch to the MySQL service provided by Alibaba Cloud in the future, and I also need to modify my source code and republish it.
  • Existing next-generation IaC tools such as Winglang or Infra from Code technology either lean towards IaC, making it difficult to write code that meets the requirements due to fragmented programming experiences, or write Infra through annotation configuration. In fact, application development users should not have cared about these things, they should simply import cloud APIs to implement their functions. When I build professional software, I want most of my time to be spent within the functional domain of my application, instead of non-functional mechanics of the platform I use.
  • Pain Points of Application Runtime e.g., Layotto, it may lose terraform/pulumi integration. Layotto项目规划和展望 mosn/layotto#976

User Story

As a developer, I just want to develop and complete my application (usually some server applications or FaaS functions) without installation, understanding and writing IaC, or even understanding infrastructure concepts such as containers, or understanding and switching complex environments or permissions. Everything that follows can be handed over to automation. I only see my application work and easily complete observable tasks such as log and metric. For example, as the developer of kcl playground, every time I develop an upgraded version of kcl playground and create a Docker image, I always have to click on the platform or write terraform code to automatically send it. These things are boring and I don't want to do them and I don't want to learn docker and terraform/pulumi.

Overview

image

image

  • One Infra and App Config Abstraction including APIs e.g. storage, function etc.
    • Infra: Multi-Cloud and Kubernetes Abstraction
    • Solving App Dependency on Infra by Combining Abstract Methods
  • Deploy-less and No configuration Code
    • There are no infra related configuration codes in the user interface, and we need to use intermediate generation to hide them.
  • API Registry
    • Through centralized management of APIs, one is to reduce the cost of API production and consumption, and the other is to use fine-tuning data as AI generation models.

Features

image

Design

Engine

image

Workflow

image
image

API

image

Roadmap

  • 2023.08: Make a decision: POC idea and big direction set, name
  • 2023.09: Top level design confirmation and PoC start: Expect to provide developers with programming interface and engine layer capabilities, selling points, problem solving, targeted users, boundaries, scenarios, etc. can be determined, and specific synchronization solutions and coding implementation can start
  • 2023.10: Feasibility verification: feasible for a scenario/workload
  • 2023.11: PoC improvement: Horizontal expansion and iteration of some capabilities based on PoC, laying the groundwork for some scenarios in December
  • 2023.12: Horizontal Scenario Improvement: Prepare some materials, find partners and potential users to provide feedback, prepare for open source, and set goals for the next 24 years

Reference

@Peefy Peefy closed this as completed Oct 16, 2023
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

No branches or pull requests

2 participants