Salesforce 的架构非常独特,它是一个多租户架构,这也是其能够实现高可用性、高可扩展性和成本效益的核心,我们可以从多个层面来理解它:核心概念、分层架构、关键组件、以及开发者如何与之交互。

核心基石:多租户架构
在深入细节之前,必须理解 Salesforce 的灵魂——多租户。
想象一栋摩天大楼,Salesforce 就是这栋大楼的物业管理公司。
- 租户:就是每个使用 Salesforce 的公司(客户),A 公司、B 公司。
- 公寓:就是每个租户专属的数据和工作空间,A 公司的数据和 B 公司的数据是完全隔离的,A 公司的员工无法看到 B 公司的数据,反之亦然。
- 大楼的基础设施:大楼的水电、电梯、外墙、地基等公共设施,由 Salesforce(物业管理公司)统一建设和维护,所有租户共享这些基础设施。
多租户架构的优势:
- 成本效益:所有客户共享底层硬件、软件和运维成本,Salesforce 可以以订阅模式提供相对低廉的服务。
- 高可用性:由于基础设施是共享的,Salesforce 可以在全球范围内部署冗余数据中心,如果一个数据中心出现问题,流量会自动切换到另一个,保证业务不中断。
- 快速创新与更新: Salesforce 可以一次性对所有租户进行平台升级和功能更新,无需客户自己打补丁或升级软件,用户总是能使用最新版本的功能。
- 数据安全与隔离:严格的逻辑隔离机制确保了每个客户的数据都是安全的,符合各种合规性要求(如 GDPR, SOC 2 等)。
Salesforce 技术架构分层
Salesforce 的架构可以看作一个多层蛋糕,每一层都为上一层提供服务。

基础设施层
这是整个架构的物理和虚拟基础,由 Salesforce 完全控制。
- 全球数据中心:在全球多个地区拥有数十个数据中心,确保服务的低延迟和高可用性。
- 网络:拥有自己的全球骨干网络,连接各个数据中心,并为客户提供安全的连接方式(如 Private Connect, Direct Connect)。
- 硬件与虚拟化:使用高度虚拟化的服务器、存储和网络设备,底层运行着定制版的 Linux 内核和虚拟化技术。
- 安全:从物理安全到网络安全,提供全方位的保护,包括防火墙、入侵检测系统等。
平台层
这是 Salesforce 的核心,提供了所有运行时服务和数据管理能力。
- 数据库:
- 核心是一个关系型数据库,但经过了深度定制和优化,以适应多租户环境。
- 数据以对象 的形式组织,每个对象有标准的字段(如 Account 的 Name, Industry)和自定义字段。
- 数据库是“无模式”的,意味着你可以在不修改底层表结构的情况下,通过简单的点击操作添加自定义字段和对象,极大地提升了灵活性。
- 元数据:
- 这是 Salesforce 架构的精髓,元数据是关于数据的数据,即你的应用的蓝图。
- 包括:对象定义、字段定义、页面布局、工作流规则、业务流程、Apex 类、页面、组件等。
- 所有元数据都存储在 Salesforce 的元数据存储中,当你通过界面或代码进行配置时,你实际上是在修改元数据。
- 运行时执行引擎:
- Apex 引擎:用于执行 Apex 代码,它是强类型的、面向对象的,运行在一种受控的、沙箱化的环境中,确保不会影响其他租户。
- Visualforce 引擎:用于渲染 Visualforce 页面,它是一个 MVC 框架,将业务逻辑、数据和视图分离开。
- Lightning Web Components (LWC) / Aura 引擎:用于渲染 Lightning 页面和组件,这是现代的、高性能的前端框架。
- API 层:
- 提供了丰富的 API 接口,允许外部系统与 Salesforce 进行集成和交互,这是 Salesforce 成为“集成平台”的关键。
- REST API:基于 HTTP/JSON,轻量级,广泛用于 Web 和移动应用。
- SOAP API:基于 XML,功能强大,适合企业级的、复杂的集成。
- Apex REST/SOAP:允许开发者用 Apex 创建自定义的 Web 服务。
- Bulk API:用于处理大规模的数据导入和导出。
- Streaming API:基于 CometD,允许服务器向客户端实时推送数据变化。
- Tooling API:用于元数据的读取和部署,通常由开发工具(如 VS Code)使用。
数据层
虽然数据库属于平台层,但数据的管理和应用是如此重要,以至于可以单独成层。
- 数据模型:由标准对象和自定义对象构成,形成你的业务实体。
- 数据关系:通过主外键关系(Lookup, Master-Detail)将对象关联起来,构建复杂的数据网络。
- 组织范围数据:控制数据在不同团队或部门间的可见性。
- 记录级安全:通过共享规则和手动共享,精确控制用户对单条记录的访问权限。
应用层
这是最终用户直接交互的界面,也是业务逻辑的最终呈现。

- Salesforce Classic (经典界面):Salesforce 最初的界面,基于表格布局,功能全面。
- Lightning Experience (闪电体验):现代的用户界面,采用组件化、响应式设计,提供更佳的用户体验和更高的自定义灵活性。
- Lightning App Builder:一个可视化工具,允许通过拖拽组件来构建自定义的 Lightning 页面。
- 移动应用:原生移动应用,提供了离线能力、相机扫描、推送通知等功能,让用户随时随地访问数据。
集成层
这是 Salesforce 与外部世界沟通的桥梁。
- 核心集成工具:
- Salesforce Connect:允许你像查询本地数据一样,实时查询外部系统(如 SAP, Oracle)中的数据,而无需将数据复制到 Salesforce。
- Event Bus:一个发布/订阅消息系统,允许 Salesforce 内部和外部的事件(如订单创建、客户更新)被可靠地传递和处理,是实现事件驱动架构的关键。
- Einstein Activity Capture:自动从外部系统(如 Gmail, Outlook, Teams)同步邮件和会议活动到 Salesforce 的相关记录上。
- 第三方集成:
- MuleSoft Anypoint Platform:Salesforce 旗下的集成平台,提供强大的 ESB(企业服务总线)能力,用于构建复杂的、企业级的集成流程。
- Tableau CRM:Salesforce 旗下的商业智能和数据分析平台,可以深度连接 Salesforce 数据,进行可视化分析和洞察。
关键开发者技术栈
作为开发者,你主要在以下层面工作:
| 技术 | 描述 | 层级 |
|---|---|---|
| declarative (声明式/配置型) | 通过点击界面进行配置,如创建对象、字段、页面布局、工作流、流程构建器等,这是 Salesforce 的核心优势,非技术人员也能完成大量定制。 | 应用层 / 平台层 |
| Apex | 强类型、面向对象的编程语言,类似于 Java,用于编写复杂的业务逻辑、数据库操作、API 服务等,运行在服务器端。 | 平台层 |
| SOQL (Salesforce Object Query Language) | 类似于 SQL,但专门用于查询 Salesforce 中的对象数据。 | 数据层 / 平台层 |
| SOSL (Salesforce Object Search Language) | 类似于搜索引擎的查询语言,用于跨多个对象进行全文搜索。 | 数据层 / 平台层 |
| Visualforce | 基于 MVC 的旧版 Web 开发框架,用于创建自定义的 Web 页面。 | 应用层 |
| Lightning Web Components (LWC) | 现代、开源、高性能的前端框架,用于构建 Lightning Experience 中的自定义用户界面,基于 Web 标准。 | 应用层 |
| Lightning Aura Components | LWC 之前的框架,功能更强大但更复杂,目前仍在使用,但新项目推荐 LWC。 | 应用层 |
| Apex Triggers | 特定的 Apex 代码,在数据操作(如插入、更新、删除)发生时自动触发,用于执行相关逻辑。 | 平台层 |
开发与部署流程
Salesforce 的开发遵循一个“沙箱”模式,以确保生产环境的稳定。
- 生产环境:公司正在运行的真实业务环境。
- 沙箱环境:生产环境的克隆副本,用于开发、测试和部署,有多种类型(Developer, Developer Pro, Partial Copy, Full Copy),满足不同需求。
- 开发流程:
- 开发者在沙箱中进行配置和编码。
- 使用版本控制工具(如 Git)管理代码。
- 使用Salesforce CLI 或 VS Code (Salesforce 插件) 进行开发、测试和部署。
- 通过 Change Sets 或 Metadata API 将配置和代码从沙箱部署到生产环境。
Salesforce 的技术架构是一个设计精良、高度集成的生态系统,其多租户理念是基石,确保了成本、安全、可扩展性。元数据驱动的设计赋予了它无与伦比的灵活性,而强大的API 生态和集成能力,使其成为企业数字化转型的核心中枢。
理解这个架构,无论是对于业务用户、管理员还是开发者,都能更好地利用 Salesforce 的强大功能,构建出满足业务需求的强大应用。
