Oracle BRM 12 是市场上最好的企业计费和收入管理系统之一,并为其他公司制定了努力达到的标准。BRM拥有多年甚至几十年的历史(连同其前身Infranet和Portal)。Oracle在2006年收购Portal软件后,继续开发新的服务包和新的软件版本,定期引入新的功能。
最近 Oracle BRM 12 随着Oracle BRM云原生部署的发布,BRM翻开了一个全新的篇章,达到了一个新的激动人心的重要里程碑。该版本允许BRM原生部署到Kubernetes云环境中,这为BRM在SaaS(软件即服务)、PaaS(平台即服务)和IaaS(基础设施即服务)解决方案中的使用开辟了新途径。与传统的软件部署模式相比,部署到云端给我们带来了一些好处,如可扩展性和可靠性。当部署到新的云系统和硬件资源时,如果需要,可以按需添加到BRM,而不必担心在额外硬件上的大笔资本投资。你可以动态地扩展你的部署,为特定的BRM服务添加其他节点和副本,或者在不再需要的情况下删除它们。Kubernetes会照顾你正在运行的pod,并确保所有的服务都能正常运行,因此与内部软件部署相比,云部署的正常运行时间高于平均水平。

目前官方支持Oracle云的Oracle BRM云原生部署,不过也可以将BRM部署到其他一些云环境。在这篇文章中,我们将看看如何将Oracle BRM部署到Oracle云。
目录
关于Oracle云
Oracle公司正在提供其云计算服务(Oracle云),通过管理数据中心的全球网络提供服务、存储、服务器等。在建立云环境时,你可以选择你想使用的管理数据中心。通常情况下,你想选择一个在地理上靠近你的地方。Oracle云的一些基本功能(如自主数据库和虚拟机的一些基本实例--有限制)在Oracle云的免费层(名为 "永远免费的资格"),可以无限期地免费使用。你也可以利用30天的免费试用,在这个时间范围内,你可以测试Oracle云为你提供的更多高级功能和可能性。您的账户可以随时升级为付费版本。Oracle云提供了一个方便的成本估算计算器,你可以设置你的基础设施和你想使用的服务,计算器会返回你选择的设置的成本估算。
现在让我们来看看如何在Oracle云中免费执行Oracle BRM原生云部署,以达到测试目的。
为测试目的,将Oracle BRM 12部署到Oracle云中
首先,你必须从Oracle软件交付云中获得一个正确的BRM软件版本。搜索 "Oracle Communications Billing and Revenue Management Cloud-Native Deployment Option "并获得最新的可用版本。然后,你必须注册使用Oracle云。在注册和设置账户后,你将看到Oracle云控制面板的屏幕,类似于图1所示。

正如你所看到的,这里有一些 "始终符合免费条件 "的选项呈现给你。不幸的是,要测试Oracle BRM Cloud-Native Deployment免费层的Oracle Cloud是不够的。你将不得不使用一些更高级的功能,但你可以免费试用30天。
为Oracle BRM服务准备数据库系统
首先,你需要为你的BRM部署准备一个数据库。通过点击汉堡包按钮打开主菜单,然后在 "数据库 "部分选择 "裸机、VM和Exadata "选项。现在点击 "创建数据库系统 "按钮。在这里你可以配置你的新数据库实例,如图2所示。

你必须为你的数据库系统选择一个名字,并选择在你选择的管理数据中心的哪个可用域上运行它。为你的数据库选择 "虚拟机 "类型和一些基本的形状(这对我们的测试目的来说已经足够了)。选择 "企业版高性能 "作为你的数据库软件版本。注意,如果你选择 "企业版",那么你的数据库实例将不支持分区,你的BRM部署将因此而失败。然后,您还可以调整一些其他的实例参数,并上传您的SSH公钥以便访问。在下一页,你可以配置更多的选项,并为你的数据库实例定义管理员凭证(它们是必不可少的,请记住它们)。现在你可以确认你的设置,数据库系统将被创建。
这里有一个重要的说明:如果你得到一个消息,说你在这个可用域中创建DB系统的服务达到了限制,那么你必须为Oracle支持部门打开一个服务请求(SR),以便为你启用该选项。转到主菜单 -> 治理 -> 限制、配额和使用。在该页面上找到一个请求增加服务限额的链接。打开服务请求后,可能需要几天时间才能获得批准,但通常这种请求会很快得到解决。
现在,你已经为我们的云原生BRM配置并运行了一个DB系统,你必须准备DB表空间和模式。首先,你必须配置你的Oracle SQL Developer(或其他客户端)来连接到你新创建的数据库。

一种方法是使用你的DB系统的公共IP地址。你可以在DB系统页面的Nodes部分找到你的公共IP地址。使用这个地址和在DB系统页面上找到的其他数据来配置Oracle SQL Developer连接。以SYSDBA身份登录,执行Oracle BRM文档中的数据库准备步骤。
为Oracle BRM服务准备Kubernetes集群
现在你必须在Oracle云中准备你的Kubernetes集群。打开主菜单->开发者服务->容器集群(OKE)。点击 "创建集群",并填写表格以创建一个新的集群。

在你的集群创建之后,你还必须在本地机器上安装docker、kubectl和Helm。你可以在其相应的官方网站上找到如何安装所有这些组件的说明。然后你必须配置你的本地环境来管理Oracle云中的远程容器集群。你可以通过点击 "访问Kubeconfig "按钮找到相关说明,如下图所示

将Oracle BRM云原生部署到Kubernetes集群上
当你的数据库按照文档配置好了,你的Kubernetes集群也创建并运行了,你就可以继续部署BRM了。首先,你必须将所有提供的docker BRM镜像加载到你的docker环境中,然后对它们进行标记,并将它们推送到Oracle云的远程仓库中,这样在你部署舵手图的时候就可以找到这些镜像。
基本上,你必须遵循Oracle网页上的指示。但是,你必须从tar文件中加载Oracle BRM图像,而不是在步骤3中拉出一个hello-world图像。
当图像被加载并推送到Oracle云基础设施的存储库时,你就可以部署舵手图了。
Oracle BRM云原生部署包为你提供了两张图表:
- oc-cn-init-db-helm-chart,部署init_db镜像,创建所有必要的表、索引、视图等,并将初始默认数据加载到数据库,以便BRM服务能够运行、
- 部署BRM云原生服务的oc-cn-helm-chart
你必须先部署oc-cn-init-db-helm-chart,为BRM服务准备你的数据库。
进入oc-cn-init-db-helm-chart解压的文件夹,将values.yaml复制到overrid-values.yaml。然后打开overrid-values.yaml文件,根据Oracle BRM Cloud-Native部署文档中的说明配置所有必要的值。要特别注意的是,所有密码必须以base64编码输入。
你必须配置 "imageRepository "字段,以指向你的Oracle云基础设施注册表,这样就可以找到图像,例如:
图像存储库:"eu-frankfurt-1.ocir.io/frm097gtmuzm/"
还要注意"/",这是正确部署图表所需要的。在override-values.yaml文件的 "db "部分,你必须为你的数据库提供访问数据。这里没有必要使用公共IP作为数据库主机;实际上,出于性能考虑,使用私人IP地址或DNS名称会更好。
在为舵手图配置了覆盖值后,你可以用以下命令来部署它:
helm install oc-cn-init-db-helm-chart -name initdb -values oc-cn-init-db-helm-chart/overrid-values.yaml
现在头盔将把BRM DB初始化镜像部署到Kubernetes集群,并开始为BRM准备数据库。
你可以通过以下方式检查你的部署状态:
helm status initdb
如果你看到pod的任何问题,有多种技术来调试此类问题。一个基本方法是检查失败的pod的日志:
kubectl日志
另外,另一个命令可以为你提供有用的调试数据:
kubectl describe pods
在你的数据库被初始化后,你可以准备另一个图表--oc-cn-helm-chart--用于部署。这个图表将真正把BRM部署到你的集群。你可以把override-values.yaml文件中的 "db "部分从你的oc-cn-init-db-helm-chart复制到oc-cn-helm-chart。然后你必须在overrid-values.yaml中配置所有其他需要的值,方法与oc-cn-init-db-helm-chart相似。你可以在Oracle BRM云原生部署文档中找到所有键的描述。请注意,所有的密码都必须是base64编码的。如果你不想部署所有的BRM组件,你可以从图表文件夹内的模板子目录中删除特定组件的文件,并从override-values.yaml文件中删除相关部分。
然后,你可以用以下命令部署BRM:
helm install oc-cn-helm-chart -name occn-ps2 -namespace ocgbu -values oc-cn-helm-chart/overrid-values.yaml
注意,你必须将oc-cn-helm-chart部署在与oc-cn-init-db-helm-chart不同的命名空间(在我们的例子中是 "ocgbu")。
用Kubernetes Dashboard监控你的Kubernetes部署是很有用的。因为Kubernetes Dashboard默认没有部署,你可以用以下命令将其部署到你的集群中:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta6/aio/deploy/recommended.yaml
然后你必须运行代理服务来访问仪表板:
kubectl代理
现在你可以使用以下地址在浏览器中打开Kubernetes Dashboard:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
你可以在图片6上看到Kubernetes仪表盘显示部署的服务。

也可以在一个正在运行的pod中打开shell。这有时会因为一些原因而有用,例如,如果你想访问一些内部日志。你可以用下面的命令在一个pod内打开shell:
kubectl exec -n -it - /bin/bash
日志通常可以在pod中的/oms_logs路径上找到。
恭喜你,你已经成功地将Oracle BRM云原生部署到Oracle云上了!
总结
本文解释了将Oracle BRM云原生部署到Oracle云基础设施所需的所有主要步骤。如果您在部署过程中需要任何其他帮助,请联系我们。 甲骨文BRM 到Oracle云,需要建议,或者如果你正在寻找一个可靠的解决方案供应商来满足你所有的计费需求,请随时联系我们。但是,将Oracle BRM云原生部署到Oracle云并不是测试它的唯一选择。你也可以把它部署到你的本地服务器环境。我们将在接下来的一篇文章中探讨如何做到这一点。