关于实践:实践教程之PolarDBX-replica原理和使用

前置筹备假如曾经依据前一讲内容实现了PolarDB-X的搭建部署,能够胜利链接上PolarDB-X数据库。 PolarDB-X作为MySQL的备库本步骤将领导您如何应用PolarDB-X作为MySQL的备库。1.建设复制链路。a.切换至终端一,执行如下命令,登录云服务器ECS_1实例中的MySQL阐明:您须要将如下命令中的替换为云服务器ECS_1实例上的MySQL 8.0的初始密码。mysql -uroot -p<PASSWORD>b.执行如下命令,批改MySQL的root用户的初始密码为Aliyun123! 残缺内容请点击下方链接查看: https://developer.aliyun.com/article/1176275?utm_content=g_10... 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

May 5, 2023 · 1 min · jiezi

关于实践:实践教程之用PolarDBX搭建一个高可用系统

前置筹备假如曾经依据前一讲内容实现了PolarDB-X的搭建部署,能够胜利链接上PolarDB-X数据库。 启动业务本步骤将领导您如何应用Sysbench OLTP场景模仿业务流量。 1.筹备压测数据。a.执行如下SQL语句,创立压测数据库sysbench_test。create database sysbench_test; b.输出exit退出数据库。 残缺内容请点击下方链接查看: https://developer.aliyun.com/article/1176268?utm_content=g_10... 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

May 5, 2023 · 1 min · jiezi

关于实践:跟随项曙明走进中兴通讯探索企业开源风险治理优秀实践

点击收听“大咖访谈”第11期:https://m.ximalaya.com/sound/625970244?from=pc (倡议在WiFi下播放) 开源雨林:请您简短地向观众介绍本人大家好,我是项曙明,目前在中兴通讯做开源合规治理工作,是中兴通讯开源合规 & 平安治理总监、开源社正式成员、2022 中国开源先锋 33 人。开源雨林:请问您何时开始接触开源?为何对开源治理感兴趣?我从 2014 年开始接触开源,对开源治理感兴趣次要与我的工作经验无关,我自己曾负责 EPG 组长,对研发过程改良十分相熟,开源治理对我来说就是研发过程改良中新增的一部分内部束缚而已,从无序到有序,我集体有人造的偏好,也是职业的使然。 开源雨林:请问您何时及为何投身开源治理?中兴通讯很早就构建了欠缺的研发管理机制和危险管控体系,每年均要在本身从事的业务畛域寻找 TOP 危险,2014 年左右我在公司产品平台部门工作,市场一线的危险是产品线关注的焦点,平台部门的危险辨认我认为开源合规是一个长期而艰巨的危险点,它应该属于研发过程改良的一部分,将与产品研发过程及其改良长期共存,是一个很好的职涯钻研方向,构建升高开源应用危险的企业级管控机制对企业、对集体都有益处,也比拟有挑战性,所以从那时起我开始投身开源治理的学习和钻研。 开源雨林:请问您对国内企业开源治理的现状有何评估?我集体认为,国内曾经过了开源治理的布道阶段,大家已不再探讨是否须要应用开源的问题。更多的开始关注如何合规和平安地应用开源,然而在如何系统化地构建企业无效的开源合规 & 平安管控机制方面,绝大多数的企业没有这方面的意识或者不晓得该如何着手,更多的还只是停留在具体的许可证合规、某一个安全漏洞的打消等细节点上,中兴通讯很早就退出了国际化的行列,并把合规和开源合规作为整个企业的经营基石之一。 开源雨林:TODO Group 提到了使用期、参加期、奉献期、领导期这样这几个阶段,那像中兴通讯这样的先行者,您感觉贵司目前处在哪一阶段呢?我感觉中兴通讯目前在开源治理方面应该是处于整个行业的领导期阶段,咱们在组织层面通过了大略六七年的摸索与实际,遇到和克服了很多不同的业务治理场景,曾经积攒了相当多的开源治理教训和教训,同时也积极参与内部开源社区,奉献开源社区。 实际上,大多数企业第一个阶段都是应用开源,把开源软件使用于产品的研发过程中,为企业的产品开发和经营服务。企业在应用开源软件的过程中会发现,开源软件自身的合规和平安问题十分多,而且这些危险是必须要企业本人来承当的。这些开源软件绝大多数在企业里是没有专门的团队来进行守护的,也不可能将所有的开源软件都守护起来,那么在这样的场景下,企业如何高效地将这些应用到的开源软件合规和平安方面的危险升高,是否能通过外部开源的形式将这些开源我的项目以另一种研发模式进行异地/异步开发,将其守护起来?当初行业里也在探讨开源社区的我的项目是否能依照可信开源我的项目进行经营治理,以晋升其合规性和安全性、升高相应危险。企业能够依据本人的理论状况进行抉择。 开源雨林:贵司的开源治理单位是怎么组建起来的?这两头有没有什么挑战和艰难?开源治理波及软件开发、经营的所有畛域和过程,所以开源治理单位注定只能是一个虚构的组织,从公司 OSPO 办公室,到开源治理畛域的相干专家,直至笼罩到有软件开发的所有我的项目团队,有相干开源治理职责的团队成员至多有几百人。波及的角色次要有:开源 COP 团队成员、过程改良专家、法务专家、产品/平台经理、研发代表、我的项目开源治理接口人、零碎工程师、我的项目团队、开源软件守护我的项目/守护人、知识产权专家、IPR 经理、配置管理员、QA/PME、ECC、我的项目合规经理、平安团队、供应链团队、规范团队、开源奉献团队。 因为开源治理涉及面十分广,很难在一个组织内成立一个专职的部门来进行治理,所以从 2014 年开始,咱们首先是在研究院层面建设开源治理团队,到 2016 年在公司层面成了开源 COP(Community of Practices:实际社区)团队,笼罩到公司所有应用到软件的产品和团队,逐渐构建了一套笼罩 EAR(Export Administration Regulations,美国进口管理条例)合规、开源合规、产品安全和 GDPR(个别数据保护条例)在内,从市场商机到产品运维全过程的管控应答机制,以升高产品的合规 & 平安危险,晋升客户应用我司产品的满意度和信任度。次要的挑战是如何无效地协调各方独特参加到开源的治理工作中来。 开源雨林:在开源应用方面,有没有一些比拟有意思的事件或者挑战能够分享?第一个挑战:企业用了多少开源软件?用了多少许可证?这些开源软件是怎么用的?这一块儿就十分难以答复;第二个挑战:如何把存量应用的开源治理好、合规应用好?第三个挑战:开源软件看不见摸不着,如何高效和无效地进行治理以配合开源软件的合规管控须要。 在这些场景下,要有一套卓有成效的管理体系,能实在、清晰地理解企业到底用了哪些开源软件,这些软件在我的项目版本中是如何应用的。没有这些根底能力,做开源治理的成果必定会大打折扣。此外,对于 License 的治理,我所看到的是大家都还停留在比拟通俗的层面上。我认为还是要想分明以上几点,也就是解决治理中 “ 我在哪里?” 的问题,并联合组织策略明确开源治理的指标,也就是 “ 我要去哪里?”,而后通过对标,能力提出开源治理过程中的改良需要,否则真的很难提出治理指标和每年的治理需要,也就难以动手治理了。 开源雨林:供应链治理方面,对于平安、合规的治理简单吗?简单。一个产品一开始可能只需一个开发团队开发,前面随着组织规模扩充和产品多元化,就会提出平台化开发需要而变成多个项目组(产品、平台、组件)共同开发一个产品。开源软件的引进,软件开发逐渐演变为以模块化、组装化、多元化的混源开发模式。但咱们发现,公司外部团队间接开发的软件,个别会依照组织的研发治理要求,其合规性和安全性相对来说是有保障的,而引进的开源软件,因为开源软件的固有属性其合规性、安全性是不能保障的。 此外,项目组在内部引入的过程中,不仅会从开源社区引入,还会有一些商业软件、外包软件、开发软件、SDK 等第三方软件的引入,并成为产品组成的一部分。所以在引入上述第三方软件时,第三方组织是否了解开源合规,其在版本散发时的合规性和安全性是否失去保障,这个也是须要管控的。 市面上还有很多所谓的凋谢软件,咱们在社区或者是公开的中央都能下载到,这些软件的危险也十分大。如果没有对开发人员的 “开源软件” 引入过程进行管控,这些软件就很容易地被引入进来,但其往往都存在开源合规和平安的危险。 所以我认为要想把它做好,须要将引入、应用、治理和应答等方方面面的“管控破绽”建设起一套无效的管理体系,对所有开源软件和第三方软件进行全生命周期治理。而这些开源软件和第三方软件的全生命周期治理,因为不同的类别在企业里其引入时波及的畛域、部门都不雷同,相应的流程要别离去梳理和建设,过程会很简单,比拟难实现。 开源雨林:中兴通讯在开源治理方面这么多的教训,有没有思考将实践经验及理念对外界做分享呢?大家都晓得开源要做合规和平安的管控,也有很多企业会做一些优良实际的分享,我认为还是要依据本身的理论状况以及特有的流程,联合本人的实际,能力真正无效地落地。 中兴通讯近几年来,积极参与国内国内开源社区、标准化组织的各种分享、规范制订工作,特地是无关开源治理方面的教训和理念的分享曾经有很多。 开源雨林:对 TODO Group 的冀望?其实很多做软件开发的企业,我感觉他们在不同场景下遇到的问题应该和中兴通讯、华为、甚至国外头部企业遇到的问题是一样的,所以在参加国内社区,以及国外的一些 TODO Group 时,大家在理论治理过程中遇到的问题,这些问题呈现后是怎么解决或者如何将问题危险升高的,相互之间都有一些参考价值,所以冀望 TODO Group 可能踊跃收集治理过程中的问题和治理实际,多多提供合作、交换分享,互相学习的机会。 ...

April 13, 2023 · 1 min · jiezi

关于事件:技术白皮书第五章信息抽取技术的未来发展趋势和面临的挑战

5.信息抽取技术的将来发展趋势和面临的挑战5.1 NER技术的将来发展趋势和面临的挑战论文《 Survey on Deep Learning for Named Entity Recognition》总结了NER技术面临的挑战和将来倒退方向。随着建模语言的提高和理论利用的需要,NER会失去钻研人员更多的关注。另一方面,NER通常被视为上游应用程序的预处理组件。这意味着特定的NER工作由上游应用程序的需要定义,例如,命名实体的类型以及是否须要检测嵌套实体。 以下是NER钻研的以下进一步摸索方向。1.细粒度NER和边界检测。尽管许多现有钻研(《Neural architectures for named entity recognition》、《End-to-end sequence labeling via bidirectional lstm-cnns-crf》、《Robust lexical features for improved neural network named-entity recognition》)都集中在个别畛域的粗粒度NER上,但论文冀望在特定畛域对细粒度NER进行更多钻研,以反对各种理论的word利用(《Software-specific named entity recognition in software engineering social content》)。细粒度NER面临的挑战是命名实体类型的显著减少,以及容许一个命名实体具备多个命名实体类型所带来的复杂性。这须要从新拜访常见的NER办法,其中实体边界和类型同时被检测,例如,通过应用B-I-E-S-(实体类型)和O作为解码标签。值得思考的是,将命名实体边界检测定义为一项专用工作,以检测命名实体边界,同时疏忽命名实体类型。 边界检测和命名实体类型分类的解耦实现了边界检测的通用和鲁棒的解决方案,这些解决方案能够在不同畛域共享,并为命名实体类型分类提供了专用的畛域特定办法。正确的实体边界还能无效地缓解实体链接到知识库中的谬误流传。曾经有一些钻研,认为实体边界检测是NER中的两头步骤(即子工作)。据论文所知,目前还没有专门针对实体边界检测的工作来提供一个鲁棒的识别器。论文期待着在将来这一钻研方向的冲破。 2.联结NER和实体链接。实体链接(EL)也称为命名实体规范化或消歧,旨在参考知识库为文本中提到的实体调配惟一身份,例如通用畛域的维基百科和生物医学畛域的对立医学语言零碎(UMLS)。大多数现有工作将NER和EL独自作为流水线(pipeline)设置中的两个独立工作来解决。论文认为,胜利链接的实体(例如,通过知识库中的相干实体)所携带的语义显著丰盛。也就是说,链接实体有助于胜利检测实体边界和正确分类实体类型。值得摸索联结执行NER和EL,甚至实体边界检测、实体类型分类和实体链接的办法,以便每个子工作都能从其余子工作的局部输入中受害,并缩小流水线(pipeline)设置中不可避免的谬误流传。 3.有辅助资源的非正式文本上基于DL的NER基于非正式文本或用户生成内容的DL-NER的性能依然很低。这须要在这方面进行更多的钻研。特地是,论文留神到,NER的性能显著受害于辅助资源的可用性,例如用户语言中的地位名称词典。尽管没有提供强有力的证据表明,波及地名词典,作为额定的特色能够导致NER在通用畛域的性能晋升,但论文认为辅助资源往往是必要的,以更好地理解用户生成的内容。问题是如何为用户生成的内容或特定畛域的文本上的NER工作获取匹配的辅助资源,以及如何无效地将辅助资源合并到基于深度学习的NER中。 4.基于DL的NER的可伸缩性。使神经网络模型更具可伸缩性依然是一个挑战。此外,当数据量减少时,依然须要优化参数指数增长的解决方案(《A review on deep learning for recommender systems: challenges and remedies》)。一些基于DL的NER模型以微小的计算能力为代价获得了良好的性能。例如,ELMo示意用3×1024维向量示意每个单词,模型在32个GPU上训练了5周(《Contextual string embeddings for sequence labeling》)。Google BERT示意在64个云TPU上进行训练。然而,如果终端用户无法访问弱小的计算资源,他们就无奈对这些模型进行微调。开发均衡模型复杂性和可伸缩性的办法将是一个有前途的方向。另一方面,模型压缩和剪枝技术也能够用来缩小模型学习所需的空间和计算工夫。 5.NER的深度迁徙学习。许多以实体为核心的应用程序求助于现成的NER零碎来辨认命名实体。然而,因为语言特色的差别以及正文的差别,在一个数据集上训练的模型可能无奈在其余文本上很好地工作。只管有一些钻研将深度迁徙学习利用于NER,但这个问题尚未失去充沛探讨。将来应致力于如何通过摸索以下钻研问题,无效地将常识从一个畛域转移到另一个畛域:(a)开发一个可能跨不同畛域工作的鲁棒识别器;(b) 摸索NER工作中的zero-shot, one-shot 和 few-shot learning;(c) 提供解决跨域设置中的域不匹配和标签不匹配的解决方案。 6.一个易于应用的工具包,用于基于DL的NER。最近,Röder等人开发了GERBIL(《GERBIL - benchmarking named entity recognition and linking consistently》),它为钻研人员、最终用户和开发人员提供了易于应用的界面,用于对实体正文工具进行基准测试,目标是确保可反复和可架构的试验。然而,它不波及最新的基于DL的技术。Ott介绍了FAIRSEQ(《fairseq: A fast, extensible toolkit for sequence modeling》),这是一个疾速、可扩大的序列建模工具包,特地是用于机器翻译和文本形容。Dernoncourt等人实现了一个名为NeuroNER的框架(《NeuroNER: an easy-to-use program for named-entity recognition based on neural networks》),它只依赖于循环神经网络的一个变体。近年来,许多深度学习框架(例如TensorFlow、PyTorch和Keras)被设计为通过高级编程接口为设计、训练和验证深度神经网络提供构建模块。论文构想,一个易于应用的NER工具包能够领导开发人员应用一些标准化模块来实现它:数据处理、输出示意、上下文编码器、标记解码器和有效性度量。论文置信,专家和非专家都能够从这些工具包中受害。 ...

August 25, 2022 · 1 min · jiezi

关于实践:得物复杂-C-端项目的重构实践

1. 背景1.1 重构Q:什么是重构? 重构是在不扭转软件可察看行为的前提下,改善其内部结构。--《重构 - 改善既有代码的设计》   Q:为什么要重构? 重构能够进步了解性和升高批改老本 。--《重构 - 改善既有代码的设计》   Q:什么时候重构?   (1)何时不应该重构? 没有价值,没有意义或者投入产出比很低时。团队资源是无限的,无限的资源应该尽可能投入到有意义的事件下来。从团队的角度思考投入产出比,对于曾经只是保护状态,如无需要、无调整的代码,不要去动它,如果对于老手而言,不仅不会带来益处反而可能挖坑,要晓得既有代码可能有不少坑。   (2)何时应该重构? 我的项目保护老本很高影响我的项目调优,如性能优化时代码长得丑,不优雅时既有设计和实现不利于扩大新性能时重复性工作,既有的代码无奈帮忙你轻松增加新个性时修补 bug 时,排查逻辑艰难code review 能够让别人来复审代码查看是否具备可读性,可了解性太多的代码无正文,未然连本人都无奈疾速理清代码逻辑  1.2 如何重构(1)筹备(基本功) 举荐值得一读再读经典书籍,重构圣经《重构 - 改善既有代码的设计》 。自己从毕业第一年开始,几年下来读了 4 遍 +,受益匪浅,每次温习都能有所播种,让我常常折腾经手的我的项目却没出过问题。   (2)重构实际要点 思考分明(整体有设计,不肯定要文档化但须要想分明)。协同布局(开发团队外部的配合及重构分支与其余分支的集成、内部资源提前申请如产品、测试、运维等)、整体规划。分层分步开展,抓大放小从粗到细。善用 “批处理”。一次只做一件事。不要反复造轮子。当你感觉一件事很难的时候,停下来思考是不是办法用错了,它应该是怎么的。放弃监控及复盘本人的思考形式。做好对内和对外沟通,尤其在当我的项目不是只有一个人在开发和保护的状况下。留神提前和相干方(测试、运维)沟通好(计划、次要工夫节点、须要投入的资源、须要其配合的事项)。  2. 社区 C 端的重构实际  本次重构具备肯定的复杂度,除了技术迁徙革新的老本外,波及的几个仓库是不同技术选型(框架 & 下层组件等)、我的项目疾速的麻利迭代、需要高并发及多人协同开发保护状态。   2.1 现状剖析  技术栈:  仓库名技术栈社区 C 端页面数repo AReact + umi3指标仓库无需统计repo BReact + umi35repo Cvue2 + vuex27  我的项目侧  三个仓库 A / B / C 更新沉闷,每个仓库均波及多业务线的开发,并行保护。别离依照 2 周一个 sprint 的迭代节奏开展,1 周开发 1 周测试,间或穿插着 hotfix。 ...

June 22, 2022 · 4 min · jiezi

关于实践:咸阳市大数据管理局使用Rainbond作为智慧城市底座的实践

应用 Rainbond 作为智慧城市底座之后,给咱们带来了成倍的运维效率晋升。 —— 咸阳市大数据管理局 熊礼智咸阳市大数据管理局负责全市信息共享工作的组织领导,协调解决与政府信息共享无关的重大问题,钻研拟订并组织施行全市大数据策略、布局和政策措施,疏导和推动大数据钻研和利用工作,建设全市对立的数据服务中心和信息共享机制。通过“端-边-网-云-智” 的全新技术架构,实现治理高效、服务便民、产业倒退、生态谐和的指标效用,达成新一代信息技术与城市现代化深度交融,迭代演进的新模式、新理念。 智慧城市的建设中,对智慧城市利用的治理是个很根底的问题。传统的状况下,服务于民生的各类利用零碎,都是由相应的政府部门各自部署管辖,这造成了一些困扰。各个城市部门往往各自为政,彼此之间造成数据孤岛,很难互通互联。无论是数据还是利用,都很难对立治理起来。 在咸阳智慧城市建设工作中重点建设数据交换共享平台和利用治理平台。数据交换共享平台负责买通城市各个部门的数据孤岛,进行数据清理和规约之后,最初达成所有城市部门的 IT 利用之间互联互通的成果。 在建设咸阳市智慧城市期间,咱们在智慧城市利用治理畛域遭逢了很多辣手的问题。为了解决这些痛点,咱们借助 Rainbond 这款产品,建设起了能够提供自动化运维能力的利用治理平台。我从四个局部分享解决难题的整个过程: 痛点:回顾智慧城市利用,在部署施行以及前期运维上的难点痛点。 定位:咱们如何定位智慧城市利用治理平台,以及心愿通过它解决什么样的问题。 落地:简要论述智慧城市利用治理平台的选型过程,以及部署落地的过程。 实战:讲一个实在的案例,来阐明引入利用治理平台后,疾速开发落地一个智慧城市利用的全过程。 传统模式下的痛点我将痛点归纳如下: 不足对立治理:以往各个城市部门的利用零碎的部署是横七竖八的。每家单位都在建设本人的 IT 零碎,没有对立的治理可言。遗留零碎多:很多城市部门的利用零碎应用的工夫都很久了,有的零碎甚至曾经失去了厂家的反对。而有的零碎采纳的技术曾经过期,无奈不便的迁徙到能够被集中管理的环境中去,也没有方法很好的将它们监控起来,取得其实时的状态。资源分配不合理:每家单位都在进行 IT 零碎的建设,这必然导致做了很多重复性的建设工作,资源节约随之而来。而且在不足资源监控的状况下,没有谁能说分明各自的利用零碎到底应该应用多少资源。访问量不管多少,都调配了同样的资源,不足合理性。运维艰难:每家单位建设 IT 零碎的形式办法形形色色。而这些单位本身往往不足相应的技术人才来保护这些零碎,一旦出了问题,每套业务零碎的保护形式都不一样。不足可观测性:以往的 IT 零碎建设,往往仅仅关注应用程序自身,而疏忽了可观测性的建设。无奈做到问题疾速发现,往往 IT 零碎的失灵,是由用户反馈而来的。对利用治理平台的定位利用治理平台负责承载和治理所有智慧城市上司的利用零碎,包含新建设起来的数据交换共享平台。后续所有新开发的智慧城市利用会间接基于利用治理平台部署,以往老旧的遗留零碎也会随着迭代更新一直迁徙到利用治理平台。这么做的目标就是为了可能逐渐整合各个城市部门的数据与利用,对立治理。 建设智慧城市的过程中,必然会不断涌现出少量新的城市部门利用零碎,如何在建设过程中不重走老路很重要。智慧城市利用治理平台在这个过程中表演的角色是GPaaS 平台,数据交换共享平台是VPaaS 的一部分。二者相结合,能够将海量城市数据在云端实现会集融通计算,在进步城市智慧体运行速度的同时也大大降低了运行老本。我将利用治理平台和数据交换共享平台的定位总结如下: 利用治理平台向下对立纳管所有计算资源。实现计算资源统一分配调度。这些计算资源以多个机房内托管的虚拟机或者物理机的模式提供。利用治理平台应提供资源监控面板,并在底层计算资源呈现问题时发送报警信息。利用治理平台向上承载包含数据交换共享平台在内的所有智慧城市利用零碎。提供对立格调的治理面板,以及丰盛的自动化运维能力,最大水平升高利用运维治理的难度。智慧城市利用能够以极低的代价迁徙到利用治理平台上来,可能实时统计利用的拜访流量和资源占用状况,实现计算资源面向利用按需分配,主动调整。利用治理平台横向延长到各个城市部门。数据交换共享平台须要借助利用治理平台的这一能力,与城市部门现有 IT 零碎接驳。利用治理平台能够接收老旧遗留零碎。对于无奈间接迁徙到利用治理平台的各类老旧遗留零碎,比方 Windows 利用等,应能够至多做到逻辑层面的接入,可能以对立格调的面板进行简略治理,以及衰弱检测等监控能力。 落地过程与价值体现咱们选型并比照了多款 PaaS 平台类产品,最终抉择了 Rainbond 。回顾过后的选型过程,以及零碎建成到当初的应用体验,我将其劣势总结如下: 易用性好:Rainbond 是多家选型产品中,易用性做的最好的一款产品。一站式的产品化体验让咱们在智慧城市利用的开发部署,乃至前期的运行保护工作中都大大降低了学习老本。数据交换共享平台这个外围利用,仅用不到一周的工夫,就实现了向云端的迁徙。弱小的自动化运维能力:在运维治理方面,其自动化运维能力十分优良,节俭了大量运维老本,使运维效率成倍晋升。可观测性:Rainbond 提供了全面的监控报警零碎,无论是计算资源还是下层的利用零碎,一旦呈现问题都能够很快裸露进去。联合自动化运维能力,问题利用零碎能够做到自愈自复原。而通过观察利用零碎访问量和资源耗费状况,能够更正当的进行资源分配工作。开源生态:Rainbond 自身是个开源产品,也拥抱开源社区生态。其外部的利用商店零碎,提供了大量咱们须要的第三方中间件,这些中间件能够一键部署到利用治理平台下来,这节约了大量的工夫和精力。否则基于服务器从零搭建这些中间件零碎十分耗时耗力。基于 Rainbond 建设的利用治理平台于 2019年11月落地交付使用。这套利用治理平台底层对接了3个不同的集群,别离是开发测试环境、一般生产环境和涉密生产环境。时至今日,其上部署的各类城市利用曾经超过了 100 套,组件数量超过500个。 最先被迁徙到利用治理平台上的数据交换共享平台。向开发测试环境迁徙的过程比拟轻松,咱们投入了两名开发人员、两名运维人员,在好雨科技交付工程师的配合下,基于源代码就将所有的组件部署到了利用治理平台上。所有的学习和迁徙工作只继续了一周左右就实现了。接下来要思考的,是在生产环境中部署这套利用零碎。咱们在这里借助了 Rainbond 外部组件库提供的能力,将开发测试环境中的数据交换共享平台,公布到了外部组件库中,在生产环境中就能够一键部署了。后续的降级操作也都借由利用模版配套的版本治理性能实现,这极大的节约了部署降级老本。 数据交换共享平台须要借助平台能力,延长到各个城市部门接驳其已有的 IT 零碎。最开始 Rainbond 并不反对这个非凡的需要,最终定制了特制的网关,使数据交换共享平台能够通过网关和城市部门已有的 IT 零碎交互。 数据交换共享平台部署状态: 在利用的运维治理方面,最让咱们感觉好用的,是 Rainbond 提供的对立网关配置性能。通过非常简单的配置,就能够将平台上部署的利用零碎对外裸露服务地址。而且通过了定制,咱们应用的 Rainbond 网关反对了国密证书,使得咱们在安可方面的要求也失去了满足。 ...

November 19, 2021 · 1 min · jiezi

关于实践:得物技术时间切片的实践与应用

0x1:前言每一个领有【高级资深】title的前端工程师,必定会对我的项目的整体性能优化有本人的独到见解。这是往前端业务架构方向转变的必须要具备的能力之一。 本文就给大家介绍一个性能优化的伎俩之一:工夫切片(Time Slicing) 依据W3C性能小组的介绍,超过50ms的工作就是长工作。 序号工夫散布形容10 to 16 msUsers are exceptionally good at tracking motion, and they dislike it when animations aren't smooth. They perceive animations as smooth so long as 60 new frames are rendered every second. That's 16 ms per frame, including the time it takes for the browser to paint the new frame to the screen, leaving an app about 10 ms to produce a frame.20 to 100 msRespond to user actions within this time window and users feel like the result is immediate. Any longer, and the connection between action and reaction is broken.3100 to 1000 msWithin this window, things feel part of a natural and continuous progression of tasks. For most users on the web, loading pages or changing views represents a task.41000 ms or moreBeyond 1000 milliseconds (1 second), users lose focus on the task they are performing.510000 ms or moreBeyond 10000 milliseconds (10 seconds), users are frustrated and are likely to abandon tasks. They may or may not come back later.表格内容摘抄自应用 RAIL 模型评估性能 ...

October 22, 2021 · 3 min · jiezi

关于时间:在线格式时间计算时间差

在线格局工夫计算时间差在线格局工夫计算时间差 本工具反对对两个格局过后的工夫计算相差的天数,小时数,分钟数,秒数,毫秒数。 https://tooltt.com/difftime/

July 16, 2021 · 1 min · jiezi

关于ui:得物技术分布式-UI-自动化实践

前言提起 UI 自动化测试,总是会有人抛出很多疑难: UI 自动化能带来什么价值吗?还是在浪费时间?UI 自动化测试在整个测试流程中表演什么样的角色?有编写 UI 自动化测试的工夫,我早就实现业务测试了,我为什么还要编写自动化测试的 case 呢?针对于 UI 界面常常变动的业务场景,编写和保护自动化 Case 几乎太难了,怎么样能力解决这些问题呢?...... 明天小编就在这里跟大家分享下,本人对 UI 自动化测试的了解以及我司品质平台正在搭建的分布式平台 DuLab 是怎么实现批量运行 UI 自动化测试 Case 的。 为什么要做 UI 自动化?随着不停的版本迭代,软件新增性能变的越来越多,对测试资源的需要也变得越来越大,执行人工测试的工夫越来越长。对于人工测试的依赖开始变得辣手,因而大家开始寻找解决方案,UI 自动化也应运而生。 人工测试的弊病人工回归测试须要破费很长时间能力实现,很小的提早就会让公布面临危险。公布节奏受到人工回归测试的限度。两天以上的人工回归测试意味着最好的状况下可能一个月公布两次。而且,开发者须要一次性公布所有货色。要么全副公布,要么什么都公布不了,因为须要将所有货色一起测试。UI 自动化测试的长处解放了测试团队针对长期的和探索性案例的测试工夫;能够一边开发一边进行回归测试,缩小等待时间;可重复性应用,疾速进行回归测试;更好的利用资源(周未/早晨的资源闲暇时段)。UI 自动化的特点UI 即 User Interface(用户界面)的简称,UI 自动化做的事件就是模仿用户行为进行操作,实现对用户界面的测试。这也就从实质上限度了它的应用场景: 软件需要变动不频繁产品更新保护周期长比拟频繁的回归测试自动化测试脚本可重复使用所以在你开始之前,最好意识分明哪些业务场景是能够自动化的~ 预期成果针对我司的业务现状,确定好预期成果。 兼容性测试:针对市场上罕用机型与零碎版本,进行下载安装应用,以发现兼容性故障,进而修复。埋点测试:校验埋点数据是否失常上报,有无漏报,错报,多报。回归测试:版本迭代中,进行回归测试保障代码改变不会导致其余场景产生故障。测试阶段性能收集:在测试阶段为自动化 case 指定优先级,依照优先级运行自动化 case,提供更多的性能数据。思路与接口自动化测试思路雷同,咱们在进行 UI 自动化测试时,每个 Case 都是一个独自的 TestCase,咱们将所有须要执行的 case 放在同一个 TestSuit 中,批量执行并生成聚合报告。 难点不同于接口自动化,单个客户端设施某个时刻仅反对运行一个自动化 Case;受制于电脑性能,无奈在繁多电脑设备上同时管制数十台挪动设施;随着版本迭代,局部 Case 仅实用于某些 APP 版本,需限度版本范畴;无奈省略前置步骤,比方说想要对某个页面进行 UI 自动化,无奈间接进入该页面,要从启动 APP 开始,抉择前置门路能力进入指定页面;雷同场景下数据可能会发生变化,使得校验规定无奈对立;不同账号下,数据不同,可能会导致很多场景无奈测试;对各种零碎各种型号的挪动设施,进行近程管制;如何在 UI 自动化的过程中校验埋点数据;大量的 AB 试验,如何切换环境进行测试;APP 安装包的治理,如何抉择安装包进行笼罩装置.......架构上面是小编本人从点到面一步步的思考历程,从根本的挪动设施远程管理,case 编写到 case 的保护,再到 lab 平台的搭建: ...

April 23, 2021 · 2 min · jiezi

关于前端:得物技术前端性能监控实践

前言对于前端来说,最重要是的体验,而在前端体验中,最为外围的就是性能。秒开率、晦涩水平等一系列指标都间接影响用户体验。 因而,建设一个精确、及时、无效的前端性能监控零碎,不仅能够量化以后页面的性能程度,还能够为优化计划的成果提供数据反对,此外,还能够在页面性能下滑时提供报警服务,揭示开发人员改善页面性能。 监控指标的选取在参考前人的实际成绩后,咱们对性能监控的一系列指标的计算成本,适用性和实用价值进行了评估,认为以下指标和信息是最具实用性和性价比的: 首先是 fcp(first contentful paint,如下图所示),这个指标是目前统计页面秒思考的支流指标,尽管它不如 fmp(First Meaningful Paint、lcp(Largest Contentful Paint)、speedIndex 等指标更贴近用户实在应用体验,然而长处是在 Android 端通过调用 Performance API 即可取得,在 iOS 能够通过 raf(requestAnimationFrame)估算,施行过程简略。 其次是 tts(time to server),这个指标并没有呈现在此前看到的文章里边。 它形容的是用户连贯到服务器的工夫,通过 Performance API 中提供的 requestStart 减去 fetchStart 失去,这个指标不是前端能够通过技术能够优化的,然而它能够反映在以后用户群体的网络环境下,页面秒开率的下限是多少。 举个例子,如果通过性能监控数据发现,有 15%的用户拜访,须要破费至多 1s 的工夫能力连贯到咱们的服务器(能够是 SSR 服务器,也能够是 CDN),那么这些用户无论如何都不能秒开,那么此时,某页面秒开率的下限就是 85%。 如果当前情况下,这个页面的秒开率曾经达到了 75%甚至更高,那么持续优化的边际收益会非常低,应该适可而止了。 第三是 tsp(time for server processing),这个指标也没有呈现在此前的参考文章里。 它针对的是在应用 SSR 的场景下,服务器外部解决页面申请的耗时,可通过 Performance API 中提供的 responseStart 减去 requestStart 失去。 这个环节性能太差,亦会成为连累秒开率的一个瓶颈,所以必须予以监控;tsp 太长会压迫其余环节的性能估算,太小会增大服务器运维老本。 第四是 css 文件、图片等资源的大小、xhr 申请的持续时间,前两种资源如果不加节制,会导致页面即使做到秒开,也无奈疾速进入可用状态,比方常见的 feed 流页面。 对于 xhr,须要进行分类探讨,如果是 SSR 页面,则影响不大,只有保障 tsp 处于较低水平,基本上不会连累秒开率,但如果是 SPA,页面次要功能区都依赖后端数据反对的,比方判断权限、展现 feed 流内容,xhr 的响应速度就十分要害了,也须要予以监控,在指标下滑时,告诉后端予以优化和解决。 ...

April 16, 2021 · 1 min · jiezi

关于工具软件:SSH连接服务器后执行多条命令

[TOC] SSH连贯服务器后执行多条命令大家平时有没有遇到本人连贯云服务器,ssh 连贯下来之后,发现自己的一些小工具用不了 例如go build无奈应用 ,因为咱们装置配置golang 环境的时候,是在文件/etc/profile中写了配置,因而须要source 一下/etc/profile 那么是否能够在ssh 连贯上服务器的时候就能够立刻主动执行这一类命令呢? 咱们的智慧无穷无尽,小工具也是十分的多,明天来讲述一下SSH连贯服务器后执行多条命令能够如何做 1 应用分号隔开应用 分号 ;来隔开命令 附带1条命令 ssh User@Host 'source /etc/profile'附带多条命令 ssh User@Host 'source /etc/profile ; uptime'2 应用管道符号隔开应用管道|来隔开命令 附带1条命令 ssh User@Host 'source /etc/profile'附带多条命令 ssh User@Host 'source /etc/profile | uptime'3 应用写EOF的形式同样实用于一条 / 多条命令 ssh User@Host << EOF> ls -al> source /etc/profile> EOF4 应用脚本的形式应用脚本的形式花色就更多了,例如有一个脚本myinit.sh在/home/admin/code/ 上面 myinit.sh #!/bin/bashsource /etc/profilels -al近程连贯服务器 ssh User@Host 'bash -s' < /home/admin/code/myinit.sh以上四种形式,按需索取,很可 以上为本期全部内容,如有疑难能够在评论区或后盾提出你的疑难,咱们一起交换,一起成长。 好家伙要是文章对你还有点作用的话,请帮忙点个关注,分享到你的朋友圈,分享技术,分享高兴 技术是凋谢的,咱们的心态,更应是凋谢的。拥抱变动,背阴而生,致力向前行。 作者:小魔童哪吒

April 4, 2021 · 1 min · jiezi

关于golang:golang环境安装

[TOC] golang装置下载golang软件【国内网站】https://studygolang.com/dl go语言中文网下载 go最新的安装包,依据不同的零碎,能够抉择 windows,linux,mac【能够上外网的话】拜访go语言英文网站 https://docs.studygolang.com/...解压langtar -C /usr/local -xzf go1.16.linux-amd64.tar.gz配置golang将go的二进制目录增加到PATH环境变量 vim /etc/profileexport GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/bin从新导入配置source /etc/profilegolang配置正确下载资源go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct若呈现报错: warning: go env -w GOPROXY=... does not override conflicting OS environment variable则间接批改此处,将 https://goproxy.cn,direct 填入如下地位 以上为本期全部内容,如有疑难能够在评论区或后盾提出你的疑难,咱们一起交换,一起成长。 好家伙要是文章对你还有点作用的话,请帮忙点个关注,分享到你的朋友圈,分享技术,分享高兴 技术是凋谢的,咱们的心态,更应是凋谢的。拥抱变动,背阴而生,致力向前行。 作者:小魔童哪吒

April 3, 2021 · 1 min · jiezi

关于golang:JWT身份认证附带源码讲解

[TOC] JWT(Json Web Token)验证(附带源码解说)一天,正是午休时段 兵长路过胖sir座位,大吃一惊,明天胖sir竟然没有打呼噜,而是在低着头目不转睛盯着一本书 兵长凑近一看,胖sir竟然在看史书... 兵长:(轻声道),你在看 什 么 ~~ 胖sir:我在想我要是穿梭到清朝,我会是啥身份? what??~~~ , 能是啥身份,必定是重量级人物呗 胖sir: 我呸, 明天我倒要给你讲讲啥叫身份 讲到身份,不得不说一下cookie、session、Token的区别,come on 1 cookie、session、Token的区别CookieCookie总是保留在客户端中,按在客户端中的存储地位,可分为 内存Cookie 和 硬盘Cookie。 内存Cookie由浏览器保护,保留在内存中,浏览器敞开后就隐没了,其存在工夫是短暂的。 硬盘Cookie保留在硬盘⾥,有⼀个过期工夫,除⾮⽤户⼿⼯清理或到了过期工夫,硬盘Cookie不会被删除,其存在工夫 是⻓期的。 所以,按存在工夫,可分为 ⾮长久Cookie和长久Cookie。 那么cookies到底是什么呢? cookie 是⼀个⾮常具体的东⻄,指的就是浏览器⾥⾯能永恒存储的⼀种数据,仅仅是浏览器实现的⼀种数 据存储性能。 cookie由服务器⽣成,发送给浏览器 ,浏览器把cookie以key-value模式保留到某个⽬录下的⽂本⽂件 内,下⼀次申请同⼀⽹站时会把该cookie发送给服务器。因为cookie是存在客户端上的,所以浏览器加⼊ 了⼀些限度确保cookie不会被歹意使⽤,同时不会占据太多磁盘空间,所以每个域的cookie数量是无限的。 SessionSession字⾯意思是会话,次要⽤来标识⾃⼰的身份。 ⽐如在⽆状态的api服务在屡次申请数据库时,如何 晓得是同⼀个⽤户,这个就能够通过session的机制,服务器要晓得以后发申请给⾃⼰的是谁,为了辨别客户端申请, 服务端会给具体的客户端⽣成身份标识session ,而后客户端每次向服务器发申请 的时候,都带上这个“身份标识”,服务器就晓得这个申请来⾃于谁了。 ⾄于客户端如何保留该标识,能够有很多⽅式,对于浏览器⽽⾔,⼀般都是使⽤ cookie 的⽅式 ,服务器使⽤session把⽤户信息长期保留了服务器上,⽤户来到⽹站就会销毁,这种凭证存储⽅式绝对于 ,cookie来说更加平安。 然而session会有⼀个缺点: 如果web服务器做了负载平衡,那么下⼀个操作申请到 了另⼀台服务器的时候session会失落。 因而,通常企业⾥会使⽤ redis,memcached 缓存中间件来实现session的共享,此时web服务器就是⼀ 个齐全⽆状态的存在,所有的⽤户凭证能够通过共享session的⽅式存取,以后session的过期和销毁机制 须要⽤户做管制。 Tokentoken的意思是“令牌”,是⽤户身份的验证⽅式,最简略的token组成: uid(⽤户唯⼀标识) + time(以后 工夫戳) + sign(签名,由token的前⼏位+盐以哈希算法压缩成⼀定⻓度的⼗六进制字符串) ,同时还可 以将不变的参数也放进token 这里说的token只的是 JWT(Json Web Token) ...

March 31, 2021 · 5 min · jiezi

关于golang:一看便会微信后台服务器开发

微信后盾服务器开发就要上班了,兵长关上手机,看到弹出的某微信聊天机器人广告便点了进去,于是有了如下故事... 最近兵长在看微信的时候突发奇想的去玩了一下某微信机器人,可能像智能语音助手一下和本人聊天 兵长就在想,这机器人是咋做的,咱们是做服务器开发的,咱用go语言疾速实现一下给本人玩玩,实现一个定制化的聊天机器人可好 胖sir听到兵长喃喃自语的不明所以,便走上前说,咋开始玩起聊天了,不来峡谷游了吗? 上次带你原本是想带你成为winer的,没想到,每一把都是loser,我打算最近收收手,管制一下情绪,找机器人安慰一下我手上的心灵 你是说微信聊天机器人吗?哪些不都是千篇一律的嘛 那么你能弄个定制化的嘛?把我情绪弄好了,我带你来大乱斗吧 ~~(偷笑),小伙子,还好我留了一手,我先给你说说微信后盾服务器如何初步开发一个简略的你问我答性能吧,授人以渔,不如授人以鱼是不 开发一个微信后盾服务器作为被动回复机器人,大抵分为如下几步: 开明公众号,注册微信公众号开发平台,这里能够是注册订阅号,具体的前面给你说配置权限,配置微信后盾开发者权限流程介绍接入微信后盾性能实现兵长乱斗带胖sir飞开明公众号注册微信公众号开发平台,这里能够是注册订阅号,依照提醒进行注册输出信息即可,置信你一看就会 注册地址:https://mp.weixin.qq.com/cgi-bin/registermidpage?action=index&lang=zh_CN&token= 我整顿了一个表格来介绍一下订阅号和服务器号的区别,你也能够先初步理解一下区别,前面能够缓缓推敲 订阅号服务号用处次要目标 为大家流传征询;相似报纸,杂志,集体输入偏差企业或组织的交互,如银行,商场,餐厅等;自助服务的服务号,用于企业群发次数一天能够发送一次;所有的订阅号推送音讯,会被对立收纳到订阅号栏目中一个月发送4条群发音讯展现地位全副收录在 订阅号的 信息栏中展现在好友音讯列表之中;关注一个服务号,即相当与加了一个敌人微信领取不可开明领取性能认证后 能够开明微信领取性能自定义菜单绝对简略绝对高级,微信有接口,能够自行开发配置权限配置微信后盾开发者权限 进入公众号治理页面,下拉右边侧,进入根本配置 URL:填写本人的外网服务器URL,如果没有能够买一个云服务器,当初买云服务器还是很便宜的Token:自定义Token,用于制作签名,这个十分重要,须要窃密EncodingAESKey:随机生成即可音讯加解密形式:为了演示不便,咱们这里应用明文模式微信公众号后盾接口权限普通用户只有是接管音讯和主动回复音讯的权限 流程介绍开发被动回复音讯流程介绍,简略来说,能够是这样的 性能实现必备知识点http服务进行通信Token机制微信后盾开发xml的数据序列化http服务做上述被动回复音讯的性能,此处仅须要后盾服务器实现get办法和post办法即可 get办法 次要是用于,咱们在微信后盾设置token的时候,微信后盾会向咱们的服务器发送get申请,判断咱们服务是否有正确的数据 post办法次要是用于,粉丝在咱们的微信后盾发送音讯的时候,是以post的形式发送给咱们的后盾服务器的 Token机制参数形容signature微信加密签名,signature联合了开发者填写的token参数和申请中的timestamp参数、nonce参数。timestamp工夫戳nonce随机数echostr随机字符串开发者通过测验signature对申请进行校验(上面有校验形式)。若确认此次GET申请来自微信服务器,请原样返回echostr参数内容,则接入失效,成为开发者胜利,否则接入失败。加密/校验流程如下: 1)将token、timestamp、nonce三个参数进行字典序排序 2)将三个参数字符串拼接成一个字符串进行sha1加密 3)开发者取得加密后的字符串可与signature比照,标识该申请来源于微信 token算法流程图 验证办法(get) 1.服务器端获取token、nonce、timestamp组成列表2.列表排成字典序3.排序后的元素进行摘要4.摘要比对signature5.响应echostr参考微信后盾开发文档连贯:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Getting_Started_Guide.html xml数据解析兵长,不晓得你有没有用过xml来做数据的序列化,此处你必定会问,为什么用xml,而不必json,不必protobuf 来我给你简略介绍一下xml: XML是可扩大标记语言,其中标记指的是计算机中所能了解的信息符号,通过标记计算机之间能够解决蕴含各种信息的资源,咱们能够通过通用的标记语言来进行标记 用人话来说就是,xml是数据序列化的其中一种形式,微信定下来应用该形式来对数据进行序列化,咱们须要对此进行开发,因而也须要遵循微信的规定 例如 微信后盾的 text音讯类型 申请 xml格局如下 文本音讯,微信公众平台申请微信后盾服务器会带的字段有:FromUserName,ToUserName,CreateTime,MsgType,Content,MsgId 咱们开发的微信后盾服务器,须要依照如下数据格式做回复:xml 带上如下字段ToUserName,FromUserName,CreateTime,MsgType,Content 兵长,再给你回顾一下,实现微信后盾服务器被动回复音讯的服务,须要用到上述说到的3点,http服务、token机制、xml解析,记住咯,我要开始撸代码了 具体实现main.go 启动http服务器,开始监听80端口package mainimport ( "fmt" "github.com/wonderivan/logger" "net/http" "time")const ( port = 80 //后盾服务器端口号80,本人的公网服务器 须要设置防火墙,关上80端口 token = "XXXXXXX")// 须要本人批改token,以适应本人公众号的tokenfunc main() { logger.SetLogger("./log.json") logger.Info(" ------------ start main ------------") server := http.Server{ Addr: fmt.Sprintf(":%d", port), // 设置监听地址, ip:port Handler: &httpHandler{}, // 具体应用哪个handler来解决 ReadTimeout: 5 * time.Second, // 读写超时 微信给进去 5秒 WriteTimeout: 5 * time.Second, MaxHeaderBytes: 0, } logger.Info(fmt.Sprintf("Listen: %d", port)) logger.Fatal(server.ListenAndServe())}route.go ...

March 17, 2021 · 2 min · jiezi

关于实践:无侵入式mock平台在得物的实践

一、概述1.1 背景介绍作为测试应该都遇到过如下两大痛点: 1.只想测试被测系统A,却须要从依赖零碎开始一层层造本人想要的测试数据,造数破费工夫长,边界值及异样场景不好模仿。 2.接口自动化,UI自动化,埋点自动化因为服务或者测试数据的不稳定性导致自动化保护老本高。 要解决上述问题,根本都会想到mock。目前市面上有很多优良的开源mock框架:Mockito、PowerMock、EasyMock、JMockit等,但这些框架对于咱们当初的业务场景及次要是在集成测试过程中应用,显然不是咱们想要的。因为咱们心愿在不改变开发代码的状况下反对得心应手的结构mock接口的返回报文来测试不同的业务场景,基于这种内部依赖服务走http模式的技术架构,一套无侵入式的mock平台应运而生。 hulk是一个无侵入式的http mock平台,反对客户端代理,从网关层mock,反对后端服务之间的mock。反对返回报文函数配置,并且具备放行逻辑。将来还将反对filter,依据不同的入参返回不同的mock数据。 1.2 零碎架构基于Django + mitmproxy + vue + MongoDB + MySQL 目前整个技术架构比较简单,mock服务基于Django框架开发,代理层次要是在开源框架mitmproxy根底上做了二次开发买通和mock零碎的交互,前端配置平台应用了公司的脚手架poizon-cli。数据存储次要用了MongoDB和MySQL,进步性能后续会思考引入redis,将配置信息缓存到redis中升高接口响应工夫。 1.2.1 服务端mock时序图 1.2.2 客户端mock时序图 二、mock服务2.1 部署及性能通过Nginx + Uwsgi + Django部署,反对高并发 能够间接通过测试组jenkins构建部署 部署脚本: # 服务器我的项目地址# shellcheck disable=SC2164cd /home/dhk/workspace/hulkpython37 -m venv venv # 生成虚拟环境source venv/bin/activate # 启动虚拟环境python37 -m pip install --upgrade pip # 降级pippython37 -m pip install -r requirements.txt # 装置依赖库# shellcheck disable=SC2164cd /home/dhk/workspace/hulk/hulk #进到uwsgi.ini目录# shellcheck disable=SC2006# shellcheck disable=SC2009# 获取uwsgi父过程pid=`ps -ef | grep "uwsgi" | grep -v grep | awk '{print $2}' | awk 'NR==1{print}'`if [ -n "$pid" ]then uwsgi --reload uwsgi.pidelse uwsgi --ini uwsgi.inifi性能:在4C8G的机器上的单机性能指标 ...

January 29, 2021 · 3 min · jiezi

关于实践:亲历者说-完整记录一年多考拉海购的云原生之路

作者 | 张洪箫(花名:伏见)阿里巴巴新批发高级技术专家起源|阿里巴巴云原生公众号 前言考拉海购的整个云化革新是从 2019 年 10 月份开始的,过后的惟一指标就是短时间内疾速实现迁徙。在不到 4 个月的工夫里,考拉团队惟一思考的是如何以最快的速度完成使命,云原生是咱们抉择的最合适的一条路。 实际历程 本篇次要从第三阶段的云产品接入和第四阶段运研模式的降级来谈谈考拉海购的实际过程。 云产品接入1. 云原生产品定义云原生实质上是一套技术体系和方法论。随着容器技术、可继续交付、编排零碎等技术的倒退,同时在开源社区、散布式微服务等理念的带动下,利用上云曾经是不可逆转的趋势。真正的云化不仅仅是基础设施和平台的变动,利用自身也须要做出扭转。在架构设计、开发方式、利用运维等各个阶段基于云的特点,面向开源和标准化,建设全新的云化的利用,即云原生利用。 云原生技术有利于各组织在私有云、公有云和混合云等新型动静环境中,构建和运行可弹性扩大的利用。依据 CNCF 的定义,云原生的代表技术包含容器、服务网格、微服务、不可变基础设施和申明式 API。阿里云提供了音讯队列产品,如音讯队列 RocketMQ 版、音讯队列 Kafka 版等,利用实时监控服务 ARMS,微服务引擎 MSE,利用高可用服务 AHAS,性能测试 PTS,函数计算 FC 等中间件云原生产品,为考拉海购从传统利用向云原生利用演进,打下了松软的根底。 2. 心路历程咱们在云产品的接入过程中, 大抵在心态上经验了三个阶段。 1)第一阶段:很好、很弱小,接入效率杠杠的这部分次要是在 2019 年 10 月 - 2020 年 3 月之前,那时候接入的都是数据库、Redis,以及 ASI 这种产品,绝对用户比拟多,整体比较稳定,与开源产品基本上齐全兼容,迁徙工具及周边建设都比较完善,所以迁徙起来十分安稳,基本上改变一部分点就能够了。 2)第二阶段:云产品真丰盛,要啥都有以前很多组件还是咱们本人保护的,然而随着连贯实例的减少,读写的次数多了,时不时呈现宕机。那时候据说微服务引擎 MSE 很好用,它提供一站式微服务能力加持,包含微服务依赖组件托管、无侵入的微服务治理,更快捷、稳固、低成本的运行微服务。咱们找了下 MSE 的兄弟,他们拍着胸口说没问题,产品运行之后真的就没呈现过那些问题了。 像这样的例子还很多,那时候的感触是,只有真正体系化地去应用云原生产品,你才会对云原生的价值有更粗浅的感触。 3)第三阶段:磨合适应随着考拉海购开始接入团体的业务平台,供应链也开始和团体进行交融,咱们也进一步发展云化的历程。过程中也有挑战,不过在克服重重困难后,咱们如期完成了各项的革新,并且十分安稳的度过了几次大促,云原生产品十分好地撑持了考拉海购业务的增长。 3. 接入的过程1)接入策略因为云产品和考拉海购自建的产品有肯定的能力差异,所以咱们建设了一整套产品评估和接入试验田机制来保障整个接入的有序及性能的可迁移性,正是这套机制的良好运行,咱们整个的稳定性失去了保障,在整个根底大变动中都没有呈现大的故障。 咱们的整个保障流程如下图: 2)权限计划接入云产品面临的第一个问题是,云账号,云产品资源权限怎么治理?阿里云自身提供了 RAM 产品,作为治理用户身份与资源拜访权限的服务。那么 RAM 账号如何何员工身份关联? 是为每个产品申请一个子账号,所用人共用该子账号?还是为每个人申请一个 RAM 子账号,独自为每个人治理资源权限?或者为利用申请一个子账号,通过员工的利用权限来和子账号的资源权限做关联?考拉海购有几百人,计划2和3都面临着很高的子账号生命周期以及资源权限的治理老本,所以咱们初期在应用这些中间件云产品时,出于简略思考,都采纳了第一个计划——申请一个子账号,开发一起用。 其带来的问题就是资源权限粒度太粗,比方应用任务调度(SchedulerX) ,  登录到控制台就能够操作所有利用的所有工作,这对于平安生产来说,自身就是一件很危险的事件。所以为了利用平安,咱们向中间件云产品提的第一个需要,基于 RAM 提供按利用粒度做资源受权的能力。 考拉海购用户在登录云控制台时,感知不到 RAM 账号。在基于 RAM 云产品  STS(Security Token Service) 的能力,封装了一层简略的云控制台跳转长期受权,在生成 STS Token 时,依据 BUC 获取以后用户,并生成和指定一个额定的权限策略,限度该用户操作云资源(利用)的权限。登录页面如下图: ...

January 21, 2021 · 2 min · jiezi

关于时间:基于ARIMASVM随机森林销售的时间序列预测

原文链接 http://tecdat.cn/?p=1130 现在DT(Data technology)时代,数据变得越来越重要,其外围利用”预测“也成为互联网行业以及产业改革的重要力量。对于批发行业来说,预测简直是商业智能(BI)钻研的终极问题,单纯从机器学习的角度来说,做到精准预测很容易,然而联合业务进步企业利润却很难。预测精确性是外围痛点。业务挑战 针对服装这类的时尚产业的客户需要,咱们参考ZARA,将产品粗略分为: 根本款和时装。对于根本款,每年都没什么大变动,国内风行的影响也不大,那么能够进行长打算生产。对于时装,决定潮流走向的决策权不在某个区域,一个中央的买手们也没有成长到能够精确预判国内风行趋势,所以须要联合不同区域的各种因素,进行预测。对应的,在新货形成中,销量预测策略为:根本款打算生产,时尚款机动调整。 解决方案 工作/指标 依据服装批发业务营销要求,使用多种数据源剖析实现精准销量预测。 数据源筹备 沙子进来沙子出,金子进来金子出。无数据或数据品质低,会影响模型预测成果。在建设的一个正当的模型之前,对数据要进行收集,收集除已有销量数据之外的额定信息(比方天气、地点、节假日信息等),再在收集的数据根底上进行预处理。 有了数据,然而有一部分特色是算法不能间接解决的,还有一部分数据是算法不能间接利用的。 特色转换 把不能解决的特色做一些转换,解决成算法容易解决的洁净特色。举例如下: 销售日期。就工夫属性自身来说,对模型来说不具备任何意义,须要把日期转变成到年份、月份、日、周伪变量。 产品特色。从产品信息表外面能够失去样式、色彩、质地以及这款产品是否是限量版等。然而并没有这些变量。这就须要咱们从产品名字抽取这款产品的上述特色。 以上例举的只是局部特色。 结构 以上阐明了如何抽取相干特色,咱们大抵有如下训练样本(只列举局部特色)。 划分训练集和测试集 思考到最终模型会预测未来的某时间段的销量,为了更实在的测试模型成果,以工夫来切分训练集和测试集。具体做法如下:假如咱们有2014-02-01 ~ 2017-06-17的销量相干数据。以2014-02-01 ~ 2016-03-19的销量数据作为训练,2016-03-20~2017-06-17的数据作为测试。 建模 ARIMA,个别利用在股票和电商销量畛域 ARIMA模型是指将非安稳工夫序列转化为安稳工夫序列,而后将后果变量做自回归(AR)和自平移(MA)。 随机森林 用随机的形式建设一个森林,森林由很多决策树组成,随机森林的每一棵决策树之间是没有关联的。在失去森林之后,当有一个新的输出样本进入的时候,就让森林中的每一棵决策树别离进行一下判断,看看这个样本应该属于哪一类(对于分类算法),而后看看哪一类被抉择最多,就预测这个样本为那一类。 反对向量回归(SVR) SVR最实质与SVM相似,都有一个margin,只不过SVM的margin是把两种类型离开,而SVR的margin是指外面的数据会不会对回归有帮忙。 模型优化 1.上线之前的优化:特征提取,样本抽样,参数调参。 2.上线之后的迭代,依据理论的A/B testing和业务人员的倡议改良模型 从上图能够看出,在此案例中,svm和随机森林算法模型的预测误差最小,使用3种办法预测某商品的销量,其可视化图形如下: 能够看出,销量的预测值的趋势曾经根本与实在销量趋势保持一致,然而在预测期较长的区间段,其预测值之间的差异较大。 评估成果不能只看销量,要综合思考,须要参考业务对接、预测精度、模型可解释性和产业链整体能力等因素综合思考;不能简略作为企业利润减少的唯一标准。咱们的教训是,预测后果仅作为参考一个权重值,还须要专家意见,依照肯定的权重来计算。 瞻望 除了以上列举的一些办法,咱们曾经在尝试更简单的销售预测模型,如HMM、深度学习(Long Short-Term Memory网络、卷积神经网络(CNN))等;同时须要思考到模型的可解释性、可落地性和可扩展性、防止“黑箱”预测;还在尝试采纳混合的机器学习模型,比方GLM+SVR,ARIMA + NNET等。 销售预测简直是商业智能钻研的终极问题,即使通过机器学习算法模型可能进步测试集的预测精度,然而对于将来数据集的预测,想做到精准预测以使企业利润最大化,还须要思考机器学习模型之外的企业自身因素。比方,企业的整体供应链能力等,如何将企业因素退出到机器学习模型之中,是将来预销售预测的一个难点与方向。因而,要想解决销售预测终极问题还有一段路要走。   点击“浏览原文”下载浏览报告全文。 原文出处:http://tecdat.cn/category/大数据部落/

August 5, 2020 · 1 min · jiezi