• 关于 阿里云云原生API 的搜索结果

问题

命令行工具 CLI:产品概述

行者武松 2019-12-01 21:52:10 1308 浏览量 回答数 0

回答

云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。 为什么选择云服务器ECS 选择云服务器ECS,您可以轻松构建具有以下优势的计算资源: 无需自建机房,无需采购以及配置硬件设施。 分钟级交付,快速部署,缩短应用上线周期。 快速接入部署在全球范围内的数据中心和BGP机房。 成本透明,按需使用,支持根据业务波动随时扩展和释放资源。 提供GPU和FPGA等异构计算服务器、弹性裸金属服务器以及通用的x86架构服务器。 支持通过内网访问其他阿里云服务,形成丰富的行业解决方案,降低公网流量成本。 提供虚拟防火墙、角色权限控制、内网隔离、防病毒攻击及流量监控等多重安全方案。 提供性能监控框架和主动运维体系。 提供行业通用标准API,提高易用性和适用性。 更多选择理由,请参见云服务器ECS的优势和应用场景。 产品架构 云服务器ECS主要包含以下功能组件: 实例:等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的计算组件。实例的计算性能、内存性能和适用业务场景由实例规格决定,其具体性能指标包括实例vCPU核数、内存大小、网络性能等。 镜像:提供实例的操作系统、初始化应用数据及预装的软件。操作系统支持多种Linux发行版和多种Windows Server版本。 块存储:块设备类型产品,具备高性能和低时延的特性。提供基于分布式存储架构的云盘、共享块存储以及基于物理机本地存储的本地盘。 快照:某一时间点一块云盘或共享块存储的数据状态文件。常用于数据备份、数据恢复和制作自定义镜像等。 安全组:由同一地域内具有相同保护需求并相互信任的实例组成,是一种虚拟防火墙,用于设置实例的网络访问控制。 网络: 专有网络(Virtual Private Cloud):逻辑上彻底隔离的云上私有网络。您可以自行分配私网IP地址范围、配置路由表和网关等。 经典网络:所有经典网络类型实例都建立在一个共用的基础网络上。由阿里云统一规划和管理网络配置。 更多功能组件详情,请参见云服务器ECS产品详情页。 以下为云服务器ECS的产品组件架构图,图中涉及的功能组件的详细介绍请参见相应的帮助文档。whatIsECS 产品定价 云服务器ECS支持包年包月、按量付费、预留实例券、抢占式实例等多种账单计算模式。更多详情,请参见计费概述和云产品定价页。 管理工具 通过注册阿里云账号,您可以在任何地域下,通过阿里云提供的以下途径创建、使用或者释放云服务器ECS: ECS管理控制台:具有交互式操作的Web服务页面。关于管理控制台的操作,请参见常用操作导航。 ECS API:支持GET和POST请求的RPC风格API。关于API说明,请参见API参考。以下为调用云服务器ECS API的常用开发者工具: 命令行工具CLI:基于阿里云API建立的灵活且易于扩展的管理工具。您可基于命令行工具封装阿里云的原生API,扩展出您需要的功能。 OpenAPI Explorer:提供快速检索接口、在线调用API和动态生成SDK示例代码等服务。 阿里云SDK:提供Java、Python、PHP等多种编程语言的SDK。 资源编排(Resource Orchestration Service):通过创建一个描述您所需的所有阿里云资源的模板,然后资源编排将根据模板,自动创建和配置资源。 运维编排服务(Operation Orchestration Service):自动化管理和执行运维任务。您可以在执行模板中定义执行任务、执行顺序、执行输入和输出等,通过执行模板达到自动化完成运维任务的目的。 Terraform:能够通过配置文件在阿里云以及其他支持Terraform的云商平台调用计算资源,并对其进行版本控制的开源工具。 阿里云App:移动端类型的管理工具。 Alibaba Cloud Toolkit:阿里云针对IDE平台为开发者提供的一款插件,用于帮助您高效开发并部署适合在云端运行的应用。 部署建议 您可以从以下维度考虑如何启动并使用云服务器ECS: 地域和可用区 地域指阿里云的数据中心,地域和可用区决定了ECS实例所在的物理位置。一旦成功创建实例后,其元数据(仅专有网络VPC类型ECS实例支持获取元数据)将确定下来,并无法更换地域。您可以从用户地理位置、阿里云产品发布情况、应用可用性、以及是否需要内网通信等因素选择地域和可用区。例如,如果您同时需要通过阿里云内网使用云数据库RDS,RDS实例和ECS实例必须处于同一地域中。更多详情,请参见地域和可用区。 高可用性 为保证业务处理的正确性和服务不中断,建议您通过快照实现数据备份,通过跨可用区、部署集、负载均衡(Server Load Balancer)等实现应用容灾。 网络规划 阿里云推荐您使用专有网络VPC,可自行规划私网IP,全面支持新功能和新型实例规格。此外,专有网络VPC支持多业务系统隔离和多地域部署系统的使用场景。更多详情,请参见专有网络(Virtual Private Cloud)。 安全方案 您可以使用云服务器ECS的安全组,控制ECS实例的出入网访问策略以及端口监听状态。对于部署在云服务器ECS上的应用,阿里云为您提供了免费的DDoS基础防护和基础安全服务,此外您还可以使用阿里云云盾,例如: 通过DDoS高防IP保障源站的稳定可靠。更多详情,请参见DDoS高防IP文档。 通过云安全中心保障云服务器ECS的安全。更多详情,请参见云安全中心文档。 相关服务 使用云服务器ECS的同时,您还可以选择以下阿里云服务: 根据业务需求和策略的变化,使用弹性伸缩(Auto Scaling)自动调整云服务器ECS的数量。更多详情,请参见弹性伸缩。 使用专有宿主机(Dedicated Host)部署ECS实例,可让您独享物理服务器资源、降低上云和业务部署调整的成本、满足严格的合规和监管要求。更多详情,请参见专有宿主机DDH。 使用容器服务Kubernetes版在一组云服务器ECS上通过Docker容器管理应用生命周期。更多详情,请参见容器服务Kubernetes版。 通过负载均衡(Server Load Balancer)对多台云服务器ECS实现流量分发的负载均衡目的。更多详情,请参见负载均衡。 通过云监控(CloudMonitor)制定实例、系统盘和公网带宽等的监控方案。更多详情,请参见云监控。 在同一阿里云地域下,采用关系型云数据库(Relational Database Service)作为云服务器ECS的数据库应用是典型的业务访问架构,可极大降低网络延时和公网访问费用,并实现云数据库RDS的最佳性能。云数据库RDS支持多种数据库引擎,包括MySQL、SQL Server、PostgreSQL、PPAS和MariaDB。更多详情,请参见关系型云数据库。 在云市场获取由第三方服务商提供的基础软件、企业软件、网站建设、代运维、云安全、数据及API、解决方案等相关的各类软件和服务。您也可以成为云市场服务供应商,提供软件应用及服务。更多详情,请参见云市场文档。 更多方案,请参见阿里云解决方案。

1934890530796658 2020-03-24 14:03:02 0 浏览量 回答数 0

回答

容器服务 Kubernetes 版基于原生 Kubernetes 进行适配和增强,简化集群的搭建和扩容等工作,整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes 容器化应用运行环境。本文档为您介绍阿里云容器服务平台的产品架构。 架构 产品特性 特性说明 多Kubernetes集群形态 融合阿里云虚拟化技术,容器服务Kubernetes版支持Dedicated、Managed和Serverless三种集群形式。 Dedicated:可使用ECS、EGS、神龙服务器作为集群节点,实例规格灵活配置,支持丰富的插件。 Managed:在Dedicated的基础上,新增托管Master节点的功能,具备简单、低成本、高可用、无需运维的特点。 Serverless:提供免服务器管理的Kubernetes serverless 服务,简化底层资源管理,灵活扩容,降低资源开销。 阿里云Kubernetes集群管控服务 支持强大的网络、存储、混合集群管理、水平扩容、应用扩展等特性。 阿里云Kubernetes管理服务 支持安全镜像和Helm工具,与阿里云RAM、KMS、日志、监控等产品高度集成,提供一个安全合规的Kubernetes解决方案,为您提供混合云、容器安全、CI/CD、DevOps等增强能力。 便捷、高效的使用方式 容器服务Kubernetes版提供Web Console 和API&SDK。

1934890530796658 2020-03-26 11:24:00 0 浏览量 回答数 0

海外云虚拟主机包年25元/月起

海外独享虚拟主机全面上线,助力构建海外网站,提升公司国际形象;全球有效覆盖,超高性价比;建站入门首选,助力出口,适合跨境贸易企业。

问题

阿里云开发者社区招募词条审核官啦

问问小秘 2020-02-04 13:18:29 139 浏览量 回答数 1

回答

首先推荐阿里云容器服务 https://www.aliyun.com/product/containerservice/ 兼容swarm api,整合了负载均衡、日志、监控、存储等功能。如果是自己搭建集群,可以使用swarm或者kubernetes,docker 1.12支持原生编排,也可以考虑

管理贝贝 2019-12-02 03:09:17 0 浏览量 回答数 0

问题

阿里云中间件是什么

搞么罗 2019-12-01 21:51:58 1418 浏览量 回答数 0

问题

产品优势-便宜易用

李沃晟 2019-12-01 21:35:55 671 浏览量 回答数 0

问题

Wordpress的OSS上传插件--OSS Upload For Wordpress

鬼才神兵 2019-12-01 21:19:35 3241 浏览量 回答数 1

回答

阿里巴巴小马哥:2015 年初开始,阿里巴巴集团的应用架构逐渐由 SOA 衍生至微服务,所使用的微服务框架主要以 Spring Boot / Spring Cloud 和 Apache Dubbo(HSF)为主,涵盖所有 Java 中间件核心基础设施、九成以上的内部系统,以及阿里云商户应用等。 同时,基于 Spring Cloud API,阿里巴巴衍生并开源出一套全新的微服务框架 - Spring Cloud Alibaba,并且正走向下一代 “云原生” 架构,越来越多的应用开始尝试 Serverless 以及 Service Mesh 等前沿技术。相信未来微服务在不同语言和平台上将会提供更多的选择,至于那时谁是王者或主流框架,这个问题的答案已经不再重要。 腾讯单致豪:不同的微服务主流框架可以满足不用的应用痛点,比如 SpringCloud、Dubbo 专注 Java 领域,TARS 则专注于多语言和高性能,充分发挥 C++ 的高性能、Go 的性能与高效兼顾、Java 的全能、Python 丰富基础库尤其是 AI 方面、Node.Js 和 PHP 便捷全面为 Web 而生等等优势。 目前中国和美国大厂开源的微服务框架(腾讯的 TARS、阿里的 Dubbo、百度的 brpc、谷歌的 gRPC、Facebook 的 Thrift、Pivotal 的 SpringCloud)基本能覆盖所有用户的痛点,企业直接从开源社区选型能解决自己痛点的开发框架即可。 美团吴革:主要采用自研 OCTO 和 Pigeon,现在正在开发 Service Mesh 服务。现在国内主要是基于 Dubbo、Spring Cloud、Google gRPC 作为基础进行二次封装,主流框架选型已经相对成熟。 红帽陈楚晖:主要采用 Spring Cloud 的微服务框架,也对 Service Mesh(Istio)有研究。由于现有的微服务框架需要开发人员过多的介入,需要有大量的开发,所以目前大家比较看好 Istio。但是由于 Istio 还不够成熟,因此大家都还处于预研阶段。 华为田晓亮:华为许多的云服务和内部项目采用了 ServiceComb 的微服务解决方案,比如消费者云,在全世界运行着数千微服务实例来为手机用户提供服务。此外,华为云的音视频服务也运行着数千的微服务实例,来提供视频通话、音视频解码等服务。并且我们也向社区(通过 ServiceComb)和商业用户(通过 ServiceStage)提供解决方案。

游客pklijor6gytpx 2019-12-02 03:11:40 0 浏览量 回答数 0

回答

Serverless Kubernetes 简介 ECI 兼容 Kubernetes,阿里云提供了免运维和管理的 Kubernetes 容器服务 Serverless Kubernetes。 sk-concept Serverless Kubernetes 是针对容器优化的 Serverless 平台,享有 Kubernetes 的强大管理能力,并支持 Workloads 中的Deloyment、StatefulSet、Job、CroJob,您可将应用架构和组件架构抽象出来,不用管理服务器的本身例如创建机器和管理基础设施、运维、升级和容量规划。只需关注产品应用的本身,按照应用消耗付费,而并非底层资源,根据应用类型自动弹性伸缩,提供更细粒度的资源供给和消耗。 Serverless Kubernetes优势主要有以下几个方面: 简单易用:1.5秒创建集群,30秒部署应用;无需管理Kubernetes集群。 生态融合:可使用Kubernetes原生API,享受Kubernetes生态;与阿里云基础设施无缝集成;支持和用户VPC的应用网络互联互通。 安全隔离:基于弹性计算基础架构,提供POD的强隔离;可混合部署非可容和应用。 按需计费:按POD的CPU和内存计费;可配置弹性伸缩策略。 使用场景 Serverless Kubernetes 结合容器的高移植性和高灵活性与阿里云弹性计算提供的弹性调度和隔离性,其应用场景非常广泛,可敏捷便利部署于包括 web 应用、移动应用后端服务、多媒体处理、数据处理、持续集成等多种场景,非常适合批量任务和突发工作。sk-scenario 快速入门 通过 Serverless Kubernetes 创建 ECI 可以参考 Serverless Kubernetes 快速入门指南。 完整的 Serverless Kubernetes 使用手册,可以参考 Serverless Kubernetes集群用户指南。

1934890530796658 2020-03-20 18:20:48 0 浏览量 回答数 0

回答

多集成 • 身份认证与访问控制 KMS借助于身份认证机制(AccessKey)来鉴别请求的合法性,KMS还通过与访问控制(RAM)集成,允许您配置多样化的自定义策略,满足不同的授权场景。任何请求仅由合法用户发起且满足RAM对权限的动态检测(基于属性的访问控制,简称ABAC),才能被KMS接受。详情请参见使用RAM实现访问控制。 • 审计密钥的使用 KMS通过与操作审计(ActionTrail)集成,可以查看近期KMS的使用状况,也可以将KMS使用情况存储到OSS等其他云服务中,满足更长周期的审计需求。详情请参见使用ActionTrail记录操作事件。 • 控制云产品集成加密 KMS和阿里云ECS、RDS、OSS等多个产品无缝集成。通过一方集成,您可以很容易的使用KMS主密钥加密和控制您存储在这些服务中的数据,帮助您保持对云上计算和存储环境的控制,而您只需要付出密钥的管理成本,无需实现复杂的加密能力。同时集成加密解决了其他云产品中原生数据的加密保护问题。详情请参见服务端集成加密概述和服务端集成加密的云产品。 易使用 • 轻松实现加密 KMS提供简单的密码运算API,简化和抽象了密码学概念,让您可以轻松的使用API完成数据的加解密。对于需要密钥层次结构的应用,KMS提供了方便的信封加密能力,快速实现密钥层次结构:生成一个数据密钥,并将主密钥(CMK)用作密钥加密密钥(Key Encryption Key,简称KEK)来保护数据密钥。详情请参见什么是信封加密? • 集中的密钥托管 密钥管理服务为您提供对密钥的集中化托管与控制。 o 您可以随时创建新的用户主密钥,并通过访问控制(RAM)轻松管理谁可以访问该密钥 o 您可以通过操作审计(ActionTrail)审核密钥的使用情况。 o 您可以从线下密钥管理基础设施(KMI)或在阿里云加密服务中创建的HSM里将密钥导入到KMS。无论在KMS内创建的密钥还是外部导入的密钥,密钥中的机密信息或者敏感数据都会被阿里云上的其他云产品用于加密保护。 • 支持自带密钥(BYOK) KMS支持自带密钥(Bring Your Own Key,简称BYOK)。您可以将密钥租借给KMS用作云上数据的加密保护,从而更好的管理密钥。可租借的密钥包括以下两种: o 线下密钥管理基础设施(Key Management Infrastructure,简称KMI)里的密钥 o 在阿里云加密服务中自主管理的HSM中的密钥 说明 通过安全合规的密钥交换算法,导入到KMS的托管密码机中的密钥不会被任何机制所导出,密钥明文不会被操作者或任何第三者查看。详情请参见导入密钥材料和保持对密钥的控制。 • 自定义密钥轮转策略 KMS允许您根据所需的安全策略来自动轮转对称加密密钥。您只需要为主密钥(CMK)配置一个自定义的轮转周期,KMS会自动为您生成新的加密密钥版本。一个主密钥可以有多个密钥版本,其中每个版本可以被用来解密对应的密文数据,而最新的密钥版本(称为主版本)是活跃加密密钥,用于加密当前传入的数据。详情请参见自动轮转密钥。 高可靠、高可用、可伸缩 作为全托管的分布式服务,KMS在每个地域构建了多可用区冗余的密码计算能力,保证阿里云上各个产品和您的自定义应用向KMS发起的请求可以得到低延迟处理。您可以根据需要,在不同地域的KMS创建足够的密钥,而不必担心底层设施的扩容或缩容。 安全与合规能力 KMS经过严格的安全设计和审核,保证您的密钥在阿里云得到最严格的保护。 • KMS仅提供基于TLS的安全访问通道,并且仅使用安全的传输加密算法套件,符合PCI DSS等安全规范。 • KMS提供了监管机构许可和认证的密码设施。根据地域分布,分别提供了经国家密码管理局检测和认证的硬件密码设备,取得了FIPS 140-2第三级认证和运行在FIPS许可的第三级模式下的密码设备。详情请参见合规。 • KMS使用硬件安全模块来托管密钥,从而达到更高的安全标准,详情请参见托管密码机简介。 低成本 使用KMS,您可以按需使用和付费。 • 您无需支付采购硬件密码设备的初始成本以及对硬件系统进行运维、修补、老旧替换的持续开销。 • KMS为您节省了搭建具有可用性和可靠性密码设备集群,以及自建密钥管理设施的研发成本和维护开销。 • KMS与其他产品的集成为您节省了研发数据加密系统的开销,仅需通过管理密钥而获得可控的云上数据加密的能力。 密钥管理服务(Key Management Service,简称KMS) 阿里云提供的密钥管理服务可以提供密钥的安全托管及密码运算等服务。KMS内置密钥轮转等安全实践,支持其它云产品通过一方集成的方式对其管理的用户数据进行加密保护。借助KMS,您可以专注于数据加解密、电子签名验签等业务功能,无需花费大量成本来保障密钥的保密性、完整性和可用性。 用户主密钥(Customer Master Key,简称CMK) 用户主密钥主要用于加密保护数据密钥并产生信封,也可直接用于加密少量的数据。您可以调用KMS的API CreateKey创建一个用户主密钥。 信封加密(Envelope Encryption) 当您需要加密业务数据时,您可以调用KMS的API GenerateDataKey或GenerateDataKeyWithoutPlaintext生成一个对称密钥,同时使用指定的用户主密钥加密该对称密钥(被密封的信封保护)。在传输或存储等非安全的通信过程中,直接传递被信封保护的对称密钥。当您需要使用该对称密钥时,打开信封取出密钥即可。详情请参见什么是信封加密? 数据密钥(Data Key,简称DK) 数据密钥为加密数据使用的明文数据密钥。 说明 您可以调用KMS的API GenerateDataKey生成一个数据密钥,同时使用指定用户主密钥加密该数据密钥,返回数据密钥的明文(DK) 和密文(EDK)。 信封数据密钥(Enveloped Data Key/Encrypted Data Key,简称EDK) 信封数据密钥为通过信封加密技术保密后的密文数据密钥。 说明 如果暂时不需要数据密钥的明文,您可以调用KMS的API GenerateDataKeyWithoutPlaintext仅返回数据密钥密文。 硬件安全模块(Hardware Security Module,简称HSM) 硬件安全模块也称为密码机,是一种执行密码运算、安全生成和存储密钥的硬件设备。KMS提供的托管密码机可以满足监管机构的检测认证要求,为用户在KMS托管的密钥提供更高的安全等级保证。详情请参见托管密码机简介。 加密上下文(Encryption Context) 加密上下文是KMS对可认证加密(Authenticated Encryption with Associated Data,简称AEAD)的封装。KMS将传入的加密上下文作为对称加密算法的额外认证数据(Additional Authenticated Data,简称AAD)进行密码运算,从而为加密数据额外提供完整性(Integrity)和可认证性(Authenticity)的支持。详情请请见EncryptionContext说明。

LiuWH 2020-03-26 10:00:05 0 浏览量 回答数 0

问题

容器服务 发布历史

青蛙跳 2019-12-01 21:32:38 622 浏览量 回答数 0

问题

【精品问答】微消息队列 MQTT 版

montos 2020-04-08 12:20:13 3 浏览量 回答数 1

回答

阿里云文件存储(Network Attached Storage,简称 NAS)是面向阿里云 ECS 实例、E-HPC 和容器服务等计算节点的文件存储服务。 简介视频 观看以下视频可快速了解文件存储NAS。 定义 阿里云文件存储 NAS 是一个可共享访问、弹性扩展、高可靠以及高性能的分布式文件系统。它基于 POSIX 文件接口,天然适配原生操作系统,提供共享访问,同时保证数据一致性和锁互斥。 NAS 提供了简单的可扩展文件存储以供与 ECS 配合使用,多个ECS实例可以同时访问 NAS 文件系统,并且存储容量会随着您添加和删除文件而自动弹性增长和收缩,为在多个实例或服务器上运行的工作负载和应用程序提供通用数据源。 NAS 支持丰富的应用场景,详情请参见应用场景。 NAS 提供了容量型、性能型以及极速型存储类型,更多详情请参见存储类型。 产品优势 NAS 在成本、安全、简单、可靠性以及性能上都具有自身的优势。 成本 一个 NAS 文件系统可以同时挂载到多个计算节点上,由这些节点共享访问,从而节约大量拷贝与同步成本。 单个 NAS 文件系统的性能能够随存储容量线性扩展,使用户无需购买高端的文件存储设备,大幅降低硬件成本。 使用 NAS文件存储,您只需为文件系统使用的存储空间付费,不需要提前配置存储,并且不存在最低费用或设置费用。更多详情,请参见计量项和计费说明。 NAS 的高可靠性能够降低数据安全风险,从而大幅节约维护成本。 简单 一键创建文件系统,无需部署维护文件系统。 安全 基于 RAM 实现的资源访问控制,基于VPC实现的网络访问隔离,结合文件存储 NAS 的传输加密与存储加密特性,保障数据不被窃取或篡改。 高可靠性 文件存储NAS的数据在后端进行多副本存储,每份数据都有多份拷贝在故障域隔离的不同设备上存放, 提供 99.999999999% 的数据可靠性,能够有效降低数据安全风险。 高性能 基于分布式架构文件系统,随着容量的增长性能线性扩展,提供远高于传统存储的性能。 兼容性 NAS 文件存储提供良好的协议兼容性,支持 NFS 和 SMB 协议方案,兼容POSIX 文件系统访问语义,提供强大的数据一致性和文件锁定。 在 NAS 中,任何文件修改成功后,用户都能够立刻看到修改结果,便于用户实时修改存储内容。 相关功能 NAS 能够提供以下功能: 应用场景 功能描述 参考文档 创建文件系统 使用 NAS 前,必须要创建一个文件系统。 创建文件系统 管理文件系统 您可以查看文件系统的详细信息或删除文件系统。 管理文件系统 添加挂载点 要挂载文件系统,您需要为文件系统添加挂载点。 添加挂载点 管理挂载点 您可以禁用、激活或删除挂载点,或修改挂载点的权限组。 管理挂载点 挂载文件系统 在使用前,您需要将文件系统挂载至计算节点。 挂载文件系统 控制用户访问权限 您可以通过 RAM 赋予子用户 NAS 的操作权限,也可以通过权限组控制用户访问权限。 使用RAM实现用户访问控制 创建自定义权限策略 管理权限组 备份文件系统 NAS 备份服务已经开始公测,您可以对 NAS 文件系统进行备份。 数据备份 将数据迁移至 NAS 在使用 NAS 时,需要将数据从本地或对象存储迁移至 NAS。 数据迁移 使用 NAS API NAS 提供各种 API 接口,可以对文件系统进行各种操作。 API 概览

1934890530796658 2020-03-31 11:31:35 0 浏览量 回答数 0

问题

【阿里云产品公测】ACE的NodeJS环境试用问题汇总

橘子 2019-12-01 21:14:05 12111 浏览量 回答数 3

回答

杨晓峰:在可预见的将来,Java 依旧是企业软件、大数据、电商等等最核心的技术栈。但是目前 Java/JVM 能力在云时代有一定局限性,比如云里强调的无服务器、微服务等场景,Java/JVM 都有一定短板。 另外 Java 新版本采用速度这么慢,本身就说明,Java 创新和实际需求存在某种程度的脱节——一方面大量创新会带来兼容性和版本混乱的问题;另外创新带来的优点却需要极大增大开发运维成本,这也让部分创新的价值被抵消了。 但是 Java 会被取代吗?应该也不会,目前在社区、工具、类库等等方面,Java 还没有真正意义的对手,但是最大的威胁是新的需求浪潮是否与你有关。我们可以看下 GitHub 上 Java 新项目的趋势,一定程度上可以佐证 Java 坚实的基本面和不可忽视的隐忧。 阿里巴巴李三红:从技术角度来看,Java(JDK)这二十几年的发展一直试图在 Productivity 以及 Performance 之间做最好的平衡。Java 是静态类型语言,但是为了生产效率提供了大量动态的特性比如 Bytecode Instrument、Dynamic Class Loading、Metaprogramming(Annotation、Reflection 等 ,这些形成了 Java 在运维、生产监控等领域的基石技术。 同时由于 Java 大量的动态特性存在,使得它在面向云原生、Serverless 计算时 Memory Footprint、Startup 方面被人所诟病。这也是整个 Java 社区,当然包括 Alibaba Dragonwell 所试图解决的问题。 阿里巴巴小马哥:Java 目前仍具在编程语言排⾏榜上夺魁的能力,不过在整体比重上微幅下滑。个⼈看来,未来这个趋势还将持续。究其原因,一⽅⾯是由于新语种出现的中短期效应,一方面是 Java 的编程复杂度并没有明显的降低,比如 I/O 处理、并发 / 并⾏计算,以及类加载等等。再者是 Java 与操作系统之间的交互仍不够充分,尽管 Java 9 开始提供了不少的 API,然⽽了解和使用的群体不⾜。Java 在这方面明显不及 GO 语言。 从语⾔层⾯来看,Java 正在向主流非 Java 语⾔融合,解决其中鸿沟的关键是语法的变化,比如 Java 8 的 Lambda 表达式 和 Java 10 的局部变量类型( var )等。个人认为这是一件好事,未来前后端不分家,相互渗透,对于彼此语言都是良性发展。 除此之外,个人比较期待的是 GraalVM 对 Java 的改变,传统 Java 应用必须依赖 JVM 进程加载字节码后解释执行,无法保证所有的代码能够在运行期编程完成,不免有运⾏时编译所带来的性能开销,从而影响 JVM 的启停时间。简单地说,这种方式不够 Native,对于云原生或许不够友好。如果未来 GraalVM 的社区版也能够像 OpenJDK 那般“亲民”,那么,Java 的变化将是颠覆性的。 美团吴革:当前 Java 已经发展成为一个庞然大物,语言上基本不会有太多突破,更多是借鉴和兼容。随着 GC 算法的升级和编译器换代,面对 Go 等新一代语言挑战,还有一战之力。 腾讯单致豪:毋庸置疑,Java 语言依然活力十足,但在某些方面已经失去优势,如云原生领域现在出现了更具活力的 Go 语言。纷繁的世界必定会出现多语言并存、不断替代的现象。回顾历史发展进程,一种语言要从出现到早期大众使用基本都需要十年时间,能历经十年磨砺生存下来的开发语言,必定是有很强的生命力,而且都会有不同的企业构筑其生态。正如上文所说:不同语言也会在自己优势之处持续发展,形成很强的竞争壁垒。 字节跳动王石冲:Scala 语言目前有两个大的目标运行平台——JVM 和 js,所以 Scala 作为一个语言和生态并不敢完全投资在单一目标平台上。虽然 JVM 本身在不断进步,但是 Java 已经被同平台的多种语言赶超,比如 Kotlin、Clojure、Groovy。

游客pklijor6gytpx 2019-12-02 03:11:40 0 浏览量 回答数 0

回答

弹性伸缩(Auto Scaling)在业务需求增长时无缝地增加ECS实例数量,并在业务需求下降时自动减少ECS实例数量节约成本。为了提供更加弹性、灵活的伸缩服务,伸缩配置支持标签、密钥对、实例RAM角色和实例自定义数据。本文介绍4个特性的作用并演示了使用方式。 前提条件 使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册。 背景信息 弹性伸缩不仅提供了在业务需求高峰或低谷时自动调节ECS实例数量的能力,而且提供了在ECS实例上自动部署应用的能力。弹性伸缩的伸缩配置支持多种特性,帮助您高效、灵活地自定义ECS实例配置,满足业务需求。 标签 标签的介绍请参见标签概述。标签可以识别资源和用户组,允许企业或个人将相同作用的云服务器ECS资源归类,便于搜索和资源聚合。伸缩配置支持绑定标签,在创建伸缩配置时选择标签即可。 通过API创建伸缩配置时,您可以使用Tags选择标签,更多信息请参见CreateScalingConfiguration。 SSH密钥对 SSH密钥对的介绍请参见SSH密钥对概述。阿里云只支持RSA 2048位的密钥对,仅Linux实例支持SSH密钥对登录。在创建SSH密钥对时,阿里云会保存密钥的公钥,并向您返回密钥部分。 相比密码方式,使用SSH密钥对登录Linux实例更加快速、安全,您只需要在创建伸缩配置时选择SSH密钥对。在弹性伸缩自动创建出实例后,实例会存储该SSH密钥对的公钥,您在本机使用SSH密钥对的私钥即可登录自动创建的实例。但需要注意以下几点: 通过API创建伸缩配置时,您可以使用KeyPairName选择SSH密钥对,更多信息请参见CreateScalingConfiguration。 实例RAM角色 访问控制(Resource Access Management,RAM)是阿里云提供的一项管理用户身份与资源访问权限的服务。RAM支持创建不同的角色,不同的角色对不同的云产品具有不同的操作权限。 实例RAM角色的介绍请参见实例RAM角色概述。实例RAM角色让ECS实例扮演具有某些权限的角色,从而赋予实例一定的访问权限。在伸缩配置中选择实例RAM角色时,请确保实例RAM角色的权限策略允许您的实例扮演该实例RAM角色,否则伸缩配置无法弹出实例。 通过API创建伸缩配置时,您可以使用RamRoleName选择实例RAM角色,更多信息请参见CreateScalingConfiguration。 实例自定义数据 实例自定义数据的介绍请参见生成实例自定义数据。Windows实例及Linux实例均支持实例自定义数据,主要有以下用途: 作为实例自定义脚本在启动实例时执行,您可以自定义实例的启动行为。 作为普通数据向实例传入信息,您可以在实例中引用这些数据。 相比Terraform等开源IT基础架构管理工具,使用弹性伸缩原生的实例自定义数据更加快速、安全。您只需要准备好实例自定义脚本,然后以Base64编码的方式传入伸缩配置即可,自动创建的ECS实例会在启动时自动执行实例自定义脚本,实现应用级别的扩容和缩容。但需要注意以下几点: 伸缩组的网络类型需要为专有网络(VPC)。 实例自定义数据需要为Base64编码方式。 实例自定义数据将以不加密的方式传入实例,请不要以明文方式传入机密的信息(例如密码、私钥数据等)。如果必须传入,建议先加密原始数据,以Base64方式编码加密后的数据并传入实例,然后在实例内部以同样的方式反解密。 通过API创建伸缩配置时,您可以使用UserData参数传入实例自定义数据,更多信息请参见CreateScalingConfiguration。 合理地使用弹性伸缩服务,不仅能够有效地降低您的服务器成本,而且能够有效地降低您的服务管理和运维成本。为了帮助您准确地理解和使用弹性伸缩服务,本文将结合上述特性,演示伸缩组自动伸缩和自动部署的效果,包括为实例自动添加实例RAM角色、标签属性,设置实例支持密钥对登录,并在实例启动后自动执行自定义脚本。 操作步骤 完成以下操作在伸缩配置中应用标签、密钥对、实例RAM角色和实例自定义数据: 步骤一:创建配置项 步骤二:应用配置项 步骤三:验证自定义配置效果 步骤一:创建配置项 按照以下步骤创建所需的RAM角色、标签、密钥对和实例自定义数据。 创建标签。 具体操作请参见绑定标签。 创建密钥对。 具体操作请参见创建SSH密钥对。 创建实例RAM角色。 具体操作请参见创建可信实体为阿里云服务的RAM角色。您也可以视情况选用已有的RAM角色,在伸缩配置中选择实例RAM角色时,请确保实例RAM角色的权限策略允许伸缩组内的实例扮演该RAM角色,否则伸缩配置无法弹出实例。例如,RAM角色AliyunECSImageExportDefaultRole用于授权导出镜像,允许当前用户的所有ECS实例扮演该RAM角色,其信任策略如下: { "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" } 说明 ecs.aliyuncs.com表示允许当前用户的所有ECS实例扮演该RAM角色。 生成实例自定义数据。 具体操作请参见生成实例自定义数据。本文中,创建了一个shell脚本,实现在实例首次启动后向/root/output10.txt文件写入字符串Hello World. The time is now{当前时间}。脚本示例如下: #!/bin/sh echo "Hello World. The time is now $(date -R)!" | tee /root/output10.txt 脚本经过Base64编码后内容如下: IyEvYmluL3NoDQplY2hvICJIZWxsbyBXb3JsZC4gIFRoZSB0aW1lIGlzIG5vdyAkKGRhdGUgLVIpISIgfCB0ZWUgL3Jvb3Qvb3V0cHV0MTAudHh0 步骤二:应用配置项 按照以下步骤创建伸缩组和伸缩配置,并在伸缩配置中应用步骤一中创建的配置项。 创建伸缩组。 具体操作请参见使用自定义伸缩配置创建伸缩组,请注意: 伸缩最小实例数:设为1,在启用伸缩组后即会自动创建一台实例。 组内实例配置信息来源:选择自定义伸缩配置。 网络类型:选择专有网络,并指定专有网络的专有网络ID、虚拟交换机。 创建伸缩组 在伸缩组创建成功对话框中,单击创建伸缩配置。 创建伸缩配置。 具体操作请参见创建伸缩配置,请注意: 基础配置页面中,示例镜像选用Ubuntu 16.04 64位。 系统配置页面中,应用步骤一中创建的标签、密钥对、实例RAM角色和实例自定义数据。 在创建成功对话框中,单击启用配置。 在选用伸缩配置对话框中,单击确定。 在启用伸缩组对话框中,单击确定。 步骤三:验证自定义配置效果 由于步骤二中最小实例数设为1,在启用伸缩组后即会自动创建一台实例,保证伸缩组满足最小实例数的限制。 查看自动创建出的实例。 具体操作请参见查询ECS实例列表。查看实例 在云服务器 ID/名称列中,单击实例ID,查看实例详情。 下图为实例详情,可见伸缩配置中的实例RAM角色和标签配置已生效。查看实例详情 使用SSH密钥对登录实例。 具体操作请参见使用SSH密钥对连接Linux实例。下图为登录成功的效果,可见伸缩配置中的SSH密钥对配置已生效。使用密钥对成功登录实例 运行以下命令查看/root/output10.txt文件内容。 cat /root/output10.txt 下图为文件内容,可见伸缩配置中的实例自定义数据配置已生效。自定义数据配置生效 说明 本文使用的shell脚本比较简单,您可以根据自己的需求定制脚本,在实例启动时自动实现更多功能。

1934890530796658 2020-03-23 09:43:31 0 浏览量 回答数 0

回答

原版英文链接:点击这里 作者 | Md Kamaruzzaman 译者 | 无明 策划 | 小智 基础设施:条条道路通云端 对于云厂商来说,2019 年是硕果累累的一年。不仅初创公司在使用云计算,那些很注重安全的“保守派”公司(如政府机构、医疗保健机构、银行、保险公司,甚至是美国五角大楼)也在迁移到云端。这种趋势在 2020 年将会继续,大大小小的公司都将(或者至少有计划)迁移到云端。Gartner 公司最近发布了一个数字: 如果你是一个还在考虑要不要迁移到云端的决策者,不妨重新审视一下你的策略。如果你是一个独立开发者,并且还没使用过云基础设施,那么完全可以在 2020 年尝试一下。很多大型的云厂商(如亚马逊、微软、谷歌)都提供了免费的体验机会。谷歌在这方面做得特别大方,它提供了价值 300 美元的一年免费服务。 策划注:阿里、腾讯、华为等国内云厂商同样有免费云服务试用产品。 云平台:亚马逊领头,其他跟上 作为第一大云厂商,亚马逊在 2019 年可谓风生水起。凭借其丰富的产品组合,亚马逊将把它的优势延续到 2020 年。Canalys 发布的 2019 年第三季度报告指出,大型云厂商(AWS、Azure、GCP)占据 56% 的市场份额,其中 AWS 独享 32.6%。 其他云厂商也在努力缩短与 AWS 之间的差距。微软把主要目标转向了大型企业。最近,微软打败了亚马逊,从美国五角大楼拿到了一个 100 亿美元的大单子。这个单子将提升 Azure 的声誉,同时削弱 AWS 的士气。 谷歌一直在推动 CNCF,实现云计算运维的标准化。谷歌的长期目标是让云迁移变得更容易,方便企业从 AWS 迁移到 GCP。IBM 之前斥资 360 亿美元收购了 RedHat,也想要在云计算市场占有一席之地。 在亚太地区,阿里云市场规模超过了 AWS、Azure 的总和,全球排名第三。中国国内腾讯云等企业的增长势头也十分迅猛。 2020 年将出现更多的并购。当然,很多初创公司将会带来新的想法和创新,例如多云服务。因为竞争激烈,这些公司只能从降价和推出更多的创新产品来获取利润。 容器化:Kubernetes 将会更酷 在容器编排领域,虽然一度出现了“三足鼎立”(Kubernetes、Docker Swarm 和 Mesos),但 Kubernetes 最终脱颖而出,成为绝对的赢家。云是一个分布式系统,而 Kubernetes 是它的 OS(分布式的 Linux)。2019 年北美 KubeCon+CloudNativeCon 大会的参会者达到了 12000 名,比 2018 年增长了 50%。以下是过去 4 年参会人数的增长情况。 在 2020 年,Kubernetes 不仅不会后退,只会变得越来越强,你完全可以把赌注压在 Kubernetes 身上。另外值得一提的是,Migrantis 最近收购了 Docker Enterprise,不过收购数额不详。 几年前,人们张口闭口说的都是 Docker,而现在换成了 Kubernetes。Docker 在它的全盛时期未能盈利,反而在优势渐退几年之后才尝试变现。这再次说明,在现代技术世界,时机就是一切。 软件架构:微服务将成为主流 谷歌趋势表明,微服务架构范式在 2019 年持续增长了一整年。 随着软件行业整体逐步迁移到云端,微服务也将成为占主导地位的架构范式。微服务架构崛起的一个主要原因是它与云原生完美契合,可以实现快速的软件开发。我在之前的一篇博文中解释了微服务架构的基本原则及其优势和劣势。 https://towardsdatascience.com/microservice-architecture-a-brief-overview-and-why-you-should-use-it-in-your-next-project-a17b6e19adfd 我假设现在也存在一种回归到单体架构的趋势,因为在很多情况下,微服务架构有点过头了,而且做好微服务架构设计其实很难。微服务架构有哪些好的实践?在之前的另一篇博文中,我也给出了一些大概,希望对读者有用。 https://towardsdatascience.com/effective-microservices-10-best-practices-c6e4ba0c6ee2 编程语言(整体):Python 将吞噬世界 机器学习、数据分析、数据处理、Web 开发、企业软件开发,甚至是拼接黑洞照片,Python 的影子无处不在。 在著名的编程语言排行榜网站 TIOBE 上,Python 位居最流行编程语言第三位,仅次于 Java 和 C 语言。 更有意思的是,在 2019 年,Python 的流行度翻了一番(从 5% 到 10%)。 Python 的崛起将在 2020 年延续,并缩短与 Java 和 C 语言之间的差距。另一门无所不在的编程语言 JavaScript 正面临下行的风险。为什么 Python 的势头会如此强劲?因为它的入手门槛低,有一个优秀的社区在支持,并受到数据科学家和新生代开发者的喜爱。 编程语言(企业方面):Java 将占主导 之前的 TIOBE 网站截图显示,Java 仍然是一门占主导地位的编程语言,并将在 2020 年继续保持这种地位。JVM 是 Java 的基石,其他编程语言(如 Kotlin、Scala、Clojure、Groovy)也将 JVM 作为运行时。最近,Oracle 修改了 JVM 的许可协议。 新的许可协议意味着使用 Java、Kotlin、Scala 或其他 JVM 编程语言的公司需要向 Oracle 支付大额费用。所幸的是,OpenJDK 让 JVM 继续免费。另外,还有其他一些公司为 JVM 提供企业支持。 因为体积和速度方面的问题,基于 JVM 的编程语言并不适合用在今天的无服务器环境中。Oracle 正在推动 GraalVM 计划,旨在让 Java 变得更加敏捷和快速,让它更适合用在无服务器环境中。因为除了 Java,没有其他编程语言可以提供企业级的稳定性和可靠性,所以 Java 将在 2020 年继续占主导地位。 企业版 Java:Spring 继续发力 曾几何时,在企业开发领域,Spring 和 JavaEE 之间存在着白热化的竞争。但因为 Oracle 在 JavaEE 方面没有作为,在竞争中惨败,这导致了“MicroProfile”计划的形成,并最终促成了 JakartaEE。 虽然所有的政策和活动都是围绕 JavaEE 展开,但 Spring 事实上已经赢得了这场企业 JVM 之争。2020 年,Spring 将成为 JVM 生态系统的头牌。 有两个正在进展中的项目,它们旨在减小 Java 的体积,让它更适合用在无服务器环境中。 其中一个是 Micronaut(https://micronaut.io/)。 另一个是 Quarkus(https://quarkus.io/)。 这两个项目都使用了 GraalVM,它们在 2020 年将会得到 Java 社区更多的关注。 编程语言:后起之秀的突破 2000 年代,编程语言的发展出现了停滞。大多数人认为没有必要再去开发新的编程语言,Java、C 语言、C++、JavaScript 和 Python 已经可以满足所有的需求。但是,谷歌的 Go 语言为新编程语言大门打开了一扇大门。在过去十年出现了很多有趣的编程语言,比如 Rust、Swift、Kotlin、TypeScript。导致这种情况的一个主要原因是已有的编程语言无法充分利用硬件优势(例如多核、更快的网络、云)。另一个原因是现代编程语言更加关注开发者经济,即实现更快速更容易的开发。在 Stackoverflow 提供的一份开发者报告中,排名靠前的现代编程语言如下所示(Rust 连续 4 年名列第一)。 在之前的一篇博文中,我深入探讨了现代编程语言,对比 Rust 和 Go 语言,并说明了为什么现在是采用这些语言的好时机。 https://towardsdatascience.com/back-to-the-metal-top-3-programming-language-to-develop-big-data-frameworks-in-2019-69a44a36a842 最近,微软宣布他们在探索使用 Rust 来开发更安全的软件。 亚马逊最近也宣布要赞助 Rust。 谷歌宣布将 Kotlin 作为 Android 官方开发语言,所以,在 JVM 领域,Kotlin 成了 Java 的主要竞争对手。 Angular 使用 TypeScript 代替 JavaScript,将其作为主要的编程语言,其他 JavaScript 框架(如 React 和 Vue)也开始为 TypeScript 提供更多的支持。 这种趋势将在 2020 年延续下去,很多巨头公司将会深入了解新一代编程语言(如 Rust、Swift、TypeScript、Kotlin),它们会站出来公开表示支持。 Web:JavaScript 继续占主导地位 曾几何时,JavaScript 并不被认为是一门强大的编程语言。在当时,前端内容主要通过后端框架在服务器端进行渲染。2014 年,AngularJS 的出现改变了这种局面。从那个时候开始,更多的 JavaScript 框架开始涌现(Angular 2+、React、Vue、Meteor),JavaScript 已然成为主流的 Web 开发语言。随着 JavaScript 框架不断创新以及微服务架构的崛起,JavaScript 框架在 2020 年将继续主导前端开发。 JavaScript 框架:React 闪耀 虽然 React 是在 AngularJS 之后出现的,但在过去十年对 Web 开发产生了巨大的影响,这也让 Facebook 在与 Google+ 的竞争中打了一场胜战。React 为前端开发带来了一些新的想法,比如事件溯源、虚拟 DOM、单向数据绑定、基于组件的开发,等等。它对开发者社区产生了重大影响,以至于谷歌放弃了 AngularJS,并借鉴 React 的想法推出了彻底重写的 Angular 2+。React 是目前为止最为流行的 JavaScript 框架,下图显示了相关的 NPM 下载统计信息。 为了获得更好的并发和用户体验,Facebook 宣布完全重写 React 的核心算法,推出了 React-Fiber 项目。 2020 年,React 仍然是你开发新项目的首选 Web 框架。其他框架(如 Angular/Angular 2+ 或 Vue)呢?Angular 仍然是一个不错的 Web 开发框架,特别适合企业开发。我敢肯定谷歌在未来几年会在 Angular 上加大投入。Vue 是另一个非常流行的 Web 框架,由中国的巨头公司阿里巴巴提供支持。如果你已经在使用 Angular 或 Vue,就没必要再迁移到 React 了。 App 开发:原生应用 在移动 App 开发方面,有关混合应用开发的炒作有所消停。混合开发提供了更快的开发速度,因为只需要一个开发团队,而不是多个。但原生应用提供了更好的用户体验和性能。另外,混合应用需要经过调整才能使用一些高级特性。对于企业来说,原生应用仍然是首选的解决方案,这种趋势将在 2020 年延续。Airbnb 在一篇博文中非常详细地说明了为什么他们要放弃混合应用开发平台 React Native。 https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28e30a 尽管 Facebook 尝试改进 React Native,谷歌也非常努力地推动混合 App 开发平台 Flutter,但它们仍然只适合用于原型、POC、MVP 或轻量级应用的开发。所以,原生应用在 2020 年仍将继续占主导地位。 在原生应用开发方面,谷歌和苹果分别将 Kotlin 和 Swift 作为各自平台主要的编程语言。谷歌最近再次重申了对 Kotlin 的支持,这对于 Kotlin 用户来说无疑是个好消息。 混合应用开发:React Native 在很多情况下,混合应用是个不错的选择。在这方面也有很多选择:Xamarin、Inoic、React Native 和 Flutter。Facebook 基于成熟的 React 框架推出了 React Native。就像 React 在 Web 框架领域占据主导地位一样,React Native 在混合应用领域也占据着主导地位,如下图所示。 React Native 和 React 有共同的基因,都提供了高度的代码重用性以及“一次开发,到处运行”的能力。React Native 的另一个优势是 Facebook 本身也用它来开发移动应用。谷歌在这个领域起步较晚,但在去年,谷歌的混合应用开发框架 Flutter 获得了不少关注。Flutter 提供了更好的性能,但需要使用另一门不是那么流行的编程语言 Dart。React Native 在 2020 年将继续占主导地位。 API:REST 将占主导地位 REST 是 API 领域事实上的标准,被广泛用在基于 API 的服务间通信上。当然,除了 REST,我们还有其他选择,比如来自谷歌的 gRPC 和来自 Facebook 的 GraphQL。 它们提供了不同的能力。谷歌开发的 gRPC 作为远程过程调用(如 SOAP)的化身,使用 Protobuf 代替 JSON 作为消息格式。Facebook 开发的 GraphQL 作为一个集成层,避免频繁的 REST 调用。gRPC 和 GraphQL 都在各自的领域取得了成功。2020 年,REST 仍然是占主导地位的 API 技术,而 GraphQL 和 gRPC 将作为补充技术。 人工智能:Tensorflow 2.0 将占主导地位 谷歌和 Facebook 也是深度学习 / 神经网络领域的主要玩家。谷歌基于深度学习框架 Theano 推出了 TensorFlow,它很快就成为深度学习 / 神经网络的主要开发库。谷歌还推出了特别设计的 GPU(TPU)来加速 TensorFlow 的计算。 Facebook 在深度学习领域也不甘落后,他们拥有世界上最大的图像和视频数据集合。Facebook 基于另一个深度学习库 Torch 推出了深度学习库 PyTorch。TensorFlow 和 PyTorch 之间有一些区别,前者使用的是静态图进行计算,而 PyTorch 使用的是动态图。使用动态图的好处是可以在运行时纠正自己。另外,PyTorch 对 Python 支持更好,而 Python 是数据科学领域的一门主要编程语言。 随着 PyTorch 变得越来越流行,谷歌也赶紧在 2019 年 10 月推出了 TensorFlow 2.0,也使用了动态图,对 Python 的支持也更好。 2020 年,TensorFlow 2.0 和 PyTorch 将齐头并进。考虑到 TensorFlow 拥有更大的社区,我估计 TensorFlow 2.0 将成为占主导地位的深度学习库。 数据库:SQL是王者,分布式SQL是王后 在炒作 NoSQL 的日子里,人们嘲笑 SQL,还指出了 SQL 的种种不足。有很多文章说 NoSQL 有多么的好,并将要取代 SQL。但等到炒作的潮水褪去,人们很快就意识到,我们的世界不能没有 SQL。以下是最流行的数据库的排名。 可以看到,SQL 数据库占据了前四名。SQL 之所以占主导地位,是因为它提供了 ACID 事务保证,而 ACID 是业务系统最潜在的需求。NoSQL 数据库提供了横向伸缩能力,但代价是不提供 ACID 保证。 互联网公司一直在寻找“大师级数据库”,也就是既能提供 ACID 保证又能像 NoSQL 那样可横向伸缩的数据库。目前有两个解决方案可以部分满足对“大师级数据库”的要求,一个是亚马逊的 Aurora,一个是谷歌的 Spanner。Aurora 提供了几乎所有的 SQL 功能,但不支持横向写伸缩,而 Spanner 提供了横向写伸缩能力,但对 SQL 支持得不好。 2020 年,但愿这两个数据库能够越走越近,或者有人会带来一个“分布式 SQL”数据库。如果真有人做到了,那一定要给他颁发图灵奖。 数据湖:MinIO 将要崛起 现代数据平台非常的复杂。企业一般都会有支持 ACID 事务的 OLTP 数据库(SQL),也会有用于数据分析的 OLAP 数据库(NoSQL)。除此之外,它们还有其他各种数据存储系统,比如用于搜索的 Solr、ElasticSearch,用于计算的 Spark。企业基于数据库构建自己的数据平台,将 OLTP 数据库的数据拷贝到数据湖中。各种类型的数据应用程序(比如 OLAP、搜索)将数据湖作为它们的事实来源。 HDFS 原本是事实上的数据湖,直到亚马逊推出了对象存储 S3。S3 可伸缩,价格便宜,很快就成为很多公司事实上的数据湖。使用 S3 唯一的问题是数据平台被紧紧地绑定在亚马逊的 AWS 云平台上。虽然微软 Azure 推出了 Blob Storage,谷歌也有类似的对象存储,但都不是 S3 的对手。 对于很多公司来说,MinIO 或许是它们的救星。MinIO 是一个开源的对象存储,与 S3 兼容,提供了企业级的支持,并专门为云原生环境而构建,提供了与云无关的数据湖。 微软在 Azure Marketplace 是这么描述 MinIO 的:“为 Azure Blog Storage 服务提供与亚马逊 S3 API 兼容的数据访问”。如果谷歌 GCP 和其他云厂商也提供 MinIO,那么我们将会向多云迈出一大步。 大数据批处理:Spark 将继续闪耀 现如今,企业通常需要基于大规模数据执行计算,所以需要分布式的批处理作业。Hadoop 的 Map-Reduce 是第一个分布式批处理平台,后来 Spark 取代了 Hadoop 的地位,成为真正的批处理之王。Spark 是怎样提供了比 Hadoop 更好的性能的?我之前写了另一篇文章,对现代数据平台进行了深入分析。 https://towardsdatascience.com/programming-language-that-rules-the-data-intensive-big-data-fast-data-frameworks-6cd7d5f754b0 Spark 解决了 Hadoop Map-Reduce 的痛点,它将所有东西放在内存中,而不是在完成每一个昂贵的操作之后把数据保存在存储系统中。尽管 Spark 重度使用 CPU 和 JVM 来执行批处理作业,但这并不妨碍它成为 2020 年批处理框架之王。我希望有人能够使用 Rust 开发出一个更加高效的批处理框架,取代 Spark,并为企业省下大量的云资源费用。 大数据流式处理:Flink 是未来 几年前,实现实时的流式处理几乎是不可能的事情。一些微批次处理框架(比如 Spark Streaming)可以提供“几近”实时的流式处理能力。不过,Flink 改变了这一状况,它提供了实时的流式处理能力。 2019 年之前,Flink 未能得到足够的关注,因为它无法撼动 Spark。直到 2019 年 1 月份,中国巨头公司阿里巴巴收购了 Data Artisan(Flink 背后的公司)。 在 2020 年,企业如果想要进行实时流式处理,Flink 应该是不二之选。不过,跟 Spark 一样,Flink 同样重度依赖 CPU 和 JVM,并且需要使用大量的云资源。 字节码:WebAssembly将被广泛采用 我从 JavaScript 作者 Brandon Eich 的一次访谈中知道了 WebAssembly 这个东西。现代 JavaScript(ES5 之后的版本)是一门优秀的编程语言,但与其他编程语言一样,都有自己的局限性。最大的局限性是 JavaScript 引擎在执行 JavaScript 时需要读取、解析和处理“抽象语法树”。另一个问题是 JavaScript 的单线程模型无法充分利用现代硬件(如多核 CPU 或 GPU)。正因为这些原因,很多计算密集型的应用程序(如游戏、3D 图像)无法运行在浏览器中。 一些公司(由 Mozilla 带领)开发了 WebAssembly,一种底层字节码格式,让任何一门编程语言都可以在浏览器中运行。目前发布的 WebAssembly 版本可以支持 C++、Rust 等。 WebAssembly 让计算密集型应用程序(比如游戏和 AutoCAD)可以在浏览器中运行。不过,WebAssembly 的目标不仅限于此,它还要让应用程序可以在浏览器之外运行。WebAssembly 可以被用在以下这些“浏览器外”的场景中。 移动设备上的混合原生应用。没有冷启动问题的无服务器计算。在服务器端执行不受信任的代码。 我预测,2020 年将是 WebAssembly 取得突破的一年,很多巨头公司(包括云厂商)和社区将会拥抱 WebAssembly。 代码:低代码 / 无代码将更进一步 快速的数字化和工业 4.0 革命意味着软件开发者的供需缺口巨大。由于缺乏开发人员,很多企业无法实现它们的想法。为了降低进入软件开发的门槛,可以尝试无代码(No Code)或低代码(Low Code)软件开发,也就是所谓的 LCNC(Low-Code No-Code)。它已经在 2019 年取得了一些成功。 LCNC 的目标是让没有编程经验的人也能开发软件,只要他们想要实现自己的想法。 虽然我对在正式环境中使用 LCNC 框架仍然心存疑虑,但它为其他公司奠定了良好的基础,像亚马逊和谷歌这样的公司可以基于这个基础构建出有用的产品,就像 AWS Lambda 的蓬勃发展是以谷歌 App Engine 为基础。 2020 年,LCNC 将会获得更多关注。

茶什i 2019-12-26 11:57:03 0 浏览量 回答数 0

问题

[精品问答]Java一百问第一期

问问小秘 2019-12-01 21:51:20 791 浏览量 回答数 1

回答

前言 随着计算机技术和 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

问题

安卓与iOS百问,开发者系统指南

yq传送门 2019-12-01 20:14:48 27317 浏览量 回答数 26

问题

使用HTTPDNS时该如何API访问

猫饭先生 2019-12-01 21:51:27 1353 浏览量 回答数 0

问题

iOS SDK开发指南

青衫无名 2019-12-01 22:01:55 1199 浏览量 回答数 0

回答

本文档介绍文件存储HDFS和对象存储OSS之间的数据迁移过程。您可以将文件存储HDFS数据迁移到对象存储OSS,也可以将对象存储OSS的数据迁移到文件存储HDFS上。 背景信息 阿里云文件存储HDFS是面向阿里云ECS实例及容器服务等计算资源的文件存储服务。文件存储HDFS允许您就像在Hadoop分布式文件系统中管理和访问数据,并对热数据提供高性能的数据访问能力。对象存储OSS是海量、安全、低成本、高可靠的云存储服务,并提供标准型、归档型等多种存储类型供选择。客户可以在文件存储HDFS和对象存储OSS之间实现数据迁移,从而实现热、温、冷数据的合理分层,在实现对热数据的高性能访问的同时,有效控制存储成本。 准备工作 挂载文件系统,详情请参见挂载文件系统。 验证文件系统和计算节点之间的连通性。 执行以下命令,在文件存储HDFS上创建目录(如:/dfs_links)。 hadoop fs -mkdir /dfs_links 执行以下命令,验证连通性。 hadoop fs -ls dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/dfs_links 其中f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com为文件存储HDFS挂载点域名,请根据实际情况进行修改。 如果命令正常执行无输出结果,则表示连通成功。如果连通失败,请参见创建文件系统实例后,为什么无法访问文件存储HDFS?进行排查。 准备迁移工具。 单击emr-tools下载迁移工具安装包。 将迁移工具安装包上传计算节点的本地目录。 说明 该计算节点必须运行着Hadoop的YARN服务,或者是YARN集群中可以提交作业的计算节点。因为emr-tools迁移工具需要借助Hadoop数据迁移工具DistCp实现数据的迁移。 执行以下命令,解压安装包。 tar jxf emr-tools.tar.bz2 将文件存储HDFS数据迁移到对象存储OSS 进入emr-tools工具安装包解压后所在的目录,使用hdfs2oss4emr.sh脚本将文件存储HDFS上的数据迁移到对象存储OSS上,具体命令如下所示。 cd emr-tools ./hdfs2oss4emr.sh dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/HDFS2OSS/data/data_1000g oss://accessKeyId:accessKeySecret@bucket-name.oss-cn-hangzhou.aliyuncs.com/HDFS2OSS/data/data_1000g 参数说明如下表所示。 参数 说明 accessKeyId 访问对象存储OSS API的密钥。获取方式请参见如何获取AccessKeyId和AccessKeySecret。 accessKeySecret bucket-name.oss-cn-hangzhou.aliyuncs.com 对象存储OSS的访问域名,包括bucket名称和endpoint地址。 执行以上命令后,系统将启动一个Hadoop MapReduce任务(DistCp)。 任务执行完成后,查看迁移结果。 如果回显包含如下类似信息,说明迁移成功。 19/03/27 08:48:58 INFO mapreduce.Job: Job job_1553599949635_0014 completed successfully 19/03/27 08:48:59 INFO mapreduce.Job: Counters: 38 File System Counters FILE: Number of bytes read=0 FILE: Number of bytes written=2462230 FILE: Number of read operations=0 FILE: Number of large read operations=0 FILE: Number of write operations=0 HDFS: Number of bytes read=1000001748624 HDFS: Number of bytes written=0 HDFS: Number of read operations=40124 HDFS: Number of large read operations=0 HDFS: Number of write operations=40 OSS: Number of bytes read=0 OSS: Number of bytes written=1000000000000 OSS: Number of read operations=0 OSS: Number of large read operations=0 OSS: Number of write operations=0 Job Counters Launched map tasks=20 Other local map tasks=20 Total time spent by all maps in occupied slots (ms)=65207738 Total time spent by all reduces in occupied slots (ms)=0 Total time spent by all map tasks (ms)=65207738 Total vcore-milliseconds taken by all map tasks=65207738 Total megabyte-milliseconds taken by all map tasks=66772723712 Map-Reduce Framework Map input records=10002 Map output records=0 Input split bytes=2740 Spilled Records=0 Failed Shuffles=0 Merged Map outputs=0 GC time elapsed (ms)=58169 CPU time spent (ms)=5960400 Physical memory (bytes) snapshot=4420333568 Virtual memory (bytes) snapshot=42971959296 Total committed heap usage (bytes)=2411724800 File Input Format Counters Bytes Read=1745884 File Output Format Counters Bytes Written=0 org.apache.hadoop.tools.mapred.CopyMapper$Counter BYTESCOPIED=1000000000000 BYTESEXPECTED=1000000000000 COPY=10002 copy from dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/path/on/dfs to oss://accessKeyId:accessKeySecret@bucket-name.oss-cn-hangzhou.aliyuncs.com/path/on/oss does succeed !!! 迁移完成后,您可以通过osscmd工具,执行以下命令查看对象存储OSS上的数据情况。 osscmd ls oss://bucket-name/HDFS2OSS/data/data_1000g 将对象存储OSS数据迁移到文件存储HDFS 进入emr-tools工具安装包解压后所在的目录,使用hdfs2oss4emr.sh脚本将对象存储OSS上的数据迁移到文件存储HDFS上,具体命令如下所示。 cd emr-tools ./hdfs2oss4emr.sh oss://accessKeyId:accessKeySecret@bucket-name.oss-cn-hangzhou.aliyuncs.com/OSS2HDFS/oss/1000g dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/OSS2HDFS/data/data_1000g 参数说明如下表所示。 参数 说明 accessKeyId 访问对象存储OSS API的密钥。获取方式请参见如何获取AccessKeyId和AccessKeySecret。 accessKeySecret bucket-name.oss-cn-hangzhou.aliyuncs.com 对象存储OSS的访问域名,包括bucket名称和endpoint地址。 执行以上命令后,系统将启动一个Hadoop MapReduce任务(DistCp)。 任务执行完成后,查看迁移结果。 如果回显包含如下类似信息,说明迁移成功。 19/03/23 21:59:23 INFO mapreduce.Job: Counters: 38 File System Counters DFS: Number of bytes read=2335687 DFS: Number of bytes written=999700000000 DFS: Number of read operations=60218 DFS: Number of large read operations=0 DFS: Number of write operations=20076 FILE: Number of bytes read=0 FILE: Number of bytes written=2575367 FILE: Number of read operations=0 FILE: Number of large read operations=0 FILE: Number of write operations=0 OSS: Number of bytes read=0 OSS: Number of bytes written=0 OSS: Number of read operations=0 OSS: Number of large read operations=0 OSS: Number of write operations=0 Job Counters Launched map tasks=21 Other local map tasks=21 Total time spent by all maps in occupied slots (ms)=36490484 Total time spent by all reduces in occupied slots (ms)=0 Total time spent by all map tasks (ms)=36490484 Total vcore-milliseconds taken by all map tasks=36490484 Total megabyte-milliseconds taken by all map tasks=37366255616 Map-Reduce Framework Map input records=10018 Map output records=0 Input split bytes=2856 Spilled Records=0 Failed Shuffles=0 Merged Map outputs=0 GC time elapsed (ms)=1064802 CPU time spent (ms)=10370840 Physical memory (bytes) snapshot=6452363264 Virtual memory (bytes) snapshot=45328142336 Total committed heap usage (bytes)=4169138176 File Input Format Counters Bytes Read=2332831 File Output Format Counters Bytes Written=0 org.apache.hadoop.tools.mapred.CopyMapper$Counter BYTESCOPIED=999700000000 BYTESEXPECTED=999700000000 COPY=10018 copy from oss://accessKeyId:accessKeySecret@bucket-name.oss-cn-hangzhou.aliyuncs.com/path/on/oss to dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/path/on/dfs does succeed !!! 迁移完成后,您可以执行以下命令查看文件存储HDFS上的数据情况。 hadoop fs -ls dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/OSS2HDFS/data/data_1000g 常见问题 迁移过程出现异常提示:Cannot obtain block length for LocatedBlock。 从原生HDFS往对象存储OSS/文件存储HDFS迁移数据时,可能会遇到这个问题。遇到该问题时,请执行hdfs fsck / –openforwrite命令,检查当前是否有文件处于写入状态尚未关闭。 如果有处于写入状态的文件时,需判断文件是否有效。 如果文件无效,则直接删除文件。 hdfs rm 如果文件有效,则不能直接删除,请考虑恢复问题文件租约。 hdfs debug recoverLease -path -retries 对于正在写入的文件,进行迁移时会遗漏掉最新写入的数据吗? Hadoop兼容文件系统提供单写者多读者并发语义,针对同一个文件,同一时刻可以有一个写者写入和多个读者读出。以文件存储HDFS到对象存储OSS的数据迁移为例,数据迁移任务打开文件存储HDFS的文件F,根据当前系统状态决定文件F的长度L,将L字节迁移到对象存储OSS。如果在数据迁移过程中,有并发的写者写入,文件F的长度将超过L,但是数据迁移任务无法感知到最新写入的数据。因此,建议您在做数据迁移时,避免往迁移的文件中写入数据。

1934890530796658 2020-03-31 02:35:12 0 浏览量 回答数 0

问题

荆门开诊断证明-scc

游客5k2abgdj3m2ti 2019-12-01 22:09:00 1 浏览量 回答数 0

问题

【精品问答】性能测试 PTS

montos 2020-04-08 13:18:48 2 浏览量 回答数 1

问题

Docker 容器健康检查机制

反向一觉 2019-12-01 21:23:16 1877 浏览量 回答数 0

问题

盘点年度 Python 类库 Top 10

珍宝珠 2020-01-09 13:39:35 77 浏览量 回答数 1

回答

为了提供更加高效灵活的伸缩服务,弹性伸缩配置中新增了实例自定义数据。您可以利用实例自定义数据自动完成ECS实例配置,从而安全快速地实现应用级别的扩容和缩容。 前提条件 使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册。 验证实例自定义数据效果时需要登录ECS实例,对Linux实例建议您使用密钥对,具体操作请参见创建SSH密钥对和使用SSH密钥对连接Linux实例。 背景信息 本文结合具体场景向您展示实例自定义数据的使用方式,您可以根据自己的业务场景,灵活地定制实例自定义数据来满足您的业务需求。 实例自定义数据的介绍请参见生成实例自定义数据。Windows实例及Linux实例均支持实例自定义数据,主要有以下用途: 作为实例自定义脚本在启动实例时执行,您可以自定义实例的启动行为。 作为普通数据向实例传入信息,您可以在实例中引用这些数据。 相比Terraform等开源IT基础架构管理工具,使用弹性伸缩原生的实例自定义数据更加快速、安全。您只需要准备好实例自定义脚本,然后以Base64编码的方式传入伸缩配置即可,自动创建的ECS实例会在启动时自动执行实例自定义脚本,实现应用级别的扩容和缩容。但需要注意以下几点: 伸缩组的网络类型需要为专有网络(VPC)。 实例自定义数据需要为Base64编码方式。 实例自定义数据将以不加密的方式传入实例,请不要以明文方式传入机密的信息(例如密码、私钥数据等)。如果必须传入,建议先加密原始数据,以Base64方式编码加密后的数据并传入实例,然后在实例内部以同样的方式反解密。 通过API创建伸缩配置时,您可以使用UserData参数传入实例自定义数据,更多信息请参见CreateScalingConfiguration。 除实例自定义数据外,SSH密钥对、RAM角色名称和标签也可以帮助您更加高效灵活地管理ECS实例,请参见使用伸缩配置的特性实现自动部署。 操作步骤 完成以下操作在伸缩配置中应用实例自定义数据: 步骤一:准备实例自定义数据 步骤二:创建并启用伸缩组 步骤三:验证实例自定义数据的效果 步骤一:准备实例自定义数据 您可以利用实例自定义数据实现在ECS实例启动时自动执行自定义shell脚本,在定义shell脚本时,需注意以下几点: 格式:首行固定为#!,例如#!/bin/sh。 限制:在Base64编码前脚本内容不能超过16 KB。 频率:仅在首次启动实例时执行一次。 定义一个shell脚本,实现在ECS实例启动时配置DNS、yum和NTP服务。 shell脚本内容如下: #!/bin/sh Modify DNS echo "nameserver 8.8.8.8" | tee /etc/resolv.conf Modify yum repo and update rm -rf /etc/yum.repos.d/* touch myrepo.repo echo "[base]" | tee /etc/yum.repos.d/myrepo.repo echo "name=myrepo" | tee -a /etc/yum.repos.d/myrepo.repo echo "baseurl=http://mirror.centos.org/centos" | tee -a /etc/yum.repos.d/myrepo.repo echo "gpgcheck=0" | tee -a /etc/yum.repos.d/myrepo.repo echo "enabled=1" | tee -a /etc/yum.repos.d/myrepo.repo yum update -y Modify NTP Server echo "server ntp1.aliyun.com" | tee /etc/ntp.conf systemctl restart ntpd.service 对shell脚本进行Base64编码。 Base64编码后的shell脚本内容如下: IyEvYmluL3NoCiMgTW9kaWZ5IEROUwplY2hvICJuYW1lc2VydmVyIDguOC44LjgiIHwgdGVlIC9ldGMvcmVzb2x2LmNvbmYKIyBNb2RpZnkgeXVtIHJlcG8gYW5kIHVwZGF0ZQpybSAtcmYgL2V0Yy95dW0ucmVwb3MuZC8qCnRvdWNoIG15cmVwby5yZXBvCmVjaG8gIltiYXNlXSIgfCB0ZWUgL2V0Yy95dW0ucmVwb3MuZC9teXJlcG8ucmVwbwplY2hvICJuYW1lPW15cmVwbyIgfCB0ZWUgLWEgL2V0Yy95dW0ucmVwb3MuZC9teXJlcG8ucmVwbwplY2hvICJiYXNldXJsPWh0dHA6Ly9taXJyb3IuY2VudG9zLm9yZy9jZW50b3MiIHwgdGVlIC1hIC9ldGMveXVtLnJlcG9zLmQvbXlyZXBvLnJlcG8KZWNobyAiZ3BnY2hlY2s9MCIgfCB0ZWUgLWEgL2V0Yy95dW0ucmVwb3MuZC9teXJlcG8ucmVwbwplY2hvICJlbmFibGVkPTEiIHwgdGVlIC1hIC9ldGMveXVtLnJlcG9zLmQvbXlyZXBvLnJlcG8KeXVtIHVwZGF0ZSAteQojIE1vZGlmeSBOVFAgU2VydmVyCmVjaG8gInNlcnZlciBudHAxLmFsaXl1bi5jb20iIHwgdGVlIC9ldGMvbnRwLmNvbmYKc3lzdGVtY3RsIHJlc3RhcnQgbnRwZC5zZXJ2aWNl 步骤二:创建并启用伸缩组 创建伸缩组。 具体操作请参见使用自定义伸缩配置创建伸缩组,请注意: 伸缩最小实例数:设为1,在启用伸缩组后即会自动创建一台实例。 组内实例配置信息来源:选择自定义伸缩配置。 网络类型:选择专有网络,并指定专有网络的专有网络ID、虚拟交换机。 在伸缩组创建成功对话框中,单击创建伸缩配置。 创建伸缩配置。 具体操作请参见创建伸缩配置,请注意: 基础配置页面中,示例镜像选用Ubuntu 16.04 64位。 系统配置页面中,应用步骤一中准备的实例自定义数据,登录凭证选择创建好的密钥对。 在创建成功对话框中,单击启用配置。 在选用伸缩配置对话框中,单击确定。 在启用伸缩组对话框中,单击确定。 步骤三:验证实例自定义数据的效果 由于创建伸缩组时指定伸缩最小实例数为1,在启用伸缩组后即会自动创建一台实例,保证伸缩组满足最小实例数的限制。 查看伸缩活动。 具体操作请参见查看伸缩活动详情。 登录ECS实例。 具体操作请参见使用SSH密钥对连接Linux实例。 查看服务状态。 服务状态如下图所示,DNS、yum和NTP服务已开启,可见伸缩配置中的实例自定义数据配置已生效。

1934890530796658 2020-03-23 09:43:29 0 浏览量 回答数 0

问题

【精品问答】Java技术1000问(1)

问问小秘 2019-12-01 21:57:43 34170 浏览量 回答数 10
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播