云技术:弹性计算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开发者大会将在北京嘉里大 ...
随机推荐
- 5.3、Android Studio录像
Android Monitor允许你从设备中录制一段MP4格式的视频,最长允许3分钟. 录制视频 在硬件设备中录制视频: 1. 打开一个项目 2. 在设备中运行应用 3. 显示Android Moni ...
- Java Socket输入流如何检测到EOF
对于InputStream的 read(b, off, len) 方法 public int read(byte[] b, int off, int len) throws IOException,J ...
- JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码
JAVA之旅(三十)--打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个 ...
- 《java入门第一季》之集合框架(Collection小儿子Set集合)
/* * Collection主要的连个儿子: * |--List * 有序(存储顺序和取出顺序一致),可重复 * |--Set * 无序(存储顺序和取出顺序不一致),唯一 * * H ...
- [Mac] mac linux 多线程下载利器 axel
> 之前做过一些文件下载的统计,发现谷歌浏览器chrome和火狐firefox, 一般都是单线程的下载文件,360浏览器却是多线程的下载. 现在切换到了mac上,发现没有360哪个浏览器,就像 ...
- Android屏幕适配-android学习之旅(五十九)
android屏幕适配
- PA模块报错-实际返回的行数超出请求的行数(分析标准FORM报错解决思路)
录入预算报错时报错: 分析:这个错误是select into 语句返回多行的结果,但具体在哪? 两种方法查找,trace 或者debug 1.trace 启用调试 获取trace文件 -bash-3. ...
- java设计模式---职责链模式
职责链的本质:分离职责,动态组合 样例: /** * 定义职责对象的接口 * */ public abstract class Handler { protected Handler successo ...
- gitlab6 配置的几个问题说明
gitlab6 配置的几个问题说明 按照gitlab的网站的详细步骤,终于把gitlab 6.1 stable安装到2台虚拟机上了.由于gitlab6运行于虚拟机上,所以配置这个虚拟机的hostnam ...
- 05_学生管理系统,xml读写,布局的综合应用
最终要做的项目目标: 2.编写Android清单文件AndroidManifest.xml <?xml version="1.0" encoding="utf ...