快速相识云盘算与云原生

打印 上一主题 下一主题

主题 692|帖子 692|积分 2076

云盘算

在讲云原生之前,先来讲讲云盘算
此中云原生属于技能架构理念,而云盘算提供应用所需的基础资源,云盘算是云原生的基础,两者是相辅相成的
云盘算简朴来说,就是一种随时随地给各人提供解决网络资源的一种盘算服务和应用
关于云盘算的三种服务模式

  • Saas(软件即服务):运用到我们的生活中,就是各种云存储云文档等等,完全不消本身去开辟,直接拿来用就可以
  • Paas(平台即服务):服务商提供给你一个框架,还有各种基础功能,你可以在这个平台上,开辟不同的软件
  • Laas(基础办法即服务):服务商只出租硬件办法,好比服务器硬盘或者网络等,给需要这些基础办法资源的人
三种模式也可以这样明确:
假如你有一个业务是需要用 Word写东西,做记录
最基础版本就是laas是服务商租你一台没有系统的电脑
中间版本paas是服务商租你一个带win10的电脑
最高版本就是saas就是服务商租你一台带win10还预装了word的电脑
专业图明确:

云原生

云原生(Cloud Native)是一种构建和运行充分利用云盘算模子优势的应用程序的方法
云原生概括为4个要点:DevOps+连续交付+微服务+容器

符合云原生架构的应用程序:接纳开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持连续迭代和运维自动化,利用云平台办法实现弹性伸缩、动态调理、优化资源利用率
DevOps

   DevOps中的Dev指的是Development(开辟),Ops指的是Operations(运维),用一句话来说,DevOps就是买通开辟运维的壁垒,实现开辟运维一体化
  

DevOps是为了弥补开辟端和运维端之间的信息鸿沟,改善团队之间的协作关系,实际上DevOps应该还包罗测试
关于软件行业的研发模式,大致有三个阶段:瀑布式开辟、敏捷开辟、DevOps
瀑布式开辟:传统的软件开辟流程,软件开辟人员花费数周和数月编写代码,然后将代码交给QA(质量保障)团队进行测试,然后将终极的发布版交给运维团队去布署。所有的这三个阶段,即开辟,测试,布署
也叫瀑布(Waterfall)模子,就是等一个阶段所有工作完成之后,再进入下一个阶段
敏捷开辟:是一种能应对快速变化需求的软件开辟能力。就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态
敏捷开辟优势在于把一艘大船变成许多条小船,每条小船各司其职,分配小目的,所有的小目的合起来就能完成大目的。服从高,每个人职责分明
不敷之处在于小团队做不到拥有开阔的视野,看不到所有团队都在一起做什么事情,各人只知道埋头苦干做好本身的部分就可以,但看不到全局,不知道全局发生了什么事情。对于一些不可分割的大需求,需要一次性派很多人手同时做的需求,敏捷开辟就不再符合
固然敏捷开辟大幅提升了软件开辟的服从和版本更新的速率,但是它的结果仅限于开辟环节,对于运维人员来说,就是不要出问题,但是发生改变的时候最容易出问题。因此运维非常排挤“改变”。
因此才出现了DevOps,从目的来看,DevOps就是让开辟人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠

容器

在软件开辟过程中,通常会涉及以下几种环境:


  • 开辟环境:用于开辟人员编写、调试和测试软件的环境,包罗开辟工具、集成开辟环境(IDE)、调试器、编译器等软件工具,以及开辟人员个人的盘算机或开辟服务器。
  • 测试环境:用于软件测试的环境,包罗测试服务器、测试数据库、测试数据等,用于进行单元测试、集成测试、系统测试、性能测试等各种测试运动。
  • 集成环境:用于集成开辟人员编写的各个模块或组件的环境,以验证它们在一起工作的准确性和稳固性。
  • 摆设环境:用于将开辟完成的软件摆设到生产环境中的环境,包罗摆设服务器、摆设工具、配置管理工具等,用于将软件摆设到天生环境中进行实际运行和使用。
  • 生产环境:软件摆设和运行的环境,包罗服务器、数据库、网络装备、负载均衡器等硬件装备,以及用于摆设和管理软件的干系软件工具,用于提供稳固、可靠的环境,使软件能够正常运行并满意用户需求。
对于容器技能来说,对软件开辟环境带来了许多好处,重要包罗以下几点:


  • 环境一致性: 容器技能可以确保开辟、测试和生产环境之间的一致性。开辟人员可以在他们的开辟机器上构建容器,然后将这些容器摆设到测试环境和生产环境中,从而避免了“在我的机器上可以工作”的问题。
  • 快速摆设: 容器可以快速摆设,因为它们包含了应用程序及其所有依赖关系。这意味着开辟团队可以更快地构建、测试和摆设应用程序,从而加快软件开辟和交付速率。
  • 资源利用率: 容器可以更有效地利用盘算资源,因为它们可以在单个物理服务器上运行多个容器实例,而无需为每个应用程序实例分配独立的虚拟机或物理服务器。
  • 隔离性: 容器提供了应用程序之间的隔离,这意味着纵然在同一台物理服务器上运行多个容器实例,它们之间也是相互隔离的。这有助于减少因应用程序之间的冲突而导致的问题。
  • 可移植性: 容器可以在各种不同的环境中运行,包罗开辟人员的个人盘算机、当地数据中心、云基础办法等。这种可移植性使得开辟团队能够更轻松地在不同的环境中摆设和运行应用程序。
  • 微服务架构支持: 容器技能与微服务架构自然契合。通过容器化应用程序,可以更轻松地将应用程序拆分成小型服务,并通过容器编排工具(如Kubernetes)来管理这些服务的摆设和伸缩
目前最常用的容器是docker,使用go语言编写

连续交付

CI/CD是连续集成(Continuous Integration)和连续交付/连续摆设(Continuous Delivery/Continuous Deployment)的缩写。它是一种软件开辟实践,旨在通过自动化的流程和工具来加快软件的开辟、测试和摆设
连续集成(Continuous integration,简称 CI)
连续集成指的是,频繁地(一天多次)将代码集成到主干。它的好处重要有两个:
快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
防止分支大幅偏离主干。如果不是常常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成
连续集成强调开辟人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否准确地集成在一起
连续交付
连续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段
连续交付可以看作连续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的
连续交付地将经过测试的代码摆设到生产环境中,以便随时进行发布。连续交付旨在确保软件在任何时候都是可发布的状态,从而降低发布新功能或修复bug的资本
连续摆设
连续摆设(continuous deployment)是连续交付的下一步,指的是代码通过评审以后,自动摆设到生产环境,它通过自动化的流程将经过测试的代码自动摆设到生产环境中,从而实现快速、频繁地发布软件
连续摆设的目的是,代码在任何时候都是可摆设的,可以进入生产阶段
连续摆设的条件是能自动化完成测试、构建、摆设等步调
   CI/CD的实验需要借助各种工具和技能,例如版本控制系统(如Git)、自动化构建工具(如Jenkins、Travis CI)、自动化测试工具、摆设工具(如Docker、Kubernetes)等。通过CI/CD实践,开辟团队可以加快软件的交付速率,提高软件质量,降低风险,并提高团队的生产力。这种实践在当代软件开辟中被广泛接纳,并成为提高软件开辟服从和质量的紧张本领
  微服务

讲到微服务架构,是以单体架构为基础的,就像springcloud是以springboot为基础
通过微服务,可将大型应用分解成多个独立的组件,此中每个组件都有各自的责任领域。在处置惩罚一个用户哀求时,基于微服务的应用可能会调用许多内部微服务来共同天生其响应


  • 多个独立的组件,指的就是微服务
  • 独立服务一样寻常有明确定义的API,用于通讯
  • 独立服务通常由一个小型团队负责
  • 针对每个独立服务的开辟,摆设,运营维护,扩展等都不应该影响其他服务
  • 每个服务应该针对一组功能进行设计,专注于解决特定的问题
  • 每个服务不强调使用同一语言,这种称之为技能自由
容器是微服务架构的绝佳示例,当代云原生应用使用容器来构建微服务

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

去皮卡多

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表