高手问答第 226 期 —— 面对未来架构,如何追赶技术革新的脚步?

局长 发布于 04/12 07:15
阅读 9K+
收藏 46

身处互联网行业的我们一直处在变革的最前端,受到行业发展浪潮的洗礼,不停歇地追赶着技术革新的脚步。特别是近几年来,互联网架构不断演化,经历了从集中式架构到分布式架构,再到云原生架构的过程。在这个演变过程中,我们可以深刻感受到一系列的格局变化 —— 软件改变世界,开源改变软件,云吞噬开源。每一次架构模式的升级都会给这个世界的合作模式带来变化。

“云原生”因能解决传统应用升级缓慢、架构臃肿、无法快速迭代等问题而逐渐成为这个时代舞台的主角。身处变革的浪潮中,我们看到云原生的出现改变了互联网架构的航行方向,并给越来越多的企业带来了全新的理念和无限的可能。

在架构的演变过程中,技术体系也在不断革新,过去的技术比较单一,现在我们谈分布式、谈服务化、谈容器调度、谈 Service Mesh、探讨云数据库等。不仅如此,各种前沿的技术都提供了对应的优秀开源解决方案。

本期高手问答我们将围绕「架构」这个大主题进行讨论,从架构的发展历程说起,探讨在当下互联网架构的技术体系中,如何学习和读懂各种新技术,并将它融入自己的技术体系,以更新自己的技能树。

为此,我们邀请到了大家熟悉的嘉宾 —— 亮哥@亮_ShardingSphere来和大家一起探讨「未来架构」。

张亮京东数科数据研发负责人,Apache ShardingSphere 发起人兼 PPMC。

热爱分享,拥抱开源,目前主导开源项目 ShardingSphere(原 Sharding-JDBC)和 Elastic-Job。擅长方向为以 Java 为主分布式架构,以及以 Kubernetes 和 Mesos 为主的云平台构建,推崇代码优雅化,对如何编写具有展现力的代码有较多研究,目前致力于将 Sharding Sphere 打造为业界一流的金融级数据解决方案。

Sharding Sphere 已经进入 Apache 孵化器,是京东集团首个进入 Apache 基金会的开源项目,也是 Apache 基金会首个分布式数据库中间件。

欢迎大家针对互联网架构相关的知识和技术进行提问,有关 Apache ShardingSphere 的问题也欢迎一起讨论。为了鼓励踊跃提问,@博文视点  会在问答结束后从提问者中抽取 5 名幸运会员赠予未来架构:从服务化到云原生一书。

图书购买地址京东

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家向亮哥@亮_ShardingSphere积极提问,直接回帖提问即可。

加载中
5
亮_ShardingSphere
亮_ShardingSphere

引用来自“Kane.Sun”的评论

@亮_ShardingSphere 能评价下golang吗, 以及ss有切换到golang的想法吗

你好,开发语言之争是个很大的话题。Java也好,Golang也好,都有其适合的场景。Java由于有海量第三方组件,且很多业务积累都是java开发的,因此开发业务应用是首选。Golang对于基础设施而言等场景,更加轻量。

golang和Kubernetes更加契合,使用golang开发ShardingSphere的sharding-sidecar更加合适,不过目前精力有限,所以暂时还没想法。

1
大王来巡山
大王来巡山

@亮_ShardingSphere  Sharding Sphere适合放在k8s内以容器的方式运行么? 如果放在容器中,是否需要有状态工作负载(statefulset)的支持,容器挂掉会有什么影响?

1
c
citymoon

@亮_ShardingSphere  大神,你好!请问ShardingSphere与mycat相比有什么优势?性能方面那个更突出一些?有没有相关的数据报告?想要关注这一块!

1
理工小强
理工小强

@亮_ShardingSphere 架构设计中,现在是不是容器已经慢慢取代虚拟机了?比如 现在大型企业是不是已经开始从 EC2 往 容易方面迁移

1
理工小强
理工小强

我可不可以理解云原生开发是符合云厂商服务的方式,这样容易实现业务和扩展而不用关心基础设施运维,那您认为serverless方式是否适合初创团队使用呢,这样架构甚至都不需要自己部署服务本身,直接利用函数计算、云数据库开发业务

1
亮_ShardingSphere
亮_ShardingSphere

引用来自“大王来巡山”的评论

@亮_ShardingSphere  Sharding Sphere适合放在k8s内以容器的方式运行么? 如果放在容器中,是否需要有状态工作负载(statefulset)的支持,容器挂掉会有什么影响?

ShardingSphere有多种接入端。

Sharding-JDBC是java的jar,可以理解为spring boot类似的那种和业务代码部署在一起的lib库,可以与k8s一起使用,就和spring boot与k8s一起使用一样。

Sharding-Proxy作为一个独立的进程,本身是无状态的,也是可以与k8s一起用,不过Sharding-Proxy是基于java开发的,部署到k8s里略显笨重。

Sharding-Sidecar是我们还在规划中的,专门为了对接k8s的接入端,不过目前还没有开始开发。

关于这部分书中有更详细的介绍,可以关注一下这本书,也可以参考ShardingSphere的官网(https://shardingsphere.apache.org/),感谢支持。

1
亮_ShardingSphere
亮_ShardingSphere

引用来自“citymoon”的评论

@亮_ShardingSphere  大神,你好!请问ShardingSphere与mycat相比有什么优势?性能方面那个更突出一些?有没有相关的数据报告?想要关注这一块!

你好,因为我是Apache ShardingSphere的作者,所以直接发表和其他产品对比的言论难免有失偏颇,因此还请社区的同学们自发研究就好。

不过有一点可以聊一下,ShardingSphere是一个在Apache基金会的孵化器项目,除了代码之外,对于社区的健康程度同样看重。Apache基金会是一个强有力的保证,使ShardingSphere不会半途而废。我们希望和开源爱好者一起打造更好的ShardingSphere。哪怕现在的ShardingSphere有这些那些问题,只要有健康活跃的社区,它的未来就会持续变好。

 

1
亮_ShardingSphere
亮_ShardingSphere

引用来自“理工小强”的评论

@亮_ShardingSphere 架构设计中,现在是不是容器已经慢慢取代虚拟机了?比如 现在大型企业是不是已经开始从 EC2 往 容易方面迁移

你好,容器在慢慢取代虚拟机,是技术发展潮流的大势所趋。至于所有的大型企业是否已经迁移至容器,这个没经过完全的调研,不好下定论,但是不少互联网公司确实已经迁移到Kubernetes + docker的环境中。

相对于虚拟机,容器的好处不仅仅在于轻量级,还有Kubernetes这样的容器调度体系,以及Service Mesh等革新理念的支撑,对云原生应用更加友好。

关于容器调度和Service Mesh,书中有更详细的介绍,可以关注一下这本书,感谢支持。

1
亮_ShardingSphere
亮_ShardingSphere

引用来自“理工小强”的评论

我可不可以理解云原生开发是符合云厂商服务的方式,这样容易实现业务和扩展而不用关心基础设施运维,那您认为serverless方式是否适合初创团队使用呢,这样架构甚至都不需要自己部署服务本身,直接利用函数计算、云数据库开发业务

云原生的概念在书中的第一章有详细的解释,除了技术,它还有十二要素等开发理念的支撑。

云原生确实会使得基础设施下沉,让业务开发者不需要在过多的关注基础设施。

无论是serverless,还是云原生架构,都不是银弹,因此serverless是否适合初创团队,还需要根据相应的业务场景、开发周期、预计增长规模、团队的技术背景等诸多因素决定。

1
易山川
易山川

@亮_ShardingSphere 您好,您觉得现在Openstack还可以走多远?

返回顶部
顶部