2

来聊聊云/平台/微服务吧

 2 years ago
source link: https://zhanggq.github.io/post/zgq-paas-cloud-microservice/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

来聊聊云/平台/微服务吧

2018-07-02 约 1375 字 预计阅读 3 分钟

嗯~ o( ̄▽ ̄)o,上一篇帖子中我还在写我想研究Spring Cloud,当写这个贴子的时候我就已经想抛弃它了,那么在抛弃之前先来聊聊吧。

什么是云,我的理解云就是通过虚拟化的方式,把所有的资源整合起来统一管理调度使用。根据权威人士定义,云有三种服务模式:

  • SaaS 【software as a service】 软件即服务 – 用户通过网络租用基于Web的软件使用。(虚拟桌面,在线游戏等)
  • PaaS 【platform as a service】 平台即服务 – 指将软件研发的平台作为一种服务。(数据库,开发工具,web服务器,软件运行环境等)
  • IaaS 【infrastructure as a service】 基础架构即服务 – 用户通过网络直接访问底层的计算、存储和网络资源。(虚拟机,服务器,存储空间,网络带宽等)

SaaS不熟,剩下两个可以举个例子,Openstack和SDN都属于IaaS,因为它们既能提供虚拟机,也能提供虚拟防火墙等;而Kubernets则属于PaaS,只提供容器化的虚机,不太关注网络服务。

接着来聊平台。从广义上来说,能提供服务的就是平台,比如我们可以说Openstack平台,k8s平台这样的。但平台与平台之前肯定是有区别的,或者说提供的服务的目标不太一样。Openstack/SDN这样的平台,其主要目的是为了给客户提供虚拟化的机器/虚拟化的网络设备等等,相比之下它们更加全面,也更加传统。所以可以作为企业/运营商的一种整体解决方案,代替专线、防火墙、负载均衡、交换机等硬件设备。

KfQHigj.jpg

BbyxX9Z.png

k8s的基础是Docker,Docker这种虚拟化技术由于内核不是独立的,所以在Linux服务器上无法运行windows容器(Windows服务器上可以运行Linux容器和Windows容器)。而它的优势则是更加轻量,更快,可以当成一个单纯的服务来使用。容器化代表了“高强度工作负载”、”卓越的性能”、”原生的、一致的体验“等等,裸金属+容器也是目前的趋势,更加倾向于互联网等高新技术公司。

cBsDVsm.jpg

三、微服务

然后继续聊微服务。其实对传统公司来说,只需要云服务,有或者没有微服务,影响都不大。但容器化还是需要的,毕竟容器化之后在服务升级/扩展方面会有很大提升,所以甚至出现了k8s上再搭建Openstack/SDN这样的组合,既有容器化的优势,又有全面的虚拟化解决方案。而对于互联网公司来说,微服务的好处和前后端分离一样,就是能够提升开发/运维效率。

目前主流的三个微服务框架:Spring Cloud,Dubbo,Istio,前者是Java的,而Istio目前是基于K8s的。假象一下,如果单纯使用Spring Cloud,在某台服务器上部署应用,然后自动发现/自动路由/自动化运维/插件式管理等等,看上去很美好,但有个问题就是部署还是传统的方式:登上服务器,部署启动。按照微服务的设计,一般情况下需要启动的服务会有很多,这时候部署就成了一件很痛苦的时候。如果要解决这个问题,那么就又回到了容器化之路上来了,而走到了容器化之路上,不好意思,这里是k8s的地盘 …… 。所以,似乎还是一上来就与k8s绑定的Istio要强一丢丢。当然了,如果用k8s + 自己写compose来管理容器,这样也是可以的,毕竟据说Spring Cloud在纯java项目上,服务间的交换效率还是要比Istio高一些的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK