Categories
程式開發

分布式数据库在光大银行关键业务系统的应用探索

近十年,我和我的团队一直负责光大银行总行的数据库运维,这里面既包括交易型数据库,也包括 MPP,还有 Hadoop 这样的大数据运维。在运维的过程中,我们一直也在思考现在的数据库有哪些问题、面临哪些风险、数据库技术的发展趋势是什么,这一点是很重要的,因为它决定了我们为什么要转向分布式,我们希望分布式能替我们解决哪些问题,它能够解决哪些问题和它不能够解决哪些问题。我们现在运维的数据库包括商业数据库,像 Oracle、SQL Server、DB2;也有开源数据库,像关系型的 MySQL、NoSQL 数据库、Redis(KV 型),还有大数据、MPP,和分布式数据库等等。

目前运维的数据库面临哪些挑战?

Categories
程式開發

带你轻松遍历用户生命价值与流失挽救(下):流失分析与产品化

前言:第一篇是从用户生命周期出发,用一个短视频的案例来做分析,阐述了用户价值体系。本文下篇,将从价值与流失的分析角度来做一些分享。本文涉及到的知识点有:用户生命周期、流量方向的分析方法论、用户分群、用户挖掘、算法、渠道归因、拉新、端承接、运营、产品等。除了遍历这些知识外,文章的核心部分是关于两个数据产品的(关于数据产品方向文章没有做更多阐述)。

用户水池与流失

关于流失与召回,这个是长久不衰的一个话题。 在业务活动中,涉及到的角色还是蛮多的,比如产品角色、运营角色、数据分析角色、甚至渠道市场角色都有。

本文将从数据分析的角度来探索一个关于流失的业务场景,以及通过驱动运营、投放等一系列的动作来应对流失挽救,这些落地就成为一个系统化的工作。

曾经繁荣的第三方应用市场,这几年前来逐渐走向没落。从百度巨资吞了 91 助手,到应用手机厂商崛起达到顶峰,整个应用市场已经经历过多轮洗牌。

“荚,再见!豌豆荚、PP …

Categories
程式開發

进击的Kubernetes调度系统(一):Scheduling Framework

Kubernetes已经成为目前事实标准上的容器集群管理平台。它为容器化应用提供了自动化部署、运维、资源调度等全生命周期管理功能。经过3年多的快速发展,Kubernetes在稳定性、扩展性和规模化方面都有了长足进步。 尤其是Kubernetes控制平面的核心组件日臻成熟。而作为决定容器能否在集群中运行的调度器Kube-scheduler,更是由于长久以来表现稳定,且已能满足大部分Pod调度场景,逐渐不被开发人员特别关注。

伴随着Kubernetes在公有云以及企业内部IT系统中广泛应用,越来越多的开发人员尝试使用Kubernetes运行和管理Web应用和微服务以外的工作负载。典型场景包括机器学习和深度学习训练任务,高性能计算作业,基因计算工作流,甚至是传统的大数据处理任务。此外,Kubernetes集群所管理的资源类型也愈加丰富,不仅有GPU,TPU和FPGA,RDMA高性能网络,还有针对领域任务的各种定制加速器,比如各种AI芯片,NPU,视频编解码器等。开发人员希望在Kubernetes集群中能像使用CPU和内存那样简单地声明式使用各种异构设备。

总的来说,围绕Kubernetes构建一个容器服务平台,统一管理各种新算力资源,弹性运行多种类型应用,最终把服务按需交付到各种运行环境(包括公共云、数据中心、边缘节点,甚至是终端设备),已然成为云原生技术的发展趋势。

早期Kubernetes调度方案

首先,让我们来了解一下Kubernetes社区都有过哪些提升调度器扩展能力的方案。

要统一管理和调度异构资源与更多复杂工作负载类型,首先面对挑战的就是Kube-scheduler。在Kubernetes社区里关于提升调度器扩展能力的讨论一直不断。sig-scheduling给出的判断是,越多功能加入,使得调度器代码量庞大,逻辑复杂,导致维护的难度越来越大,很多bug难以发现、处理。而对于使用了自定义调度的用户来说,跟上每一次调度器功能更新,都充满挑战。

在阿里云,我们的用户遇到了同样的挑战。Kubernetes原生调度器循环处理单个Pod容器的固定逻辑,无法及时、简单地支持用户在不同场景的需求。所以针对特定的场景,我们会基于原生Kube-scheduler扩展自己的调度策略。

最初对于Kube-scheduler进行扩展的方式主要有两种,一种是调度器扩展(Scheduler Extender), …

Categories
程式開發

快手自研kQUIC高性能服务器,集群QPS破千万

近日,快手自研高性能服务器kQUIC已全面上线,集群峰值QPS突破千万。kQUIC是快手结合自身业务特点,自研打造的支持QUIC/HTTP/HTTPS多协议同层接入的高性能服务器,在短视频场景下针对行业痛点做了系列优化,未来InfoQ记者还将就此话题进行深入采访,敬请关注。

据了解,kQUIC自19年上半年开始研发,年底灰度上线,20年6月峰值QPS突破千万,历时一年有余。kQUIC针对性地对数据压缩、网络传输拥塞控制等进行了优化,传输耗时平均降低10%以上,服务端处理性能提升了50%。

QUIC(Quick UDP Internet Connections)协议是谷歌制定发布的基于UDP的新一代互联网传输协定,下一代HTTP/3协议标准也是从QUIC演进而来,国内外众多互联网企业均有研究和使用实践。

QUIC相比HTTP(s) 有几大优势:

  • 首先,QUIC在应用层实现了基于UDP的可靠传输,能够在使用多路复用机制的同时避免TCP的队首阻塞问题;
  • 其次,QUIC改进了握手机制,大部分场景下可以0-RTT建立安全链接进行数据加密发送;
Categories
程式開發

未来5年,影响数字世界变化的关键技术有哪些?

近日,在华为云「5G+X 联创营」松山湖思享会上,华为云业务部咨询与解决方案部基础服务解决方案部部长张文钟做了主题为《云、5G和AI,如何升级现有的数字世界》的分享,介绍了未来5年里,影响数字世界变化的关键要素有哪些,并表示随着关键基础技术的持续发展,5G时代将会诞生很多创新性的应用,一些现在我们习以为常的东西很可能会在不久的将来被颠覆。

以下是此次分享内容节选(经InfoQ整理编辑):

我们认为,未来 5 年里,这些基础技术的演进趋势将决定数字世界的变化,包括:移动网络速度、云计算能力、AI 算力、IoT 连接、虚拟现实、端到端延迟和单位比特成本等。

第一,移动网络速度在不断提升,从2G、3G、4G到现在进入5G时代,其中3G到4G的提升,可以说带动了移动互联网的发展。

今年年底大概会有300万个5G基站建成并覆盖全国。但这么高的速率可以用来干什么?目前大家都没有完全想清楚,这就好比路已经开通,但还不清楚路上面该跑什么车。…

Categories
程式開發

Apache Arrow和Java:大数据传输快如闪电

本文要点

  • Arrow为分析应用程序提供了零复制数据传输
  • Arrow支持内存中、列式格式和数据处理
  • Arrow是跨平台、跨语言可互操作的数据交换方式
  • Arrow是大数据系统的骨干

大数据天生就太大了,无法装进单独的一台机器里。数据集需要在多台计算机上分区存储。每个分区都分配给一台主机,还可以选择分配给备份机器。这样,每台机器都会有多个分区。多数大数据框架使用随机策略为计算机分配分区。如果每个计算作业都使用一个分区,那么这种策略会将计算负载很好地分散在整个群集上。但是,如果一个作业需要多个分区,则它很有可能需要从其他计算机获取分区。而传输数据的过程总会带来性能损失。

Apache Arrow提出了一种跨语言、跨平台,列式(columnar)内存中(in-memory)的数据格式。由于各个平台和编程语言上的数据都由相同的字节表示,它就不再需要序列化了。这种通用格式支持在大数据系统中进行零复制数据传输,以最大程度地降低数据传输带来的性能影响。

本文的目的是介绍Apache

Categories
程式開發

AI+教育,是生意还是公益?

AI+教育,到底在赋能什么?

教育,即教书育人,在传统的教育模式下,老师传道授业解惑,学生获取知识、经验。而随着人工智能技术不断发展,人们也在思考着教育和AI结合的多种可能性。AI能给教育带来什么?回答这个问题之前,不如先看看当前的教育需要什么。

线下到线上,网课为AI提供发挥空间

疫情期间,由于出行受限,大部分人的日常就是宅在家中上网,用户对互联网的使用时长逐步上升。对于学生群体来说更是如此,除了游戏娱乐,就连日常学习的课堂也搬到了线上。据第三方机构数据显示,疫情期间教育学习App行业的日活量从平日的8700万上升至1.27亿,升幅达到46%

因此,对于不少教育机构来说,网课给了AI更多可以发挥的空间。

互联网教育的出现与普及,已经可以让不同地区的学生享受同等水平的教育,如今配合着AI技术的应用,线上教育有了更多的优势。

松鼠AI首席科学家崔炜博士在接受InfoQ采访时表示,一般来讲培养一名优秀的教师可能需要花费几年甚至十几年的时间,但是AI可以通过数据复制成千上万名优秀教师的教学经验,虽然没法完全替代教师的作用,但是有这样一个拥有丰富经验的“辅导老师”,对于学生来说也是很有帮助的。尤其在一些教学资源相对匮乏的地区,通过AI+线上授课的模式,可以让更多学生享受更加优质的教学,改善教育的公平性。

但是,问题也同样存在。…

Categories
程式開發

RedHat推出Mandrel:使Java本地化

RedHat推出了一个新的Java发行版,Mandrel,它可以直接将Java应用程序编译成本机代码,从而可以在较低的内存中更快地启动。

Mandrel是一个基于Oracle的GraalVM,由社区支持的额外的构建,两者只是略有不同。RedHat的高级工程总监Mark Little解释说:“最好将Mandrel描述成一个特别封装了GraalVM原生镜像的常规OpenJDK的发行版。”RedHat推出Mandrel背后的主要驱动因素是通过其“超音速亚原子Java”来驱动Quarkus框架的速度和效率。Quarkus是一个为云供应商提供快速重载本地开发以及容器化或无服务器分发的框架。自2019年首次推出以来,Quarkus一直强调其可以构建启动速度更快、云运营成本和资源更低的本地可执行文件的能力

Categories
程式開發

微软发布gRPC-Web实现,可直接在浏览器端调用gRPC服务

最近,微软发布了.NET的gRPC-Web协议实现。该组件最初是作为一个实验特性,现在是grpc-dotnet项目的一部分。有了该组件,就可以在浏览器中使用gRPC,Web应用程序可以不通过HTTP代理服务器直接与gRPC服务通信。

gRPC最初由谷歌开发,是一个高性能远程过程调用框架,基于HTTP/2实现。但由于浏览器没有直接暴露HTTP/2,所以Web应用程序不能直接使用gRPC。gRPC- Web是一个标准化协议,它解决了这个问题,可以在浏览器中使用gRPC。

今年早些时候,微软宣布将gRPC-Web作为一个实验项目。当时,ASP.NET Core首席软件工程师James …

Categories
程式開發

从0到1搭建技术中台之A / B Testing 平台实践

自去年开始,中台话题的热度不减,很多公司都投入到中台的建设中,从战略制定、组织架构调整、协作方式变动到技术落地实践,每个环节都可能出现各种各样的问题。技术中台最坏的状况是技术能力太差,不能支撑业务的发展,其次是技术脱离业务,不能服务业务的发展。前者是能力问题,后者是意识问题。在本专题中,伴鱼技术团队分享了从0到1搭建技术中台的过程及心得。

从0到1搭建技术中台之A / B Testing 平台实践 30

随着伴鱼业务的快速发展,公司内部越来越多的业务团队希望通过更加科学的 AB 实验( 以下简称「实验」)来进行产品方案的决策。起初公司 AB 平台(以下简称「平台」)的技术方案参考借鉴于 google 论文以及业界分享的实践案例,详细设计和实现可参阅:AB 测试平台的设计与实现。平台上线后,通过不断收集用户的使用反馈,总结试验周期内各环节存在的问题,我们归纳出平台下一步需要重点改进的方向,主要包括:…