云技术:弹性计算ECS
Storage Service,OSS)[3]、关系型数据库服务(Relational Database Service,RDS)[4]、开放结构化数据服务(Open
Table Service,OTS)[5]、开放数据处理服务(Open Data Processing Service,ODPS)[6]、负载均衡(Server
Load Balance,SLB)[7]、云盾[8]、云监控[9]等在内的一批云计算服务,本文将重点介绍ECS及与之相关的SLB和云盾服务。
(ECS为Linux系统)或者远程桌面(ECS为Windows系统)直接远程登录并管理云服务器。
让我们回顾一下Instagram开发团队奉行的3大原则:
1、Keep it very simple(极简主义);
2、Don't re-invent the wheel (不重复发明轮子);
3、Go with proven and solid technologies when you can (能用就用靠谱的技术);
XX云弹性计算平台(Elastic Compute Service,简称ECS)面向中国互联网开发者和站长,致力于为中国的Instagram提供靠谱的互联网基础服务。它基于底层的飞天分布式计算系统,结合高性能虚拟化技术,实现了计算、存储和网络资源的统一调度和弹性分配。在具体的产品形式上,客户接触的是最简单的云服务器,与物理机无二,没有任何的使用门槛。由于采用了云计算技术,相比传统的IDC托管服务,弹性计算在自助管理、资源组合灵活性、基础环境定制化、数据安全性及硬件资源利用率上都有不小的优势。
在本文中,我们将和大家分享在云计算平台上构建高可用、可扩展应用的一些进阶技巧。考虑到有些读者尚未接触过ECS,所以在进入正题之前,让我们简单浏览一下ECS的各项特性。
自助管理
ECS在aliyun.com的控制台中提供了多种用户自助的操作,例如最为常见的创建、启动、关闭云服务器,将来还会陆续推出比较高级的快照、自定义镜像(Image)等功能。回想我们以前遇到服务器不可访问时,提交工单、电话催促,在经历漫长等待之后,也未必能够得到一个满意的答复。现在,我们可以在控制台中全程监控和管理每一台服务器的运行情况,从而做出快速的决定--重启或者部署新的服务器。
ECS支持目前主流的Windows和Linux系列操作系统。用户不仅可以使用这些标准的镜像,还可以在此基础上修改配置、安装软件,创建出自己的镜像,当要快速恢复基础环境或者批量部署集群时,自定义镜像将成为提高运维效率的利器。
下图简单地描述了一个自定义镜像的生产过程:
2、用户登录云服务器,安装自己所需的软件,配置好系统参数;
3、安全关机,然后将云服务器当前状态存为一个自定义镜像;
4、随后,用户就可以使用刚创建的自定义镜像启动更多的云服务器了;
数据可靠性
对于写入VM磁盘的数据,ECS会实时地在不同的交换机下同步3份拷贝,当集群中的磁盘损坏时,后台进程也会自动地重建故障磁盘的数据。相比常见的RAID硬件方案,这种分布式存储系统能够提供更高的数据安全保障,因为它不受单台服务器可用性的限制,并且,由于多台服务器可以并发处理,数据恢复的时间更短。
ECS提供的在线快照功能可以完美地替代传统的复制备份,它采用先进的增量数据算法,确保做到备份空间和时间的最优化。当用户数据被误删或者系统被病毒破坏时,只需要一个简单操作就可以瞬间恢复环境。
每时每刻,硬盘、主板、电源或者网络设备都可能突然损坏,甚至整个数据中心发生停电。云计算技术没有办法解决所有硬件问题,只是降低了某些故障的发生几率,例如:
•普通SATA的年损坏率在2~4%,但使用分布式存储的年损坏率在1‰以下;
•自动故障恢复只是减少了服务器的宕机时间,但不能防止宕机;
如果我们的应用只能跑在单台服务器上,只能依赖单台设备的硬件升级才能应付日益增长的访问量,那么这种应用的宕机是迟早的事。我 们需要从部署架构和应用架构两个方面来破解这个难题。
部署架构
既然没有什么硬件是永不损坏的,我们是否可以用多份冗余的硬件来降低故障的概率?如果挨在一起的服务器被一把火烧掉的可能性太大,我们是否可以把它们分散在不同的集群?如果数据可能被破坏,是否要经常做些备份?… …
把各种故障因素都考虑一遍,我们就得出了一个大致的部署框架:
XX云弹性计算服务在平台层面就屏蔽了一些影响范围很大的恶意攻击,例如篡改MAC、伪造IP、发送ARP欺骗包等,但用户的系统还是要遵循一些安全最佳实践,才能让自己的系统更加稳固:
1、关闭不必要的系统服务
Web应用的诸多因素可能造成系统无法扩展:本地存放的上传文件、进程内的Session等。以上传文件为例,假设使用了本地存储,用户第一个请求上传了一个头像文件,存放在Web-A服务器上,接着刷新页面,但这个请求被发送到Web-B服务器上,他惊奇地发现:上传的头像文件不见了!要解决这个问题,必须把上传文件存放到共享的文件夹,Web服务器不能保留任何自己的数据(即无状态)。而对于Session数据,一般的建议是用Cookie代替,或者存放到共享的Session服务器或者数据库中。
单点就意味着故障,不仅有可用性的风险也有性能瓶颈的问题。常见的单点一般出现在共享文件服务器、Session服务器、缓存服务器、数据库服务器。阿里云计算平台提供了一系列分布式服务,是这些单点服务的可行替代方案:
•需要可弹性分配存储空间和IO能力的数据库?用关系型数据库服务(RDS)。
•需要海量结构化数据存储服务?用开放数据表服务(OTS)。
对于平台暂时不提供的分布式缓存服务,业界也提供了一些解决方案,例如Memcached集群技术,但这也对应用程序的设计提出了更高的要求,开发者必须清楚各种服务的HA原理,还需要了解一致性哈希算法等细节的实现。
安全不仅是操作系统配置的问题,堡垒更容易从内部被攻破,而这个内鬼很有可能就是我们的应用。从概率上说,一个复杂程序会比一个简单程序多很多漏洞,而Web应用涉及数据库、应用服务器、缓存等诸多组件,稍有不慎,攻击的后门就会向黑客敞开。
这类Web攻击最为普遍,一般发生在允许用户输入内容的页面,尤其是提供富文本编辑的模块。几乎所有的网站都会被XSS攻击光顾,但防御这类攻击也是最为简单的:限制用户输入,并且在页面输出内容时对敏感字符进行编码,相对来说,后者更为重要一些。PHP语言的htmlspecialchars函数、Java Jakarta commons的StringEscapeUtils类都是实现编码功能的快捷工具。
只要应用代码中存在这样的SQL:
那么这个应用距离沦陷也就不远了,攻击者只要输入一个值为
”’ or 1=1 or name=’”’ or 1=1 or name=’”’ or 1=1 or name=’”’ or 1=1 or name=’
[table=100%,,,0]
[tr]
[td]sql = "select * from User where name=? and password=?";
[/td]
[/tr]
[/table]
这是最为危险的应用级漏洞,特别容易出现在允许用户上传内容的网站中。假设一个tomcat搭建的Web网站允许用户上传附件,却忘了限制上传目录的可执行权限,攻击者就可以上传一个带webshell的jsp文件,通过访问这个上传文件的URL就可以完全控制网站服务器。
只要会用HttpWatch、Firebug等开发工具,大家都可以看到各大网站的Cookie数据,而这些Cookie正是网站用于鉴别用户身份的凭证。通过分析Cookie构成,黑客有可能猜测出网站的鉴权策略。要想让你的应用更安全,可以对Cookie等敏感数据进行加密。如果你的网站还包含在线支付功能,部署带授权证书的HTTPS是必不可少的,这也是很多第三方支付平台的强制要求。
充分考虑各种意外情况,才能实现真正意义上的高可用、可扩展 。
云技术:弹性计算ECS的更多相关文章
- EC2(elastic compute cloud,弹性计算云,又称EC2实例)
(一)定义:EC2和实例EC2(elastic compute cloud,弹性计算云),即云中的虚拟服务器. 是用于在云中创建和运行虚拟机的 Amazon Web 服务.简言之,EC2就是一部具有无 ...
- 巨杉数据库加入CNCF云原生应用计算基金会,共建开源技术生态
近日,巨杉数据库正式加入全球顶级开源社区,云原生应用计算基金会 (Cloud Native Computing Foundation,以下简称CNCF),成为CNCF基金会会员,是中国最早加入的开源云 ...
- 一站式入口服务|爱奇艺微服务平台 API 网关实战 原创 弹性计算团队 爱奇艺技术产品团队
一站式入口服务|爱奇艺微服务平台 API 网关实战 原创 弹性计算团队 爱奇艺技术产品团队
- 不服跑个分:ARM鲲鹏云服务器实战评测——华为云鲲鹏KC1实例 vs. 阿里云G5实例【华为云技术分享】
原文链接:https://m.ithome.com/html/444828.htm 今年一月份,华为正式发布了鲲鹏920数据中心高性能处理器,该处理器兼容ARM架构,采用7纳米制造,最高支持64核,主 ...
- 重磅!业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目
摘要:4月7日,云原生计算基金会(CNCF)宣布,由华为云捐献的业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目. 4月7日,云原生计算基金会(CNCF)宣布,由华为云捐献的业界首个 ...
- 云技术:负载均衡SLB
什么是SLB? SLB是Server Load Balance(负载均衡)的简称,XX云计算有限公司提供的负载均衡服务,通过设置虚拟服务IP,将位于同一机房的多台云服务器资源虚拟成一个高性能.高可用的 ...
- 万物智联,腾讯云 IoT 边缘计算揭秘——云+未来峰会开发者专场回顾
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 背景:现在是万物互联的时代,智能穿戴设备,智能家居,无人商业,改变了我们的生活方式.预计到2021年,全球物联网设数将达到150亿,超过手机 ...
- 基于阿里云SLB/ESS/EIP/ECS/VPC的同城高可用方案演练
今天基于阿里云SLB/ESS/EIP/ECS/VPC等产品进行了一次同城高可用方案演练: 基本步骤如下: 1. 在华东1创建VPC网络VPC1,在华东1可用区B和G各创建一个虚拟交换机vpc1_swi ...
- 窥见云技术未来大势,腾讯云Techo开发者大会即将在京召开
云.物联网.5G.人工智能……一项项技术的突破带来了天翻地覆的变化,开发者们是如何一次次地进行天马行空的创意和极限突破?2019年11月6日-7日,由腾讯云主办的首届Techo开发者大会将在北京嘉里大 ...
随机推荐
- iOS集合视图单元格高亮和选中的区别
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交 ...
- 14 Fragment 碎片总结
Fragment 碎片 一, Fragment是什么? Android 3.0以后出现的 Api11 以上 Activity的组成部分 Fragment(小的Activity) Fragment可以显 ...
- iOS下WebRTC音视频通话(二)-局域网内音视频通话
这里是iOS 下WebRTC音视频通话开发的第二篇,在这一篇会利用一个局域网内音视频通话的例子介绍WebRTC中常用的API. 如果你下载并编译完成之后,会看到一个iOS 版的WebRTC Demo. ...
- 学习笔记6-Android查看应用输出的错误信息 如何部署应用到真实手机 发布软件
查看应用输出的错误信息 1. 通过LogCat窗口查看信息 右上角图标可以筛选不同级别的信息(比如info等). 右上角的+可以进行信息筛选 把应用部署到真实手机 1. 要把手机的 ...
- HDFS追本溯源:体系架构详解
Hadoop是一个开发和运行处理大规模数据的软件平台,是Apache的一个用Java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算.用户可以在不了解分布式底层细节的情况下, ...
- matlab函数interp2及其c++代码
最近将一个matlab程序转为c++,途中遇到interp2这个家伙,我是左查右查,发现网上没有人总结这个玩意,于是我来初探一下,还是别有洞天的,嘿嘿. 1.关于interp2 Vq = interp ...
- OC语言编写:为视图添加丝滑的水波纹
先看一下最终效果图: 首先我们可以把如此丝滑的水波纹拆分一下下: 一条规律的曲线. 曲线匀速向右移动. 曲线下方的位置用颜色填充. 于是先来一条曲线吧. 对于需要产生波动如此规律的曲线,我们首先想到的 ...
- 【Unity Shaders】Reflecting Your World —— 在Unity3D中创建一个简单的动态Cubemap系统
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- hibernate 关于主键
本文为北京尚学堂hibernate视频的学习笔记 1在xml中定义单个主键生成策略 1.1通过xml <id name="id" type="long" ...
- 谈谈Ext JS的组件——容器与布局
概述 在页面中,比较棘手的地方就是布局.而要实现布局,就得有能维护布局的容器.可以说,在我试过和使用过的Javascript框架中,Ext JS的布局是做得最棒的一个,而这得益于它强大的容器类和丰富的 ...