学习笔记28-多环境、配置中心、FAAS、后端常用存储类型

180 阅读4分钟

多环境

开发中支持多环境(如测试环境和生产环境)是确保软件质量和安全性的关键。以下是一些实践:

  • 环境分离:测试环境用于开发团队进行日常开发和测试;生产环境用于最终用户使用,要求高度的稳定性、安全性和高效性。
  • 配置管理:使用配置文件来管理不同环境的设置,如数据库连接、服务地址等;可以使用环境变量或专门的配置管理工具来管理这些配置。
  • 数据管理:测试环境使用与生产环境隔离的数据,以防止测试数据污染生产数据。可以使用数据迁移或数据生成工具来准备测试数据。

网络请求如何区分多环境:

  • 不同的域名或子域名:生产环境可以使用主域名如 www.example.com 测试环境可以使用不同的子域名,如 test.example.com。
  • 不同的端口号:测试环境的服务可以运行在不同的端口号上,例如生产环境在80或443,而测试环境在8080或其他非标准端口。
  • 路径区分:通过 URL 路径来区分,例如生产环境使用 /,而测试环境使用 /test/ 或 /staging/。
  • HTTP头部信息:在HTTP请求头中添加特定的标记来区分请求应该被路由到哪个环境,例如自定义的头部字段 X-Environment: testing。

配置中心

配置中心是现代分布式系统架构中的一个关键组件,它用于集中管理应用程序的配置信息。以 Apollo 为例,配置中心提供了以下的特性:

  • 统一管理不同环境、不同集群的配置
  • 配置修改实时生效(热发布)
  • 版本发布管理
  • 灰度发布
  • 权限管理、发布审核、操作审计
  • 客户端配置信息监控
  • 提供原生客户端
  • 提供开放平台API
  • 部署简单

FAAS

FAAS 即“函数即服务”(Function-as-a-Service)和 Serverless(无服务器计算)是紧密相关的概念,可以理解为 FAAS 是 Serverless 计算模型的一种实现。Serverless 计算可以进一步细分为两个子类别:BAAS(后端即服务)和 FAAS(函数即服务)。

FAAS 专注于事件驱动的计算。在 FAAS 中,开发者编写短小的、单一用途的函数,这些同属通常在容器中运行,并且只有在特定事件触发时才会执行。一旦函数执行完毕,底层资源就会被释放,这意味着开发者不需要为空闲时间付费。

FAAS 中的函数不是传统意义上的数学函数或编程语言中的函数定义,而是一段完整的业务逻辑代码,可以是一个简单的操作,也可以是一个复杂的业务处理流程。 以下是一些 FAAS 函数的常见类型和特点:无状态函数、事件驱动函数、短生命周期函数、可伸缩函数、单一职责函数、松耦合函数。在实际应用中,FAAS 函数可以执行各种任务,如处理用户输入、进行数据库操作、调用外部API、生成报告、处理文件、执行计算密集型任务等。

常用存储类型

在构建后端服务时,存储是一个重要的组成部分。常用的存储类型有以下几种:

  • 关系型数据库:MySQL、PostgreSQL、SQL Server、Oracle,适合需要强事务保证、复杂查询、多表关联操作的场景
  • 文档型数据库:MongoDB、CouchDB,适合存储半结构化或非结构化数据
  • 键值存储:Redis、DynamoDB,适合告诉缓存、会话存储、排行榜、计数器等场景,能够提供快速的读写操作
  • 列式数据库:Cassandra、HBase,适合处理大量数据写操作、分布式存储、时间序列数据、日志记录等场景
  • 对象存储:Amazon S3、Azure Blob Storage,适合存储大量非结构化数据
  • 文件存储:NFS、ClusterFS,适合需要共享文件系统的应用
  • 时间序列数据库:InfluxDB、Prometheus,适合监控、日志收集、实时分析等场景,能够高效地处理时间戳数据
  • 图数据库:Neo4j、ArangoDB,适合处理高度相关的数据,如社交网络、推荐系统、知识图谱等,它们可以有效地表示和查询复杂的关系

参考文档