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年:云原生诞生
IaaS上云
IaaS上云就是把应用直接部署在云主机上,目前应用上云基本都是采用的这种方式,只有像阿里这种大厂实现了PaaS上云。这种方式上云对于开发人员来说不仅需要开发业务代码,还要做以下事情:
- 搭建数据库
- 搭建中间件(如:Redis、kafka等)
- 搭建应用监控
- ……
- 考虑为每个服务分配资源
- 及时为服务扩缩容
- 服务宕机要能及时恢复
- 实现不停机更新
- ……
文章图片
PaaS上云
PaaS上云可以让研发人员只关注业务需求的开发,对于与业务无关的通用技术都交由云平台来管理,如业务上有需要能直接拿来使用,比如云数据库、云Redis等。PaaS上云是云原生的实现方式,云原生的目的是屏蔽一切与业务无关的通用技术及资源,让研发人员把更多的精力放在业务本身上,使开发出来的应用自诞生开始就完全在云环境中生长,它所依赖的通用技术及资源都来自云环境。
说的通俗一点,就是软件上云,自动化上云,无需人工去搭建云主机上的环境。
文章图片
比如在运维方面,云原生可以实现自动化运维,资源分配、服务宕机重启、服务扩容等都可以实现自动化,无需人员干预。下面是通过k8s来实现的简单的架构图。
文章图片
每个服务都部署在容器里,通过k8s进行编排管理。
推荐阅读
- 云原生架构白皮书学习笔记(1)(为什么需要云原生)
- 云原生时代的搜索服务算力管理
- kubesphere|(十四)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的基于Raft的kafka集群服务
- 宜搭小技巧|第一时间看到审批进度(消息通知来帮你)
- 稳定性与高可用保障的工作思路
- runtime|谷歌编程之夏即将开启,快来申请开源任务吧(远程)
- 从构建到治理,业内首本微服务治理技术白皮书正式发布(含免费下载链接)
- OPLG(新一代云原生可观测最佳实践)
- 如何发起 MQTT 亿级连接和千万消息吞吐性能测试