Linux集群和自动化维1.2 IDC机房的选择及CDN的选型

1.2 IDC机房的选择及CDN的选型

  如果自己的业务网站中含有大量的图片和视频类文件,为了加快客户端的访问速度,同时为了减缓对真正的核心机房的服务压力,并且提升用户体验,建议在前端最好采用CDN缓存加速方案。

CDN(Content Delivery Network),即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。CDN缓存加速方案一般有如下几种方式。

租赁CDN:中小型网站直接购买服务就好,现在CDN已经进入按需付费的云计算模式了,性价比是可以准确计算的。

自建CDN:这种方案的成本就有点大了,为了保证良好的缓存效果,必须在全国机房布点,还要自建智能Bind系统,搭建大型网站时推荐采用此种方案,专业的视频网站或图片网站一般会考虑采用此种方案。

IDC机房的选择一般也有几种类型。 

单电信IDC机房:这种类型一般业务模式比较固定,访问量也不是很大,适合新闻类网站或政务类网站。如果网站的PV流量持续增加的话,则建议后期采用租赁CDN的方式解决非电信用户访问网站速度过慢的问题。

双线IDC机房:由于国内两大网络(电信和网通)之间存在互联互通的问题,导致电信用户访问网通网站或网通用户访问电信网站速度很慢,因此就产生了双线机房、双线服务器、双线服务器托管和双线服务器租用服务。双线机房实际是一个机房有电信和网通两条线路。双线机房通过内部路由器设置,以及BGP自动路由的分析,可实现电信用户访问电信线路,网通用户访问网通线路,这样就可实现电信网通的快速访问。

BGP机房:BGP(边界网关协议)是用来连接Internet独立系统的路由选择协议。它是Internet工程任务组制定的一个加强的、完善的、可伸缩的协议。BGP4支持CIDR寻址方案,该方案增加了Internet上的可用IP地址数量。BGP是为取代最初的外部网关协议EGP而设计的。它也被认为是一个路径矢量协议。采用BGP方案来实现双线路互联或多线路互联的机房,则称为BGP机房。对于用户来说,选择BGP机房可以实现网站在各运营商线路之间互联互通,使得所有互联运营商的用户访问网站都很快,且更加稳定,不用担心全国各地因线路问题带来的访问速度快慢不一的问题,这也是传统双IP双线机房无法相比的优势。在条件允许的情况下,服务器的租用和托管可以尽量选择BGP机房,因为会带给用户最优的访问体验。

现在云计算服务也非常流行,目前首推的就是亚马逊云(AWS)和阿里云。

对于我们来说,云计算服务提供的产品能让我们的研究发团队专注于产品开发本身,而不是购买、配置和维护硬件等繁杂的工作,还可以减少初始资金的投入。我们主要采用亚马逊云的EC2/EBS/S3服务,其实Amazon EC2主机提供了多种适用于不同使用案例的实例类型以供选择。实例类型由 CPU、内存、存储和网络容量组成了不同的组合,可让我们灵活地为其选择适当的资源组合。

云计算特别适合两类网站:在某些日期或某些时间段流量会激增的网站,比如竞标业务机器,用户会集中在某些时段进行竞价,因此在这些时间段使用的Instance数量可能是白天的几倍甚至几十倍。也就是说,此时段内瞬间可能要开启很多实例处理,处理完毕后立刻终止。EC2 Instance是可以按照运行的小时数来进行收费的。像笔者公司的线上系统,经常运行着很多特殊业务的Spot Instance,以小时计费,完成任务后立即终止。

时间: 2024-08-31 07:19:37

Linux集群和自动化维1.2 IDC机房的选择及CDN的选型的相关文章

Linux集群和自动化维导读

Preface  前言 为什么要写这本书 笔者从事系统运维和网站架构设计的工作已有10多年,现在在一家外企担任云平台架构师.云计算是现在的主流技术,未来也有很好的发展趋势,云计算的流行对于传统的运维知识体系来说,其实也造成了冲击,有很多读者经常向笔者咨询工作中的困惑,比如从事系统运维工作3-5年后就不知道该如何继续学习和规划自己的职业生涯了.因此笔者想通过此书,跟大家分享一下自己的工作经验和心得(包括传统运维和云平台运维工作的区别与对比),以期解决大家在工作中的困惑.本书提供了大量项目实践和线上

Linux集群和自动化维1.3 如何根据服务器应用选购服务器

1.3 如何根据服务器应用选购服务器   无论物理服务器是选用IDC托管还是AWS EC2云主机(以下为了简略说明,将它们统称为服务器),我们都要面临一个问题,那就是选择服务器的硬件配置,选购硬件配置时要根据服务器的应用需求而定.因为只通过一台服务器是无法满足所有的需求,并解决所有的问题的.在设计网站的系统架构之前,应该从以下方面考虑如何选购服务器: 服务器要运行什么应用. 需要支持多少用户访问. 需要多大空间来存储数据. 业务有多重要. 服务器网卡方面的考虑. 安全方面的考虑. 机架安排是否合

Linux集群和自动化维3.7.2 线上环境中的Fabric应用实例

3.7.2 线上环境中的Fabric应用实例 笔者线上的核心业务机器统一都是AWS EC2主机,机器数量较多,每个数据中心都部署了Fabric跳板机(物理拓扑图可参考图3-3),系统为Amazon Linux,内核版本为3.14.34-27.48.amzn1.x86_64,Python版本为Python 2.6.9. 如果公司项目组核心开发人员离职,线上机器就都要更改密钥,由于密钥一般是以组的形式存在的,再加上机器数量繁多,因此单纯通过技术人员手工操作,基本上是一项不可能完成的任务,但若是通过F

Linux集群和自动化维1.4.4 Linux下CPU使用率与机器负载的关系与区别

1.4.4 Linux下CPU使用率与机器负载的关系与区别  笔者的线上竞标业务机器,在业务最繁忙的一段周期内,发现Nginx单机并发活动的连接数超过了2.6万,机器负载(基本上不到4,Nagios监控系统并没有发送报警邮件和短信)和Nginx+Lua服务都是正常的,网卡流量并没有打满,但流量就是怎么也打不进去.经过深入观察,发现这段时期内每台机器的CPU利用率都已经很高了,基本都维持在99%-100%左右,这种情况应该是CPU资源耗尽了,导致不能再继续提供服务,所以这里有必要研究下CPU负载和

Linux集群和自动化维3.6 轻量级自动化运维工具Fabric介绍

3.6 轻量级自动化运维工具Fabric介绍 笔者公司目前的数据中心采用的是分布式部署方案,在全球多地都有数据中心.数据中心采用的是AWS EC2机器,在核心的数据中心里,EC2机器的数量比较多,基本上每个数据中心都在运行着几百台AWS EC2机器,而且业务繁忙的时候,会通过AWS AMI(Amazon系统映像)直接上线几十台相同业务的EC2机器,它们的机器类型.系统应用和配置文件基本上都是一模一样的,很多时候需要修改相同的配置文件和执行相同的操作,这个时候为了避免重复性的劳动就需要用到自动化运

Linux集群和自动化维2.6 生产环境下的Shell和Python脚本分类

2.6 生产环境下的Shell和Python脚本分类 生产环境下的Shell和Python脚本的作用还是挺多的,这里根据2.1节所介绍的日常工作中Shell脚本的作用,将生产环境下的Shell脚本分为备份类.监控类.统计类.运维开发类和自动化运维类.前面3类从字面意义上看比较容易理解,后面的两类需要稍微解释一下,运维开发类脚本是利用Shell或Python实现一些非系统类的管理工作,比如SVN的发布程序等:而自动化运维类脚本则是利用Shell或Python来自动替我们做一些烦琐的工作,比如自动生

Linux集群和自动化维2.1 Shell和Python语言的简单介绍

第2章 生产环境下的Shell和Python脚本 接触Linux系统十多年了,Shell和Python脚本都已经完全融入笔者的生活中了.虽然Shell脚本只是一个简单的解释型语言,不受开发人员的重视,但对于系统运维工程师来说,它的作用举足轻重,它就像我们的瑞士军刀一样,可以帮助我们简化日常的工作并减少工作量.在系统维护工作中,Shell脚本常常能比用C或C++语言编写的程序更快地解决相同的问题,此外,Shell脚本具有很好的可移植性,有时跨越Unix与POSIX兼容的系统,只须略作修改即可,甚至

Linux集群和自动化维3.1 Python语言的应用领域

第3章 轻量级自动化运维工具Fabric详解 近期公司的业务系统代码发布频繁,笔者同时在几个项目组里面穿插工作,发现发布和运维的工作都相当机械,加上频率比较高,导致时间的浪费也比较多.很多测试工作,例如通过SSH登录到测试环境,推送代码,然后修改Bug进行测试,这些操作都是非常机械并且具有重复性的.更让人郁闷的是,每次的操作都是相同的,命令基本上都是一样的,并且是在多台机器上执行,很难在本机上以一个脚本来搞定,主要时间都浪费在使用SSH登录和输入命令上了.这个时候需要一个轻量级的自动化运维工具,

Linux集群和自动化维2.2.3 变量和运算

2.2.3 变量和运算 变量是放置在内存中的某个存储单元,这个存储单元里存放的是这个单元的值,这个值是可以改变的,我们称之为变量. 其中,本地变量是在用户现有的Shell生命周期的脚本中使用的,用户退出后变量就不存在了,该变量只用于该用户. 下面都是跟变量相关的命令,这里只是大致地说明下,后面的内容里会有详细的说明,如下所示: 变量名="变量" readonly 变量名="变量"表示设置该变量为只读变量,这个变量不能被改变. echo $变量名 set  显示本地所

Linux集群和自动化维2.6.2 统计类脚本

2.6.2 统计类脚本 统计工作一直是Shell和Python脚本的强项,我们完全可以利用sed.awk再加上正则表达式,写出强大的统计脚本来分析我们的系统日志.安全日志及服务器应用日志等. 1. Nginx负载均衡器日志汇总脚本 以下脚本是用来分析Nginx负载均衡器的日志的,作为Awstats的补充,它可以快速得出排名最前的网站和IP等,脚本内容如下(此脚本在CentOS 5.8/6.4 x86_64下均已测试通过): #!/bin/bash   if [ $# -eq 0 ]; then