Abernethy
作者Abernethy·2022-12-22 10:59
架构师·某医疗制造

医疗制造企业 Red Hat OpenShift Service on Amazon Web Services 架构支撑海外业务发展实践分享

字数 6537阅读 4556评论 6赞 13

一. 背景介绍

某医疗制造企业,在疫情环境之下急速发展,业务规模迅速扩大,海外市场订单暴增,该医疗企业及时抓住国际市场机遇,树立自身的国际品牌形象,在提升医疗制造技能的同时更注重IT建设和服务创新。

为了能迅速支撑并服务激增的海外业务,该医疗企业在海外亚马逊云科技公有云环境借助 OpenShift 托管服务,迅速搭建起云原生的开发和运行环境,令海外业务系统准时上线,紧跟业务的步伐,也充分体现了IT对业务的支持与促进作用。

二. ROSA概述

OpenShift是一个企业级的Kubernetes容器平台,它为企业应用系统的开发和运行提供了一个易扩展、可信任的容器环境。OpenShift扩展了Kubernetes容器编排平台,内置企业级应用扩展组件,以增强企业级应用的生命周期管理能力,从开发到运维能力的增强再到安全项的加固。借助OpenShift,用户可以在混合云、多云的环境中实现工作负载的持续集成和持续部署。
 OpenShift 扩展了Kubernetes

OpenShift 扩展了Kubernetes

ROSA是R ed Hat OpenShift Service on Amazon Web Services 的简称,它是红帽容器平台OpenShift在亚马逊云科技上的托管服务。用户可以在ROSA上快速构建和部署业务应用,不需要过多的关心底层基础设施的搭建和运维,因此ROSA的用户更能关注于企业的业务价值,而不是与企业业务无关的环境和不同基础设施的适配。
 用户自己搭建和运维的OpenShift集群

用户自己搭建和运维的OpenShift集群

亚马逊云科技和红帽的 站点可靠性工程(SRE) 专家负责管理和运维底层平台,因此用户不必担心复杂的基础架构层管理工作。ROSA 还提供了与亚马逊云科技的计算、存储、网络、数据库、分析工具、机器学习、移动应用等服务的无缝集成,在加速用户业务系统的构建与交付的同时也节省了用户的运维成本。

 由SRE管理和运维的ROSA托管服务

由SRE管理和运维的ROSA托管服务

三. 系统部署设计

ROSA 架构支持多种网络配置类型:公共网络、专用网络和亚马逊云科技 PrivateLink 网络,可满足不同用户的安全需求。

该医疗制造企业把ROSA的OpenShift创建在独立的私有网络中,通过亚马逊云科技的负载均衡器对外提供业务访问,不直接被外部访问,如业务负载需要访问外网,则通过NAT网关间接访问,业务负载分布在多个高可用区中保证其高可用性。

ROSA的管理员和开发人员与OpenShift分布在不同的VPC( Virtual Private Cloud )私有网关中,私有VPC直接通过亚马逊云科技中转网关(Transit Gateway)连接,如果需要从外网对业务负载或OpenShift容器平台进行管理,则需要通过对外子网的堡垒机再次跳转,这样在保证安全性的同时也不失其灵活性。
 系统部署架构

系统部署架构

四. 系统存储设计

系统的有状态应用持久化到云原生存储ODF (OpenShift Data Foundation) 中,ODF 是基于 Ceph、Noobaa 和 Rook 软件组件的云原生存储、数据管理和数据保护组合。其中,Ceph 提供对象、块和文件存储。Noobaa抽象出跨混合多云环境的存储基础架构,并提供数据存储服务管理。Rook 编排了多个存储服务,每个服务都有一个 Kubernetes 算子,可用于设置 Ceph 集群。

数据的可靠性和完整性由Ceph的3副本保证,在ROSA环境中,ODF创建在亚马逊云科技的EBS (Elastic Block Storage) 上,多份EBS均匀地分布在3个高可用区中,Ceph在EBS之上池化并对外提供对象存储、块存储和文件存储,满足云原生所有场景的存储需求。Ceph的 3 副本分布在亚马逊云科技的3个高可用区中,因此能保证数据的可用性和完整性。

 系统存储架构

系统存储架构

五. 系统安全设计

系统的安全设计已考虑到多层次、多维度的安全保障:系统层面、网络层、容器层、应用层、数据层、用户层,主要设计如下:

1.系统层安全

系统层面安全是ROSA所运行的基础设施上的操作系统,在这层提供的安全保障措施包括:

  • 操作系统自身的安全

    ROSA的容器平台(OpenShift)部署在Red Hat CoreOS(RHCOS)操作系统上,RHCOS是红帽专门针对容器提供的云操作系统,它继承了红帽企业操作系统(RHEL)的稳定、安全同时,针对容器云环境做了加固,内置容器运行环境所必须的软件包,去除了支撑容器运行外的非必要、有安全隐患的软件包。

    RHCOS的用户空间是只读的,这就有效的避免了潜在的、对操作系统的恶意攻击,当系统维护人员需要维护操作系统时,需要通过最初安装时指定的ssh key才能登录。

  • 操作系统安全性扫描

    RHCOS可以满足第三方安全管理系统的要求,接受相关第三方安全系统对本平台的服务器操作系统层面的安全扫描和检查,即使通过补丁升级等方式满足最新的操作系统安全要求。

2.网络层安全

OpenShift容器平台(以下简称为平台)配备多个级别的网络安全管理,在 Pod 级别上网络命名空间可以用来限制网络访问、防止容器查看其他 Pod 或主机系统,网络策略可让平台控制允许或拒绝特定的连接,也可以通过应用程序的入口和出口流量进行控制,详情如下:

  • 使用网络命名空间

    平台使用软件定义网络(SDN) 来提供一个统一的集群网络,它允许集群中的不同容器相互间进行通信。

    默认情况下,网络策略模式使项目中的所有Pod 都可被其他 Pod 和网络端点访问。要在一个项目中隔离一个或多个 Pod,可以在该项目中创建 NetworkPolicy 对象来指示允许的入站连接。如使用多租户模式,可以为 Pod 和服务提供项目级别的隔离。

  • 使用网络策略隔离Pod

    使用网络策略,可以在同一项目中将Pod 相互隔离。网络策略可以拒绝对 Pod 的所有网络访问,只允许入口控制器的连接,拒绝其他项目中的 Pod 的连接,或为网络的行为方式设置类似的规则。

  • 使用多个Pod 网络

    默认情况下,每个运行中的容器只有一个网络接口。Multus CNI 插件容许平台创建多个 CNI 网络,然后将任何这些网络附加到 Pod。这样,就可以执行一些高级的操作,例如将私有数据单独放在更为受限的网络上,并在每个节点上使用多个网络接口。

  • 隔离应用程序

    平台允许为单个集群上的网络流量分段以创建多租户集群,使用户、团队、应用程序和环境与非全局资源隔离。

  • 保护入口流量

    如何配置从平台集群外对平台内服务的访问会产生很多安全影响。除了公开HTTP 和 HTTPS 路由外,入口路由还允许设置 NodePort 或 LoadBalancer 入口类型。NodePort 从每个集群 worker 中公开应用程序的服务 API 对象。借助 LoadBalancer,可以将外部负载均衡器分配给平台集群中关联的服务 API 对象。

  • 保护出口流量

    平台提供了使用路由器或防火墙方法控制出口流量的功能。例如,可以使用IP 白名单来控制对数据库的访问。集群管理员可以为SDN 网络供应商中的项目分配一个或多个出口 IP 地址。同样,集群管理员可以使用出口防火墙防止出口流量传到平台集群之外。

    通过分配固定出口IP 地址,可以将特定项目的所有出站流量分配到该 IP 地址。使用出口防火墙时,就可以阻止 Pod 连接到外部网络,阻止 Pod 连接到内部网络,或限制 Pod 对特定内部子网的访问。

3.容器层安全

在容器层,平台提供如下措施进行安全保障:

  • 容器自身安全隔离

    容器是在一台Linux上启动多个在独立沙箱内运作的应用,相互不影响。容器底层使用Linux 内核的namespace、cgroups、SELinux对不同容器的CPU、内存、网络、存储、进程等进行隔离。

  • 容器集群的安全隔离

    在容器层面还可以通过不同的容器集群进行隔离,不同的容器集群拥有自己独立的主机、存储卷、网络、镜像仓库、管理节点、Node节点,达到进一步的隔离。

  • 安全上下文約束(Security Context Constraints)- SCC

    平台在Kubernetes基础上添加了 安全上下文約束(SCC),对容器运行的特殊权限进行控制,比如:root权限运行容器、是否可以挂载宿主机上的磁盘、是否可以访问宿主机上的资源、是否可以用任何指定用用户ID运行等做了限制,默认不开通,可以在经过安全组评估后可开通的情况下再进行开通。

4.应用层安全

平台上运行的应用镜像是经过安全组件扫描的。

  • 平台集成开源容器漏洞扫描工具Clair,该工具可以交叉检查容器镜像的操作系统以及上面安装的任何包是否与任何已知不安全的包版本相匹配。漏洞是从特定操作系统的通用漏洞披露(CVE)数据库获取;
  • Clair通过从镜像文件系统中抽取静态信息以及维护一个组成镜像的不同层之间的差异列表,可以大大减少分析时间,而且不需要实际运行可能存在漏洞的容器。如果镜像所依赖的一个靠下的层存在漏洞,那么该镜像就会被识别为有漏洞,而且,通过使用图存储,可以避免重新分析镜像;
  • Clair提供了一个JSON API,可以在本地运行以检查容器镜像,例如,作为持续集成或持续交付管道的一部分。

5.数据层安全

平台从数据保存和数据传输方面保障数据层的安全。

  • 平台支持对应用进行数据隔离,平台支持对不同的应用挂载不同的存储卷,通过不同的存储卷记性数据的逻辑隔离或者物理隔离(物理隔离通过存储卷的物理隔离实现),以实现对数据存储的安全保障。
  • 平台的多网络架构可以对敏感数据进行单独网络的划分,比如网络划分为:管理网络、业务网、数据网,以实现对数据传输的安全保障。

6.用户层安全

在用户层平台也提供必要的安全保障。

  • 用户权限管理

    支持“用户账号-角色-权限”模式进行用户和权限管理,不直接对用户账号进行权限的管理而是通过角色进行权限管理。

    支持企业和个人账号的注册登录,支持多租户的管理,多租户间应用隔离、网络隔离、资源隔离。提供组织、空间、权限和域名管理,支持公司,不同用户登陆云计算门户后可以获取自己的计算资源。

    提供角色的管理,通过角色进行权限的赋予与管理。支持对细粒度的资源权限的管理定义。间的虚拟网络是完全隔离的。对于租户自有的应用,租户可以自由选择隔离或者打通。

  • 支持单点登录集成

    支持与现有的系统进行单点登录集成,实现用户的统一管理和单点登录认证。

  • 租户隔离

    从技术角度,所有租户共享平台的底层物理资源(计算、存储、网络);

    从用户角度,用户所有的物理资源及其至上应用、数据都是隔离的。为了保障安全性,不同租户之间的虚拟网络是完全隔离的。对于租户自有的应用,租户可以自由选择隔离或者打通。

六. 系统应用发布

业务负载与基础组件分布在ROSA上以命名空间方式隔离的四个环境中:基础环境、开发环境、测试环境和生产环境。

基础环境中Quay是业务应用在容器环境运行的镜像仓库,云原生的管道工具Tekton负责从源码仓库中获取业务应用源代码,以管道方式执行构建、测试、镜像打包、开发环境业务部署、并推送产生的镜像到镜像仓库Quay中。

ArgoCD以GitOps方式部署新产生的镜像到测试环境中,进行QA测试,测试通过后再由ArgoCD部署镜像到生产环境,整个过程由Tekton管道驱动。由于环境的持续部署是以GitOps方式进行,因此,任何版本的发布记录都会在部署专有的git仓库中留有痕迹,可回溯、可回退。
 应用系统发布

应用系统发布

1.Tekton简介

Tekton 是一个强大、灵活的构建 CI/CD 流水线系统的开源框架,允许开发者构建、测试和发布应用。Tekton 是云原生的,通过定义 CRD ,让用户快速灵活定义流水线。

Tekton的组件包括:

  • Tekton Pipelines:tekton 的基础,定义了一组 CRD,用于定义 pipeline
  • Tekton Triggers:允许基于 event 实例化 pipeline。比如:git的pr请求
  • Tekton Cli:提供命令行工具和 tekton 交互
  • Tekton Dashboard:图形化界面展示 pipeline 信息
  • Tekton Catalog:高质量的、社区贡献的 pipeline 仓库
  • Tekton Hub:图形化界面访问 tekton catalog
  • Tekton Operator:在OpenShift上安装、移除、更新tekton组件的项目

使用Tekton的优势:

  • 可定制的
    Tekton实体是完全可定制的,从而具有高度的灵活性。平台工程师可以定义非常详细的构建基目录,以供开发人员在各种情况下使用
  • 可重复使用的
    Tekton实体是完全可移植的,因此一旦定义,组织内的任何人都可以使用给定的管道并重用其构造块。这使开发人员可以快速构建复杂的管道,而无需“重新发明轮子”。
  • 可扩展的
    Tekton Catalog是Tekton社区驱动的存储库。可以使用Tekton目录中的预制组件快速创建新的并展开现有管道。
  • 标准化的
    Tekton在OpenShift集群上作为扩展安装并运行,并使用完善的OpenShift资源模型。 Tekton工作负载在OpenShift容器中执行。
  • 可缩放的
    为了增加工作负载容量,可以简单地将节点添加到群集。Tekton与群集进行缩放,无需重新定义您的资源分配或对管道的任何其他修改。

Tekton 运行示例

Tekton 运行示例

2.ArgoCD简介

ArgoCD是一个专为Kubernetes而生,遵循GitOps理念的持续部署工具。Gitops简单来说就是:

1) 以Git为核心;
2) 声明式定义各类对象;
3) 配置一致性管理。

ArgoCD的主要功能

  • 将应用程序自动部署到指定环境中
  • 可通过CRD方式定义执行对象
  • 多租户管理和RBAC权限集成管控
  • 多集应用管理和部署
  • 可视化UI
  • 支持多种Kubernetes配置对象(Kustomize,Helm,Ksonnet,Jsonnet,plain-YAML)
  • 支持SSO集成(OIDC,OAuth2,LDAP,SAML 2.0,GitHub,GitLab,Microsoft,LinkedIn)
  • Webhook集成可实现通知
  • 自带metric指标暴露

 ArgoCD运行示例

ArgoCD运行示例

3.应用部署整体优势

  • 敏捷、自治团队以开发运维一体化的方式运作,没有部门墙、高效、敏捷、快速响应,具备快速适应业务变化的能力;
  • 契约与测试先行,最大限度的减少了团队人员间的依赖与耦合,团队并发能力强、高效、省成本;
  • 以云原生的方式构建自动化的CI/CD,不过度依赖外部工具,有效降低了将来的工具风险,基于云原生的tekton和argoCD构建的CI/CD具备无限的扩展能力,可以随时与已存在的审批、办公等系统集成。

七. 系统扩展能力

系统的部署与架构设计已考虑到系统的扩展能力。在业务增长、请求激增的情况下,可按需自动或手动扩展业务应用的副本数,以保证业务系统的容量和响应时间;在基础设施层计算资源不足的情况下,可充分发挥亚马逊云科技公有云环境的优势:无限扩展计算资源、按需付费、节省成本。

当拓展新的海外市场时,可以立即开启新区域的ROSA服务,并通过多云管理组件纳管ROSA实例,克隆业务应用到新的ROSA上,极大缩短了业务在新市场上线的周期,为该医疗制造企业提供了业务的能力复制,提升了企业自身在国际市场的服务和竞争能力。


 系统扩展能力

系统扩展能力

当需要将海外业务下沉到国内市场时,可以充分利用既有的数据中心资源,借助多云管理组件纳管私有数据中心的OpenShift实例,下沉业务应用到私有数据中心的OpenShift上,实现海外业务能力到国内市场的迅速复制,实现国内外业务的无缝衔接。

八. 建设策略和价值收益

三大建设策略和对应收益:

1.采纳成熟开源技术

  • 无技术锁定,选择任意公有云,私有云和公有云在技术体系上保持一致,做的应用无感知
  • 所有技术组件均有对应开源社区项目
  • 降低总体拥有成本 TCO

2.兼容多种开发语言

  • 开发框架和运行框架支持 .Net,Java
  • 降低团队学习成本
  • 自由选择合适的开发体系

3.注重团队能力建设

  • 技术自主可控
  • 有利于业务创新,数字化转型
  • 建立学习型团队,构建学习型组织

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

13

添加新评论6 条评论

huang_rexhuang_rex系统架构师海信集团控股股份有限公司
2022-12-28 09:22
以企业的实际业务场景为切入点,本文从ROSA概述、系统部署设计、系统存储设计、系统安全设计、系统应用发布、系统扩展能力、建设策略和价值收益,详细介绍了红帽OpenShift在公有云上的部署、交付和运维模式,使业务更关注于业务场景本身;利用公有云的资源和网络能力,实现海外业务的快速交付,同时也做了充足了安全型设计,消除了大家对业务运行在公有云上的后顾之忧;并利用ROSA的可扩展能力,也可以实现私有数据中心和公有云的无缝衔接,满足更多的业务场景和混合云场景。
sony0629sony0629信息技术经理北京双杰电气股份有限公司
2022-12-28 09:19
文章详细对ROSA介绍尤其在安全层面介绍的比较细致。ROSA是一款完全托管和联合支持的红帽OpenShift产品,结合了业界领先的企业应用平台红帽OpenShift和亚马逊云科技云计算的规模扩展的优势,该解决方案不仅帮助医疗企业大量节约了部署时间,还能快速实现平台扩容。并且ROSA与亚马逊云科技的网络管理结合,降低了日常网络运维,减少了平台系统运维的成本。 医疗行业在疫情之下发展迅猛,医疗业务规模迅速扩大,IT部门需要建立高效率、低成本、敏捷的内部开发架构,支撑全球化用户的需要。同时在业务层面需要搭建更完善的平台,更易于使用的用户界面,提供更高效的性能支持。
sunyifengsunyifeng联盟成员系统运维工程师唐山瑞丰钢铁(集团)有限公司
2022-12-27 19:21
从背景介绍、ROSA概述、系统部署设计、系统存储设计、系统安全设计、系统应用发布、系统扩展能力、建设策略和价值收益。从部署、存储、安全设计到应用发布过程和扩展能力都一一进行了详细阐述,使人受益良多,颇具借鉴意义。方案不仅帮助医疗大量节约了部署时间,还能快速实现平台扩容,采纳成熟开源技术,兼容多种开发语言,降低了日常网络运维,减少了平台系统运维的成本
hufeng719hufeng719联盟成员系统工程师某钢铁企业
2022-12-26 18:55
该文是一篇医疗制造企业利用ROSA架构在云端实现服务快速部署的典型案例,使用户更能关注企业的业务价值。借助亚马逊云科技和红帽OpenShift成熟的底层无缝集成平台,不仅加速了用户业务系统的构建与交付,同时还大大节省了运维成本。文章从部署、存储、安全设计到应用发布过程和扩展能力都一一进行了详细阐述,使人受益良多,颇具借鉴意义。当前钢铁制造行业也同样面临全面的升级改造,在打造先进的工业互联网平台过程中,一些成熟的云原生技术栈例如Tekton和ArgoCD可向文中学习借鉴。
wangzimingsq88wangzimingsq88软件开发工程师本钢矿业公司
2022-12-26 17:59
本文从背景介绍、ROSA概述、系统部署设计、系统存储设计、系统安全设计、系统应用发布、系统扩展能力、建设策略和价值收益,详细介绍了医疗制造企业 Red Hat OpenShift Service on Amazon Web Services 架构支撑海外业务发展实践,事实详实、具体,应用价值高,性价比高,操作简单,可扩展性好,系统冗余和智能纠错较好,投资回收期较短,应用效果很好,对于医疗制造企业进一步推广应用提供了重要的理论和实践参考。
wangzimingsq88wangzimingsq88软件开发工程师本钢矿业公司
2022-12-26 17:46
通过使用ROSA,医疗业开发了一个云原生平台,增强了全球运营的一致性,为那些拥有出海业务的企业提供了有价值的全球化方案参考。实现了公有云和私有云的数据快速同步,该云原生平台也实现了微服务化的改造,降低系统的耦合,提升了系统的高可用和容灾及负载能力。并实现开放混合云和自动化运维。同时建立起高效率、低成本、敏捷的内部开发架构,支撑全球化用户的需要。同时在业务层面需要搭建更完善的平台,更易于使用的用户界面,提供更高效的性能支持。医疗业应该能在全球业务中提供一致的基础,从而满足公司不断变化的需求。 在红帽咨询服务的协助下,医疗制造业可使用亚马逊云科技上的红帽OpenShift服务(ROSA)为海外资产管理应用搭建了一个云原生平台。通过该平台,可以对各种固定资产业务进行有效管理。 亚马逊云科技致力于通过业界领先的云技术和服务以及全球资源,打造一个充满活力、快速增长的合作伙伴网络,赋能合作伙伴的创新和可持续成长,与合作伙伴携手助力客户的数字化转型。通过联合红帽提供ROSA服务,帮助优势叠加,帮助医疗行业全面加速创新,简化运维,更好地统一管理海外资产。 ROSA是一款完全托管和联合支持的红帽OpenShift产品,结合了业界领先的企业应用平台红帽OpenShift和亚马逊云科技云计算的规模扩展的优势,该解决方案不仅帮助医疗大量节约了部署时间,还能快速实现平台扩容。并且ROSA与亚马逊云科技的网络管理结合,降低了日常网络运维,减少了平台系统运维的成本。 具体可参考:http://www.cnit-research.com/content/202207/47195.html
Ctrl+Enter 发表

相关文章

相关问题

相关资料

X社区推广