探索云原生之“翻译翻译,什么是云原生”

简介: 探索云原生之“翻译翻译,什么是云原生”

网络异常,图片无法展示
|


(上图来自百度百科https://baike.baidu.com/item/%E4%BA%91%E5%8E%9F%E7%94%9F/53770166?fr=aladdin

因为本人也是初次探索云原生,对云原生这个概念也不是很清楚,因此是属于边学习边输出的状态中,但其实云原生这个概念就在我们身边,比如我们学习和使用的Go语言,是云原生技术的高频编程语言,使用的Docker容器技术,是云原生的基础技术之一,广为人知的Kubernetes则是云原生的核心主流技术之一,平时使用的阿里云、腾讯云和百度云等等,也都是针对云计算和云原生的不同厂商构建的基础设施,因此我们需要的就是花一些时间去学习和了解他。

该篇文章主要是对一些优秀概念的摘取和自身了解后的一些理解,如果哪里有不对的地方还请读者和前辈指出。

在说云原生之前我们要有一个前提的概念,那就是云计算,因为云原生是由云计算技术衍生出的可以说是比较新星的技术,因此我们对云计算的理解是要有的,那我们下面先讲解云计算:

1 云计算

1.1 云计算概念

云计算(英语:Cloud Computing),也被意译为网络计算,是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备,使用服务商提供的电脑基建作计算和资源。

为什么要使用云计算?

互联网上汇聚的计算资源、存储资源、数据资源和应用资源正随着互联网规模的扩大而不断增加,互联网正在从传统意义的通信平台转化为泛在、智能的计算平台。与计算机系统这样的传统计算平台比较,互联网上还没有形成类似计算机操作系统的服务环境,以支持互联网资源的有效管理和综合利用。在传统计算机中已成熟的操作系统技术,已不再能适用于互联网环境,其根本原因在于:互联网资源的自主控制、自治对等、异构多尺度等基本特性,与传统计算机系统的资源特性存在本质上的不同。为了适应互联网资源的基本特性,形成承接互联网资源和互联网应用的一体化服务环境,面向互联网计算的虚拟计算环境(Internet-based Virtual Computing Environment,iVCE)的研究工作,使用户能够方便、有效地共享和利用开放网络上的资源。

网络异常,图片无法展示
|


(以图片上由Sam Johnston - 本W3C状态不明的矢量图使用Inkscape创作 .CC BY-SA 3.0,commons.wikimedia.org/w/index.php…

1.2 云计算的特征

互联网上的云计算服务特征和自然界的云、水循环具有一定的相似性,因此,云是一个相当贴切的比喻。根据美国国家标准和技术研究院的定义,云计算服务应该具备以下几条特征:

  • 随需应变自助服务。
  • 随时随地用任何网络设备访问。
  • 多人共享资源池。
  • 快速重新部署灵活度。
  • 可被监控与量测的服务。

一般认为还有如下特征:

  • 基于虚拟化技术快速部署资源或获得服务。
  • 减少用户终端的处理负担。
  • 降低了用户对于IT专业知识的依赖。

1.3 云计算的部署模型

(1)公用云

公用云(Public Cloud)服务可透过网络及第三方服务供应者,开放给客户使用,“公用”一词并不一定代表“免费”,但也可能代表免费或相当廉价,公用云并不表示用户资料可供任何人查看,公用云供应者通常会对用户实施使用访问控制机制,公用云作为解决方案,既有弹性,又具备成本效益。

(2)私有云

私有云(Private Cloud)具备许多公用云环境的优点,例如弹性、适合提供服务,两者差别在于私有云服务中,资料与程序皆在组织内管理,且与公用云服务不同,不会受到网络带宽、安全疑虑、法规限制影响;此外,私有云服务让供应者及用户更能掌控云基础架构、改善安全与弹性,因为用户与网络都受到特殊限制。

(3)社群云

社群云(Community Cloud)由众多利益相仿的组织掌控及使用,例如特定安全要求、共同宗旨等。社群成员共同使用云资料及应用程序。

(4)混合云

混合云(Hybrid Cloud)结合公用云及私有云,这个模式中,用户通常将非企业关键信息外包,并在公用云上处理,但同时掌控企业关键服务及资料。

2 云原生

2.1 概念引入

先引用下一个Apache大佬的演讲:

## 引用:
https://www.slideshare.net/bibryam/designing-cloud-native-applications-with-kubernetes
## 作者:
https://leanpub.com/u/bibryam
## 原文:
Applications adopting the principles of `Microservices` packaged as `Containers` 
orchestracted by `Platforms` running on top of `Cloud infrastructure`,developed 
using practices such as `Continous Delivery` and `DevOps`.
## 翻译:
基于`微服务`原理而开发应用,以`容器`的方式打包。在运行时`容器`由运行于`云基础设施`之上的平台进
行调度。应用开发采用储`持续交付`和`DevOps`实践。
复制代码

综上,云原生应用也就是面向“云”而设计的应用,在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,实现快速部署、按需伸缩、不停机交付等。

直白的讲,我认为的云原生就是把云当做原生开发环境来对待

  1. 不使用物理机进行项目的发布和维护,而是采用公有云
  2. 使用容器进行项目的运行
  3. 项目变更采用CI/CD和DevOps的方式

2.2 目前业界云原生的主要技术领域

(1)容器

容器(container)这一概念最早是在Linux中出现的,主要是通过Linux的Cgroups的资源管理能力和Namespace的资源隔离能力结合在一起实现进程级别的隔离。

(2)Kubernetes

由Google 基于 Borg 开源的容器编排调度系统,是一种基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,用户不需要再过度的关注资源的管理问题,降低操作的复杂度,提高了大规模容器集群管理的便捷性。

(3)微服务(Microservices)

微服务则是一种用于构建应用的架构方案,微服务架构有别于为传统的单体应用,它是将应用拆分成多个核心功能,每个功能都被称为一个独立的服务,可以单独构建和部署,其中某个服务出现故障也不会影响其他的功能模块,这句体现了其针对特定服务发布,影响小,风险小等特点。

(4)服务网格(Service Mesh)

服务网格指的是用于微服务应用的可配置基础架构层。在使用服务网格时通常会提供一个sidecar代理实例,主要处理 service 间的通信、监控、以及一些安全相关的考量,每个serivce里面都会有一个sidecar,同样也提供了服务发现、负载均衡、授权等功能。

(5)无服务(Serverless)

根据 CNCF 的定义,Serverless 是指构建和运行不需要服务器管理的应用程序的概念。即开发人员无需关注底层的基础设施,只需要关注应用程序的业务本身就行,且该服务是可以自动扩展。

(6)DevOps

早期的项目使用的是‘瀑布模型’进行软件交付,即一个阶段所有的工作完成之后再往下一个阶段,但这样的模式无法满足业务快速开发交付及变更需求的情况,于是后面就出现了敏捷开发这一概念,即一种快速应对需求变化软件开发能力,而DevOps就是基于敏捷开发将软件开发/测试人员/IT运维关联在一起,通过工具、组织等方式使开发、测试、发布流程自动化,软件发布频繁,高效。

(7)云(Cloud)

常常听到的‘公有云’,‘私有云’,‘混合云’都是基于这个生态衍生出来的各种场景,不同的云搭建环境,所需资源亦有所不同,比如公有云是在互联网上发布的云计算服务,而私有云则是在公司内网发布的云计算服务,目前没有一种云计算类型可以解决所有场景出现的问题,怎么选择适合自己的场景则需要根据技术需求决定。

3 总结

学习了云原生,我们不得不再回头看下在出现云原生之前我们如何开发。首先是拿来一台或多台堡垒机或一些电脑相互连接,并组成网络作为服务器集群并放在实地的机房中。首先每台单独的计算机必须是符合冯诺依曼体系的,其次网络也是符合IPv4或IPv6标准的,而且为了考虑安全,我们还会限制网络的入口规则、出口规则以及增加防火墙等等,在业务扩展时我们还需要扩展内容、硬盘或直接扩展计算机。而云原生技术的出现,让我们之前可以省略上述的很多地方,无需考虑使用的计算机是否符合冯诺依曼体系,无需手动去增加硬盘或内存,无需配置复杂的网络等等,甚至还无需考虑地域带来的业务延迟问题,因为云服务器可能再世界的任何一个地方。综上,就是我认为的云原生为什么越来越主流。

参考:

zhuanlan.zhihu.com/p/441747471

zh.wikipedia.org/wiki/%E9%9B…

baike.baidu.com/item/%E4%BA…


相关文章
|
敏捷开发 Kubernetes Cloud Native
探索云原生之“翻译翻译,什么是云原生”
探索云原生之“翻译翻译,什么是云原生”
233 0
探索云原生之“翻译翻译,什么是云原生”
|
6天前
|
人工智能 Cloud Native Java
从云原生视角看 AI 原生应用架构的实践
本文核心观点: • 基于大模型的 AI 原生应用将越来越多,容器和微服务为代表的云原生技术将加速渗透传统业务。 • API 是 AI 原生应用的一等公民,并引入了更多流量,催生企业新的生命力和想象空间。 • AI 原生应用对网关的需求超越了传统的路由和负载均衡功能,承载了更大的 AI 工程化使命。 • AI Infra 的一致性架构至关重要,API 网关、消息队列、可观测是 AI Infra 的重要组成。
|
1天前
|
运维 Kubernetes Cloud Native
云原生架构在现代企业中的转型作用与挑战
在数字化转型的浪潮中,云原生技术已成为推动企业IT架构现代化的关键力量。本文将深入探讨云原生架构的定义、核心价值及其在现代企业中的应用实例,同时分析企业在采纳云原生过程中面临的主要挑战和解决策略。通过引用最新的行业报告和案例研究,文章旨在为读者提供关于如何有效实施云原生策略的洞见。
|
1天前
|
Kubernetes Cloud Native Serverless
云原生时代的微服务架构演进之路
【6月更文挑战第28天】在数字化转型的大潮中,企业不断寻求更高效、灵活的软件开发与部署方式。云原生技术因此应运而生,它不仅改变了应用的开发模式,也重塑了微服务架构的未来。本文将探讨云原生环境下微服务架构的演进路径,包括容器化、服务网格、无服务器计算等关键技术的应用与挑战,并展望未来微服务架构的发展方向。
|
2天前
|
运维 Cloud Native API
云原生架构的演进与未来
本文旨在深入探讨云原生架构的演进历程,以及其对未来技术发展的影响。通过分析云原生技术的关键组成部分,如容器化、微服务、自动化管理和声明式API,并结合最新的行业报告和案例研究,揭示云原生如何推动现代软件开发和运维的变革。文章还将预测云原生技术的未来趋势,为读者提供对云原生架构深层次理解的同时,展望其带来的潜在机遇与挑战。
8 1
|
6天前
|
Kubernetes 监控 Cloud Native
云原生架构下的微服务治理实践
【6月更文挑战第23天】在云计算的浪潮中,云原生架构以其弹性、可扩展性和高效性成为企业数字化转型的重要推手。本文将深入探讨如何利用云原生技术实现微服务的治理与优化,确保系统的稳定性和高可用性。我们将从微服务的基本概念出发,通过具体案例分析,揭示云原生环境下微服务治理的关键策略,并分享实践经验,旨在为读者提供一套完整的微服务治理解决方案。
|
3天前
|
运维 Cloud Native 持续交付
云原生架构:企业数字化转型的加速器
在数字化浪潮席卷全球的今天,企业面临着前所未有的挑战与机遇。本文将深入探讨云原生架构如何成为企业数字化转型的强大推动力,通过分析云原生技术的核心要素、实施策略以及成功案例,揭示其在提升业务敏捷性、降低成本和增强创新能力方面的关键作用。我们将借助最新的行业报告和科研数据,为读者呈现一个科学严谨、逻辑严密的云原生世界。
13 1
|
4天前
|
运维 Cloud Native 安全
云原生架构的演进与实践
【6月更文挑战第25天】本文将深入探讨云原生技术从概念提出到实际应用的发展过程,分析其核心价值和面临的挑战。文章将通过具体案例,展示云原生如何促进企业IT架构的现代化转型,并讨论在实施过程中的最佳实践和注意事项,旨在为读者提供一份云原生技术落地的实用指南。
13 2
|
5天前
|
运维 负载均衡 Cloud Native
云原生架构下的微服务治理实践
【6月更文挑战第24天】在云原生的浪潮下,微服务治理成为确保系统弹性、可维护性和可观测性的关键。本文通过深入分析微服务治理的核心要素与挑战,结合前沿技术和工具,提出一套实用的微服务治理策略,旨在帮助开发者和架构师构建更加稳定、高效且易于管理的分布式系统。
|
8天前
|
监控 Cloud Native 持续交付
云原生时代的微服务架构演进
【6月更文挑战第21天】随着云计算技术的不断成熟,云原生概念逐渐成为IT行业的新宠。本文将聚焦于云原生环境下的微服务架构,探讨其在设计哲学、技术选型和部署策略上的演进。我们将通过分析微服务架构的核心原则及其与容器化、持续集成/持续部署(CI/CD)和DevOps实践的结合,来揭示如何构建一个高效、可靠且易于维护的分布式系统。