从来不写文章,第一篇文章,无从下手,毕竟高中语文就从来不及格。先来总结一下,最近涉及的的一些云知识。
貌似现在大大小小公司都在做云,甚至仅仅是把JBOSS部署到了EC2,也要说我们是基于云的。 这句话确实没错,也挑不出来理。用一个不太恰当的说法就是,一个环卫工人早上把天华一路扫了一遍,然后每次遇到人就说,我是扫地球清洁工,好像整个地球都是他的。不明真相的同学要擦亮眼睛哦,当然吹牛逼也是很重要的一件事情。
处理复杂问题的时候,总会想起一句话。如果你觉得问题过于复杂,那么尝试在上面加一层,如果一层不行,那就再加一层,楼层太高了,那就推倒重来。
其实云计算就是这么搞的----分层。
这就涉及到了这几个说烂了的词,IaaS,PaaS,SaaS,CaaS (Xaas =>Xxxx-as-a-Service 中文就是Xxxx即是服务),尽管都是写老词了,但是我发现很多同学还是没搞明白。
IaaS => Infrastructure-as-a-Service 基础设施即是服务, 简单的不科学说法就是,人家买了一堆电脑租给你用。这是第一层。解决了之前企业要买服务器,装修机房,还要随时防止你没交物业给你停电的问题。服务器都在供应商那, 你不用管啥时候维护。牛逼的供应商很多,阿里云,网易,Azure,AWS-EC2,AWS中国(中国的AWS跟米国的不是一回事,很多服务没有哦)
PaaS =>这个词不好理解,Platform-as-a-Service 平台即是服务, 简单的不科学说法就是,人家帮你装好操作系统了和基础软件啦。供应商不仅帮你装好了操作系统还有很多基础软件,例如JAVA/Python的环境,让你上传代码就可以启动服务了。 牛逼的供应商很多,GAE/BAE/SAE,Heroku,JCS(oracle JAVA-Cloud-Service)。PaaS 系统提供很多OOTB的功能,例如编译环境,CI/CD,SCM,LB,DNS,Log, DB, Cache。其实我发现很多时候SAAS和PAAS大家分也分不清楚,随缘啦。
SaaS => Software-as-a-Service 软件即是服务, 简单的不科学说法就是,人家帮你装好word啦.这里是Application层,相当发达,咱们小公司,还是在这里机会更多。例如你想要短信服务,阿里云去买。你想要直播服务,优酷去买。你想要CDN服务,各个大厂商都在卖(七牛,阿里云,AWS-S3)。
CaaS =>这个次比较新,Container-as-a-Service 容器即是服务, 简单的不科学且不形象的说法(我也不知道怎么比喻)就是,人家帮你在你mac上装了10个IE(注意,CaaS 有很多中说法,有人说是Communications,有人说是Commerce还有人说是Cloud, 这里只讨论容器服务)。随着容器的迅速发展,开始有大量厂商提供容器服务,让企业成本(现金成本和管理成本)更低,他们一般都提供容器编排服务。流行度还没那么高,目测很多企业还是在ISSA的基础上使用容器编排软件来搞。比较流行的是Docker,Rancher,Kubernetes和Mesos。
IaaS VS PaaS
简单点说IaaS提供虚拟机,而PaaS提供了IDE和测试环境。用了IaaS你就可以装很多乱七八糟的软件了,而PaaS可能对你的行为进行限制,例如你在BAE上部署一个spring项目,你想读取磁盘的一个文件。PaaS会说NO,它已经帮你弄好了编译/运行时环境,限制也大,但是简单。如果你用IaaS,这是你的虚拟机,你可做任何你想要的,rm -rf / 也可以。应用级别的软件就要自己装自己搞了。
PaaS VS CaaS
PaaS针对特定的应用,提供了整套的解决方案,但是对于个性化需求限制太大,随着DevOps/Micro-Service的迅速发展,越来越多的公司期望通过环境的统一解决Dev/Test/Production的一致性问题,让部署更加自动化与统一化。容器来了,特别随着Docker的牛逼,这个神器让复杂的Micro-service问题降低了很大的门槛。当然CaaS也更便宜。
听起来,Xxxx-as-a-Service 似乎感觉是继承关系。确实是,但不是绝对的。
硬件放在数据中心DC,数据中心上弄IaaS,然后在IaaS上搭建PaaS和CaaS,PaaS/CaaS上弄SaaS。
本文重点,当自己吹牛逼说我们是云的时候,问自己几个问题,我们是啥-as-a-Service,还是仅仅是用了人家厂商的云服务,最重要的一个问题,问一问把一个服务的instance从10扩展到1000个需要多长时间。
写的比较粗糙,只是自己的一些简单理解。