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

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

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

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

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

1 云计算

1.1 云计算概念

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

为什么要使用云计算?

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

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

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标准的,而且为了考虑安全,我们还会限制网络的入口规则、出口规则以及增加防火墙等等,在业务扩展时我们还需要扩展内容、硬盘或直接扩展计算机。而云原生技术的出现,让我们之前可以省略上述的很多地方,无需考虑使用的计算机是否符合冯诺依曼体系,无需手动去增加硬盘或内存,无需配置复杂的网络等等,甚至还无需考虑地域带来的业务延迟问题,因为云服务器可能再世界的任何一个地方。综上,就是我认为的云原生为什么越来越主流。

参考:

https://zhuanlan.zhihu.com/p/441747471

https://zh.wikipedia.org/wiki/%E9%9B%B2%E7%AB%AF%E9%81%8B%E7%AE%97

https://baike.baidu.com/item/%E4%BA%91%E5%8E%9F%E7%94%9F/53770166?fr=aladdin

相关文章
|
敏捷开发 Kubernetes Cloud Native
探索云原生之“翻译翻译,什么是云原生”
探索云原生之“翻译翻译,什么是云原生”
|
8天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
15天前
|
Kubernetes Cloud Native 持续交付
云端新纪元:云原生技术重塑IT架构####
【10月更文挑战第20天】 本文深入探讨了云原生技术的兴起背景、核心理念、关键技术组件以及它如何引领现代IT架构迈向更高效、灵活与可扩展的新阶段。通过剖析Kubernetes、微服务、Docker等核心技术,本文揭示了云原生架构如何优化资源利用、加速应用开发与部署流程,并促进企业数字化转型的深度实践。 ####
|
2天前
|
Kubernetes Cloud Native 云计算
云原生技术深度解析:重塑企业IT架构的未来####
本文深入探讨了云原生技术的核心理念、关键技术组件及其对企业IT架构转型的深远影响。通过剖析Kubernetes、微服务、容器化等核心技术,本文揭示了云原生如何提升应用的灵活性、可扩展性和可维护性,助力企业在数字化转型中保持领先地位。 ####
|
2天前
|
运维 Cloud Native Devops
云原生架构:重塑企业IT的未来####
随着数字化转型浪潮的汹涌,云原生架构凭借其高度灵活、可扩展和高效的特性,正逐步成为企业IT系统的核心。本文将深入探讨云原生架构的核心要素、技术优势以及如何引领企业实现业务创新与敏捷交付。 ####
|
3天前
|
运维 Kubernetes Cloud Native
Kubernetes云原生架构深度解析与实践指南####
本文深入探讨了Kubernetes作为领先的云原生应用编排平台,其设计理念、核心组件及高级特性。通过剖析Kubernetes的工作原理,结合具体案例分析,为读者呈现如何在实际项目中高效部署、管理和扩展容器化应用的策略与技巧。文章还涵盖了服务发现、负载均衡、配置管理、自动化伸缩等关键议题,旨在帮助开发者和运维人员掌握利用Kubernetes构建健壮、可伸缩的云原生生态系统的能力。 ####
|
14天前
|
监控 Cloud Native Java
云原生架构下微服务治理策略与实践####
【10月更文挑战第20天】 本文深入探讨了云原生环境下微服务架构的治理策略,通过分析当前技术趋势与挑战,提出了一系列高效、可扩展的微服务治理最佳实践方案。不同于传统摘要概述内容要点,本部分直接聚焦于治理核心——如何在动态多变的分布式系统中实现服务的自动发现、配置管理、流量控制及故障恢复,旨在为开发者提供一套系统性的方法论,助力企业在云端构建更加健壮、灵活的应用程序。 ####
61 10
|
9天前
|
Kubernetes Cloud Native API
云原生架构下微服务治理的深度探索与实践####
本文旨在深入剖析云原生环境下微服务治理的核心要素与最佳实践,通过实际案例分析,揭示高效、稳定的微服务架构设计原则及实施策略。在快速迭代的云计算领域,微服务架构以其高度解耦、灵活扩展的特性成为众多企业的首选。然而,伴随而来的服务间通信、故障隔离、配置管理等挑战亦不容忽视。本研究聚焦于云原生技术栈如何赋能微服务治理,涵盖容器编排(如Kubernetes)、服务网格(如Istio/Envoy)、API网关、分布式追踪系统等关键技术组件的应用与优化,为读者提供一套系统性的解决方案框架,助力企业在云端构建更加健壮、可维护的服务生态。 ####
|
10天前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
29 2
|
10天前
|
弹性计算 监控 Cloud Native
云原生架构下的性能优化实践与策略####
在数字化转型加速的今天,云原生技术以其弹性、敏捷和高效的特点成为企业IT架构转型的首选。本文深入探讨了云原生架构的核心理念,通过具体案例分析,揭示了性能优化的关键路径与策略,为开发者和企业提供了可操作的实践指南。 ####

热门文章

最新文章

下一篇
无影云桌面