百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

在Oracle Cloud Infrastructure上部署Ruby on Rails:高效实践指南

mhr18 2024-10-07 10:07 18 浏览 0 评论

Ruby on Rails是Ruby编程语言的主要Web应用框架。为了支持Ruby on Rails(RoR)的开发,提供了一个弹性的基础设施,部署了必要的网络、虚拟机(VMs)和MySQL数据库实例,以及Ruby on Rails及其相关依赖的脚本化部署。


您可以在DevRel GitHub仓库中找到这个可部署架构的Terraform,oci-arch-ruby-rails-build, 通过下面的“探索更多”主题访问。


架构

该架构包括一个VCN和几个子网,以实现不同服务的隔离。因此,通过活动/待机负载均衡器进行公共访问。另一个公共子网提供了一个堡垒机(Bastion),支持使用SSH访问后端服务。


负载均衡器前置两台计算虚拟机(VMs),每台托管一个Ruby on Rails服务器。这些服务器可以访问MySQL数据库。VMs和MySQL数据库位于它们自己的单独子网中,以解决诸如访问之类的考虑因素。


以下图表展示了这一参考架构。

这种架构包括以下组件:

租户(Tenancy)

租户是Oracle在您注册Oracle Cloud Infrastructure时,在Oracle Cloud内设置的一个安全且独立的分区。您可以在自己的租户内创建、组织和管理Oracle Cloud中的资源。

租户相当于一家公司或组织。通常,一家公司会有一个单独的租户,并在该租户内反映其组织结构。一个租户通常与一个订阅关联,而一个订阅通常只有一个租户。


地区(Region)

Oracle Cloud Infrastructure地区是一个包含一个或多个数据中心(称为可用性域)的地理区域。地区相互独立,它们之间可能相隔很远(跨越国家甚至大陆)。


分区(Compartment)

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


可用性域(Availability domains)

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


故障域(Fault domains)

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


虚拟云网络(VCN)和子网

VCN是您在Oracle Cloud Infrastructure地区中设置的可自定义、软件定义的网络。与传统数据中心网络一样,VCN使您完全控制您的网络环境。VCN可以拥有多个不重叠的CIDR块,这些块在创建VCN后可以更改。您可以将VCN分割为子网,这些子网可以是针对地区或可用性域。每个子网由不与VCN中其他子网重叠的连续地址范围组成。创建后,您可以更改子网的大小。子网可以是公共的或私有的。


负载均衡器(Load balancer)

Oracle Cloud Infrastructure负载均衡服务提供从单个入口点到后端多个服务器的自动流量分配。负载均衡器为不同的应用程序提供访问。


安全列表(Security list)

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


NAT网关(NAT gateway)

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


服务网关(Service gateway)

服务网关提供从VCN到其他服务(如Oracle Cloud Infrastructure对象存储)的访问。从VCN到Oracle服务的流量通过Oracle网络织物传输,永远不会穿越互联网。


MySQL数据库服务(MySQL Database Service)

Oracle MySQL数据库服务是一种完全托管的Oracle Cloud Infrastructure(OCI)数据库服务,让开发者可以快速开发和部署安全的、云原生应用程序。专为OCI优化并且仅在OCI中可用,Oracle MySQL数据库服务由OCI和MySQL工程团队100%构建、管理和支持。

Oracle MySQL数据库服务拥有一个集成的、高性能分析引擎(HeatWave),可以直接对运营MySQL数据库进行复杂的实时分析。


堡垒服务(Bastion service)

Oracle Cloud Infrastructure堡垒提供了对不具有公共端点且需要严格资源访问控制的资源的受限和时限性安全访问,例如裸机和虚拟机、Oracle MySQL数据库服务自动事务处理(ATP)、Oracle Container Engine for Kubernetes(OKE)以及任何其他允许安全外壳协议(SSH)访问的资源。使用Oracle Cloud Infrastructure堡垒服务,您可以启用对私有主机的访问,无需部署和维护跳板机。此外,您可以通过基于身份的权限和集中式、审计的、时限性SSH会话获得改善的安全姿态。Oracle Cloud Infrastructure堡垒消除了为堡垒访问需要公共IP的需求,消除了在提供远程访问时的麻烦和潜在攻击面。


推荐

在Oracle Cloud Infrastructure(OCI)上部署Ruby on Rails时,可以将以下推荐作为起点。您的需求可能有所不同。


安全

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

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

如果应用程序实现了暴露动态内容或允许客户端通过API提交数据,我们建议采用API网关,因为它提供了通过使用API策略来管理与API的交互的手段。


Cloud Guard

克隆并自定义Oracle提供的默认配方,以创建自定义的检测器和响应者配方。这些配方使您能够指定哪种类型的安全违规会生成警告,以及允许对其执行的操作。例如,您可能希望检测将可见性设置为公共的对象存储桶。

在租户级别应用Cloud Guard,以覆盖最广泛的范围并减少维护多种配置的管理负担。

您还可以使用管理列表来应用特定配置到检测器。


安全区域(Security zones)

克隆并自定义Oracle提供的默认配方,以创建自定义的检测器和响应者配方。这些配方使您能够指定哪种类型的安全违规会生成警告,以及允许对其执行的操作。例如,您可能希望检测将可见性设置为公共的对象存储桶。

在租户级别应用Cloud Guard,以覆盖最广泛的范围并减少维护多种配置的管理负担。

您还可以使用管理列表来应用特定配置到检测器。


网络安全组(NSGs)

您可以使用NSGs定义一组适用于特定VNICs的入站和出站规则。我们建议使用NSGs而不是安全列表,因为NS

Gs使您能够将VCN的子网架构与应用程序的安全需求分离。

您可以使用NSGs定义一组适用于特定VNICs的入站和出站规则。我们推荐使用NSGs而不是安全列表,因为NSGs使您能夠将VCN的子网架构与应用程序的安全需求分离。


负载均衡器带宽

创建负载均衡器时,您可以选择提供固定带宽的预定义形状,或指定一个自定义(灵活)形状,设置带宽范围,并根据流量模式让服务自动调整带宽。无论采用哪种方法,您都可以在创建负载均衡器后随时更改其形状。



考虑因素

部署此参考架构时,请考虑以下几点。


性能

将此RA作为起点意味着性能将受到VM节点数量和为每个节点选择的VM类型的影响。Terraform支持调整这些节点以使用不同规格的服务器和节点数量。

通过使用GraalVM运行Ruby和Rails,可以获得额外的性能提升。


安全

基本配置没有考虑任何应用程序身份验证和授权或API支持。在网络层面上,需要调整访问和路由,以解决Ruby服务是供内部使用还是外部使用的问题。对于外部使用,环境还应扩展以包括使用Web应用程序防火墙,应考虑使用Cloud Guard。


可用性

通过跨更多可用性区域分布节点,并可能针对最关键的可用性级别跨区域分布,可以扩展可用性。

可用性不仅是计算节点存在的因素,还包括安全性,以便只有合法流量可以与部署的应用程序进行交互。这可以通过安全推荐来解决。


成本

安全性也有助于通过限制服务请求所需的计算量来管理成本。这归结于阻止意外或恶意流量在WAF或API网关击中服务器,减少可能产生的工作量。


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

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


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


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


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

相关推荐

甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入

IT之家7月1日消息,根据甲骨文Oracle当地时间6月30日向美国证券交易委员会(SEC)递交的FORM8-K文件,该企业在始于2025年6月1日的202...

甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云

IT之家6月23日消息,Oracle甲骨文创始人、董事长兼首席技术官LarryEllison(拉里埃里森)在本月早些时候的2025财年第四财季和全财年财报电话会议上表示,Oracle...

Spring Boot 自定义数据源设置,这些坑你踩过吗?

你在使用SpringBoot进行后端开发的过程中,是不是也遇到过这样的问题:项目上线后,数据库连接总是不稳定,偶尔还会出现数据读取缓慢的情况,严重影响了用户体验。经过排查,发现很大一部分原因竟然...

一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)

今天给大家推荐一个好用的代码生成器,名为renren-generator,该项目附带前端页面,可以很方便的选择我们所需要生成代码的表。首先我们通过git工具克隆下来代码(地址见文末),导入idea。...

低代码建模平台-数据挖掘平台(低代码平台的实现方式)

现在来看一下数据连接。·这里是管理数据连接的空间,点击这里可以新增一个数据连接。·输入连接名称,然后输入url,是通过gdbc的方式去连接的数据库,目前是支持mysql、oracle以及国产数据库达梦...

navicat 17.2.7连接oracle数据库提示加载oracle库失败

系统:macOS15.5navicat版本:navicatpremiumlite17.2.7连接oracle测试报错:加载oracle库失败【解决办法】:放达里面找到程序,显示简介里面勾选“使...

开源“Windows”ReactOS更新:支持全屏应用

IT之家6月17日消息,ReactOS团队昨日(6月16日)在X平台发布系列推文,公布了该系统的最新进展,包括升级Explorer组件,支持全屏应用,从Wine项目引入了...

SSL 推出采用全模拟内置混音技术的模拟调音台Oracle

英国调音台传奇品牌SolidStateLogic宣布推出Oracle——一款采用全模拟内置混音技术的调音台,在紧凑的AWS尺寸机箱内集成了大型调音台的功能。该调音台提供24输入和...

47道网络工程师常见面试题,看看有没有你不会的!

你们好,我的网工朋友。网络工程师面试的时候,都会被问到什么?这个问题其实很泛,一般来说,你肯定要先看明白岗位需求写的是什么。基本上都是围绕公司需要的业务去问的。但不可否认的是,那些最基础的概念,多少也...

汉得信息:发布EBS系统安装启用JWS的高效解决方案

e公司讯,从汉得信息获悉,近日,微软官方宣布InternetExplorer桌面应用程序将于2022年6月15日正式停用。目前大部分客户都是使用IE浏览器打开EBS的Form界面,IE停用后,只能使...

36.9K star ! 推荐一个酷炫低代码开发平台!功能太强!

前言最近在逛github,看看能不能搜罗到一些对自己有帮助的开源软件。不经意间看到一个高star的java开源项目:jeecg-boot。进入在线演示版一看,感叹实在是太牛了!此开源项目不管是给来学习...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

手把手教你在嵌入式设备中使用SQLite3

摘要:数据库是用来存储和管理数据的专用软件,使得管理数据更加安全,方便和高效。数据库对数据的管理的基本单位是表(table),在嵌入式linux中有时候它也需要用到数据库,听起来好难,其实就是几个函数...

JAVA语言基础(java语言基础知识)

一、计算机的基本概念什么是计算机?计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行、自动高速处理海量数据的现代化智能电子设备。由硬件和软件组成、没有安装过任何软件的计算机称...

再见 Navicat!一款开源的 Web 数据库管理工具!

大家好,我是Java陈序员。在日常的开发工作中,常常需要与各种数据库打交道。而为了提高工作效率,常常会使用一些可视化工具进行操作数据库。今天,给大家介绍一款开源的数据库管理工具,无需下载安装软件,基...

取消回复欢迎 发表评论: