Skip to content

Epic: Add Volcengine Provider Support #179

@Blankll

Description

@Blankll

Epic: Add Volcengine Provider Support

Overview

Add Volcengine (火山引擎 - ByteDance's cloud platform) as a new cloud provider for ServerlessInsight. This epic tracks all tasks required to implement full provider support.

Background

Volcengine is ByteDance's cloud computing platform, launched in 2020. It provides cloud services with a strong focus on AI/ML integration, video/media services, serverless computing, and enterprise cloud services.

Platform Comparison

Aspect Volcengine Aliyun Tencent Cloud
Parent Company ByteDance Alibaba Tencent
Founded 2020 2009 2013
Serverless veFaaS FC (Function Compute) SCF
SDK Model Modular (@volcengine/*) One SDK (@alicloud/*) Modular (@tencentcloud/*)
Authentication AK/SK + STS AK/SK + STS AK/SK + STS

Service Mapping

Service Volcengine Name ServerlessInsight Equivalent
Function Compute 函数服务 (veFaaS) FC3 (Aliyun), SCF (Tencent)
Object Storage TOS OSS (Aliyun), COS (Tencent)
API Gateway API Gateway API Gateway (Aliyun)
IAM IAM RAM (Aliyun)
VPC VPC VPC (Aliyun)

SDK Information

NPM Packages (Recommended)

# Core
@volcengine/sdk-core

# Services
@volcengine/vefaas    # Function Service
@volcengine/tos-sdk   # Object Storage
@volcengine/iam       # Identity & Access Management
@volcengine/apigateway # API Gateway
@volcengine/sts       # Security Token Service

Client Initialization Pattern

import { VefaasClient, CreateFunctionCommand } from "@volcengine/vefaas";

const client = new VefaasClient({
  accessKeyId: "YOUR_AK",
  secretAccessKey: "YOUR_SK",
  region: "cn-beijing",
});

const command = new CreateFunctionCommand({
  Name: "my-function",
  Runtime: "nodejs/18",
  Handler: "index.handler",
  MemoryMb: 128,
  RequestTimeout: 30,
  Code: { ZipFile: codeBase64 },
});

await client.send(command);

Environment Variables

export VOLCSTACK_ACCESS_KEY_ID="your-access-key"
export VOLCSTACK_SECRET_ACCESS_KEY="your-secret-key"

Supported Runtimes (veFaaS)

Language Runtimes
Node.js nodejs/18, nodejs/16, nodejs/14
Python python/3.10, python/3.9, python/3.8
Go golang/1
Java java/11, java/8

Available Regions

Region Region ID
华北2(北京) cn-beijing
华东2(上海) cn-shanghai
华南1(广州) cn-guangzhou
亚太东南(柔佛) ap-southeast-1

Architecture

Following the established provider pattern in ServerlessInsight:

src/
├── common/
│   ├── providerEnum.ts          # Add VOLCENGINE enum
│   └── volcengineClient/        # NEW: SDK wrappers
│       ├── index.ts
│       ├── vefaasOperations.ts  # Function compute operations
│       ├── tosOperations.ts     # Object storage operations
│       ├── iamOperations.ts     # IAM operations
│       ├── apigwOperations.ts   # API Gateway operations
│       └── types.ts
├── stack/
│   └── volcengineStack/         # NEW: Provider implementation
│       ├── index.ts
│       ├── planner.ts
│       ├── deployer.ts
│       ├── destroyer.ts
│       ├── vefaasTypes.ts
│       ├── vefaasResource.ts
│       ├── vefaasPlanner.ts
│       ├── vefaasExecutor.ts
│       ├── tosTypes.ts
│       ├── tosResource.ts
│       ├── tosPlanner.ts
│       ├── tosExecutor.ts
│       ├── apigwTypes.ts
│       ├── apigwResource.ts
│       ├── apigwPlanner.ts
│       └── apigwExecutor.ts
└── lang/
    ├── en.ts                    # Add i18n keys
    └── zh-CN.ts

Implementation Phases

Phase Issue Focus Est. Effort Status
Phase 1 #180 Foundation & Infrastructure 2-3 days 📋 Pending
Phase 2 #181 veFaaS Function Service 5-7 days 📋 Pending
Phase 3 #182 TOS Object Storage 3-5 days 📋 Pending
Phase 4 #183 API Gateway Integration 4-6 days 📋 Pending
Phase 5 #184 VPC, IAM & Advanced Features 5-7 days 📋 Pending
Phase 6 #185 Documentation, Samples & Testing 3-4 days 📋 Pending

Total Estimated Effort: 22-32 days

Acceptance Criteria

Must Have

  • Deploy/destroy functions to Volcengine veFaaS
  • Deploy/destroy buckets to Volcengine TOS
  • Support environment variables, memory, timeout configuration
  • Support Node.js runtimes (nodejs/18, nodejs/16)
  • Proper error handling with i18n messages
  • State management with partial failure recovery
  • Unit tests for all resource operations (≥80% coverage)

Should Have

  • API Gateway integration with functions
  • VPC configuration for functions
  • Custom domain support for TOS buckets
  • IAM role auto-creation for functions
  • Python runtime support

Nice to Have

  • GPU function support
  • TOS mount configuration
  • Reserved capacity configuration

Sub-Issues

Issue Title Phase
#180 Provider Foundation & Infrastructure Phase 1
#181 veFaaS Function Service Support Phase 2
#182 TOS Object Storage Support Phase 3
#183 API Gateway Integration Phase 4
#184 VPC, IAM & Advanced Function Features Phase 5
#185 Documentation, Samples & Testing Phase 6

References

Official Documentation

SDK & Tools

Infrastructure as Code References


Last Updated: Research completed ✓

Progress:

  • Research & Planning
  • Phase 1: Foundation
  • Phase 2: Function Service
  • Phase 3: Object Storage
  • Phase 4: API Gateway
  • Phase 5: Advanced Features
  • Phase 6: Documentation & Testing

Metadata

Metadata

Assignees

No one assigned
    No fields configured for Feature.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions