1 云计算发展进程

图片来自《开课吧》

  • 2000年:sun公司研发出了高性能服务器,用于支撑企业的关键业务
  • 2001年:假设一个公司购买了一台8核16G的服务器,但开发的应用可能只需要4核8G,剩余的资源可以提供给其他的应用使用,但这样会出现一个问题,如果两个应用是两个团队开发的,那么这两个团队能够互相看到对方的应用代码,这就好比两个住在同一间屋子里的人,他们的生活隐私是互相透明的,但如果一个应用独占这台服务器,又会导致资源的浪费。为了解决这些问题,IBM研发出了VMware,虚拟机的好处就是可以实现资源隔离,弹性扩缩容,能充分发挥硬件资源。
  • 2006年:Amazon公司提出了IaaS(Infrastructure as a Service),基础实施即服务。就是把硬件资源,比如服务器、DNS、存储等通过虚拟化技术抽象成服务给企业用。企业不需要再建立机房,把应用部署在公有云上即可。
  • 2009年:HEROKU公司提出了PaaS(Platform as a Service),平台即服务。就是对IaaS进行了一层封装,提供了一些基础软件应用,比如阿里云上的MySQL、Redis等。
  • 2010年:随着云上的虚拟机不断的增多,管理起来非常复杂,此时出现了OpenStack,实现了对虚拟机的可视化管理。
  • 2013年:虚拟机的弊端是非常占用资源,需要安装客体机,所以docker应运而生,更轻量化的虚拟化技术。
  • 2015年:云原生诞生

2 何为云原生

云原生就是将上云所需要的技术标准化、规范化,降低上云的门槛。如果把云资源比作电力资源、业务系统比作用电的终端设备,那么云原生就相当于供电系统。电可以通过火力发电、风力发电、光伏发电等产生,产生的电都由统一的供电系统进行传输,这样用电设备只需要配备一个标准的插头就可以很方便的即插即用的使用电。同样的,云原生也是为了业务系统能够即插即用的使用云资源。
IaaS上云
IaaS上云就是把应用直接部署在云主机上,目前应用上云基本都是采用的这种方式,只有像阿里这种大厂实现了PaaS上云。这种方式上云对于开发人员来说不仅需要开发业务代码,还要做以下事情:

  • 搭建数据库
  • 搭建中间件(如:Redis、kafka等)
  • 搭建应用监控
  • ……

对于运维人员来说需要:

  • 考虑为每个服务分配资源
  • 及时为服务扩缩容
  • 服务宕机要能及时恢复
  • 实现不停机更新
  • ……

在这里插入图片描述
PaaS上云
PaaS上云可以让研发人员只关注业务需求的开发,对于与业务无关的通用技术都交由云平台来管理,如业务上有需要能直接拿来使用,比如云数据库、云Redis等。PaaS上云是云原生的实现方式,云原生的目的是屏蔽一切与业务无关的通用技术及资源,让研发人员把更多的精力放在业务本身上,使开发出来的应用自诞生开始就完全在云环境中生长,它所依赖的通用技术及资源都来自云环境。
说的通俗一点,就是软件上云,自动化上云,无需人工去搭建云主机上的环境。
在这里插入图片描述
比如在运维方面,云原生可以实现自动化运维,资源分配、服务宕机重启、服务扩容等都可以实现自动化,无需人员干预。下面是通过k8s来实现的简单的架构图。
在这里插入图片描述
每个服务都部署在容器里,通过k8s进行编排管理。

更多推荐