现代基础设施监控指南(赞助)
构建弹性系统,减少停机时间,并获得大规模的全栈可视性。这本深入的电子书将向您展示如何通过以下方式改进监控策略,以适应当今动态的云原生环境:
-
现代架构中有效可观察性的关键原则
-
跟踪临时基础设施性能的技术
-
指标、日志和跟踪协同工作的真实示例”
本周的系统设计复习:
-
SSO 如何工作?
-
API设计的最佳实践
-
领域驱动设计中的关键术语
-
你应该知道的顶级AI代理框架
-
OpenAI 的 GPT-OSS 120B 和 20B 模型如何工作?
-
ByteByteGo 技术面试准备工具包
-
赞助我们
SSO 如何工作?
单点登录 (SSO) 是一种身份验证方案。它允许用户使用单个 ID 登录到不同的系统。
让我们来看看典型的 SSO 登录流程:
步骤 1:用户访问 Gmail 等应用程序上的受保护资源,该应用程序是服务提供商 (SP)。
第 2 步:Gmail 服务器检测到用户未登录,并通过身份验证请求将浏览器重定向到公司的身份提供商 (IdP)。
步骤 3:浏览器将用户发送到 IdP。
步骤 4:IdP 显示登录页面,用户可在其中输入其登录凭据。
步骤 5:IdP 创建安全令牌并将其返回给浏览器。IdP 还会创建一个会话以供将来访问。浏览器将令牌转发给 Gmail。
第 6 步:Gmail 验证令牌以确保其来自 IdP。
第 7 步:Gmail 根据用户允许访问的内容将受保护的资源返回给浏览器。
这样就完成了基本的 SSO 登录流程。让我们看看当用户导航到另一个集成 SSO 的应用程序(例如 Slack)时会发生什么。
步骤8-9:用户访问Slack,Slack服务器检测到用户未登录,将浏览器重定向到IdP并发出新的身份验证请求。
第 10 步:浏览器将用户发送回 IdP。
步骤 11-13:由于用户已经使用 IdP 登录,因此它跳过登录过程,而是为 Slack 创建一个新令牌。新令牌被发送到浏览器,浏览器再将其转发给 Slack。
步骤 14-15:Slack 验证令牌并相应地授予用户访问权限。
交给您:您想查看另一个应用程序的示例流程吗?
API设计的最佳实践
API 是互联网通信的支柱。精心设计的 API 行为一致、可预测,并且能够顺畅地扩展。以下是一些需要牢记的最佳实践:
-
使用清晰的命名:构建 API 时,请选择简单易懂且合乎逻辑的名称。保持一致性,并坚持使用直观且能够表示集合的 URL。
-
幂等性:API 应该是幂等的。它们通过重复请求来确保安全重试,以产生相同的结果,尤其是对于 POST 操作。
-
分页:API 应该支持分页,以防止性能瓶颈和负载膨胀。一些常见的分页策略包括基于偏移量和基于游标。
-
排序和过滤:查询字符串是实现 API 响应排序和过滤的有效方法。这使得开发者可以轻松查看应用了哪些过滤器和排序顺序。
-
交叉资源引用:在关联的资源之间使用清晰的链接。避免使用过长的查询字符串,这会使 API 难以理解。
-
速率限制:速率限制用于控制用户在一定时间段内向 API 发出的请求数量。这对于维护 API 的可靠性和可用性至关重要。
-
版本控制:修改 API 端点时,适当的版本控制以支持向后兼容性非常重要。
-
安全性:API 安全性对于精心设计的 API 至关重要。请使用 API 密钥、JWT、OAuth2 和其他机制对 API 进行适当的身份验证和授权。
交给你:我们是否遗漏了什么重要的事情?
出货量出色,交付量出色,业绩出色。(赞助)
DevStats 帮助工程领导者解读指标、体验流程并更快地交付,以便每次发布都能带来真正的业务影响。
✅ 在瓶颈阻碍交付之前发现瓶颈
✅ 将开发工作与业务目标联系起来
✅ 发货更多,错过更少,证明你的影响力
现在是时候运送更多货物并让您的影响力变得不可忽视了。
领域驱动设计中的关键术语
您听说过领域驱动设计(DDD)这种主要的软件设计方法吗?
DDD 最早出现在 Eric Evans 的经典著作《领域驱动设计:软件核心复杂性应对之道》中。该书阐述了一种对复杂业务进行建模的方法。本书内容丰富,因此我将简要介绍其基础知识。
领域对象的组成:
-
实体:具有ID和生命周期的领域对象。
-
值对象(Value Object):没有ID的领域对象,用于描述Entity的属性。
-
聚合:由聚合根(也是一个实体)绑定在一起的实体的集合。它是存储的单位。
领域对象的生命周期:
-
存储库:存储和加载聚合。
-
工厂:处理聚合的创建。
域对象的行为:
-
领域服务(Domain Service):协调多个聚合。
-
领域事件:对聚合中发生事件的描述。该发布会被公开,以便其他人可以使用并重建它。
恭喜你读到这里。现在你已经了解了 DDD 的基础知识。如果你想了解更多,我强烈推荐这本书。它或许能帮助你简化软件建模的复杂性。
交给你了:你知道怎么检查两个值对象是否相等吗?两个实体呢?
你应该知道的顶级AI代理框架
使用将大型语言模型 (LLM) 与 API、Web 访问或代码执行等工具相结合的代理框架,可以更轻松地构建智能、独立的 AI 系统。
-
朗链
LangChain 简化了 LLM 与 API 和向量数据库等外部工具的连接。它允许开发者创建用于顺序任务执行的链,以及用于上下文感知响应的文档加载器。 -
自动生成
AutoGen 允许您开发能够相互聊天或让人类参与的 AI 代理。它就像一个协作工作区,代理可以在其中运行代码、从工具中提取数据或获取人工反馈以完成任务。 -
CrewAI
顾名思义,CrewAI 的核心在于团队合作。它负责协调 AI 代理团队,这些代理分别担任作家和编辑等角色,并以结构化的工作流处理任务。它利用 LLM 和工具(API、互联网、代码等)高效地管理复杂的任务执行和数据流。 -
骆驼指数
该框架索引并查询来自文档、API 和向量存储的数据,以增强代理响应。它解析并加载数据,使 LLM 能够提供上下文感知的答案,使其成为企业文档搜索系统和访问私有知识库的智能助手的理想选择。 -
语义内核
Semantic Kernel 将 AI 服务(OpenAI、Calude、Hugging Face 模型等)与基于插件的架构连接起来,该架构支持技能、模板和 API 集成,以实现灵活的工作流程。它支持文本搜索和应用程序的自定义工作流程。
交给你:你探索过或计划使用哪种 AI 代理框架?
OpenAI 的 GPT-OSS 120B 和 20B 模型如何工作?
OpenAI 最近发布了两个 LLM,分别是 GPT-OSS-120B(1200 亿个参数)和 GPT-OSS-20B(200 亿个参数)。这两个模型完全开源,并遵循 Apache 2.0 许可证。
这些模型旨在以低成本实现强大的实际性能。它们的工作原理如下:
-
用户提供一些输入,例如问题或任务。例如,“用简单的方式解释量子力学”。
-
使用字节对编码 (BPE) 将原始文本转换为数字标记。BPE 将文本拆分为频繁出现的子词单元。由于它在字节级别运行,因此它可以处理任何输入,包括文本、代码、表情符号等。
-
每个标记都通过学习到的嵌入表映射到一个向量(一个数字列表)。这种向量化形式正是模型能够理解和处理的。
-
Transformer 层是实际计算发生的地方。20B 模型有 24 个 Transformer 层,120B 模型有 36 个 Transformer 层。每层都包含一个自注意力模块、路由器和专家 (MoE)。
-
自注意力模块让模型理解整个输入中单词之间的关系。
-
LLM 采用混合专家 (MOE) 架构。与传统模型中采用所有模型权重不同,路由器会从最多 64 位专家池中选出 2 位最佳“专家”。每位专家都是一个小型前馈网络,经过专门训练,专门处理特定类型的输入。每个 token 仅激活 2 位专家,从而节省计算资源并提高质量。
-
在经过所有层之后,模型将内部表示投射回标记概率,预测下一个单词或短语。
-
为了使原始模型安全且有用,它经过监督微调和强化学习。
-
最后,模型根据预测的标记生成响应,并根据上下文向用户返回连贯的输出。
问:你用过 OpenAI 的开源模型吗?
参考: gpt-oss 简介| OpenAI
ByteByteGo 技术面试准备工具包
推出一体化面试准备课程。我们将在ByteByteGo 网站上提供所有书籍。
包含的内容:
-
系统设计面试
-
编码面试模式
-
面向对象设计面试
-
如何写好简历
-
行为面试(即将推出)
-
机器学习系统设计面试
-
生成式人工智能系统设计面试
-
移动系统设计面试
-
更多精彩即将呈现
赞助我们
将您的产品展示给超过 1,000,000 名技术专业人士。
我们的时事通讯将您的产品和服务直接呈现给重要的受众——数十万工程领导和高级工程师——他们对重大技术决策和大宗采购有影响力。
房间很快订满 – 立即预订
广告位通常提前4周左右售罄。为了确保您的广告能够触达这些极具影响力的受众,请立即发送电子邮件至[email protected] 预订您的广告位。