Skip to content

alibaba/cloudapp-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CloudApp Framework

License Java Spring Boot Maven

A unified multi-cloud abstraction framework designed for seamless application deployment across different cloud providers. The CloudApp Framework encapsulates cloud vendor services through a unified SDK, eliminating vendor lock-in and enabling flexible multi-cloud deployments with a single codebase.

CloudApp Framework

🎯 Project Overview

The CloudApp Framework addresses the critical challenge of vendor lock-in in cloud computing by providing:

  • Unified SDK: Single API interface for multiple cloud providers
  • Zero Vendor Lock-in: Switch between cloud providers without code changes
  • Multi-Cloud Support: Deploy the same application across different cloud platforms
  • Spring Boot Integration: Native Spring Boot auto-configuration and starter support
  • Comprehensive Services: Complete PaaS service abstractions including storage, messaging, caching, and more

Framework Architecture

✨ Key Features

πŸ”§ Core Capabilities

  • Automatic Configuration: Zero-configuration Spring Boot integration
  • Dynamic Refresh: Runtime configuration updates without restart
  • Observability: Built-in metrics, logging, and tracing with OpenTelemetry
  • Multi-Version Support: Compatible with Java 8+ and multiple Spring Boot versions

🌐 Distributed Services

  • Object Storage: Unified file storage across cloud providers
  • Messaging: Abstract messaging with Kafka and RocketMQ support
  • Caching: Distributed Redis caching abstraction
  • Configuration: Centralized configuration management
  • Search: Elasticsearch integration for full-text search
  • API Gateway: Service gateway abstraction

πŸš€ Enterprise Features

  • Microservice Governance: Service discovery, load balancing, and traffic management
  • Transaction Management: Distributed transaction support with Seata
  • Security: OAuth2 authentication and authorization
  • Data Management: Connection pooling with Druid
  • Global Sequences: Distributed ID generation
  • Email Services: Template-based email with Freemarker and Thymeleaf
  • Task Scheduling: Distributed task scheduling capabilities

πŸ› οΈ Supported Middleware & Technologies

Messaging

  • Apache Kafka
  • Apache RocketMQ (including Alibaba Cloud RocketMQ)
  • Spring Cloud Stream integration

Storage & Databases

  • Redis (distributed caching)
  • Elasticsearch (search and analytics)
  • Druid (connection pooling)
  • Multiple database drivers support

Microservices & Governance

  • Spring Cloud Alibaba (Nacos, Dubbo)
  • Spring Cloud (Service Discovery, Config)
  • OpenTelemetry (observability)
  • Seata (distributed transactions)

Security & Authentication

  • OAuth2 / JWT
  • Spring Security integration
  • RBAC support

Development & Monitoring

  • Spring Boot 2.7.x
  • Maven build system
  • OpenTelemetry metrics and tracing
  • Prometheus integration
  • Log4j2 with trace correlation

πŸš€ Quick Start

Prerequisites

  • Java 8 or higher
  • Maven 3.x
  • Spring Boot 2.7.x

1. Add Dependencies

<dependency>
    <groupId>com.alibaba.cloudapp</groupId>
    <artifactId>spring-boot-starter-cloudapp</artifactId>
    <version>1.0.3</version>
</dependency>

<!-- Add specific cloud provider implementations -->
<dependency>
    <groupId>com.alibaba.cloudapp</groupId>
    <artifactId>cloudapp-spring-filestore-aliyun</artifactId>
    <version>1.0.3</version>
</dependency>

2. Configuration

io:
  cloudapp:
    filestore:
      aliyun:
        endpoint: your-oss-endpoint
        access-key-id: your-access-key
        access-key-secret: your-secret-key
        bucket-name: your-bucket

3. Usage

@Autowired
private ObjectStorageService objectStorageService;

public void uploadFile(String key, InputStream inputStream) {
    objectStorageService.putObject(key, inputStream);
}

πŸ“‹ Module Structure

Core Modules

  • cloudapp-framework-core - Core abstractions and utilities
    • cloudapp-base-api - Unified service interfaces
    • cloudapp-base-utils - Common utilities
    • spring-boot-starter-cloudapp - Spring Boot auto-configuration

PaaS Services

  • cloudapp-framework-paas - Platform service implementations
    • cloudapp-spring-config - Configuration management
    • cloudapp-spring-filestore - Object storage (OSS, OBS, MinIO)
    • cloudapp-spring-messaging - Messaging (Kafka, RocketMQ)
    • cloudapp-spring-redis - Distributed caching
    • cloudapp-spring-search - Search services (Elasticsearch)
    • cloudapp-spring-apigateway - API gateway integration
    • cloudapp-spring-scheduler - Task scheduling

Microservices

  • cloudapp-framework-microservices - Microservice governance
    • cloudapp-microservice-aliyun - Alibaba Cloud microservice support
    • cloudapp-microservice-huawei - Huawei Cloud microservice support

Observability

  • cloudapp-framework-observabilities - Monitoring and observability
    • cloudapp-observabilities-opentelemetry - OpenTelemetry integration

Tools & Extensions

  • cloudapp-framework-tools - Additional tools and integrations
    • cloudapp-datasource-druid - Database connection pooling
    • cloudapp-spring-mail - Email services
    • cloudapp-spring-oauth2 - OAuth2 security
    • cloudapp-spring-seata - Distributed transactions
    • cloudapp-spring-sequence - Global sequence generation

Demos & Examples

  • cloudapp-framework-demos - Complete demo applications for each service

πŸ”§ Build & Development

Build from Source

git clone https://github.com/alibaba/cloudapp-framework.git
cd cloudapp-framework
mvn clean install

Run Tests

mvn test

Run Specific Demo

cd cloudapp-framework-demos/cloudapp-filestore-demo/cloudapp-filestore-demo-aliyun
mvn spring-boot:run

πŸ“– Documentation

Comprehensive documentation for each service:

πŸ“„ License

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

About

A unified, developer-friendly SDK wrapper for cloud service products

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages