为什么要学习云原生
1. 当今的一个热点,热在哪里,大部分的企业都在上云,借助云的优势,运行自己的服务
2. 是现在和未来的一个趋势
3. 和微服务相关?微服务是云原生相关技术之一
学习云原生的哪些内容
1. docker
2. k8s
3. ....
如何学习云原生
1. 实践
2. readbook + Official document + blog
3. ...
云原生的应用场景
…
什么是云原生
- 云原生产生的背景是什么
云计算的发展,推动企业将自己的服务发布到云上,但是传统的服务,不能充分利用云提供的服务,出现了一系列问题,例如,1. 单体服务,导致系统紧耦合,开发部署灵活性不足,2. 瀑布式开发模式导致上线迭代慢,3. 基于虚拟机去运行程序,开销大,4.应用程序对底层操作系统依赖性强,5.基础设施手动管理低效
为了解决这些问题,云原生提供了一种解决方案,帮助企业软件上云
- 基础设施层面 >>> 有专门企业提供云平台基础设施,方便企业使用
- 软件架构,程序开发,部署维护 层面 >>> 微服务,docker等技术
- 定义
- 云原生是一种框架,Pivotal公司是云原生概念的提出者,云原生架构定义为具有六个特性:模块化、可观测性、可部署性、可测试性、可处理性以及可替换性
||
V- DevOps+持续交付+微服务+容器
- 相关技术
- 容器
- 微服务
- DevOps == 开发运维一体,目的是持续集成、持续交付,协调软件生命周期中设计、开发、测试与部署这些活动,让开发与运维人员一起高效工作。
DevOps因Docker的使用而更加简单,与微服务很多技术有重合,但两者的关注点并不同,微服务帮助我们以一种细颗粒度的方式开发、测试和发布服务,而DevOps提倡小规模和小批量的持续集成和持续部署,两者相辅相成的,共同解决问题。
什么是容器技术
容器技术:是一种通过虚拟化技术(操作系统层)隔离主机上的不同进程,从而达到进程之间、进程和宿主操作系统相互隔离、互不影响的技术。
容器技术最早应用于哪里
linux操作系统,2008 年,通过将 Cgroups 的资源管理能力和 Linux Namespace (命名空间)的视图隔离能力组合在一起,一项完整的容器技术 LXC (Linux Container)出现在了 Linux 内核中,这就是如今被广泛应用的容器技术的实现基础。
随后随着容器管理器(Docker、Rocket和CloudFoundary Garden)兴起,定制容器宿主操作系统(CoreOS、Ubuntu Snappy、Red Hat Atomic)盛行,容器被有效构建和管理、并在各行各业普遍使用和认可。
容器和虚拟机是什么关系
容器是一个标准的软件单元,将代码及其所有依赖项打包在一起,这样应用就可以快速可靠的从一个环境迁移到另一个环境。容器的标准化、轻量级、隔离强等特性,让应用具有在各环境中快速流转、共享系统内核提高资源使用效率、运行更加安全等能力。
虚拟机:虚拟出来一个机器,虚拟化软件虚拟出了一套硬件接口,再将一个操作系统,或者操作系统以上的的层对接上这一套硬件接口,再去运行程序;目标是建立一整套操作系统。
虚拟机需要安装另一层操作系统才能执行应用程序,而容器内不需要安装操作系统就能执行应用程序。
容器:伪造的是操作系统接口,将函数库层以上的功能置于操作系统上,容器直接将一个应用程序所需的相关程序代码、函数库、环境配置文件都打包起来建立沙盒执行环境。
容器是一个文件系统,挂在容器根目录
区别与虚拟机,容器不是在系统外再建立虚拟环境,而是在系统内的核心系统层来打造虚拟执行环境,透过共享宿主系统的做法,取代一个个虚拟机的功能。因此,容器也被称为是系统层的虚拟化技术。