• 关于

    阿里云钉钉云解决方案

    的搜索结果

回答

钉钉云专注于提供安全、稳定、易用、好用的云服务。目前钉钉云的服务目标主要是应用服务商。钉钉云的详细介绍以及使用可参考钉钉云文档(1)对开发者:钉钉云能够减少成本,在阿里云的基础上再打折扣,还提供了钉钉云整体解决方案。(2)对用户:钉钉云能够保障企业数据安全与稳定,让用户享受和钉钉同等级的安全服务。(3)对服务商:能够让企业更放心,获取更多潜在客户。1.钉钉云是什么钉钉云专注于提供安全、稳定、易用、好用的云服务。目前钉钉云的服务目标主要是应用服务商ISV,后继钉钉云也会为企业提供简单易用的上云服务,帮助企业快速接入钉钉生态体系,进入移动云服务时代。安全:通过钉钉云,让应用服务商的微应用运行在钉钉管控的环境下,从而实现对企业通讯录等敏感数据的保护。同时针对数据使用进行实时监控及预警,多种手段切断敏感数据外流通道。通过一系列的手段,可以确保企业数据的安全,解除企业对于数据泄漏的担忧。稳定:应用的稳定性对于钉钉及应用服务商都是非常重要,它会直接影响用户的使用体验,甚至会影响客户的日常工作,因此稳定性非常重要。通过钉钉云将提供专业细致的应用架构分析,全面的代码扫描及压力测试,健全的监控及报警方案,提高应用的稳定性。同时通过钉钉云也可以实现对应用的托管,避免应用服务商导致的不可控因素,实现应用的服务永继。赋能:钉钉云还致力于提供易用好用的云服务,致力于简化开发流程,提高开发效率,赋能给开发者创建更多高质量的钉钉微应用,繁荣钉钉开放生态。2.钉钉云和阿里云的关系钉钉云是基于阿里云构建的,因此很多关于阿里云的知识在钉钉云都是通用的,如果你了解阿里云的使用,那么钉钉云对你来说是非常容易上手的。但是钉钉云也有不同于阿里云的地方,钉钉云的目标是安全、稳定和赋能,因此钉钉云在阿里云的基础上进行了一些定制,对一些功能和权限进行了限制,出发点是保证企业的数据安全。同时钉钉云在阿里云的基础后继也会推出一系列的PAAS及SAAS服务,降低ISV及企业的接入成本,提高开发者的开发体验及效率。
游客2q7uranxketok 2021-02-25 12:17:00 0 浏览量 回答数 0

回答

钉钉云专注于提供安全、稳定、易用、好用的云服务。目前钉钉云的服务目标主要是应用服务商。钉钉云的详细介绍以及使用可参考钉钉云文档(1)对开发者:钉钉云能够减少成本,在阿里云的基础上再打折扣,还提供了钉钉云整体解决方案。(2)对用户:钉钉云能够保障企业数据安全与稳定,让用户享受和钉钉同等级的安全服务。(3)对服务商:能够让企业更放心,获取更多潜在客户。1.钉钉云是什么钉钉云专注于提供安全、稳定、易用、好用的云服务。目前钉钉云的服务目标主要是应用服务商ISV,后继钉钉云也会为企业提供简单易用的上云服务,帮助企业快速接入钉钉生态体系,进入移动云服务时代。安全:通过钉钉云,让应用服务商的微应用运行在钉钉管控的环境下,从而实现对企业通讯录等敏感数据的保护。同时针对数据使用进行实时监控及预警,多种手段切断敏感数据外流通道。通过一系列的手段,可以确保企业数据的安全,解除企业对于数据泄漏的担忧。稳定:应用的稳定性对于钉钉及应用服务商都是非常重要,它会直接影响用户的使用体验,甚至会影响客户的日常工作,因此稳定性非常重要。通过钉钉云将提供专业细致的应用架构分析,全面的代码扫描及压力测试,健全的监控及报警方案,提高应用的稳定性。同时通过钉钉云也可以实现对应用的托管,避免应用服务商导致的不可控因素,实现应用的服务永继。赋能:钉钉云还致力于提供易用好用的云服务,致力于简化开发流程,提高开发效率,赋能给开发者创建更多高质量的钉钉微应用,繁荣钉钉开放生态。2.钉钉云和阿里云的关系钉钉云是基于阿里云构建的,因此很多关于阿里云的知识在钉钉云都是通用的,如果你了解阿里云的使用,那么钉钉云对你来说是非常容易上手的。但是钉钉云也有不同于阿里云的地方,钉钉云的目标是安全、稳定和赋能,因此钉钉云在阿里云的基础上进行了一些定制,对一些功能和权限进行了限制,出发点是保证企业的数据安全。同时钉钉云在阿里云的基础后继也会推出一系列的PAAS及SAAS服务,降低ISV及企业的接入成本,提高开发者的开发体验及效率。
游客2q7uranxketok 2021-02-24 18:07:32 0 浏览量 回答数 0

回答

关于钉钉云解决方案,详细请咨询:点击这里咨询 钉钉云产品无法购买,可能是购买产品的价格大于现有充值,关于钉钉云产品价格,钉钉云价格 钉钉云帮助文档,https://ding-doc.dingtalk.com/doc#/ln6dmh/wlfdg0 如还有疑问,请联系客服 到阿里云会员中心提交工单,让售后帮你检查看看。 或点击右侧的浮标:联系我们 提交工单的地址:https://workorder.console.aliyun.com/#/ticket/createIndex 更多阿里云帮助文档 https://help.aliyun.com 希望对您有帮助!
阿里朵 2019-12-02 02:19:48 0 浏览量 回答数 0

问题

钉钉企业定制服务业务

[font="]深圳市创联云科技有限公司成立于2013年,总部位于深圳,企业人数120余人。目前在深圳、佛山、东莞、厦门、湖南长沙设有分公司(覆盖整个湖南省)。是阿里巴...
深圳创联云 2019-12-01 21:52:52 2661 浏览量 回答数 0

问题

百川版本升级到阿里云版本后出现白屏

[backcolor=transparent]1.问题 集成阿里云FeedBack SDK 百川版本升级到阿里云版本后出现白屏,如何解决? [backcolor=transparent]2.解决方案 可能是阿里...
猫饭先生 2019-12-01 22:06:30 982 浏览量 回答数 0

回答

Re普通钉钉用户账号开发及免登问题 这个还真可以的,看下视频给自己点信息, 钉钉免登演示视频:http://www.idsmanager.com/video/jzyt_36kr_2016_demo_day.mp4 ,再不行,很快你就可以在阿里云市场找到我们的免登解决方案了!
rodgun 2019-12-02 02:44:38 0 浏览量 回答数 0

问题

【精品问答】钉钉开放平台问答合集

1.应用服务商的入驻标准是什么? 2.如何申请入驻服务商? 3.未通过服务商审核怎么办? 4.如果未通过应用服务商申请可以开始开发应用吗? 5.钉钉云是什么? 6. 调工作通...
游客2q7uranxketok 2021-02-25 21:08:32 8 浏览量 回答数 0

问题

【大咖问答】阿里云数据库技术沙龙

本期大咖问答我们请到了阿里云数据库解决方案架构师
 牛远,阿里云数据库高级技术专家
郑旦,阿里云数据库高级技术专家 六金。 直播链接: 阿里云数据库技术沙龙 直播介绍: 应用上云是...
问问小秘 2019-12-01 21:51:26 113 浏览量 回答数 3

问题

百川版本升级到阿里云版本后出现找不到类或方法的问题

[backcolor=transparent]1.问题 集成阿里云FeedBack SDK 报错:找不到类或方法.如何解决? 例如: com.manjie.comic.phone E/AndroidRuntime: F...
猫饭先生 2019-12-01 22:06:27 916 浏览量 回答数 0

问题

【大咖问答】对话17年SAP资深专家卜志宏

大家好,我是卜志宏,拥有17年经验的SAP资深专家,12年SAP云解决方案经验,曾任职EMC全球解决方案中心SAP部门经理,德国电信中国区SAP运维经理,在...
tech君 2019-12-01 19:36:07 402 浏览量 回答数 2

问题

通往研发效能之路,云效2.0五大新品重磅发布

10月14日上午杭州云栖大会研发效能峰会,一站式企业协同研发云云效,进行了全新品牌升级,云效正式进入2.0全新时代。 云效源于阿里巴巴多年先进的管理实践理念(精益创业、看板方...
云效平台 2019-12-01 21:34:38 2370 浏览量 回答数 2

问题

SAP上云——助力制造业数字化转型

2018云栖大会武汉峰会新制造专场,由阿里云高级专家张泽坤带来了以“SAP上云——助力制造业数字化转型”为主题的演讲,对SAP上云之初存在的问题和上云后与企业的合作项目为企业带来的便利做了详细的解读,...
福利达人 2019-12-01 21:09:17 2793 浏览量 回答数 0

问题

【阿里云工业APP大赛】复赛入围36强公布,复赛规则请注意哦!

感谢各位对首届阿里云工业APP创新大赛的关注与参与, 第一阶段已顺利告捷,比赛作品提交已截止! 经过专家评委组的加班加点评比,以及大赛组委会的二次确认, 初赛入...
芝小仙 2019-12-01 21:51:05 3347 浏览量 回答数 0

问题

Spring Cloud Alibaba:Spring 社区的唯一国产开源项目

Spring Cloud Alibaba现已升级到2.1.0。Spring Cloud Alibaba为分布式应用程序开发提供了一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用Spring Cloud...
珍宝珠 2020-02-17 17:19:23 211 浏览量 回答数 1

问题

【大咖问答】基于深度学习的验证码识别解决方案

本期大咖问答我们请到了高级算法工程师 周坤泷(芫荽),帮助大家解决技术开发遇到的问题。 直播时间: 12月12日 20:00 直播介绍: 1. 通过个人...
珍宝珠 2020-03-18 10:32:53 2161 浏览量 回答数 5

问题

【大咖问答】第十四届D2前端技术论坛专场问答

D2大会简介:D2前端技术论坛(Designer & Developer Frontend Technology Forum, 简称 D2),是由阿里经济体前端委员会主办的面向全球前端领域的...
问问小秘 2019-12-01 21:56:43 36 浏览量 回答数 0

问题

移动推送 iOS SDK: SDK集成出错排查步骤

移动推送 iOS SDK 集成出错排查步骤 遇到问题可以先通过 文档页 进行关键字搜索,或者使用 云博士 检索,一般都能命中相关的疑问。如果在您的项目中已经集成支付宝SDK等阿里系SDK,再集成...
猫饭先生 2019-12-01 22:04:12 935 浏览量 回答数 0

问题

【精品问答】Docker与JVM常见bug解决方案50问(附源码)

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。每个Java程序都离不开Java虚拟机&#x...
游客pklijor6gytpx 2019-12-01 21:57:35 53 浏览量 回答数 0

回答

准备工作 登录控制台创建应用 手动在控制台根据实际业务需要创建对应表结构及其它相关配置,例如:索引,属性,数据源,过滤条件等。 下载此处我们提供的测试 应用结构模板,在创建应用结构时,选择“通过模板创建应用结构”,然后下一步,再选择左上角的“导入模板”,上传此处下载的应用结构模板,一直下一步直到完成。【此应用结构测试模板,可适用于标准版Java SDK文档中的搜索及推送数据Demo代码】 获取用户AccessKeyId和秘钥(secret) 用户可以使用阿里云的账号登录本系统,在登录完成后,点击“ACCESSKEY管理”可以查看您的Access Key ID(AccessKeyId)和 Access Key Secret(secret)。也可以在阿里云官网,点击“用户中心>我的服务>安全验证”即可到ACCESSKEY管理中心。 将SDK添加到项目中 使用OpenSearch SDK有两种方式: 1.下载SDK源码包,在下载中心下载最新版的JAVA SDK到本地,再下载此处的 slf4j-api-1.7.25 依赖 jar包,并将这2个jar包 import 到您的项目中,若项目中不包含此依赖jar包,会出现运行报错。 2.引入OpenSearch SDK依赖,通过maven二方库依赖的方式将opensearch的sdk加入到自己的项目中。 com.aliyun.opensearch aliyun-sdk-opensearch 3.1.3 创建client 通过控制台也可以完成创建应用的操作,这里介绍一下如何使用SDK实现。这里使用import SDK的方式,使用上面获取的AccessKey和Secret实例化一个SearcherClient(下面的操作里将继续使用如下的client),具体代码如下: import com.aliyun.opensearch.*; import com.aliyun.opensearch.sdk.dependencies.com.google.common.collect.Lists; import com.aliyun.opensearch.sdk.generated.OpenSearch; import com.aliyun.opensearch.sdk.generated.search.Config; import com.aliyun.opensearch.sdk.generated.search.SearchFormat; String appName = "应用名称"; String accesskey = "您的阿里云的Access Key ID"; String secret = "阿里云 Access Key ID 对应的 Access Key Secret"; String host = "这里的host需要根据访问应用基本信息页中提供的的API入口来确定"; //创建并构造OpenSearch对象 OpenSearch openSearch = new OpenSearch(accesskey, secret, host); //创建OpenSearchClient对象,并以OpenSearch对象作为构造参数 OpenSearchClient serviceClient = new OpenSearchClient(openSearch); 上传文档 OpenSearch的文档是一个json类型的字符串,结构如下: 打开控制台中的应用后,内部右上角也有 “上传文件” 功能,里面提供了类似下面的json格式测试数据,可下载下来直接上传使用,注意文件必须是utf8格式,且不能包含BOM头,否者上传会报错。 [ { “fields”:{...}, “cmd”:"..." } ... ] 一条文档是由fields字段和cmd字段构成的一个结构体,其中fields字段内包含文档的核心数据,cmd表示针对此条文档所做的操作,但标准版和高级版部分操作有所不同,标准版不支持update及部分字段更新,只支持全字段更新,因此对文档的添加,更新操作都是通过(add)方式实现,删除(delete)与原来相同。一段文档示例如下: [ { “fields”: { “id”: "0", “name”: "广大中小企业都有各种结构化的数据需要进行检索,目前一般采用数据库本身提供的搜索功能或者利用open source的搜索软件搭建,这样的做法不但会消耗网站本身的资源,性能也会很容易成为问题,而且相关性通常也不够好。我们的产品的目的是要利用阿里云先进的云计算和搜索技术向广大中小企业提供低成本,高质量,高性能,可定制的数据搜索解决方案。本项目和云搜索的通用解决方案目标略有不同,主要区别为本项目主要针对用户的结构化数据进行搜索,云搜索的通用解决方案则主要是针对网页型数据为处理对象。" }, “cmd”: "ADD" }, { “fields”: { “id”: "1", “name”: "云搜索( Cloud Search Engine),是运用云计算( Cloud Computing)技术的搜索引擎,可以绑定多个域名,定义搜索范围和性质,同时,不同域名可以有不同UI和流程,这个UI和流程由运行在云计算服务器上的个性化程序完成。作为新型搜索引擎,与传统搜索引擎需要输入多个关键字不同的是,用户可以告诉搜索引擎每个搜索关键字的比重,每个搜索关键字都被置于“搜索云”中,并用不同大小,粗细的字型区分。 " }, “cmd”: "ADD" } ] 将文档上传到应用的某个表中的代码如下: //定义DocumentClient对象添加json格式doc数据批量提交 DocumentClient documentClient = new DocumentClient(serviceClient); table_name = "要上传数据的表名"; data = "[{"cmd":"add", "fields":{"id":"0","name":"blabla..."}}]"; //执行推送操作 OpenSearchResult osr = documentClient.push(data, appName, table_name); 另外还可以通过DocumentClient类的提供的add、remove二个接口生成待上传的数据,最后在调用push方法将数据上传; 开始搜索 OpenSearch通过设置可以实现高度个性化的搜索需求,但通用的基本的搜索功能只需通过非常简单的设置即可实现: //创建SearcherClient对象,并以OpenSearchClient对象作为构造参数 SearcherClient searcherClient = new SearcherClient(serviceClient); //定义Config对象,用于设定config子句参数,指定应用名,分页,数据返回格式等等 Config config = new Config(Lists.newArrayList(appName)); config.setStart(0); config.setHits(5); //设置返回格式为fulljson格式 config.setSearchFormat(SearchFormat.JSON); // 创建参数对象 SearchParams searchParams = new SearchParams(config); // 指定搜索的关键词,这里要指定在哪个索引上搜索,如果不指定的话默认在使用“default”索引(索引字段名称是您在您的数据结构中的“索引字段列表”中对应字段。),若需多个索引组合查询,需要在setQuery处合并,否则若设置多个setQuery子句,则后面的子句会替换前面子句 searchParams.setQuery("name:'搜索'"); //设置查询过滤条件 searchParams.setFilter("id>0"); //创建sort对象,并设置二维排序 Sort sort = new Sort(); //设置id字段降序 sort.addToSortFields(new SortField("id", Order.DECREASE)); //若id相同则以RANK相关性算分升序 sort.addToSortFields(new SortField("RANK", Order.INCREASE)); //添加Sort对象参数 searchParams.setSort(sort); //执行查询语句返回数据对象 SearchResult searchResult = searcherClient.execute(searchParams); //以字符串返回查询数据 String result = searchResult.getResult(); 调试 通过上面的操作我们已经可以使用基本的搜索功能了,但是优化搜索、提高搜索结果相关性是一个漫长的的过程,需要我们不断试错和迭代来一点点改进。在这个过程中如果遇到问题或者发现结果与预期不一致时可以通过下面的接口获得请求的详细信息,您可以通过这些信息排查问题。特别是当您遇到问题,在旺旺群、钉钉群中寻求帮助的时候,根据您提供的调试信息我们可以迅速帮您定位到问题所在,主要向我们提供查询异常或不符合预期返回的,请求ID 或 查询http请求串等信息,进行查询分析定位原因。 部分用户有可能会有记录查询请求串的需求,例如打印上一次查询请求串信息,该信息中的部分查询子句可以直接截取出来放到控制台中的搜索测试框中运行调试,可参考如下代码 SearchResultDebug searchdebugrst = searcherClient.executeDebug(searchParams); System.out.println(searchdebugrst.getRequestUrl());
保持可爱mmm 2020-03-26 22:02:23 0 浏览量 回答数 0

回答

背景与痛点 阿里云的客户远程在ECS内部执行命令是最常见的运维操作之一了,比如在ECS内安装卸载软件,启动停止某个进程,等等。很多情况下,还需要对一个ECS列表中的多台ECS,统一的执行某个相同的命令并汇聚执行的结果。 一个可行的方案是利用SSH远程连接到ECS上执行命令,但是开放ECS的SSH端口给internet访问是危险的。客户可以通过自建跳板机来间接访问ECS以解决安全性的问题,但是这带来了复杂度和成本的上升。 Ansible是业界比较流行的开源的运维工具,但是其认证是独立于阿里云的账号体系之外的,无法通过阿里云的官方工具进行权限控制,其操作记录也无法在阿里云上进行审计。 如果用户使用的是Windows版本的ECS,虽然可以利用PowerShell远程执行命令,但是配置和维护过程更加困难。 在此,我们向大家推荐阿里云官方的批量在多台ECS内执行命令的最佳实践:运维编排服务OOS+云助手。云助手提供了在ECS内执行命令的原子能力,运维编排服务OOS则附加了更丰富的批量、定时、事件驱动、自定义模板等能力,两者结合,可以让ECS运维工作变得既安全又简单高效。 准备工作 准备工作只有两个简单步骤。 首先,请访问运维编排OOS的控制台点一下“立即开通”按钮完成服务的开通。这是一个免费服务,请放心开通。开通链接:https://oos.console.aliyun.com/。 oos 开通OOS后,请确保您已安装并配置了阿里云命令行工具CLI,且版本号大于等于 3.0.19。阿里云命令行工具CLI的Github下载链接为:https://github.com/aliyun/aliyun-cli/releases;快速配置指南:https://help.aliyun.com/document_detail/121258.html。 开始执行 我们直接先看一个例子,如要针对cn-beijing地域的[“i-id45678zxcvb”,”i-id45679zxcvb”]这两台远程Linux ECS,执行“echo 123”这个shell命令,只需要在本地的shell终端里,输入命令: aliyun oos StartExecution --region cn-hangzhou --TemplateName ACS-ECS-BulkyRunCommand --Parameters '{"commandType":"RunShellScript", "commandContent":"echo 123", "targets":{"Type":"ResourceIds", "ResourceIds":["i-id45678zxcvb","i-id45679zxcvb"]}, "rateControl":{"maxErrors":0,"mode":"Concurrency"}, "OOSAssumeRole":"" }' 简单解释一下上面这个命令,它调用了oos的StartExecution的API,启动官方提供的公共模板ACS-ECS-BulkyRunCommand,传入包含了ECS实例列表(ResourceIds)和执行内容(commandContent)的参数。 该命令会返回一个json结构,如果您能找到”ExecutionId”: “exec-xxxxx”, 那么恭喜您,被指定的命令已经开始在远程执行了。 请记录下ExecutionId,然后作为参数输入到下面的ListExecutions命令查询执行的过程和结果: aliyun oos ListExecutions --region cn-hangzhou --ExecutionId "exec-id123456zxcvb" 如果命令正在运行中,您会看到类似如下的结果,Status是“Running”。TotalTasks是总的命令数,SuccessTasks是已经执行成功的命令数。两个数字的差,就是还待执行的命令数。 { "Execution": { "Outputs": {}, "TemplateName": "ACS-ECS-BulkyRunCommand", "Parameters": { "commandType": "RunShellScript", "OOSAssumeRole": "", "rateControl": { "maxErrors": 0, "mode": "Concurrency" }, "targets": { "ResourceIds": [ "i-id45678zxcvb","i-id45679zxcvb" ], "Type": "ResourceIds" }, "commandContent": "echo 123" }, "Counters": { "Failed": 0, "Success": 0, "Total": 0 }, "ExecutedBy": "aliyun-account1", "LoopMode": "Automatic", "Mode": "Automatic", "TemplateId": "t-123456zxcvb", "Status": "Running", "TemplateVersion": "v2", "SafetyCheck": "Skip", "StartDate": "2019-10-15T07:22:03Z", "ExecutionId": "exec-id123456zxcvb", "CurrentTasks": [] }, "RequestId": "1A9B1817-0530-470C-8640-BADADADB220BD" } 您可以多次执行同样的ListExecutions命令进行查看,直到看到Outputs表示整个命令的结果,对于本例,为两台ECS上的标准输出: oos 进阶-自定义模板 在上面的例子里,命令的参数有点过于复杂,其实我可以自定义模板把参数固定下来,让执行的命令变得格外简单。 自定义模板的命令如下,您可以根据自己的需要进行改写: aliyun oos CreateTemplate --region cn-hangzhou --TemplateName sample123 --Content '{ "FormatVersion": "OOS-2019-06-01", "Tasks": [ { "Name": "runCommand", "Action": "ACS::ECS::RunCommand", "Properties": { "commandContent": "echo 1234", "instanceId": "{{ ACS::TaskLoopItem }}", "commandType": "RunShellScript" }, "Loop": { "Items": ["i-id45678zxcvb","i-id45679zxcvb"], "Outputs": { "commandOutputs": { "AggregateType": "Fn::ListJoin", "AggregateField": "commandOutput" } } }, "Outputs": { "commandOutput": { "Type": "String", "ValueSelector": "invocationOutput" } } } ], "Outputs": { "commandOutputs": { "Type": "List", "Value": "{{ runCommand.commandOutputs }}" } } }' 执行创建自定义模版命令后,您只需要执行如下命令就可以完成和前面一样的效果了 aliyun oos StartExecution --region cn-hangzhou --TemplateName sample123 --Parameters '{}' 此命令调用oos的StartExecution这个API,执行sample123这个自定义模板,不需要额外传入参数。 当然,前面用CLI所做的一切操作,都可以在OOS控制台执行,OOS控制台链接为:https://oos.console.aliyun.com/ 了解更多 运维编排OOS是阿里云的运维自动化平台,适用于批量、定时、事件驱动、跨区域运维等场景,除了在ECS内执行命令外,还可以完成ECS创建释放,启停,变配,网络带宽升级,挂载云盘等等各种操作。 如果想了解更多,加入钉钉群“运维编排OOS支持群”,群号23330931。我们会有值班人员在线支持。 OOS管理控制台的链接:https://oos.console.aliyun.com OOS帮助文档的链接 https://help.aliyun.com/product/119529.html
1934890530796658 2020-03-24 14:02:34 0 浏览量 回答数 0

问题

【大咖问答】D2前端大神云集,问答专场

D2大会简介:D2前端技术论坛(Designer & Developer Frontend Technology Forum, 简称 D2),是由阿里经济体前端委员会主办的面向全球前端领域的...
问问小秘 2019-12-01 21:57:29 2686 浏览量 回答数 9

回答

01「思维陷阱」是一个人职场平庸的根本原因 有没有人想过:为什么有些人在职场显得能力特别差? 我们生活在一个容易让人焦虑的时代,每天都需要主动或者被动地接受大量的信息,但少有人清醒地知道,这些信息悄悄改变了我们的“思维方式”乃至“行为”,引导我们走进陷阱。 如果你不能意识到,你可能正在被“思维陷阱”拖入平庸和焦虑的痛苦中。 为了方便理解,我下面列出三种最常见的陷入“思维陷阱”的人,对照看看自己是不是: 热衷快餐知识,却不能清醒知道自己无知的人 习惯什么都“靠自己”的人 无法一眼看透事物发展背后本质的人 **1. 热衷快餐知识 ** 却不能清醒知道自己无知的人 伴随着知识付费的崛起,近几年出现了大量热衷快餐知识的人_他们是朋友圈的“概念狂人”,对权威、意见领袖的观点非常追捧,关于最新的话题他总能发表看法,他们热衷于走捷径,转发的文章总是散发着贩卖焦虑的气味。 但如果与他们深入交流,你会发现:除了这些二手的快餐知识,他们对常识和经典无知的可怕。 这些人最大的特点是不知道自己的无知——认为自己脑子中的想法是什么样,世界就是什么样。这种人在职场有一个很难缠的习惯:很喜欢先入为主一个自己坚持的观点,然后再围绕这个观点去寻找支持论据。 如果这种人有较高的执行力,那就太可怕了——因为在他们很努力地将片面的理解付诸行动时,你根本无法说服他,一切都要等他让所有人都撞得头破血流停下来才能进行调整。 **2. 习惯 ** 什么都“靠自己”的人 如果一个人看多了鸡汤文里“什么都不如自己可靠”的口号,或者片面理解了近几年常说的“为结果负责”这句话,那他就会走入“靠自己”的思维陷阱。 这些人最大的特点就是害怕麻烦别人,害怕拒绝——认为目前事物无法圆满完成的原因,主要是自身实力或资源还不够,所以会一味地增强自身资源以期望达到目标。 他们既不能看到别人那里多余的可协作资源,也不能将自己的资源为别人所用。 因为害怕暴露出错,他们也不擅长分享和求助。 他们会觉得自己深刻理解了“责任”的意义,但是却总是感到每天的工作压力山大,那些习惯在办公室里加班到凌晨但效率低下的员工往往是这种人。 **3. 无法一眼看透事物发展背后矛盾本质的人 ** 《教父》最有名的一句话是“花半秒钟就看透事物本质的人,和一生都看不清事物本质的人,注定是截然不同的命运。” 那什么是“事物的本质”呢? 其实就是位于事物发展中底层的矛盾。 如果一个人看事物或者解决工作难题的时候,没有思考背后的矛盾和规律的习惯,就容易流于表面,他们可能洞察力不错,比起一般人能关注那些细节,但是却缺乏全局观,容易纠结在自己的小世界里。 注意:没有日常观察思考“事物发展背后的矛盾”习惯的人,注定无法成长为团队的领导者! 在职场,他们是需要反复指导和争论,耗费团队沟通成本的下属,在解决问题时,他们是无法快速清晰找到问题抓手的那群人;在生活中,他们往往又会陷入“拎不清”或“选择困难”的麻烦中。 02 那些互联网大神 是如何跳出“思维陷阱”的? “思维陷阱”就藏在人性的弱点中,它是如此可怕和不易察觉,我们必须保持一些日常思考习惯来对抗它对我们的影响。 也许你能从下面三位阿里巴巴高管身上拥有的特质中找到答案,这些习惯帮助他们克服“思维陷阱”在中国最复杂的商业经济体——阿里巴巴中取得了事业上的巨大成就。 他们是那些经历过绝望后谷底反弹的人,那些长期默默坚持而又一鸣惊人的人,那些在危急关头敢于独自按下刹车键的人,他们分别是钉钉创始人无招、盒马鲜生创始人侯毅,以及现在的淘宝天猫总裁蒋凡。 **1. 钉钉创始人无招 ** 抛下已知去“观察”外界的习惯 “无招”是花名,如果结合他在阿里的经历看,会发现很有意思。 钉钉创始人无招 2014年,阿里经历了强推社交产品“来往”的巨大挫折;在智能手机全国开始普及的年代,因为社交用户基数大,而且极度高频的入口级特性,社交产品所能带来的安全感是各大互联网厂商都极度渴望的,所以你可以理解为什么马化腾会把微信横空出世称为:抢到第一张移动互联网船票。 而陈航和他所在的团队,就是试图通过挑战微信,为阿里赢得安全感的一群人。 用再造一个“微信”来挑战微信,结果就是无招需要和团队把一场惨痛的失败消化下来。 但有没有人想过:这样的严重挫败陷入的低谷,对一个产品型的团队领导者也许是一件好事——因为绝望会让一个人抛弃原有的脑子里对世界所有的理解,进入一种彻底放空和内省状态,这时候才能静下心来观察和阅读世界真正的需要。 这与悟道的逻辑不谋而合。 作为一个产品经理可能会反思:任何大而广的东西一定有弱点,如果说微信的社交面是一条横线,需要观察寻找的,是哪里可以诞生一条尚未挖掘的纵线。 那么这条纵线是什么呢? 静心向内看就会有答案,那就是阿里生态圈的万千小B企业。 如果你进入用户的心中去“观察”他们的想法,你就会用心眼看到后面的答案。 之后被外界评价“反人性”的钉钉迅速破圈微信获得了成功,而鹅厂主打“温度”的企业微信却一直不温不火,这个现象背后原因是什么? 很多人认为是因为钉钉抓住了老板的强压执行力需求,自上而下地推动市场,所以在微信办公的大环境下撕开了一个缺口。还有人同时认为无招是个冷酷的人。 但我现在却不这样认为。 在仔细阅读和研究了关于钉钉2015年来,所有无招在公开场合的发言和对钉钉产品的理解后,我认为他是国内少有的具备高度同理心的产品经理型CEO之一。 他身上有一种放下固有认知,虚心“观察”用户内心所需的能力,而且这几乎融入了他和团队的日常习惯中。 可能连使用者自己都不知道,钉钉的成功最深处,是在碎片化办公的大环境下,人性中饱含的对深度工作专注和效率的追求。而在这一点上,无论是老板还是员工,只要他还算是 “想做事的人” 那就是共通的! 人们只会说自己要一匹更快的马,但亨利福特却能观察到人心深处对速度的追求,为人们造出汽车。 “观察”的不是表面,而应该是人的内心! 在这个状态中,最重要的是要保持不带任何预设立场的“空”,不先入为主,不画地为牢,带着无知观察世界。 你不能带着“已知”去看待市场;不能孤立地,刻板地去读那些所谓的“大数据”,也不能光靠人云亦云来判断用户真正的需求,而要用“无知”的心态去接近和观察用户——那些一个个自然人的情绪和需要,以人为本。 不然,就会像百度沉迷于搜索引擎的修补,放出了头条;腾讯放弃了对用户工作外时间使用的的观察,做大了抖音。 如果他们的产品经理愿意走出北上广高大上的写字楼,走到他们真正需要服务的“群众”中去,结合数据和实践,也许就会“观察”到——哦~原来世界不是自己坐在角落里想象的那样。 钉钉所有的员工,入职后第一课就是被要求放下已知,带着空杯进入那些小B企业中,同工同吃,“观察”和阅读用户内心真正的需要。 “无”招胜有招——《笑傲江湖》里风清扬传给令狐冲的第一句话。 **2. 盒马鲜生创始人侯毅 ** 保持“关联性”思考的习惯 说完钉钉的无招,我们再看看盒马的侯毅。 盒马鲜生创始人侯毅 侯毅这个人很有意思,因为他最早是刘强东的“兄弟”,在京东长期希望推动一个类似盒马的前瞻O2O项目,无奈一直没有人关注;最后被逍遥子识才,多次劝说后,决定加入阿里,盒马鲜生是这么来的(这里不得不说:老逍简直比老萧还厉害)。 盒马鲜生是带火了“新零售”这个概念的明星企业,但很多人其实不懂“新零售”是什么。 所谓新零售的准确定义,其实就是在各种资源的关联和协同组合中,寻求一种能大大节约成本,提高价值的新组合。 为什么代表人物会是侯毅? 你可以理解成:因为长年专注在线下线上相结合的领域,侯毅的脑子有了一个叫“资源相互联系”的魔方,每天他都需要转动几次,去寻找数个变量组合资源中,无限接近“提高价值降低成本”的最优解。 所以这样看盒马和侯毅,你就可以突然看懂了:为什么可以推出“盒区房”这种以小博大的品牌亮点,通过捆绑房地产这个敏感话题,达到巨大宣传效果;以及明白为什么在今年的艰难时期,盒马能够快速反应,第一个推出了大显身手的“共享员工”模式了。 盒马的品牌是围绕着社区服务来的,线下线上配合的打法中,作为领导者的侯毅永远不能孤立地去思考,如果只想着依靠自己的力量去发展,那就坏事了。 保持日常的关联性思考,也有助于让一般人看竞争时,不陷入二元对立的表面理解。 用“关联性”的思维来理解阿里的战略,你会发现:任何与阿里展开竞争的企业,他们需要面对的是整个的阿里军团。 比如美团面对的是饿了么和口碑吗?那么盒马呢?大润发呢?银泰呢?支付宝呢?阿里云呢?天猫超市呢? 所以作为普通人,你可以学到的是永远不要只想着只用自己的资源和能力去做事。 一定要懂得资源之间的“关联性”,不要怕麻烦别人,也许你也能给别人创造价值呢?所以,你也可以在大脑中培养一个“关联性”思考事物的魔方。 **3. 淘宝天猫总裁蒋凡 ** 思索事物发展背后矛盾的习惯 当宣布蒋凡挑大梁的时候,很多人会问:为什么张勇和马云会选择一个少壮派? 淘宝天猫总裁蒋凡 也许张勇最能理解蒋凡:因为他们都是那种“在关键时刻孤独地扮演过‘扳道工’角色的人”——无论当时对他们来说,自己在不在最重要的位置上。 在蒋凡身上,有着外界所说的“一眼看穿底层逻辑”的能力;也是当下信息爆炸的时代,一种透过乱七八糟的消息迷雾,看到复杂事物中最简单的常识的能力。 这种能力,就是要看透推动事物发展背后的矛盾。 一个外表复杂的事物,它的本质其实是常识,就像新闻联播里每天在说的“当下主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾”。 到底什么是“消费升级”? 必须要用矛盾的观点看: 我们这些五环内白领在双11抢不到戴森吸尘器的不是真正的主要矛盾,你看不到的地方,“国内的大多数”的小镇青年想买一件耐克配国潮,而自己所处的城镇既没有CBD和没有大商场,下班时间甚至都不知道怎么打发——这才是主要矛盾。 去拼多多拼个9块9的手纸,被五环内用户嘲讽为“消费降级”,可你要知道拼多多的手纸不是为你准备的,是为广大“中国的大多数”准备的——这,才是真正的消费升级! 但在那个年代,并不是所有人都能认清主要矛盾。 当时即使在阿里内部,长年的竞争也让一部分人陷入了思维陷阱,认为京东是天猫最大的追赶者。 那时候也有人知道小镇青年的重要性,可是当时大家的理解还停留在跑到农村去刷墙。 拼多多为什么能够在阿里眼皮下迅速崛起呢!? 如果说是把握了下沉市场还是流于表面,你用矛盾的观点看本质: 第一点,2015~2017年间,大量阿里生态内的小小B端的角色,如底层商家、淘客、羊毛党因为阿里战略调整,对外发生了外溢,这些互联网游牧民走到哪,哪里就形成了新的细小供应链——这些人离开阿里要吃饭啊,这是最主要矛盾。 第二点,低价智能机和微信支付相结合,带来了小镇青年整体电商用户盘子扩大——这些人的日常时间要怎么打发,身边可能连个高级商场都没有,这是次主要矛盾。 这些东西,身处五环内的你在那个年代里,光看数据是不会马上发现的,只有靠细微的洞察才能感知到: 快递小哥的包裹里是不是开始有了别的平台的商品? 老家父母亲戚的朋友圈,是不是很多东西变了? 地方台的的综艺节目里面,广告赞助商是不是出现了不认识的牌子?(可惜很多北上广人不看电视) 那些像游牧民族一样的羊毛党,被你屏蔽朋友圈的微商妈妈又在忙什么? 透过现象看本质,拼多多就是抓住了这些要素悄悄长大的。 蒋凡上任后面对这个需要被再次重视的市场,是怎么抓“主要矛盾”的? 首先是重新平衡天猫、淘宝的重心,平衡“大多数用户”和B端之间的消费和供给——这不是拿捏尺度的平面问题,而是一个对顶层架构重新分析、设计的立体问题。 选用模式更适合五环外市场的聚划算做渠道下沉,向低线城市渗透、并且覆盖全年龄段,尽快封堵挤压拼多多的继续扩张 发力短视频、抖音、网红,直播这些内容场景,再通过大数据精准推送,通过占领用户时间,赢得市场,让B端人群比如主播网红下沉去填补C端的使用手机时间。 带领品牌商家下沉。之前很多品牌集中在打一二线市场,原有的渠道网络对于下沉市场是滞后的。但随着阿里的强势运营,优质的中部商家做敲门砖品牌迅速得以下沉——提前占住山头,让对手仰攻。 随着最近淘宝特价推出,结合淘宝、聚划算、天猫、淘小铺全面出击,阿里军团的刀枪剑戟朝向了同一个方向:B端搭建架构,C端占领时间,蒋凡完成了对北上广人群和下沉市场的一记全垒打! 目前我们还不知道拼多多的黄铮会如何接下蒋凡这一记硬球——因为占据了品牌优势,拼多多对阿里会长期处于一种“仰攻”状态。 这就难受了,毕竟狮子猛回头扑向一只咬自己尾巴的鬣狗很容易,但鬣狗要一口吃下一只狮子却很难。 03 你该如何训练“三种思维” 获得职场成功! 写到这里,你也许会说:似乎这些思维习惯也没有多么的深奥啊?这些难道不是常识吗? 你说的没错,但那些高手恰恰是将尝试变成了一种日常习惯去反复练习——因为“思维陷阱”会无时无刻存在,人必须通过训练保持觉知才行,所以我们需要复习一下这三种思维习惯: **1. 如何训练 ** 带着无知“观察”的思维习惯? 日常中,很多人会觉得自己的情商和同理心不足,不知道对方心里想什么,要怎么办? 这就可以先从“观察”自己的内心的练习开始。 练习“观察”的方式: 保持空无,抛下预设 ▼ 用客体视角觉察出自己内心与行为的关系 ▼ 再试着深入“阅读”他人内心与行为的关系 ▼ 结合规律,分析出外界真实的需要 ▼ 在生活与工作中做出策略调整或反应 ▼ 保持练习,达到情商和洞察力的提高 如果观察熟练,可以用这个方法去看世界和他人的情绪,进而搞明白对方真正的需要,即使是对方没有清晰表达出来的。 打个比方:春节时期,网上那种对于钟南山敬佩和对湖北一些事情愤怒的两极声音,如果你用心观察,你会发现他们的底层其实是同一种情绪“恐惧”——恐惧引发了行为,无论是愤怒还是寻找安全感。 再打个比方:如你单位中有一个人,别人都说这个人是自私自利的小人;你通过“观察”发现,原来对方只是个内心缺乏安全感的可怜人,所以也就可以在职场打交道中理解和推测出对方的想法和行为,读出对方真正的内心需要。 做市场运营,产品经理,品牌定位,尤其需要这种“观察”他人内心真正需要的能力。 **2. 如何训练 ** 保持“关联性”思考的习惯? 如何培养“关联性”思维,在职场拿到资源,产生更好的协作? 练习“关联性”思维的方式: 抛开过去那种任何事都想着“自己干”的想法,问自己三个问题: 我现在要做的事情,有没有利他性? 可以不可以与他人形成合力? 最终取得的成果,能不能多方共享? 如果三个问题想清楚了没问题,那么不怕拒绝,厚着脸皮干就完了! 如果三个问题想清楚了没问题,那么不怕拒绝,厚着脸皮干就完了! 日常要留心,自己和他人身上,有哪些可以“做成事”的资源,这并不是要人学会自利,而是需要培养自己的协作性;自己的专业知识,钱,甚至体力,时间,人脉圈,都是能一起互相协作的资源。 除了人与人的资源关联性,还可以培养物与物相互跨界联系的能力。 比如在阿里,训练公关的新闻策划能力,就有一种称之为“两只试管法”的日常思考方法。 你可以想象成左手握一个产品试管,右手握一个情绪试管,然后两种试剂倒在了一起,产生神奇的化学反应。 比如: 盒马鲜生(线下的果蔬生鲜服务设施/一种都市快节奏生活方式)+ 房价(情绪饱满的高敏感民生话题)= 品牌概念:盒区房 进口水果 + 北上广的生活压力(情绪饱满的消费焦虑)= 热门话题:车厘子自由 “关联性”思维练习配合“观察”运用在策划和创意里,是不是非常有趣? **3. 如何训练 ** “看穿事物底层矛盾”的思维习惯? 看事物的底层逻辑,也同样需要上面的两种思维。 日常可以多读读经典,少接触如今的“时髦概念书”以免被先入为主污染,枕头边可以放一本《毛选》,其中《矛盾论》和《实践论》是精华。 日常遇到争议性的事情,不要着急下判断,也不要站队;就站在旁观者的角度,思考思考为什么双方会这么想,他们各自有哪些需要没有被满足? 渐渐地,在别人眼中,你成了一开口就可以直击问题本质的人。 等到熟练之后,再拿来看一个人群或者一片市场,思考和实践调研他们真正的供需中,有哪些地方是目前供需所不平衡的,在这样不平衡产生的痛点中,出现了什么替代方案? 以上就是我所分享的练习方法。 最后补充一点:如果有一件事你觉得一定会如此,那么保险起见尝试从相反的方向推论看有没有漏洞。 你还可以经常对外分享自己的心得和观点(我自己就在用这种方式保持二次学习和修正提炼),不要担心出错,通过理性的交流和思辨,通过他人的认知进行思辨和修正。 通过这种方式收获了解,你会发现:自己其实并不孤独。 参考: 《毛选》 《行为》罗伯特·M·萨波斯基 《智能的结构》霍华德·加德纳 《硬球》克里斯·马修斯 《合作的进化》罗伯特.阿克塞尔罗德 《笑傲江湖》金庸 作者:舒扬,笔名舍予兄(个人WX:shuyang9451)休养前担任阿里健康高级公关专家,目前是一名 长跑 和 行为心理学 爱好者,著有畅销书《共鸣》,一个喜欢深夜在朋友圈发长篇思考的人。事业目标是成为最好的公关,在这条路上将永远是一个学生。
剑曼红尘 2020-04-13 11:47:20 0 浏览量 回答数 0

回答

前言 随着计算机技术和 Internet 的日新月异,视频点播技术因其良好的人机交互性和流媒体传输技术倍受教育、娱乐等行业青睐,而在当前, 云计算平台厂商的产品线不断成熟完善, 如果想要搭建视频点播类应用,告别刀耕火种, 直接上云会扫清硬件采购、 技术等各种障碍,以阿里云为例: image 这是一个非常典型的解决方案, 对象存储 OSS 可以支持海量视频存储,采集上传的视频被转码以适配各种终端,CDN 加速终端设备播放视频的速度。此外还有一些内容安全审查需求, 比如鉴黄、鉴恐等。 而在视频点播解决方案中, 视频转码是最消耗计算力的一个子系统,虽然您可以使用云上专门的转码服务,但在很多情况下,您会选择自己搭建转码服务。比如: 您已经在虚拟机/容器平台上基于 FFmpeg 部署了一套视频处理服务,能否在此基础上让它更弹性,更高的可用性? 您有并发处理大量视频的需求。 您有很多超大的视频需要批量快速处理完, 比如每周五定期产生几百个 4G 以上的 1080P 大视频, 但是希望当天几个小时后全部处理完。 您有更高级的自定义处理需求,比如视频转码完成后, 需要记录转码详情到数据库, 或者在转码完成后, 自动将热度很高的视频预热到 CDN 上, 从而缓解源站压力。 自定义视频处理流程中可能会有多种操作组合, 比如转码、加水印和生成视频首页 GIF。后续为视频处理系统增加新需求,比如调整转码参数,希望新功能发布上线对在线服务无影响。 您的需求只是简单的转码需求,或是一些极其轻量的需求,比如获取 OSS 上视频前几帧的 GIF、获取视频或者音频的时长,自己搭建成本更低。 各种格式的音频转换或者各种采样率自定义、音频降噪等功能 您的视频源文件存放在 NAS 或者 ECS 云盘上,自建服务可以直接读取源文件处理,而不需要将它们再迁移到 OSS 上。 如果您的视频处理系统有上述需求,或者您期望实现一个 弹性、高可用、低成本、免运维、灵活支持任意处理逻辑 的视频处理系统,那么本文则是您期待的最佳实践方案。 Serverless 自定义音视频处理 在介绍具体方案之前, 先介绍两款产品: 函数计算 :阿里云函数计算是事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询、性能监控、报警等功能。 函数工作流:函数工作流(Function Flow,以下简称 FnF)是一个用来协调多个分布式任务执行的全托管云服务。您可以用顺序,分支,并行等方式来编排分布式任务,FnF 会按照设定好的步骤可靠地协调任务执行,跟踪每个任务的状态转换,并在必要时执行用户定义的重试逻辑,以确保工作流顺利完成。 免费开通函数计算,按量付费,函数计算有很大的免费额度。 免费开通函数工作流,按量付费,函数工作流有很大的免费额度。 函数计算可靠的执行任意逻辑, 逻辑可以是利用 FFmpeg 对视频任何处理操作, 也可以更新视频 meta 数据到数据库等。函数工作流对相应的函数进行编排, 比如第一步的函数是转码, 第二步的函数是转码成功后,将相应 meta 数据库写入数据库等。 至此,您应该初步理解了函数计算的自定义处理能力 + 函数工作流编排能力几乎满足您任何自定义处理的需求,接下来,本文以一个具体的示例展示基于函数计算和函数工作流打造的一个弹性高可用的 Serverless 视频处理系统,并与传统方案进行性能、成本和工程效率的对比。 Simple 视频处理系统 假设您是对视频进行单纯的处理, 架构方案图如下: image 如上图所示, 用户上传一个视频到 OSS, OSS 触发器自动触发函数执行, 函数调用 FFmpeg 进行视频转码, 并且将转码后的视频保存回 OSS。 OSS 事件触发器, 阿里云对象存储和函数计算无缝集成。您可以为各种类型的事件设置处理函数,当 OSS 系统捕获到指定类型的事件后,会自动调用函数处理。例如,您可以设置函数来处理 PutObject 事件,当您调用 OSS PutObject API 上传视频到 OSS 后,相关联的函数会自动触发来处理该视频。 Simple 视频处理系统示例工程地址 强大的监控系统: 您可以直接基于示例工程部署您的 Simple 音视频处理系统服务, 但是当您想要处理超大视频(比如 test_huge.mov ) 或者对小视频进行多种组合操作的时候, 您会发现函数会执行失败,原因是函数计算的执行环境有最大执行时间为 10 分钟的限制,如果最大的 10 分钟不能满足您的需求, 您可以选择: 对视频进行分片 -> 转码 -> 合成处理, 详情参考:fc-fnf-video-processing, 下文会详细介绍; 联系函数计算团队(钉钉群号: 11721331) 或者提工单: 适当放宽执行时长限制; 申请使用更高的函数内存 12G(8vCPU) 为了突破函数计算执行环境的限制(或者说加快大视频的转码速度), 进行各种复杂的组合操作, 此时引入函数工作流 FnF 去编排函数实现一个功能强大的视频处理工作流系统是一个很好的方案。 视频处理工作流系统 image 如上图所示, 假设用户上传一个 mov 格式的视频到 OSS,OSS 触发器自动触发函数执行, 函数调用 FnF,会同时进行 1 种或者多种格式的转码(由您触发的函数环境变量DST_FORMATS 参数控制)。 所以您可以实现如下需求: 一个视频文件可以同时被转码成各种格式以及其他各种自定义处理,比如增加水印处理或者在 after-process 更新信息到数据库等。 当有多个文件同时上传到 OSS,函数计算会自动伸缩, 并行处理多个文件, 同时每次文件转码成多种格式也是并行。 结合 NAS + 视频切片, 可以解决超大视频(大于 3G )的转码, 对于每一个视频,先进行切片处理,然后并行转码切片,最后合成,通过设置合理的切片时间,可以大大加速较大视频的转码速度。 所谓的视频切片,是将视频流按指定的时间间隔,切分成一系列分片文件,并生成一个索引文件记录分片文件的信息 视频处理工作流系统示例工程地址 示例效果: gif 函数计算 + 函数工作流 Serverless 方案 VS 传统方案 卓越的工程效率 自建服务 函数计算 + 函数工作流 Serverless 基础设施 需要用户采购和管理 无 开发效率 除了必要的业务逻辑开发,需要自己建立相同线上运行环境, 包括相关软件的安装、服务配置、安全更新等一系列问题 只需要专注业务逻辑的开发, 配合 FUN 工具一键资源编排和部署 并行&分布式视频处理 需要很强的开发能力和完善的监控系统来保证稳定性 通过 FnF 资源编排即可实现多个视频的并行处理以及单个大视频的分布式处理,稳定性和监控交由云平台 学习上手成本 除了编程语言开发能力和熟悉 FFmpeg 以外,可能使用 K8S 或弹性伸缩( ESS ),需要了解更多的产品、名词和参数的意义 会编写对应的语言的函数代码和熟悉 FFmpeg 使用即可 项目上线周期 在具体业务逻辑外耗费大量的时间和人力成本,保守估计大约 30 人天,包括硬件采购、软件和环境配置、系统开发、测试、监控报警、灰度发布系统等 预计 3 人天, 开发调试(2人天)+ 压测观察(1 人天) 弹性伸缩免运维,性能优异 自建服务 函数计算 + 函数工作流 Serverless 弹性高可用 需要自建负载均衡 (SLB),弹性伸缩,扩容缩容速度较 FC 慢 FC系统固有毫秒级别弹性伸缩,快速实现底层扩容以应对峰值压力,免运维,视频处理工作流系统 (FnF + FC) 压测;性能优异, 详情见下面的转码性能表 监控报警查询 ECS 或者容器级别的 metrics 提供更细粒度的 FnF 流程执行以及函数执行情况, 同时可以查询每次函数执行的 latency 和日志等, 更加完善的报警监控机制 函数计算 + 函数工作流 Serverless 方案转码性能表 实验视频为是 89s 的 mov 文件 4K 视频: 4K.mov,云服务进行 mov -> mp4 普通转码需要消耗的时间为 188s, 将这个参考时间记为 T 视频切片时间 FC转码耗时 性能加速百分比 45s 160s 117.5% 25s 100s 188% 15s 70s 268.6% 10s 45s 417.8% 5s 35s 537.1% 性能加速百分比 = T / FC转码耗时 从上表可以看出,设置的视频切片时间越短, 视频转码时间越短, 函数计算可以自动瞬时调度出更多的计算资源来一起完成这个视频的转码, 转码性能优异。 更低的成本 具有明显波峰波谷的视频处理场景(比如只有部分时间段有视频处理请求,其他时间很少甚至没有视频处理请求),选择按需付费,只需为实际使用的计算资源付费。 没有明显波峰波谷的视频处理场景,可以使用预付费(包年包月),成本仍然具有竞争力。 函数计算成本优化最佳实践文档。 假设有一个基于 ECS 搭建的视频转码服务,由于是 CPU 密集型计算, 因此在这里将平均 CPU 利用率作为核心参考指标对评估成本,以一个月为周期,10 台 C5 ECS 的总计算力为例, 总的计算量约为 30% 场景下, 两个解决方案 CPU 资源利用率使用情况示意图大致如下: image 由上图预估出如下计费模型: 函数计算预付费 3CU 一个月: 246.27 元, 计算能力等价于 ECS 计算型 C5 ECS 计算型 C5 (2vCPU,4GB)+云盘: 包月219 元 函数计算按量付费占整个计算量的占比 <= 10%,费用约为 3×864×10% = 259.2 元,(3G 规格的函数满负载跑满一个月费用为:0.00011108×3×30×24×3600 = 863.8,详情查看计费) ITEM 平均CPU利用率 计算费用 总计 函数计算组合付费 >=80% 998(246.27×3+259.2) <= 998 按峰值预留ECS <=30% 2190(10*219) >=2190 在这个模型预估里面,可以看出 FC 方案具有很强的成本竞争力,在实际场景中, 基于 ECS 自建的视频转码服务 CPU 利用甚至很难达到 20%, 理由如下: 可能只有部分时间段有视频转码请求 为了用户体验,视频转码速度有一定的要求,可能一个视频转码就需要 10 台 ECS 并行处理来转码, 因此只能预备很多 ECS 因此,在实际场景中, FC 在视频处理上的成本竞争力远强于上述模型。 即使和云厂商视频转码服务单价 PK, 该方案仍有很强的成本竞争力 我们这边选用点播视频中最常用的两个格式(mp4、flv)之间进行相互转换,经实验验证, 函数内存设置为3G,基于该方案从 mp4 转码为 flv 的费用概览表: 实验视频为是 89s 的 mp4 和 flv 格式的文件视频, 测试视频地址: 480P.mp4 720P.mp4 1080P.mp4 4K.mp4 480P.flv 720P.flv 1080P.flv 4K.flv 测试命令: ffmpeg -i test.flv test.mp4 和 ffmpeg -i test.flv test.mp4 mp4 转 flv: 分辨率 bitrate 帧率 FC 转码耗费时间 FC 转码费用 某云视频处理费用 成本下降百分比 标清 640480 889 kb/s 24 11.2s 0.003732288 0.032 88.3% 高清 1280720 1963 kb/s 24 20.5s 0.00683142 0.065 89.5% 超清 19201080 3689 kb/s 24 40s 0.0133296 0.126 89.4% 4K 38402160 11185 kb/s 24 142s 0.04732008 0.556 91.5% flv 转 mp4: 分辨率 bitrate 帧率 FC 转码耗费时间 FC 转码费用 某云视频处理费用 成本下降百分比 标清 640480 712 kb/s 24 34.5s 0.01149678 0.032 64.1% 高清 1280720 1806 kb/s 24 100.3s 0.033424 0.065 48.6% 超清 19201080 3911 kb/s 24 226.4s 0.0754455 0.126 40.1% 4K 38402160 15109 kb/s 24 912s 0.30391488 0.556 45.3% 成本下降百分比 = (某云视频处理费用 - FC 转码费用)/ 云视频处理费用 某云视频处理,计费使用普通转码,转码时长不足一分钟,按照一分钟计算,这里计费采用的是 2 min,即使采用 1.5 min 计算, 成本下降百分比基本在10%以内浮动 从上表可以看出, 基于函数计算 + 函数工作流的方案在计算资源成本上对于计算复杂度较高的 flv 转 mp4 还是计算复杂度较低的 mp4 转 flv, 都具有很强的成本竞争力。 根据实际经验, 往往成本下降比上表列出来的更加明显, 理由如下: 测试视频的码率较高, 实际上很多场景绝大部分都是标清或者流畅视频的转码场景, 码率也比测试视频低,这个时候计算量变小, FC 执行时间短, 费用会降低, 但是通用的云转码服务计费是不变的. 很多视频分辨率在通用的云转码服务是计费是有很大损失的, 比如转码的视频是 856480 或者 1368768, 都会进入云转码服务的下一档计费单价, 比如856480 进入 1280720 高清转码计费档,1368768 进入 19201080 超清转码计费档, 单价基本是跨越式上升, 但是实际真正的计算量增加可能还不到30%, 而函数计算则是真正能做到按计算量付费. 操作部署 免费开通函数计算,按量付费,函数计算有很大的免费额度。 免费开通函数工作流,按量付费,函数工作流有很大的免费额度。 免费开通文件存储服务NAS, 按量付费 详情见各自示例工程的 README Simple 视频处理系统示例工程地址 视频处理工作流系统示例工程地址 总结 基于函数计算 FC 和函数工作流 FnF 的弹性高可用视频处理系统天然继承了这两个产品的优点: 无需采购和管理服务器等基础设施,只需专注视频处理业务逻辑的开发,大幅缩短项目交付时间和人力成本 提供日志查询、性能监控、报警等功能快速排查故障 以事件驱动的方式触发响应用户请求 免运维,毫秒级别弹性伸缩,快速实现底层扩容以应对峰值压力,性能优异 成本极具竞争力 相比于通用的转码处理服务: 超强自定义,对用户透明, 基于 FFmpeg 或者其他音视频处理工具命令快速开发相应的音视频处理逻辑 原有基于 FFmpeg 自建的音视频处理服务可以一键迁移 弹性更强, 可以保证有充足的计算资源为转码服务,比如每周五定期产生几百个 4G 以上的 1080P 大视频, 但是希望当天几个小时后全部处理完 各种格式的音频转换或者各种采样率自定义、音频降噪等功能, 比如专业音频处理工具 aacgain 和 mp3gain 可以和 serverless 工作流完成更加复杂、自定义的任务编排,比如视频转码完成后,记录转码详情到数据库,同时自动将热度很高的视频预热到 CDN 上, 从而缓解源站压力 更多的方式的事件驱动, 比如可以选择 OSS 自动触发(丰富的触发规则), 也可以根据业务选择 MNS 消息(支持 tag 过滤)触发 在大部分场景下具有很强的成本竞争力相比于其他自建服务: 毫秒级弹性伸缩,弹性能力超强,支持大规模资源调用,可弹性支持几万核.小时的计算力,比如 1 万节课半个小时完成转码 只需要专注业务逻辑代码即可,原生自带事件驱动模式,简化开发编程模型,同时可以达到消息(即音视频任务)处理的优先级,可大大提高开发运维效率 函数计算采用 3AZ 部署, 安全性高,计算资源也是多 AZ 获取, 能保证每个用户需要的算力峰值 开箱即用的监控系统, 如上面 gif 动图所示,可以多维度监控函数的执行情况,根据监控快速定位问题,同时给用户提供分析能力, 比如视频的格式分布, size 分布等 在大部分场景下具有很强的成本竞争力, 因为在函数计算是真正的按量付费(计费粒度在百毫秒), 可以理解为 CPU 的利用率为 100% 最后一一回答一下之前列出的问题: Q1: 您已经在虚拟机/容器平台上基于 FFmpeg 部署了一套视频处理服务,能否在此基础上让它更弹性,更高的可用性? A: 如工程示例所示,在虚拟机/容器平台上基于 FFmpeg 的服务可以轻松切换到函数计算, FFmpeg 相关命令可以直接移值到函数计算,改造成本较低, 同时天然继承了函数计算弹性高可用性特性。 Q2:您的需求只是简单的转码需求,或是一些极其轻量的需求,比如获取 OSS 上视频前几帧的 GIF 等。 自己搭建成本更低。 A: 函数计算天生就是解决这些自定义问题, 你的代码你做主, 代码中快速执行几个 FFmpeg 的命令即可完成需求。典型示例: fc-oss-ffmpeg Q3: 您有更高级的自定义处理需求,比如视频转码完成后, 需要记录转码详情到数据库, 或者在转码完成后, 自动将热度很高的视频预热到 CDN 上, 从而缓解源站压力。 A: 详情见视频处理工作流系统(函数计算 + 函数工作流方案),after-process 中可以做一些自定义的操作, 您还可以基于此流程再做一些额外处理等, 比如: 再增加后续流程 最开始增加 pre-process Q4: 您有并发同时处理大量视频的需求。 A: 详情见视频处理工作流系统(函数计算 + 函数工作流方案), 当有多个文件同时上传到 OSS, 函数计算会自动伸缩, 并行处理多个文件。详情可以参考 视频处理工作流系统 (FnF + FC) 压测 Q5:您有很多超大的视频需要批量快速处理完, 比如每周五定期产生几百个 4G 以上的 1080P 大视频, 但是希望当天几个小时后全部处理完。A: 详情可以参考视频处理工作流系统 (FnF + FC) 压测, 可以通过控制分片的大小, 可以使得每个大视频都有足够多的计算资源参与转码计算, 大大提高转码速度。 Q6: 自定义视频处理流程中可能会有多种操作组合, 比如转码、加水印和生成视频首页 GIF,后续为视频处理系统增加新需求,比如调整转码参数,希望新功能发布上线对在线服务无影响。 A: 详情见视频处理工作流系统(函数计算 + 函数工作流方案), FnF 只负责编排调用函数, 因此只需要更新相应的处理函数即可,同时函数有 version 和 alias 功能, 更好地控制灰度上线, 函数计算版本管理 Q7: 您的视频源文件存放在 NAS 或者 ECS 云盘上,自建服务可以直接读取源文件处理,而不需要将他们再迁移到 OSS 上。 A: 函数计算可以挂载 NAS, 直接对 NAS 中的文件进行处理
1934890530796658 2020-03-27 18:21:36 0 浏览量 回答数 0

回答

作者:九章算法 链接:https://www.zhihu.com/question/22744854/answer/763206431 来源:知乎 首先,这个神仙项目请你pick: https://github.com/sindresorhus/awesome 各领域各语言资源大合集 另外,可以关注GitHub的每日榜单,看看大家都在关注些什么(虽然有国外小哥吐槽榜单上都是中文哈哈 https://github.com/trending/python?since=daily 推荐不同语言的几个项目: Python : youtube-dl这个程序是一个开源的python项目。支持MacOS、Linux和Windows平台,可以在官网直接下载编译好的程序。可以用来下载YouTube视频,国内的一些视频站也可以进行下载。 interview_internal_reference: 总结了2019年最新的阿里,腾讯,百度,美团,头条等技术面试题目以及答案,分析汇总。 sherlock: 高级机器视觉软件,可以用于广泛的自动化检测应用。它提供了最大的设计灵活性,丰富的已验证的工具和功能。 DeepFaceLab: 这是一个github上的开源项目,所有人都可以查看源代码也能免费使用。个人认为这个项目的最大优点就是安装超级简单,几乎是无需安装,使用过程也不复杂 Manim: 解释数学视频的动画引擎。可以用来创建精确的2D动画。 XSStrike:XSStrike是一个Cross Site Scripting检测套件,配备四个手写解析器,一个智能有效载荷生成器,一个强大的模糊引擎和一个非常快速的爬虫。 XSStrike不是像其他工具一样注入有效载荷并检查它的工作原理,而是通过多个解析器分析响应,然后通过与模糊引擎集成的上下文分析来保证有效载荷。 f="https://github.com/wangshub">Douyin -Bot:抖音机器人。是用于机器人算法的Python代码。教你如何在抖音上找到漂亮小姐姐~~ Photon:快速抓取工具,可以提取网址,电子邮件,文件,网站帐户等等。 google-images-download:可以实现搜索和下载数百个Google图像的Python脚本到本地。 faceswap是个基于dlib的换脸程序。模型训练速度较快,同样配置下更快的到达低loss值,而且有gui界面版本。 you-getyou-get 是py上一个方便的下载工具。这个爬虫神器能爬取视频网站和图片网站,你不用写任何代码就能很容易的把你喜欢的视频或者图片甚至音频文件给扒下来。而且支持腾讯、搜狐、新浪、B站、央视网、芒果TV,乐视网、优酷、熊猫斗鱼等等大多数的国内主流视频网站。 Java: advanced-java: Java工程师进阶知识扫盲,适合系统学习。 vhr:一个前后端分离的人力资源管理系统,采用SpringBoot+Vue开发。这个项目的权限管理模块已经开发完成,其他模块还在开发当中。可以管理角色和资源的关系,管理用户和角色的关系。 cat:作为服务端项目基础组件,cat提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。 jeecg-boot:一款基于代码生成器的JAVA快速开发平台!全新架构前后端分离:SpringBoot 2.x,Ant Design&Vue,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码,绝对是全栈开发的福音!! interviews:软件工程技术面试个人指南。可以这里找到针对很多面试问题的视频解决方案以及详细说明。 p3c:是阿里巴巴p3c项目组进行研发。根据《阿里巴巴Java开发规范》转化而成的自动化插件,并且实现了部分自动编程。 SpringAll:包括了Spring Boot,Spring Boot&Shiro,Spring Cloud,Spring Boot&Spring Security&Spring Security OAuth2等系列教程。toBeTopJavaer:Java工程师成神之路。总结的很好,直接理解学习就完了。 JavaScript: quasar:Quasar Framework是MIT许可的开源项目。能在记录时间内构建高性能VueJS用户界面 Daily-Interview-Question:前端大厂面试题汇总 next.js:一个基于React的一个服务端渲染简约框架。它使用React语法,可以很好的实现代码的模块化,有利于代码的开发和维护。 javascript-algorithms:这个存储库包含许多流行算法和数据结构的基于JavaScript的示例。每个算法和数据结构都有自己独立的自述文件,包含相关说明和链接,供进一步阅读 baidu-netdisk-downloaderx:一款图形界面的百度网盘不限速下载器,支持Windows,Linux和Mac。重点在不限速! 其他好玩的项目~ ChineseBQB:国内表情包大集合~~ komeiji-satori/Dress:女装大佬项目,一张图你就懂了 chinese-poetry最全的中文诗歌古典文集数据库.包含5.5万首唐诗、26万首宋诗和2.1万首宋词。唐宋两朝近1.4万古诗人, 和两宋时期1千多位词人 thefuck该项目的主要作用是,在terminal 里输错命令之后无需修改,fuck 一下,自动帮你更正命令,既解气又实用。 加入阿里云钉钉群享福利:每周技术直播,定期群内有奖活动、大咖问答 阿里云开发者社区
茶什i 2020-01-08 10:37:26 0 浏览量 回答数 0

问题

程序员的10大危机表现

学习是一件艰苦的事情,怎么知道自己是否可以成为一名成功的程序员”?,在学习编程的过程中,面对各种 bug 和源源不断的问题,有时会对自己是否适合编程这一问题产生困扰。 看...
珍宝珠 2020-02-13 20:01:11 40 浏览量 回答数 1

回答

为什么你的代码是一个单体? 除了已经实现了微前端的应用之外,所有前端应用本质上都是单一的应用。原因是如果您正在使用 React 库进行开发,并且如果您有两个团队,则两个团队都应该使用相同的React 库,并且两个团队应该在部署时保持同步,并且在代码合并期间始终会发生冲突。它们没有完全分离,很可能它们维护着相同的仓库并具有相同的构建系统。单体应用的退出被标志为微服务的出现。但是它适用于后端! 什么是微服务? 对于微服务,一般而言最简单的解释是,它是一种开发技术,允许开发人员为平台的不同部分进行独立部署,而不会损害其他部分。独立部署的能力允许他们构建孤立或松散耦合的服务。为了使这个体系结构更稳定,有一些规则要遵循,可以总结如下:每个服务应该只有一个任务,它应该很小。所以负责这项服务的团队应该很小。关于团队和项目的规模,James Lewis 和 Martin Fowler 在互联网上做出的最酷解释之一如下: 在我们与微服务从业者的对话中,我们看到了一系列服务规模。报道的最大规模遵循亚马逊关于Two Pizza Team的概念(即整个团队可以由两个比萨饼供给),意味着不超过十几个人。在规模较小的规模上,我们已经看到了一个由六人组成的团队支持六项服务的设置。 我画了一个简单的草图,为整体和微服务提供了直观的解释: 从上图可以理解,微服务中的每个服务都是一个独立的应用,除了UI。UI仍然是一体的!当一个团队处理所有服务并且公司正在扩展时,前端团队将开始苦苦挣扎并且无法跟上它,这是这种架构的瓶颈。 除了瓶颈之外,这种架构也会导致一些组织问题。假设公司正在发展并将采用需要 跨职能 小团队的敏捷开发方法。在这个常见的例子中,产品所有者自然会开始将故事定义为前端和后端任务,而 跨职能 团队将永远不会成为真正的 跨职能 部门。这将是一个浅薄的泡沫,看起来像一个敏捷的团队,但它将在内部分开。关于管理这种团队的更多信息将是一项非常重要的工作。在每个计划中,如果有足够的前端任务或者sprint中有足够的后端任务,则会有一个问题。为了解决这里描述的所有问题和许多其他问题,几年前出现了微前端的想法并且开始迅速普及。 解决微服务中的瓶颈问题:Micro Frontends 解决方案实际上非常明显,采用了多年来为后端服务工作的相同原则:将前端整体划分为小的UI片段。但UI与服务并不十分相似,它是最终用户与产品之间的接口,应该是一致且无缝的。更重要的是,在单页面应用时代,整个应用在客户端的浏览器上运行。它们不再是简单的HTML文件,相反,它们是复杂的软件,达到了非常复杂的水平。现在我觉得微型前端的定义是必要的: Micro Frontends背后的想法是将网站或Web应用视为独立团队拥有的功能组合。每个团队都有一个独特的业务或任务领域,做他们关注和专注的事情。团队是跨职能的,从数据库到用户界面开发端到端的功能。(micro-frontends.org) 根据我迄今为止的经验,对于许多公司来说,直接采用上面提出的架构真的很难。许多其他人都有巨大的遗留负担,这使他们无法迁移到新的架构。出于这个原因,更柔软的中间解决方案更加灵活,易于采用和安全迁移至关重要。在更详细地概述了体系结构后,我将尝试提供一些体系结构的洞察,该体系结构确认了上述提议并允许更灵活的方式。在深入了解细节之前,我需要建立一些术语。 整体结构和一些术语 让我们假设我们通过业务功能垂直划分整体应用结构。我们最终会得到几个较小的应用,它们与单体应用具有相同的结构。但是如果我们在所有这些小型单体应用之上添加一个特殊应用,用户将与这个新应用进行通信,它将把每个小应用的旧单体UI组合成一个。这个新图层可以命名为拼接图层,因为它从每个微服务中获取生成的UI部件,并为最终用户组合成一个无缝 UI,这将是微前端的最直接实现朗 为了更好地理解,我将每个小型单体应用称为微应用,因为它们都是独立的应用,而不仅仅是微服务,它们都有UI部件,每个都代表端到端的业务功能。 众所周知,今天的前端生态系统功能多样,而且非常复杂。因此,当实现真正的产品时,这种直接的解决方案还不够。 要解决的问题 虽然这篇文章只是一个想法,但我开始使用Reddit讨论这个想法。感谢社区和他们的回复,我可以列出一些需要解决的问题,我将尝试逐一描述。 当我们拥有一个完全独立的独立微应用时,如何创建无缝且一致的UI体验? 好吧,这个问题没有灵丹妙药的答案,但其中一个想法是创建一个共享的UI库,它也是一个独立的微应用。通过这种方式,所有其他微应用将依赖于共享的UI库微应用。在这种情况下,我们刚刚创建了一个共享依赖项, 我们就杀死了独立微应用的想法。 另一个想法是在根级共享CSS自定义变量( CSS custom variables )。此解决方案的优势在于应用之间的全局可配置主题。 或者我们可以简单地在应用团队之间共享一些SASS变量和混合。这种方法的缺点是UI元素的重复实现,并且应该对所有微应用始终检查和验证类似元素的设计的完整性。 我们如何确保一个团队不会覆盖另一个团队编写的CSS? 一种解决方案是通过CSS选择器名称进行CSS定义,这些名称由微应用名称精心选择。通过将该范围任务放在拼接层上将减少开发开销,但会增加拼接层的责任。 另一种解决方案可以是强制每个微应用成为自定义Web组件(custom web component)。这个解决方案的优点是浏览器完成了范围设计,但需要付出代价:使用shadow DOM进行服务器端渲染几乎是不可能的。此外,自定义元素没有100%的浏览器支持,特别是IE。 我们应该如何在微应用之间共享全局信息? 这个问题指出了关于这个主题的最关注的问题之一,但解决方案非常简单:HTML 5具有相当强大的功能,大多数前端开发人员都不知道。例如,自定义事件(custom events) 就是其中之一,它是在微应用中共享信息的解决方案。 或者,任何共享的pub-sub实现或T39可观察的实现都可以实现。如果我们想要一个更复杂的全局状态处理程序,我们可以实现共享的微型Redux,通过这种方式我们可以实现更多的相应式架构。 如果所有微应用都是独立应用,我们如何进行客户端路由? 这个问题取决于设计的每个实现, 所有主要的现代框架都通过使用浏览器历史状态在客户端提供强大的路由机制, 问题在于哪个应用负责路由以及何时。 我目前的实用方法是创建一个共享客户端路由器,它只负责顶级路由,其余路由器属于相应的微应用。假设我们有 /content/:id 路由定义。共享路由器将解析 /content,已解析的路由将传递到ContentMicroApp。ContentMicroApp是一个独立的服务器,它将仅使用 /:id 进行调用。 我们必须是服务器端渲染,但是有可能使用微前端吗? 服务器端呈现是一个棘手的问题。如果你正在考虑iframes缝合微应用然后忘记服务器端渲染。同样,拼接任务的Web组件也不比iframe强大。但是,如果每个微应用能够在服务器端呈现其内容,那么拼接层将仅负责连接服务器端的HTML片段。 与传统环境集成至关重要!但是怎么样? 为了整合遗留系统,我想描述我自己的策略,我称之为“ 渐进式入侵 ”。 首先,我们必须实现拼接层,它应该具有透明代理的功能。然后我们可以通过声明一个通配符路径将遗留系统定义为微应用:LegacyMicroApp 。因此,所有流量都将到达拼接层,并将透明地代理到旧系统,因为我们还没有任何其他微应用。 下一步将是我们的 第一次逐步入侵 :我们将从LegacyMicroApp中删除主要导航并用依赖项替换它。这种依赖关系将是一个使用闪亮的新技术实现的微应用:NavigationMicroApp 。 现在,拼接层将每个路径解析为 Legacy Micro App ,它将依赖关系解析为 Navigation MicroApp ,并通过连接这两个来为它们提供服务。 然后通过主导航遵循相同的模式来为引导下一步。 然后我们将继续从Legacy MicroApp中获取逐步重复以上操作,直到没有任何遗漏。 如何编排客户端,这样我们每次都不需要重新加载页面? 拼接层解决了服务器端的问题,但没有解决客户端问题。在客户端,在将已粘贴的片段作为无缝HTML加载后,我们不需要每次在URL更改时加载所有部分。因此,我们必须有一些异步加载片段的机制。但问题是,这些片段可能有一些依赖关系,这些依赖关系需要在客户端解决。这意味着微前端解决方案应提供加载微应用的机制,以及依赖注入的一些机制。 根据上述问题和可能的解决方案,我可以总结以下主题下的所有内容: 客户端 编排路由隔离微应用应用之间通信微应用UI之间的一致性 服务端 服务端渲染路由依赖管理 灵活、强大而简单的架构 所以,这篇文章还是很值得期待的!微前端架构的基本要素和要求终于显现! 在这些要求和关注的指导下,我开始开发一种名为microfe的解决方案。在这里,我将通过抽象的方式强调其主要组件来描述该项目的架构目标。 它很容易从客户端开始,它有三个独立的主干结构:AppsManager, Loader, Router 和一个额外的MicroAppStore。 AppsManager AppsManager 是客户端微应用编排的核心。AppsManager的主要功能是创建依赖关系树。当解决了微应用的所有依赖关系时,它会实例化微应用。 Loader 客户端微应用编排的另一个重要部分是Loader。加载器的责任是从服务器端获取未解析的微应用。 Router 为了解决客户端路由问题,我将 Router 引入了 microfe。与常见的客户端路由器不同,microf 的功能有限,它不解析页面而是微应用。假设我们有一个URL /content/detail/13 和一个ContentMicroApp。在这种情况下,microfe 将URL解析为 /content/,它将调用ContentMicroApp /detail/13 URL部分。 MicroAppStore 为了解决微应用到微应用客户端的通信,我将MicroAppStore引入了 microfe。它具有与Redux库类似的功能,区别在于:它对异步数据结构更改和reducer 声明更灵活。 服务器端部分在实现上可能稍微复杂一些,但结构更简单。它只包含两个主要部分 StitchingServer 和许多MicroAppServer。 MicroAppServer MicroAppServer 的最小功能可以概括为 init 和 serve。 虽然 MicroAppServer 首先启动它应该做的是使用 微应用声明 调用 SticthingServer 注册端点,该声明定义了 MicroAppServer 的微应用 依赖关系, 类型 和 URL架构。我认为没有必要提及服务功能,因为没有什么特别之处。 StitchingServer StitchingServer 为 MicroAppServers 提供注册端点。当 MicroAppServer 将自己注册到 StichingServer 时,StichingServer 会记录MicroAppServer 的声明。 稍后,StitchingServer 使用声明从请求的URL解析 MicroAppServers。 解析M icroAppServer 及其所有依赖项后,CSS,JS和HTML中的所有相对路径都将以相关的 MicroAppServer 公共URL为前缀。另外一步是为CSS选择器添加一个唯一的 MicroAppServer 标识符,以防止客户端的微应用之间发生冲突。 然后 StitchingServer 的主要职责就是:从所有收集的部分组成并返回一个无缝的HTML页面。 其他实现一览 甚至在2016年被称为微前端之前,许多大公司都试图通过 BigPipe 来解决Facebook等类似问题。如今这个想法正在获得验证。不同规模的公司对该主题感兴趣并投入时间和金钱。例如,Zalando开源了其名为Project Mosaic的解决方案。我可以说,微型和 Project Mosaic.遵循类似的方法,但有一些重要的区别。虽然microfe采用完全分散的路由定义来增强每个微应用的独立性,但Project Mosaic更喜欢每条路径的集中路由定义和布局定义。通过这种方式,Project Mosaic可以实现轻松的A/B测试和动态布局生成。 对于该主题还有一些其他方法,例如使用iframe作为拼接层,这显然不是在服务器端而是在客户端。这是一个非常简单的解决方案,不需要太多的服务器结构和DevOps参与。这项工作只能由前端团队完成,因此可以减轻公司的组织负担,同时降低成本。 已经有一个框架叫做 single-spa。该项目依赖于每个应用的命名约定来解析和加载微应用。容易掌握想法并遵循模式。因此,在您自己的本地环境中尝试该想法可能是一个很好的初步介绍。但是项目的缺点是你必须以特定的方式构建每个微应用,以便他们可以很好地使用框架。 最后的想法 我相信微前端话题会更频繁地讨论。如果该主题能够引起越来越多公司的关注,它将成为大型团队的事实发展方式。在不久的将来,任何前端开发人员都可以在这个架构上掌握一些见解和经验,这真的很有用。 关于本文 译者:@Vincent.W 译文:https://zhuanlan.zhihu.com/p/82965940 作者:@onerzafer 原文:https://hackernoon.com/understanding-micro-frontends-b1c11585a297 加入阿里云钉钉群享福利:每周技术直播,定期群内有奖活动、大咖问答 阿里云开发者社区
茶什i 2020-01-06 17:57:24 0 浏览量 回答数 0

问题

荆门开诊断证明-scc

(微)电〗【186-6605-3854〗号【精品问答】Java技术1000问(1) 问问小秘 2019-11-15 11:24:15 9099 为了方便Java开发者快速找到相关技术问题和答案,开发...
游客5k2abgdj3m2ti 2019-12-01 22:09:00 1 浏览量 回答数 0

回答

转自:思否 本文作者:Michael van der Gulik 原文链接:《Why WebAssembly is a big deal》 译者:敖小剑 WebAssembly 是每个程序员都应该关注的技术。WebAssembly 会变得更流行。 WebAssembly 将取代 JavaScript。WebAssembly 将取代 HTML 和 CSS。 WebAssembly 将取代手机应用。WebAssembly 将取代桌面应用。在 10 年内,我保证每个程序员至少需要知道如何使用工具来操作 WebAssembly 并理解它是如何工作的。 你可能会说,“太离谱了!” 好吧,请继续阅读。 什么是 WebAssembly 当前形式的 WebAssembly 是 Web 浏览器的新扩展,可以运行预编译代码…快速地。在 C ++ 中编写了一些小代码,然后使用 Emscripten 编译器将该代码编译为 WebAssembly。通过一些 Javascript 粘合,就可以在 Web 浏览器中调用这一小段代码,例如,运行粒子模拟。 WebAssembly 文件,扩展名为.wasm,本身是包含可执行指令的二进制格式。要使用该文件,必须编写一个运行某些 Javascript 的 HTML 文件来获取、编译和执行 WebAssembly 文件。WebAssembly 文件在基于堆栈的虚拟机上执行,并使用共享内存与其 JavaScript 包装器进行通信。 到目前为止,这似乎并不有趣。它看起来只不过是 JavaScript 的加速器。但是,聪明的读者会对 WebAssembly 可能成为什么有所了解。 WebAssembly 将成为什么? 第一个重要发现是 WebAssembly 是一个安全的沙盒虚拟机。可以从 Internet 运行喜欢的 WebAssembly 代码,而确保它不会接管 PC 或服务器。四个主流 Web 浏览器对它的安全性非常有信心,它已经默认实现并启用了。它的真正安全性还有待观察,但安全性是 WebAssembly 的核心设计目标。 第二个重要发现是 WebAssembly 是一个通用的编译目标。它的原始编译器是一个 C 编译器,这个编译器很好地指示了 WebAssembly 虚拟机的低级和可重定向性。许多编程语言都使用 C 语言编写虚拟机,其他一些语言甚至使用 C 本身作为编译目标。 此时,有人整理了一个可以编译为 WebAssembly 的编程语言列表。这份名单将在未来很多年中继续增长。 WebAssembly 允许使用任何编程语言编写代码,然后让其他人在任何平台上安全地运行该代码,无需安装任何内容。朋友们,这是美好梦想的开始。 部署问题 我们来谈谈如何将软件提供给用户。 为新项目选择编程语言的一个重要因素是如何将项目部署到客户。您的程序员喜欢用 Haskell,Python,Visual Basic 或其他语言编写应用程序,具体取决于他们的喜好。要使用喜欢的语言,他们需要编译应用,制作一些可安装的软件包,并以某种方式将其安装在客户端的计算机上。有许多方法可以提供软件 - 包管理器,可执行安装程序或安装服务,如 Steam,Apple App Store,Google Play 或 Microsoft store。 每一个安装机制都意味着痛苦,从应用商店安装时的轻微疼痛,到管理员要求在他的 PC 上运行一些旧的 COBOL 代码时的集群头痛。 部署是一个问题。对于开发人员和系统管理员来说,部署一直是一个痛点。我们使用的编程语言与我们所针对的平台密切相关。如果大量用户在 PC 或移动设备上,我们使用 HTML 和 Javascript。如果用户是 Apple 移动设备用户,我们使用……呃…… Swift?(我实际上不知道)。如果用户在 Android 设备上,我们使用 Java 或 Kotlin。如果用户在真实计算机上并且愿意处理掉他们的部署问题,那么我们开发人员才能在我们使用的编程语言中有更多选择。 WebAssembly 有可能解决部署问题。 有了 WebAssembly,您可以使用任何编程语言编写应用,只要这些编程语言可以支持 WebAssembly,而应用可以在任何设备和任何具有现代 Web 浏览器的操作系统上运行。 硬件垄断 想购买台式机或笔记本电脑。有什么选择?好吧,有英特尔,有 AMD。多年来一直是双寡头垄断。保持这种双寡头垄断的一个原因是 x86 架构只在这两家公司之间交叉许可,而且通常预编译的代码需要 x86 或 x86-64(也就是 AMD-64)架构。还有其他因素,例如设计世界上最快的 CPU 是一件很艰难但也很昂贵的事情。 WebAssembly 是一种可让您在任何平台上运行代码的技术(之一)。如果它成为下一个风口,硬件市场将变得商品化。应用编译为 WebAssembly,就可以在任何东西上运行 - x86,ARM,RISC-V,SPARC。即便是操作系统市场也会商品化;您所需要的只是一个支持 WebAssembly 的浏览器,以便在硬件可以运行时运行最苛刻的应用程序。 编者注:Second State 研发的专为服务端优化的 WebAssembly 引擎 SSVM 已经可以运行在高通骁龙芯片上。Github 链接:https://github.com/second-sta... 云计算 但等等,还有更多。云计算成为IT经理办公室的流行词已有一段时间,WebAssembly 可以直接迎合它。 WebAssembly 在安全沙箱中执行。可以制作一个容器,它可以在服务器上接受和执行 WebAssembly 模块,而资源开销很小。对于提供的每个服务,无需在虚拟机上运行完整的操作系统。托管提供商只提供对可以上传代码的WebAssembly 容器的访问权限。它可以是一个原始容器,接收 socket 并解析自己的 HTTP 连接,也可以是一个完整的 Web 服务容器,其中 WebAssembly 模块只需要处理预解析的HTTP请求。 这还不存在。如果有人想变得富有,那么可以考虑这个想法。 编者注:目前已经有人正在实现这个想法,Byte Alliance 计划将WebAssembly 带到浏览器之外,Second State 已经发布了为服务端设计的WebAssembly 引擎开发者预览版。 不是云计算 WebAssembly 足以取代 PC 上本地安装的大多数应用程序。我们已经使用 WebGL(又名OpenGL ES 2.0)移植了游戏。我预测不久之后,受益于WebAssembly,像 LibreOffice 这样的大型应用可以直接从网站上获得,而无需安装。 在这种情况下,在本地安装应用没什么意义。本地安装的应用和 WebAssembly 应用之间几乎没有区别。WebAssembly 应用已经可以使用屏幕,键盘和鼠标进行交互。它可以在 2D 或 OpenGL 中进行图形处理,并使用硬件对视频流进行解码。可以播放和录制声音。可以访问网络摄像头。可以使用 WebSockets。可以使用 IndexedDB 存储大量数据在本地磁盘上。这些已经是 Web 浏览器中的标准功能,并且都可以使用 JavaScript 向 WebAssembly 暴露。 目前唯一困难的地方是 WebAssembly 无法访问本地文件系统。好吧,可以通过 HTML 使用文件上传对话,但这不算。最终,总会有人为此创建 API,并可能称之为 “WASI”。 “从互联网上运行应用程序!?胡说八道!“,你说。好吧,这是使用 Qt 和 WebAssembly 实现的文本编辑器 (以及更多)。 这是一个简单的例子。复杂的例子是在 WebBrowser 中运行的 Adobe Premier Pro 或 Blender。或者考虑像 Steam 游戏一样可以直接从网络上运行。这听起来像小说,但从技术上说这并非不能发生。 它会来的。 让我们裸奔! 目前,WebAssembly 在包含 HTML 和 Javascript 包装器的环境中执行。为什么不脱掉这些?有了 WebAssembly,为什么还要在浏览器中包含 HTML 渲染器和 JavaScript 引擎? 通过为所有服务提供标准化 API,这些服务通常是 Web 浏览器提供的,可以创建裸 WebAssembly。就是没有 HTML和 Javascript 包装来管理的 WebAssembly。访问的网页是 .wasm 文件,浏览器会抓取并运行该文件。浏览器为WebAssembly 模块提供画布,事件处理程序以及对浏览器提供的所有服务的访问。 这目前还不存在。如果现在使用 Web 浏览器直接访问 .wasm 文件,它会询问是否要下载它。我假设将设计所需的 API 并使其工作。 结果是 Web 可以发展。网站不再局限于 HTML,CSS 和 Javascript。可以创建全新的文档描述语言。可以发明全新的布局引擎。而且,对于像我这样的 polyglots 最相关,我们可以选择任何编程语言来实现在线服务。 可访问性 但我听到了强烈抗议!可访问性怎么样??搜索引擎怎么办? 好吧,我还没有一个好的答案。但我可以想象几种技术解决方案。 一个解决方案是我们保留内容和表现的分离。内容以标准化格式编写,例如 HTML。演示文稿由 WebAssembly 应用管理,该应用可以获取并显示内容。这允许网页设计师使用想要的任何技术进行任意演示 - 不需要 CSS,而搜索引擎和需要不同类型的可访问性的用户仍然可以访问内容。 请记住,许多 WebAssembly 应用并不是可以通过文本访问的,例如游戏和许多应用。盲人不会从图像编辑器中获得太多好处。 另一个解决方案是发明一个 API,它可以作为 WebAssembly 模块,来提供想在屏幕上呈现的 DOM,供屏幕阅读器或搜索引擎使用。基本上会有两种表示形式:一种是在图形画布上,另一种是产生结构化文本输出。 第三种解决方案是使用屏幕阅读器或搜索引擎可以使用的元数据来增强画布。执行 WebAssembly 并在画布上呈现内容,其中包含描述渲染内容的额外元数据。例如,该元数据将包括屏幕上的区域是否是菜单以及存在哪些选项,或者区域是否想要文本输入,以及屏幕上的区域的自然排序(也称为标签顺序)是什么。基本上,曾经在 HTML 中描述的内容现在被描述为具有元数据的画布区域。同样,这只是一个想法,它可能在实践中很糟糕。 可能是什么 1995年,Sun Microsystems 发布了 Java,带有 Java applets 和大量的宣传。有史以来第一次,网页可以做一些比 和 GIF 动画更有趣的事情。开发人员可以使应用完全在用户的 Web 浏览器中运行。它们没有集成到浏览器中,而是实现为繁重的插件,需要安装整个 JVM。1995年,这不是一个小的安装。applets 也需要一段时间来加载并使用大量内存。我们现在凭借大量内存,这不再是一个问题,但在 Java 生命的第一个十年里,它让体验变得令人厌烦。 applets 也不可靠。无法保证它们会运行,尤其是在用户使用 Microsoft 的实现时。他们也不安全,这是棺材里的最后一颗钉子。 以 JVM 为荣,其他语言最终演变为在 JVM 上运行。但现在,那艘船航行了。 FutureSplash / Macromedia / Adobe Flash 也是一个竞争者,但是是专有的,具有专有工具集和专有语言的专有格式。我读到他们确实在2009年开启了文件格式。最终从浏览器中删除了支持,因为它存在安全风险。 这里的结论是,如果希望您的技术存在于每个人的机器上,那么安全性就需要正视。我真诚地希望 WebAssembly 作为标准对安全问题做出很好的反应。 需要什么? WebAssembly 仍处于初期阶段。它目前能很好的运行代码,而规范版本是 1.0,二进制格式定型。目前正在开展SIMD 指令支持。通过 Web Workers 进行多线程处理也正在进行中。 工具可用,并将在未来几年不断改进。浏览器已经让你窥视 WebAssembly 文件。至少 Firefox 允许查看WebAssembly 字节码,设置断点并查看调用堆栈。我听说浏览器也有 profiling 支持。 语言支持包括一套不错的语言集合–C,C++和Rust是一流的公民。C#,Go和Lua显然有稳定的支持。Python,Scala,Ruby,Java和Typescript都有实验性支持。这可能是一个傲慢的陈述,但我真的相信任何想要在21世纪存在的语言都需要能够在 WebAssembly 上编译或运行。 在访问外部设备的 API 支持方面,我所知道的唯一可用于裸 WebAssembly 的 API 是 WASI,它允许文件和流访问等核心功能,允许 WebAssembly 在浏览器外运行。否则,任何访问外部世界的 API 都需要在浏览器中的 Javascript 中实现。除了本地机器上的文件访问,打印机访问和其他新颖的硬件访问(例如非标准蓝牙或USB设备)之外,应用所需的一切几乎都可以满足。“裸WebAssembly”并不是它成功的必要条件; 它只是一个小的优化,不需要浏览器包含对 HTML,CSS 或 Javascript 的支持。 我不确定在桌面环境中让 WebAssembly 成为一等公民需要什么。需要良好的复制和粘贴支持,拖放支持,本地化和国际化,窗口管理事件以及创建通知的功能。也许这些已经可以从网络浏览器中获得; 我经常惊讶与已经可能的事情。 引发爆炸的火花是创建允许现有应用移植的环境。如果创造了“用于 WebAssembly 的 Linux 子系统”,那么可以将大量现有的开源软件移植到 WebAssembly 上。它需要模拟一个文件系统 - 可以通过将文件系统的所有只读部分都缓存为 HTTP 请求来完成,并且所有可写部分都可以在内存中,远程存储或使用浏览器可以提供的任何文件访问。图形支持可以通过移植 X11 或 Wayland 的实现来使用 WebGL(我理解已经作为 AIGLX 存在?)。 一些 SDL 游戏已经被移植到 WebAssembly - 最着名的是官方演示。 一旦 JVM 在 WebAssembly 中运行,就可以在浏览器中运行大量的 Java 软件。同样适用于其他虚拟机和使用它们的语言。 与 Windows 软件的巨大世界一样,我没有答案。WINE 和 ReactOS 都需要底层的 x86 或 x86-64 机器,所以唯一的选择是获取源代码并移植它,或者使用 x86 模拟器。 尾声 WebAssembly 即将到来。 它来得很慢,但现在所有的部分都可以在你正在使用的浏览器上使用。现在我们等待构建用于从各种编程语言中定位 WebAssembly 的基础设施。一旦构建完成,我们将摆脱 HTML,CSS 和 Javascript 的束缚。 加入阿里云钉钉群享福利:每周技术直播,定期群内有奖活动、大咖问答 阿里云开发者社区
茶什i 2020-01-07 10:32:35 0 浏览量 回答数 0

问题

19年BAT常问面试题汇总:JVM+微服务+多线程+锁+高并发性能

一、Java 并发编程 1、在 java 中守护线程和本地线程区别? 2、线程与进程的区别? 3、什么是多线程中的上下文切换? 4、死锁与活锁的区别,死锁与饥饿的区别ÿ...
游客pklijor6gytpx 2020-01-09 10:31:29 1271 浏览量 回答数 3

问题

【精品问答】大数据计算技术1000问

为了方便大数据开发者快速找到相关技术问题和答案,开发者社区策划了大数据计算技术1000问内容,包含Flink、Spark等流式计算(实时计算)、离线计算、Hbase等实践中遇到的技术问...
问问小秘 2019-12-01 21:57:13 6895 浏览量 回答数 2

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务