Skip to content

geek-fun/serverlessinsight

Repository files navigation

ServerlessInsight

Node.js CI release npm version Known Vulnerabilities License codecov

Full life cycle cross-provider serverless application management for your fast-growing business

WebsiteDocumentationExamples中文文档


ServerlessInsight is a powerful serverless framework for managing serverless applications across multiple cloud providers. It provides a unified interface to deploy, manage, and debug serverless functions and resources using Infrastructure as Code (IaC) principles.

Whether you're building on AWS, Alibaba Cloud, Huawei Cloud, or other providers, ServerlessInsight simplifies your development workflow with:

  • Multi-cloud support - Work with multiple cloud providers using a single tool
  • Infrastructure as Code - Define your serverless infrastructure in YAML
  • Local development - Test your functions locally before deploying
  • Type-safe templates - Validate your configurations before deployment

✨ Features

  • 🌍 Multi-Cloud Provider Support - Deploy to Alibaba Cloud, Huawei Cloud, and more
  • 📦 Unified Configuration - Single YAML format for all providers
  • 🚀 Quick Deployment - Deploy serverless applications with a single command
  • 🔍 Template Validation - Validate your IaC templates before deployment
  • 🏠 Local Testing - Run and debug serverless functions locally
  • 🔄 Template Generation - Generate provider-specific IaC templates
  • 🌐 API Gateway Integration - Configure HTTP endpoints for your functions
  • 💾 Resource Management - Manage storage, databases, and other cloud resources
  • 🔐 Security First - Built-in validation and security best practices
  • 📊 Comprehensive Logging - Debug and monitor your applications

☁️ Supported Providers

ServerlessInsight supports the following cloud providers:

Provider Functions API Gateway Storage Databases Status
Alibaba Cloud ✅ FC3 ✅ API Gateway ✅ OSS ✅ RDS, OTS, ESS Stable
Huawei Cloud ✅ FunctionGraph 🚧 Coming Soon 🚧 Coming Soon 🚧 Coming Soon Beta
AWS 🔜 Planned 🔜 Planned 🔜 Planned 🔜 Planned Planned
Azure 🔜 Planned 🔜 Planned 🔜 Planned 🔜 Planned Planned
Google Cloud 🔜 Planned 🔜 Planned 🔜 Planned 🔜 Planned Planned
Tencent Cloud 🔜 Planned 🔜 Planned 🔜 Planned 🔜 Planned Planned

🚀 Getting Started

Prerequisites

  • Node.js 16.x or higher
  • Cloud provider credentials (Alibaba Cloud AccessKey, Huawei Cloud credentials, etc.)

Installation

Install ServerlessInsight globally using npm:

npm install -g @geek-fun/serverlessinsight

Verify the installation:

si --version

📚 Usage

# Validate your serverless configuration
si validate <stackName> -f serverless.yml

# Deploy your serverless application
si deploy <stackName> -f serverless.yml -s dev

# Run your application locally for debugging
si local <stackName> -f serverless.yml -s local

# Generate provider-specific template
si template <stackName> -f serverless.yml -t JSON

# Destroy the deployed stack
si destroy <stackName> -f serverless.yml

💡 Examples

ServerlessInsight uses a simple YAML format to define your serverless infrastructure:

version: 0.0.1
provider:
  name: aliyun
  region: cn-hongkong

service: my-api-service

functions:
  hello_function:
    name: hello-world-fn
    code:
      runtime: nodejs18
      handler: index.handler
      path: ./src
    memory: 512
    timeout: 10
    environment:
      NODE_ENV: production

events:
  api_gateway:
    type: API_GATEWAY
    name: my-api-gateway
    triggers:
      - method: GET
        path: /api/hello
        backend: ${functions.hello_function}

For more examples, check out the samples directory:


🔧 Local Development

# Clone and setup
git clone https://github.com/geek-fun/serverlessinsight.git
cd serverlessinsight
npm install

# Build and link for development
npm run build
npm link

# Run local development server
si local my-stack -f serverless.yml -s local

# Run tests
npm test

# Lint code
npm run lint:check

📘 Documentation

For comprehensive documentation, visit serverlessinsight.geekfun.club

Additional resources:


🤝 Contributing

We welcome contributions from the community! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

👥 Community

Join our community to get help, share ideas, and contribute:


📄 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.


🙏 Acknowledgments

ServerlessInsight is built with these amazing technologies:


Made with ❤️ by the geek-fun team

⬆ Back to Top

About

Full life cycle cross providers serverless application management for your fast-growing business.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •