合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
前言
云计算的概念非常广泛,本文仅以个人的工作、学习体会记录之。
多年的工作经历,让我对架构的重要性的理解越来越深刻,基本上,一个设计良好的架构大体上决定了事情成败与否,这不只适用于某个项目,基本上做人做事都是如此,事前没有一个好的框架来指引,后续可能要花费巨大成本进行改善。
但是,伟大的小平同志说,摸着石头过河,不管黑猫白猫,能捉到老鼠的就是好猫。
基本概念
简单来说,就是:
没有云计算时:反正啥都是你自己干,从硬件到软件,需要懂十八般武艺;
· IaaS:人家(云服务提供商如阿里云、aws)给你一台计算机,你要自己装操作系统(windows、linux等)和所有应用软件;
· PaaS:人家给了你一台装好操作系统和初始运行环境(如python、go)的计算机,你要自己部署应用;
· SaaS:人家啥都给你装好了,你用就行了,如Microsoft的office365,人家现在已经不靠卖office光盘挣大钱了,人家现在把在线office租给你用,你爱用多久就多久,当然,你用得越久,微软越开心。
Tips:大型的云服务提供商(如aws、azure、gcp、aliyun、ibm cloud)都能提供Iaas/Paas/Saas的全套产品和服务,他们能提供包括服务器、存储、数据库、网络、软件、分析、智能等计算服务,也有一些小型的云服务提供商提供某一方面的产品和服务,如Heroku的PaaS服务就很有特色。 知名的Iaas平台有开源的openstack,PaaS平台有cloud foundry,就是说,如果你巨有钱没地方花,你可以建个IDC买一堆服务器,安装上openstack,你就可以对公众提供IaaS服务了。
发展历程
从上世界90年代开始兴起的互联网,在近30年的时间里以颠覆者的姿态把很多行业给upgrade或者消灭了,撸了n多行业的羊毛赚了个盆满钵满,同时也要看到整个人类的生产生活面貌都发生了根本性变化。无他,马克思老爷爷说,生产力要适应生产关系,互联网代表了一种更高效的生产生活组织方式,所以,最广大人民利益的代表也提出了互联网+的战略要对各行各业赋能。
互联网能有这么一种强大的力量,代表的是一种技术的力量,但也是一路一步步发展过来的,并由此诞生了云计算这个领域。
简单来回顾一下(其实就是拆拆拆):
STEP 1: 啥都部署在单台服务器
STEP2:把数据库分离出来单独部署
STEP3:把常用的数据建立本地或远程缓存
STEP4:建立应用服务器集群并用负载均衡来调度
STEP5:数据库进行拆分
STEP6:引入CDN加快访问
STEP7:数据库改造为分布式加快读写
STEP8: 使用NoSQL等对海量数据搜索优化
STEP9:拆分应用部署到不同应用服务器
STEP10:公用的应用(如用户管理)优化
到STEP10,架构已经非常复杂,可能涉及成千上万的服务器和应用的部署。
总结
Iaas/PaaS/SaaS描述的是单个应用的部署方式,比如数据库Mysql,可以用一台虚拟机自己从安装操作系统开始部署,也可以直接用SaaS方式直接用,以上的10个图,描述的是一个完整的系统(如12306网站)的架构,这些架构由多个应用和其他资源通过合适的组网方式构成,以达到高性能、高可用、可伸缩、可扩展、安全的系统建设目标。 新冠病毒疫情以来,以及可以预计,将来的生产生活会越来越依赖网络,涉及云管端:
· 云计算解决的是如何提供一个稳定、高效的应用系统的问题;
· 电信运营商解决的是如何提供一个稳定、快速的管道问题(如5G网络);
· 苹果等一众的公司解决的是如何向最终用户提供稳定、友好的各种形态的终端问题;
云计算强调的是对计算能力的合理组织和充分挖掘,从这点来说,对于电信行业,并非非常匹配,电信行业解决的是管道问题,也就是传送效率的问题,强调的是转发快慢而不是计算能力。当然,云计算的理念绝对值得电信行业借鉴,也肯定而且已经得到成功的应用。
对于个人来说,对于云计算大致上存在开发、运维两条路,且随着CI/CD、DevOps这些模式的成功实践,两者的界限已经非常模糊。基本的技能,如linux常用指令、TCP/IP/HTTP协议的了解,这些是需要必备的。
TOP