首页 > 其他分享 >Go语言百万高薪开发架构师一线大牛亲授+企业项目实战+云原生架构核心

Go语言百万高薪开发架构师一线大牛亲授+企业项目实战+云原生架构核心

时间:2023-11-03 14:55:15浏览次数:42  
标签:CNCF 容器 Kubernetes 应用程序 计算 Go 架构师 Docker 亲授

Go语言百万高薪开发架构师一线大牛亲授+企业项目实战+云原生架构核心

 

第1章 云原生架构

1.1 云计算的历史
1.1.3 容器的横空出世和容器编排大战

上一次我们 提到了PaaS,PaaS的开源产品Docker对云计算领域产生了深远的影响,从虚拟机到容器,整个云计算市场发生了一次重大变革。

容器化本质上是虚拟化的改进版本,这种技术允许多个应用程序驻留在同一个服务器中。

两者之间的主要区别在于虚拟化在硬件级别分离应用程序,而容器化则在操作系统级别分离硬件程序。这意味着虚拟化使用一种称为 Hypervisor的硬件,将应用程序从物理上分离出来,并为每个应用程序提供自己的操作系统,而容器化则将它们与软件分离开来,并允许它们共享服务器的操作系统。

这消除了虚拟机低效利用资源的问题,降低了存储成本并提高了可扩展性和可移植性。基于容器方法的一个缺点是安全性,因为应用程序在服务器内没有被物理隔离。【确实】

Docker 自2013年发布开始,就带动着容器技术的热度。其实在 Docker之前,已经有LXC (Linux Container),但是LXC更多侧重于容器运行环境的资源隔离和限制(类似于一个进程沙箱),而没有涉及容器镜像打包技术,这使得LXC 并没有得到普及,LXC是Docker最初使用的具体内核功能实现。

Docker 在 LXC的基础上更进一步,规范并建设了一套镜像打包和运行机制,将应用程序和其所依赖的文件打包到同一个镜像文件中,从而使其在转移到任何运行 Docker的机器中时都可以运行,并能保证在任何机器中该应用程序执行的环境都是一样的。

Docker所提出的“Build, Ship and Run”【构建、传输、运行】的概念迅速得到了认可,Docker 也逐渐成为容器技术的领导者,甚至让很多人误认为容器就是Docker.

随着Kubernetes的成熟,以及它和 Docker的融合,基于容器技术的容器编排市场,则经历了Mesos、Swarm、Kubernetes三家的一场史诗大战,Kubernetes最终赢得了容器编排的胜利,云计算进入Kubernetes时代。

PaaS技术的主流路线逐渐过渡到Kubernetes +Docker,并于2018年左右开始占据统治地位,

在这里插入图片描述

2015年7月,Google 联合Linux 基金会成立了CNCF组织

在这里插入图片描述

,紧接着就把Kubernetes 1.0版本的源代码捐献给CNCF。Kubernetes成为CNCF管理的首个开源项目。

CNCF 力推 Cloud Native,完全基于开源软件技术栈,Cloud Native的重要理念是:以微服务的方式部署应用,每个应用都打包为自己的容器并动态编排这些容器以优化资源利用。

2018年3月,Kubernetes 从 CNCF 毕业,成为CNCF 第一个毕业项目。在容器编排大战期间,以Kubernetes为核心的CNCF Cloud Native生态系统也得以迅猛发展,云原生成为云计算市场的技术新热点。

1.1.4 云计算演进总结

云计算背后的理念由来已久,虽然目前流行的云计算形式直到20世纪90年代末才开始兴起,但是在20世纪60年代,当大型机开始流行起来时,共享计算的概念就开始出现。

大型计算机被发明为一个可以从“dumb”终端访问的集中式集线器。这些终端依靠主机进行存储和计算。尽管大型机计算和云计算之间存在明显的差异(特别是大型计算机不能通过互联网访问并托管在一个物理位置),但是大型机是第一种将信息和应用程序存储在中央集线器中的计算方法,并且可以远程访问。

这为未来的云基础架构提供了早期模型。

在这个时期出现的另一个重大突破是虚拟化技术的发展。最初创建虚拟化技术是为了允许单个计算机同时运行多个应用程序,但后来发展允许多个用户共享一个服务器,每个服务器都有自己的操作系统。

虽然这些早期的突破很重要,但直到20世纪90年代互联网的普及,现代云才出现。

自从Salesforce和亚马逊在2000年初创建IaaS、PaaS和 SaaS以来,已经有大量的云计算公司出现在各种行业中。在SaaS方面,许多主要软件供应商已经转向云交付方式,包括Oracle、SAP和 Microsoft。在 IaaS和 PaaS方面,有许多竞争对手试图蚕食亚马逊巨大的市场份额(但收效甚微)。最突出的竞争对手是Microsoft Azure和 Google Cloud.。

Docker和 Kubernetes的出现是云计算的里程碑。

在这过去的二十年间,云计算几乎重新定义了整个行业的格局,越来越多的企业开始降低对IT 基础设施的直接资本投入,不再倾向于维护自建的数据中心,而是开始通过上云的方式来获取更强大的计算和存储能力,并实现按时按需付费。这不仅仅降低IT支出,同时也降低了整个行业的技术壁垒,使得更多的公司尤其是初创公司可以更快地实践业务想法并迅速推送到市场

标签:CNCF,容器,Kubernetes,应用程序,计算,Go,架构师,Docker,亲授
From: https://www.cnblogs.com/add1188/p/17807582.html

相关文章

  • Go语言Golang DevOps运维开发实战集训营,高级运维必修
    Go语言GolangDevOps运维开发实战集训营,高级运维必修Go语言简介Go语言,也称为Golang,是一门由Google开发的开源编程语言。它的设计目标是提供一种高效、简洁、安全且支持并发的编程语言,适用于构建可靠且高性能的软件系统。Go语言在短短的时间内迅速走红,成为开发者们喜爱的选择,因......
  • 无涯教程-MongoDB - 简介
    MongoDB是一种面向文档的数据库管理系统,用C++等语言撰写而成,以解决应用程序开发社区中的大量现实问题。MongoDB由MongoDBInc.(当时是10gen团队)于2007年10月开发,2009年2月首度推出,现以服务器端公共许可(SSPL)分发。本教程适用于愿意通过简单的步骤学习MongoDB数据库的软件专业人员,它......
  • Django实战项目-学习任务系统-发送邮件通知
    接着上期代码内容,继续完善优化系统功能。 本次增加发送邮件通知功能,学习任务系统发布的任务,需要及时通知到学生用户知晓。由于目前智能手机普及,人人都离不开手机,所以手机端接收通知信息更加及时有效。 其中微信使用频率最多,本来想使用微信通知功能,但是经过网上搜集资料测试......
  • Go可以做到同等并发能力么?具体代码如何写?
     原创 磊丰 Go语言圈 2023-09-0508:30 发表于广东收录于合集#学Go语言哪些事儿231个MySQL大牛带你全面剖析与系统梳理数据库(mysql等)知识分享,总结数据库技巧和方法,提升你的技术技能。45篇原创内容公众号JetBrains全家桶正式版激活码&账号开通授......
  • logstash同步mongodb到es
    环境:OS:Centos7说明:logstash本身不自带logstash-input-mongodb插件,需要自行安装。1.安装编译工具yuminstallgityuminstallgem 2.源码编译[root@localhost]#gitclonehttps://github.com/phutchins/logstash-input-mongodb.git[root@localhost]#cdlogstash-input......
  • 09Go语言基础之函数
    函数是组织好的、可重复使用的、用于执行指定任务的代码块。本文介绍了Go语言中函数的相关内容。函数Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。函数定义Go语言中定义函数使用func关键字,具体格式如下:func函数名(参数)(返回值){函数体}......
  • 08Go语言基础之map
    Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。mapmap是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。map定义Go语言中map的定义语法如下:map[KeyType]ValueType其中,KeyType:表示键的类型。ValueType:表示键对应的值的类......
  • 12Go语言基础之结构体
    Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。类型别名和自定义类型自定义类型在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型,Go语言中可以使用type关键......
  • 16Go语言基础之接口
    接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。接口本章学习目标了解为什么需要接口以及接口的特点掌握接口的声明和使用掌握接口值的概念掌握空接口的特点及其使用场景在Go语言中接口(interface)是一种类型,一种抽象的类型。相较于......
  • Go标准库Context
    在Gohttp包的Server中,每一个请求在都有一个对应的goroutine去处理。请求处理函数通常会启动额外的goroutine用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的goroutine通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的token、请求的截止......