云原生概念
云计算和云原生
云计算和云原生其实都是表达一个意思,只是站的角度不一样。
- 云计算,更多是站在产品或者运营的角度来解释怎样充分使用物理机的计算资源;
- 云原生,更多是站在技术实现的角度来解释怎样充分使用物理机的计算资源;
1、云计算
云计算是什么
通过互联网向用户提供计算资源,其中最为基础的计算资源就是服务器、存储和网络资源等,甚至是直接开放一个系统\函数,这些资源是互联网世界的基础设施。
供应商将大量的基础设施进行统一管理,通过虚拟化等技术本事,形成巨大的可动态分配资源池,大大促进了物理资源的使用率,因此也使得租用成本降低。企业只需要按照使用量进行付费,再不消付出昂贵的设施购买、维护成本。除此之外,云服务另有可随时按需伸缩容量、备份恢复简单、快速摆设易于集成等优点。
云计算范例企业:阿里云、谷歌云、IBM 云、腾讯云、华为云等。
云计算特点
- 弹性和可扩展性:用户可以根据需要随时增长或淘汰计算资源,以满足应用程序的需求;
- 资源共享和多租户: 云计算可以为多个用户提供服务,同时确保他们的计算资源不会相互干扰;
- 自助服务和按需付费: 用户可以本身选择和设置计算资源,并只需为他们使用的资源付费,而不必承担硬件和软件的维护成本;
- 高可用性和灾备恢复:云计算通常采用分布式系统和多个数据中央来提高可用性,并提供备份和恢复功能,以应对各种故障和灾难;
云计算的发展已经极大地改变了人们使用和管理计算资源的方式,成为企业和组织一样平常业务的关键基础设施之一。
云计算怎样在产品上体现
- On-Premises:当地摆设,即把所有内容和数据都存储在当地的模式。比如本身去拼装电脑搞定网络并本身开发程序;
- 优点:数据存储可控,安全;高度支持定制化;
- 缺点:成本相当高;系统稳定性可能会很差;
- IaaS:基础设施即服务,即计算基础资源(硬件),如 CPU、内存和网络等由供应商提供,上层利用系统、应用、数据等由用户本身研发。比如本身去直接买一台电脑,然后开发程序;
- 优点:成本相对较低;更稳定的存储和网络;
- 缺点:基础设施出现问题时很难找到毗连人来办理;
- PaaS:平台即服务,即提供一套包括硬件、利用系统和运行环境的工作平台,用户只需要开发应用和存储数据即可。比如腾讯云和阿里云服务器就是 PaaS 平台;
- 优点:仍旧能实现大部分的自定义且开发更敏捷;
- 缺点:仍旧需要开发职员到场;
- SaaS:软件即服务,即运行在云基础设施上的应用(包括数据存储),提供某个业务线完备的办理方案,用户不需要开发程序,开箱即用。比如淘宝、京东等购物平台,或者腾讯视频、爱奇艺等视频平台;
- 优点:上手难度低,险些任何人都可以使用;
- 缺点:可定制化的自由度最低;
- FaaS:函数即服务,即把某个小功能作为基础服务开放给用户,开箱即用;
云计算在摆设上的多样性
公有云
公有云是为广大用户、个人或企业提供的云基础设施。公有云就是第三方的公有云供应商为用户提供可通过互联网访问的虚拟环境中的服务器空间。然后,用户可以通过购买云服务器、数据存储和其他与云相干的服务等公有云服务来访问这些服务器。
公有云举例:阿里云、腾讯云…
私有云
私有云是云计算的另一种形式。它为一个企业或组织提供专用的云环境。私有云可以由企业或组织内部的 IT 团队(或者公有云供应商为企业量身定做并专用的)在该组织的防火墙后面进行内部利用,因此组织可以更好地控制其计算资源。私有云主要由企业使用,因此它也被视为一种企业云。
私有云存在于企业的局域网或云计算供应商的数据中央,其中所有数据都在防火墙后面受到保护。因此专有云是具有极高安全级别的云计算办理方案,但是私有云的使用成本大概不是所有企业都可以承担的。
肴杂云
肴杂云是一种云计算模型,它通过网络毗连组合一个或多个公有云和私有云环境,允许在差别的云环境之间共享数据和应用程序。
肴杂云环境允许企业根据业务需求在差别的云环境中分配工作负载。例如,企业可以在私有云环境中运行焦点服务,以便更好地控制和定制环境以满足其需求。当工作负载超出可用资源的限定时,可以将其他工作主动传输到公有云环境。这种方法为按需服务提供了额外的容量,这种方法通常称为"云爆发",由于额外需求将在公有云上运行,因此存储、计算和所有其他容量险些没有限定。
2、云原生
云原生是什么
云原生 (Cloud Native),云指的是云计算,原生指的是生来就支持,即从它计划的时候就天然支持云计算。
它是一种计划和构建应用程序的方法,旨在最大化云计算技术和基础设施的优势,以实现高效、可靠和可扩展的应用程序运行。
云原生应用程序通常使用容器化摆设、微服务架构、连续集成和交付等现代技术和工具,以便更好地使用云计算的弹性、可扩展性和主动化管理等特性。
云原生应用的特点
- 现代化应用计划 (12 要素)
- 容器化摆设:将应用程序打包到独立的容器中,以便在差别的环境中运行和摆设;
- 微服务架构:将应用程序拆分为多个小型服务,以便更机动和高效地开发和摆设应用程序;
- 主动化管理:使用主动化工具和流程,以简化应用程序摆设、扩展、监控和修复等管理任务;
- 连续集成和交付(ci/cd):采用主动化流程和工具,以便更快地集成和发布应用程序;
- 可观察性和可维护性:使用监控、日志和跟踪工具,以便更好地理解和管理应用程席的举动和性能;
现代化应用计划 (12 要素)
为云原生应用计划的,在计划和开发阶段去迎合云平台以及整个生态的本领,从一开始就要做一个适合在云上跑的服务,需要达到的 12 步调要求。
- Codebase:基线代码,即对项目代码的 git 管理准则;
- 一个项目一个堆栈;
- Git分支也不要分岔之后合不返来了;
- 不要在多个堆栈出现重复的代码,把通用的代码抽成独立维护的堆栈;
- Dependencies:显式和隔离的依赖,即对依赖的管理要求;
- 完善的依赖管理机制、显式的依赖声明文件和版本锁机制,可以大概淘汰因为错误的依赖版本导致的 Bug ;
- Configuration:设置分离存储到环境中,即设置与代码产物分离;
- Build, release, run:严格分离构建、发布、运行,即用好 CI/CD 平台、主动化管理和项目管理系统,解耦这三个步调;
- 职责和关注点的分离。构建是开发测试职员更关注的、发布是产品司理更关注的、运行是运维更关注的;
- Dev/prod parity:环境对等,即差别环境(开发、测试、预发、生产)的设置尽可能雷同,淘汰"我当地正常,测试/预发环境运行出错"的问题;
- 反例:开发环境使用 TiDB、测试环境使用 MySQL 或预发环境没有开启 MySQL 主从,生产环境开启 MySQL 主从;
- Backing services:分离基础的后端组件,即把后端基础组件(数据库、缓存、消息队列等)分离,分开摆设,提高容错性;
- 所有依赖的基础组件或者其他应用服务,都视为独立于自身之外的资源,独立摆设,通过网络访问;
- 用面向对象的术语类比,就是把服务间的关系看作"关联"的而非"组合","关联"意味着更弱的耦合,仅通过网络端口与这些依赖的服务交互,而不是进程间通信;
- Processes:无状态的服务进程,即要求服务高度自治,程度拓展本领强;
- Port binding:自带端口绑定,即每个服务都要自定义端口,不要使用框架默认的端口;
- Concurrency:通过进程的程度扩展增大并发本领,即由于无状态的应用服务,很容易实现程度扩展,具有很强的伸缩性;
- Disposability:易处理 - 快速启动和优雅退出,即要求具有快速扩缩容的本领,且缩容时应该尽可能减小带来的影响,比如怎样应对下线时到临的流量;
- Log:日志作为事件流,即应用不应该管理日志,而是将日志管理工作交给日志网络工具,由他去统一处理和网络并以时间顺序进行存储;
- Admin Processes:分离管理类任务,即将管理任务作为一次性进程运行;
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |