--> 甲骨文云-轻松部署Django Web框架:Oracle自主数据库搭配OKE平台的高效解决方案
欢迎访问深圳敏捷云计算科技有限公司!

甲骨文云-轻松部署Django Web框架:Oracle自主数据库搭配OKE平台的高效解决方案

2024-03-07 原创文章

自动部署基于Django Web框架的网页应用,在Oracle Kubernetes引擎(OKE)中实现,并利用Oracle自主数据库服务。Django是一款流行的免费开源网页应用框架,采用Python编写。它支持快速网页开发,在全球众多热门网站中被广泛使用。Django可以在Oracle Kubernetes引擎(OKE)中部署,并借助Kubernetes的弹性和敏捷性,无需管理Kubernetes集群。为了进一步简化Django的部署,您可以使用Oracle云基础设施(OCI)提供的众多托管数据库服务之一。


架构

此架构展示了一个用Django Web框架构建的API服务器,作为部署资源部署在OKE集群中。


下图展示了这个参考架构。


OKE集群的工作节点位于私有子网中,这意味着它们仅能从您的虚拟云网络(VCN)内部访问。将工作节点放在私有子网中,能更好地控制OKE集群内应用程序的访问方式。


通过OCI服务运营商Kubernetes(OSOK),为Oracle自主数据库实例配置一个公共端点,使得可以从OKE集群管理自主数据库。将生成一个自定义资源定义(CRD),作为自主数据库的标识,并可以像任何Kubernetes资源一样,使用命令行工具kubectl进行管理。


为VCN配置一个服务网关。服务网关提供从API服务器到自主数据库的访问,无需经过互联网。


在公共子网中创建一个带有外部IP地址的负载均衡器,以访问API服务器并在自主数据库实例中执行创建、读取、更新和删除(CRUD)操作。负载均衡器作为服务资源,可从OKE集群中管理。


这种架构可以从OKE集群部署和管理,无需使用OCI控制台或CLI,并且可以通过Helm图表自动化。


该架构包括以下组件:

租户

  • 租户是Oracle在您注册Oracle云基础设施时,在Oracle云中设置的一个安全且独立的分区。您可以在自己的租户内创建、组织和管理Oracle云中的资源。租户相当于公司或组织。通常,一家公司会有一个单独的租户,并在该租户内反映其组织结构。一个单独的租户通常与一个订阅关联,而一个订阅通常只有一个租户。


地区

  • Oracle云基础设施地区是一个地理位置集中的区域,包含一个或多个数据中心,称为可用性域。地区彼此独立,距离可能非常遥远(跨越国家甚至大洲)。


分区

  • 分区是Oracle云基础设施租户内跨地区的逻辑划分。使用分区来组织Oracle云中的资源、控制对资源的访问以及设置使用配额。要控制对特定分区中资源的访问,您需要定义策略,指定谁可以访问资源以及他们可以执行哪些操作。


可用性域

  • 可用性域是地区内独立、自成一体的数据中心。每个可用性域内的物理资源与其他可用性域中的资源隔离,提供故障容忍。可用性域不共享基础设施,如电力或冷却系统,或内部可用性域网络。因此,一个可用性域的故障不太可能影响该地区内其他可用性域。


故障域

  • 故障域是可用性域内的硬件和基础设施分组。每个可用性域有三个独立电力和硬件的故障域。当您将资源分布在多个故障域时,您的应用程序可以容忍物理服务器故障、系统维护和故障域内的电力故障。


虚拟云网络(VCN)和子网

  • VCN是您在Oracle云基础设施地区中设置的可自定义的软件定义网络。像传统的数据中心网络一样,VCN让您完全控制网络环境。VCN可以有多个不重叠的CIDR块,您可以在创建VCN后更改这些块。您可以将VCN细分为子网,子网可以限定在一个地区或一个可用性域。每个子网由一系列不与VCN中其他子网重叠的地址组成。您可以在创建后更改子网的大小。子网可以是公共的或私有的。


负载均衡器

  • Oracle云基础设施负载均衡服务提供了从单个入口点到后端多个服务器的自动流量分配。


安全列表

  • 对于每个子网,您可以创建安全规则,指定必须允许进出子网的流量的来源、目的地和类型。



网络地址转换(NAT)网关

  • NAT网关使得VCN中的私有资源能够访问互联网上的主机,同时不将这些资源暴露给互联网的入站连接。


服务网关

  • 服务网关为VCN提供访问Oracle云基础设施其他服务(如对象存储)的途径。从VCN到Oracle服务的流量通过Oracle网络结构传输,不经过互联网。


Cloud Guard

  • 您可以使用Oracle Cloud Guard来监控和维护Oracle云基础设施中资源的安全。Cloud Guard使用您可以定义的检测器配方来检查资源的安全弱点,并监控操作者和用户的高风险活动。当检测到任何错误配置或不安全活动时,Cloud Guard会推荐纠正措施,并根据您可以定义的响应者配方协助采取这些措施。


安全区

  • 安全区从一开始就确保遵守Oracle的最佳安全实践,通过执行诸如加密数据和防止对网络的公共访问等策略,保护整个分区的安全。安全区与同名的分区相关联,包括适用于该分区及其子分区的安全区策略或“配方”。您不能将标准分区添加或移动到安全区分区。


对象存储

  • 对象存储提供快速访问大量结构化和非结构化数据,包括数据库备份、分析数据以及图像和视频等丰富内容。您可以安全地存储数据,然后直接从互联网或云平台内部检索数据。您可以无缝地扩展存储,同时不会经历性能或服务可靠性的下降。使用标准存储作为您需要快速、立即、频繁访问的“热”存储。使用归档存储作为您长期保留且很少或几乎不访问的“冷”存储。


FastConnect

  • Oracle云基础设施FastConnect提供了一种在您的数据中心与Oracle云基础设施之间创建专用、私有连接的简便方法。与基于互联网的连接相比,FastConnect提供更高带宽选项和更可靠的网络体验。


本地对等网关(LPG)

  • LPG使您能够在同一地区内将一个VCN与另一个VCN对等连接。对等连接意味着VCN之间使用私有IP地址通信,流量不经过互联网或路由通过您的本地网络。


自主事务处理

  • Oracle自主事务处理是一种自驾、自我保护、自我修复的数据库服务,专为事务处理工作负载优化。您无需配置或管理任何硬件,也无需安装任何软件。Oracle云基础设施负责创建数据库,以及备份、打补丁、升级和调整数据库。


自主数据库

  • Oracle云基础设施自主数据库是完全管理、预配置的数据库环境,可用于事务处理和数据仓储工作负载。您无需配置或管理任何硬件,也无需安装任何软件。Oracle云基础设施负责创建数据库,以及备份、打补丁、升级和调整数据库。


Exadata数据库系统

  • Exadata云服务使您能够在云中利用Exadata的强大功能。您可以配置灵活的X8M系统,随着需求增长,向系统添加数据库计算服务器和存储服务器。X8M系统提供RoCE(通过汇聚以太网的远程直接内存访问)网络,具有高带宽和低延迟、持久内存(PMEM)模块以及智能Exadata软件。您可以使用相当于四分之一机架X8系统的形状配置X8M系统,然后在配置后的任何时候添加数据库和存储服务器。


建议

  • 以下建议可作为起点。您的需求可能与此处描述的架构有所不同。


虚拟云网络(VCN)

  • 创建VCN时,根据您计划连接到VCN子网中的资源数量,确定所需CIDR块的数量和每个块的大小。使用标准私有IP地址空间内的CIDR块。
  • 选择不与任何其他网络(在Oracle云基础设施、您的本地数据中心或其他云提供商)重叠的CIDR块,以便建立私有连接。
  • 创建VCN后,您可以更改、添加或移除其CIDR块。
  • 设计子网时,考虑您的流量和安全需求。将特定层或角色内的所有资源连接至同一子网,作为安全边界。


安全

  • 您可以使用Oracle Cloud Guard来监控和维护Oracle云基础设施中资源的安全。Cloud Guard使用您可以定义的检测器配方来检查资源的安全弱点,并监控操作者和用户的高风险活动。当检测到任何错误配置或不安全活动时,Cloud Guard会推荐纠正措施,并协助采取这些措施。
  • 对于需要最高安全级别的资源,Oracle建议您使用安全区。安全区是与Oracle定义的安全策略配方相关联的分区,这些策略基于最佳实践。例如,安全区内的资源不能从公共互联网访问,并且必须使用客户管理的密钥进行加密。在安全区内创建和更新资源时,Oracle云基础设施会根据安全区配方中的策略验证操作,并拒绝违反任何策略的操作。


Cloud Guard

  • 克隆并定制Oracle提供的默认配方,创建自定义检测器和响应者配方。这些配方使您能够指定哪种类型的安全违规会生成警告,以及允许对其执行哪些操作。例如,您可能希望检测设置为公共可见的对象存储桶。
  • 在租户级别应用Cloud Guard,以覆盖最广泛的范围,并减少维护多个配置的管理负担。
  • 您还可以使用管理列表功能,将特定配置应用于检测器。


安全区

  • 对于需要最高安全级别的资源,Oracle建议您使用安全区。安全区是与Oracle定义的安全策略配方相关联的分区,这些策略基于最佳实践。例如,安全区内的资源不能从公共互联网访问,并且必须使用客户管理的密钥进行加密。在安全区内创建和更新资源时,Oracle云基础设施会根据安全区配方中的策略验证操作,并拒绝违反任何策略的操作。


网络安全组(NSG)

  • 您可以使用NSG来定义一组适用于特定VNIC的入站和出站规则。我们建议使用NSG而不是安全列表,因为NSG允许您将VCN的子网架构与应用程序的安全要求分离。



考虑因素

部署此架构时,必须考虑可扩展性。

通过在Oracle Kubernetes引擎(OKE)上部署您的Django应用程序,您可以使用Kubernetes集群自动伸缩器自动扩展集群,这优化了您的OCI计算资源的使用,并降低成本。当需求增加时,它会增加节点数以满足这些需求。当需求减少时,它会减少节点数,防止过剩资源导致成本上升。

您可以在GitHub上找到下载和安装Kubernetes集群自动伸缩器的链接,并按照README文档中的说明操作。


部署

Helm图表展示了如何自动部署一个使用Django Web框架构建的网页服务器,并将其连接到Oracle自主事务处理(ATP)的Oracle Kubernetes引擎(OKE)集群中。

  1. 访问GitHub。
  2. 克隆或下载仓库到您的本地计算机。
  3. 按照README文档中的说明操作。



开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。


Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。


利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。


Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。