全球数百万人访问 OpenStack 基金会 (OSF) 的 Web 资产,以了解开源基础设施。这种使用量需要快速、灵活且经济实惠的平台和工具集——而这正是开源技术的用武之地。不仅如此,鉴于我们为开源软件基金会工作,我们自然而然地将开源技术融入到我们所做的一切工作中,包括 Web 开发。
Web 开发的考虑因素
在考虑 Web 开发技术时,我们必须考虑如何管理我们的软件生命周期。所有软件开发都包含某种形式的生命周期管理,有机会进行计划、分析、设计和实施代码。我们的 Web 开发团队通常在临场发挥,经常在时间紧迫的情况下与其他部门合作。这意味着我们的需求和工作流程必须足够灵活,以便能够进行快速迭代、更新和更正。我宁愿快速推出一些东西,如果需要,事后再回去使其达到完美。
我们的团队还必须考虑网站的所有利益相关者,包括我们不熟悉 Git 工作流程的才华横溢的营销团队。这使得我们像许多其他人一样,利用内容管理系统 (CMS),以便这些专业人员无需使用 Git 即可进行更新。
构建与 CMS 无关的 Web 架构
为了坚持这种对灵活性的需求,传统上,我们依赖于开源 CMS SilverStripe。然而,我们的需求很快就超出了系统的能力。因此,我们构建了一个独立的 API,并使用带有 React JavaScript 组件的静态微站点,将数据拉入自定义设计的表示层。我们从移动应用程序到网站再到数字标牌,在所有方面都使用这个系统。这已被称为 Jamstack 架构。我们发现这个模型具有足够的扩展性,它允许我们将数据移动到任何地方,同时与 CMS 无关。
在采用这种 API 驱动的工作流程时,我们意识到我们的数据在许多不同的地方使用,并以许多不同的方式呈现。在我们的七个 Web 资产中,我们共享从图形到动态内容的所有内容。如果没有大量的自定义开发工作以及 cron 作业或代价高昂的数据库查询,标准 CMS 将无法做到这一点。
当事情由 API 驱动时,您可以跨各种平台访问所有这些不同的数据集,同时在很大程度上保护您的基础设施免受重大流量峰值的影响。例如,OSF 与 OSF 的数字设计和开发合作伙伴 Tipit 合作,开发了一个完全开源的端到端活动管理软件。我们的活动日程数据在网页、移动应用程序和数字标牌上呈现。它是相同的数据,从一个地方管理,但具有不同的表示层、格式和平台。
开源身份访问管理
转向去中心化 Jamstack 架构的基石是建立身份和访问权限的需求。当使用 JavaScript 在 API 中调用内容时,我们可能需要进行身份验证和授权。因此,我们必须将身份提供者与任何单独的实现分离开来。这有两个概念:身份(authN)和身份访问管理(authZ)。身份提供者确认你是谁,而访问管理确认你有什么角色和权限来做不同的事情。开发活动管理软件的首要要求之一是建立一个独立的身份提供者。
输入 OpenStackID,它是具有 oAuth2 SSO 解决方案的 OpenID Connect。OpenStackID 最初是用户更安全地登录 Openstack.org 和管理其个人资料的方式。即使我们管理的网站和活动应用程序的数量不断增长,这也为用户创造了无缝的身份验证体验。访问管理部分允许我们构建独立的基于 React 的应用程序,这些应用程序使用身份提供者来确定特定用户是否具有在该特定应用程序中执行他们想要执行的操作的权限。
每个人都会想到的一个问题——尤其是在全球开源社区中——是隐私。这是创建我们的 Web 和活动资产的一个重要因素。通过 OpenStackID,用户可以登录他们的 OpenStackID 帐户,并使用 OAuth 2 控制台设置应用程序权限。如果他们决定不再希望他们的应用程序与他们的 OpenStackID 关联,他们可以简单地删除权限。
例如,我们的一些活动用户不希望他们的个人信息与他们参加我们会议的情况相关联。平台设置的方式是,所有个人身份信息都在 OpenID 服务器上安全管理,并且除非用户明确启用,否则不会在应用程序之间共享。除此之外,除非完全匿名化,或者他们为了与四大开放或我们的社区理念保持一致而明确允许,否则我们绝不会共享用户参加的活动或用户个人资料的片段。
使用开源技术构建更好的 Web 基础设施
考虑我们的考量因素并转向更灵活的 CMS 实现,这有助于我们的团队更有效地协作。最重要的是,由于开源技术,我们继续通过提供出色的隐私和安全选项来遵循我们的社区价值观。
如果您对我们的方法感兴趣,请查看 OSF 基金会网站的源代码。您还可以访问以下源代码存储库以查看实际应用的方法
- Zuul 网站
- Airship 网站
- StarlingX 网站
- Kata Containers 网站
- MOC 和 Open Infra Labs 网站
- Open Stack 基金会网站
- Open Infrastructure Summit 管理
- Open Infrastructure Summit CFP
- Open Infrastructure Summit 标牌
- OpenStack Survey GraphQL API 用于访问调查数据和报告
- OpenStack Survey Graphene API 用于提供峰会报告
- OpenStackID 身份验证系统
- OpenStackID 资源服务器
评论已关闭。