本周系统设计复习:
- 软件架构师知识地图
- 什么是检索增强生成(RAG)?
- Amazon S3 如何工作?
- 双因素认证(2FA)如何工作?
软件架构师知识地图
成为软件架构师是一段你始终在学习的旅程。但有些事情你必须 definitely 努力去知道。
1. 掌握一门编程语言
努力掌握 1-2 门编程语言,如 Java、Python、Golang、JavaScript 等。
2. 工具
熟练掌握关键工具,如 GitHub、Jenkins、Jira、ELK、Sonar 等。
3. 设计原则
学习重要设计原则,如 OOPS、Clean Code、TDD、DDD、CAP 定理、MVC 模式、ACID 和 GOF。
4. 架构原则
熟练掌握多种架构模式,如微服务、发布 - 订阅、分层、事件驱动、客户端 - 服务器、六边形等。
5. 平台知识
了解多个平台,如容器、编排、云、无服务器、CDN、API 网关、分布式系统和 CI/CD。
6. 数据分析
建立对数据和分析组件的扎实知识,如 SQL 和 NoSQL 数据库、Kafka 数据流解决方案、对象存储、数据迁移、OLAP 等。
7. 网络和安全
学习网络和安全概念,如 DNS、TCP、TLS、HTTPS、加密、JWT、OAuth 和凭据管理。
8. 支持技能
除了技术,软件架构师还需要几种支持技能,如决策、技术知识、利益相关者管理、沟通、估算、领导力等。
什么是检索增强生成(RAG)?
RAG 是优化 LLM 输出以引用特定知识库的过程,该知识库可能不是其训练数据的一部分,然后生成响应。
换句话说,RAG 帮助扩展 LLM 的强大能力到特定领域或知识库,而无需额外训练。
RAG 工作原理
用户在 LLM 的用户界面中写入查询提示 此查询传递到后端服务器,在那里它被转换为向量表示。
查询发送到搜索系统
搜索系统可以引用各种知识来源 如 PDF、网络搜索、代码库、文档、数据库或 API,获取相关信息以回答查询。
获取的信息发送回 RAG 模型
模型通过将从获取信息添加到上下文来增强原始用户输入 并将其发送到 LLM 端点。各种 LLM 选项是 Open AI 的 GPT、Claude Sonnet、Google Gemini 等。
LLM 基于增强上下文生成答案 并向用户提供响应。
Amazon S3 如何工作
Amazon S3 是世界上最大和最复杂的分布式存储系统之一。它每秒处理数百万请求,存储超过 350 万亿对象,同时保持 99.999999999% 的持久性。
AWS 使用基于微服务的设计架构 S3。
工作原理
前端请求处理服务 这些服务接收来自客户端的 API 请求。客户端可以是 Web、CLI 和编程语言(如 Java、Python、JS 或 Golang)的 SDK。接收请求后,服务验证用户、验证请求,并将它们路由到正确的存储服务。服务包括 DNS 路由、认证服务和负载均衡。
索引和元数据服务 存储在 S3 中的每个对象都分配一个唯一标识符和元数据。索引服务跟踪对象位置。它们包括全局元数据存储和分区引擎。
存储和数据放置服务 这部分处理对象跨多个 S3 节点的物理存储。为防止数据丢失,它使用擦除编码和多 AZ 复制。
持久性和恢复服务 这些服务确保数据完整性和故障恢复。它们包括校验和验证、后台审计和灾难恢复。
安全和合规服务 这些服务保护 S3 免受未经授权的访问,支持功能如 IAM 和桶策略、DDoS 缓解、对象锁定和版本控制。
双因素认证(2FA)如何工作
双因素认证(2FA)是一种多因素认证,使账户更安全。
2FA 背后的想法是你需要提供两个识别因素来证明你的身份并获得账户访问权限。
第一个因素是知识因素,用户需要知道秘密,如密码。第二个因素取决于持有因素(如 RSA、认证器应用)或固有因素(生物识别)。
2FA 工作原理
用户输入用户名和密码 这是第一级认证,也称为单因素。
认证请求到认证服务器
验证认证凭据
如果任何凭据不正确 可能允许一定次数的重试。
如果凭据正确 双因素认证启动。有多个选项可用:生物识别验证、OTP 验证或认证器应用验证。像 Google 和 Microsoft 这样的组织也提供此类应用。
用户使用选择的选项验证
如果验证失败 访问被拒绝。然而,如果验证成功,访问被授予。
注意,使用 SMS 的 OTP 验证通常被认为是不太安全的 2FA 机制。
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP156: Software Architect Knowledge Map。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。