近期发表了一篇关于云计算时代,软件设计思路应该如何转变的帖子,引发了比较热烈的讨论。但是只因文中提了一嘴自家的开源项目(其实也是原本想给讨论有个锚点,一个案例),导致被一些比较偏激的网友举报导致帖子和账号被 ban ,连同一些比较优秀的评论和探讨也一起石沉大海,着实可惜。 其实大部分网友还是看到了文章的主体内容,并且和善地进行着观点的碰撞。本着不能让这些好的观点碰撞石沉大海,我以这份帖子总结下大家当时的技术观点,也欢迎大家一起讨论交流: 观点 A(也就是楼主本人的观点): 云厂商提供的是服务而不是硬件,云服务背后是软硬一体化的设计和巨大的技术投入,比单纯的硬件更加可靠:例如云厂商提供的云盘在可用性上已经完全好于自建的本地硬盘了。可以看主流硬盘的AFR 报告为云而设计的软件,设计时应该依赖云服务,而不是硬件或者自己重新造轮子:像云盘、对象存储已经是云上极具规模化效益和技术红利的存储服务,设计新一代的云原生软件应该是去依赖云服务,而不是自己重新再写一套分布式存储系统了。 观点 B: 云还是不靠谱,之前阿里云 auth 引发大面积故障:这个其实是国内云厂商的问题被放大了,即使是美国更加成熟的云市场,aws ,gcp 等也照样发生过大面积故障。总体而言,云厂商提供的可用性和可靠性肯定还是比自建机房更高的(谁家自建机房出故障会发新闻通知大家,对不?),自己如果做个多 AZ 的毫秒级延迟的云盘,可不是一件容易得事。当然,这个讨论本身不是一个零和问题,即使楼主支持观点 A ,也依然认同在不少场景,不上云也是一个正确的选择。云服务仍然不可信,自己掌控软件更好:这个背后本质也是对于云服务的不信任,但是其实深入去思考当前云服务背后的技术架构和云厂商的技术投入的话,我相信这个观念一定会有所变化。 关于云时代的软件如何设计,欢迎大家分享自己的看法。
其实都是架构设计问题, 不同的人站的角度不一样得出来的结论自然不一样。 不同的公司由于人事、技术、成本各种方面的需求选择自然不同。 站在稳定性的角度, 大多数中小公司的自建的服务自然不如公有云的服务稳定,云厂商的硬件设备也不是一般公司有的比如 FC-SAN 存储、多个硬件负载均衡器 F5, 再了解了解新的硬件比如可编程交换机。
@yyttrr 对,其实我也认同会有一部分资金雄厚的龙头企业自己搞自建机房。去年看到一个新闻,英特尔投资了 Oxide 这家公司,可以为企业提供强大的软硬件一体化技术栈。像特斯拉这样资金财力、技术人才储备雄厚的公司,寻求这些独立的 IDC 机房建设供应商合作,我觉得也蛮合理的,这样他们可以有更好的灵活性和自主控制权。就像我前面说的,这不是一个零和问题,未来也必定不是 100%的公司企业都在云上。但是我相信现在无论国内还是国外,云渗透率还远远没有达到应有的数值。