草庐IT

OpenShift从入门到精通系列之一:通过OpenShift实现数字化转型

最笨的羊羊 2024-05-24 原文

OpenShift从入门到精通系列之一:通过OpenShift实现数字化转型

一、企业数字化转型之PaaS

PaaS的全称为Platform-as-a-Service,含义为平台即服务。

在Docker出现以前,企业IT的建设更多是围绕IaaS进行的。IaaS的基础包括计算虚拟化、网络虚拟化、存储虚拟化,在此之上构建云管平台。

绝大数的企业级PaaS产品是以K8s为核心的,红帽的OpenShift3也是如此。OpenShift4更进一步使用CRI-O替换了Docker容器引擎,极大地简化了OpenShift集群的支持和配置。

OpenShift作为本地容器编排平台,既可以享受K8s的优势,同时又可以使用OpenShift商业支持的本地PaaS解决方案。

二、企业数字化转型之DevOps

DevOps中的Dev指的是Development(开发),Ops指的是Operations(运维),DevOps就是打通开发运维的壁垒,实现开发运维一体化。

敏捷开发是开发领域里的概念,以敏捷开发阶段为基础,有如下阶段:

  • 敏捷开发
  • 持续集成
  • 持续交付
  • 持续部署
  • DevOps

DevOps涵盖了整个开发和运维阶段。涵盖自动化软件开发和IT团队之间的流程,以便他们可以更快速、更可靠地构建、测试和发布软件。

三、企业数字化转型之微服务

传统的巨大单体应用程序在部署和运行时,需要单台服务器具有大量内存和其他资源。巨大的单体应用必须通过在多个服务器上复制整个应用程序来实现横向扩展,因此其扩展能力极差。此外,这些应用程序往往更复杂,各个功能组件紧耦合,使得维护和更新更加困难。在这种情况下,想单独升级应用的一个功能组件,就会有"牵一发而动全身"的困扰。

在微服务架构中,传统的巨大单体应用程序被拆分为小型模块化的服务,每项服务都围绕特定的业务领域构建,不同微服务可以用不同的编程语言编写,甚至可以使用完全不同的工具进行管理和部署。

与单体应用程序相比,微服务组织更好、更小、更松耦合,并且是独立开发、测试和部署的。由于微服务可以独立发布,因此修复错误或添加新功能所需的时间要短的多,并且可以有效地将更改部署到生产中。由于微服务很小且无状态,因此更容易扩展。

微服务通常具有以下特点:

  • 以单个业务或域为模型
  • 每个微服务实现自己的业务逻辑,包含独立的持久数据存储
  • 每个微服务有一个单独发布的API
  • 每个微服务能够独立运行
  • 每个微服务独立于其他服务且松耦合
  • 每个微服务可以独立地升级、回滚、扩容、缩容

四、微服务架构的主要类型

微服务架构的特点,但实现方式不同:

  • 有的通过代码侵入的方式实现
  • 有的通过使用代理的方式实现

在K8s出现和普及之前,实现微服务架构需要通过像Spring Cloud这种代码侵入的方式实现,也就是说,在应用的源代码中引用微服务架构的治理组件。

在K8s出现之后,可以将容器化应用之间的路由、安全等工作交由K8s实现,也就是说,应用开发人员再也不必在开发阶段考虑微服务之间的调用关系,只需关注应用代码的功能实现即可。

这种无代码侵入的微服务架构(如Istio)越来越受到业内和客户青睐,而本书也会着重介绍基于Istio实现微服务。

五、企业实施微服务架构的收益和原则

从技术角度而言,企业实施微服务大致有以下几个方面收益:

  • 应用更快部署:微服务比传统的单体应用小得多。
  • 应用快速开发:微服务由小团队开发和维护。
  • 降低应用代码复杂度
  • 应用易于扩展:微服务通常是独立部署的。各个服务可以根据服务接收的负载量灵活地扩容和缩容。系统可以将更多的计算、存储、网络资源分配给接收高流量的服务,实现资源上的按需分配。

微服务遵循一些原则和最佳实践:

  • IT团队重组为DevOps团队:由微服务团队负责从开发到运营的整个生命周期管理。
  • 将服务打包为容器:通过将应用打包成容器,可以形成标准交付物,大幅提升效率。
  • 使用弹性基础架构:将微服务部署到PaaS上而非传统的虚拟机,例如OpenShift集群。
  • 持续集成和交付流水线:通过流水线打通从开发到运维的整个流程,有助于微服务的落地。

六、PaaS、DevOps与微服务的关系

容器引擎使容器具备了较好的可操作性和可移植性,K8s使容器具备企业级使用的条件。而IT界企业级容器云平台——OpenShift又成为DevOps和微服务落地的新一代平台。

OpenShift以容器技术和K8s为基础,在此之上扩展提供了软件定义网络、软件定义存储、权限管理、企业级镜像仓库、统一入口路由、持续集成流程(S21/Jenkins)、统一管理控制台、监控日志等功能,形成覆盖整个软件生命周期的解决方案。

所以说,OpenShift本身提供开箱即用的PaaS功能,还可以帮助客户快速实现微服务和DevOps,并且提供对应的企业级服务支持。

七、企业数字化转型的实现

云原生的重点是如何构建、部署和管理应用。

云原生应用的四大原则如下:

  • 基于容器的基础架构:云原生应用依靠容器来构建跨底层基础架构的通用运行环境,并在不同的环境和基础架构(包括公有云、私有云和混合云)间实现真正的应用可移植性。容器平台有助于实现云原生应用的弹性扩展。
  • 基于DevOps流程:采用云原生方案时,企业会使用敏捷的方法,依据持续交付和DevOps原则来开发应用。
  • 基于服务的架构:基于服务的架构(如微服务)提倡构建松耦合的模块化服务。采用基于服务的松耦合设计,可帮助企业提高应用创建速度,降低复杂性。
  • 基于API的通信:通过轻量级API来进行服务之间的相互调用。采用基于API的设计,在调用服务时可避免因直接链接、共享内存模型或直接读取数据带来的风险。

构建云原生应用的基础是:

  • 构建基于容器的PaaS
  • 构建DevOps
  • 构建微服务架构
  • 采用基于API的应用设计和通信

八、企业数字化转型之路

第一步:

  • 构建PaaS平台。

第二步:

  • 给予PaaS实现DevOps。

第三步:

  • 借助于轻量级应用服务器,为现有单体应用提速。

第四步:

  • 选择云原生的应用开发和运行框架。要求容器PaaS平台能够支持多种应用开发框架。红帽OpenShift不仅支持传统JavaEE应用和Spring Boot应用,红帽也发布了基于Java的云原生开发框架Quarkus。

第五步:

  • 实现微服务治理。

业务健壮性的提升,通常分为以下几步:

  • 第一步:建设单数据中心。
  • 第二步:建设多数据中心。
  • 第三步:构建混合云。

以OpenShift为核心逐步实现企业数字化转型的能力,分为四大部分:

  • PaaS能力建设。企业数字化转型的第一步:OpenShift技术解密及架构设计、基于OpenShift构建企业级PaaS平台、OpenShift在企业中的开发实践、OpenShift在企业中的运维实践、OpenShift在公有云上的实践。
  • DevOps能力建设。企业数字化转型的第二步:在OpenShift上实现DevOps、DevOps在企业中的实践。
  • 云原生能力建设。企业数字化转型的第三步和第四步:基于OpenShift构建云原生。介绍如何为单体应用提速以及云原生开发和运行环境的选择。
  • 微服务能力建设。企业数字化转型的第五步:包括微服务介绍及Spring Cloud在OpenShift上落地、Istio架构介绍与安装部署、基于OpenShift和Istio实现微服务落地。

有关OpenShift从入门到精通系列之一:通过OpenShift实现数字化转型的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  3. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  4. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  5. ruby - 查找字符串中的内容类型(数字、日期、时间、字符串等) - 2

    我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s

  6. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  7. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  8. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  9. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  10. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

随机推荐