慎重决定!从自建服务器到选择阿里云
云计算核心是计算力的集中和规模性突破,云计算中心对外提供的计算类型决定了云计算中心的硬件基础架构。从云端客户需求看,云计算中心通常需要规模化的提供以下几种类型的计算力,其服务器系统可采用三(多)层架构,一是高性能的、稳定可靠的高端计算,主要处理紧耦合计算任务,这类计算不仅包括对外的数据库、商务智能数据挖掘等关键服务,也包括自身账户、计费等核心系统,通常由企业级大型服务器提供;二是面向众多普通应用的
↑ ↑ ↑ ↑ ↑ 提示:CSDN支持浏览目录功能,浏览目录后阅读效果更佳 ↑ ↑ ↑ ↑ ↑
上云前序
我们公司因为业务需求,需要来服务器托管微信公众号平台。之前我们先是自建服务器,然后就是使用IDC机房托管服务器,后来因为种种原因,最后转到了阿里云上云。很多同学会有疑问,为什么已经有了自建服务器,还需要去IDC机房托管,最后又去上云呢?
因为在自建服务器的时候,这个服务器是由我们公司一群参差不齐不齐的"网络工程师"一起弄的。这群吃货,往往是对编程语言有所了解,但对硬件了解的不甚多。所以在遇到单点故障的时候,大家都一脸懵逼。还有,遇到宕机的时候,我们还需要为每个硬件准备冗余,部署与维护成本成本就上去了。
同时,增减硬件也是挺麻烦的,带宽也是。有时候需要临时搞活动,硬件需要购置时间。带宽也不能提升,因为我这边的ISP服务商签约是一年的。电费也是超贵的,一台低配置的预发型版本测试服务器一年下来电费也得3000元。所以后来我们就换成了IDC机房。
而然,问题还是没有得到解决。即使我们租用的是双线路由器,但是南北互通问题还是解决不了。究竟什么是南北互通问题?基于我们的理解简体描述一下,不对之处欢迎指出。南北互通问题实际就是路由问题。假设我们的服务器放在上海电信的机房,上海一位联通的用户访问我们的服务器,要先绕到联通的北京总出口(假设总出口在北京),然后再绕回上海。实际上这位联通用户可以通过上海的线路直接到达我们的服务器,不用绕这么远,但上海电信的机房无法告知联通的路由器走近路过来,只能按照联通路由器设定好的路由走。本来即使走北京绕一下也没有大的影响,毕竟是光的速度,但是由于大多数联通的用户访问电信网络都这么绕着走,联通的总出口成为了瓶颈,总出口流量太大时,联通的用户访问电信的网络速度就会慢。BGP线路也没什么神奇之处,只是它能决定走什么路由过来,不绕远路,问题自然解决了。它有这样的特权,就不仅能解决南北互通的问题,而且能解决其他网络的互通问题,比如教育网。因为有权限决定路由,就可以优化路由,哪条路堵,我就换条路。阿里云就是BGP线路,这就是我们的选择!
钱也是我们要考虑的,普通租用机房一般是一年一结或者一季度一结。如果不是合作关系的话,过期没钱估计就直接掐断。。。而阿里云可以一月一结,甚至是按天,按配置,按流量收费。多种收费方法。增加了流动资金的同时,也可以随时增减配置和带宽,弹性伸缩,帮助网站运营。
上云前足足的功课
云计算是通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
一、云平台方案调研/技术选型
国内云部分:
国外云部分
二、架构解析/优化
阿里云的口号是:“打造数据分享的第一平台”。
显然,做云计算只是一个起步。阿里巴巴在之前收购了万网,获得了相应的IDC运营资质和用户,也解决了IaaS、PaaS、SaaS领域了大部分问题,比如备案、域名注册、安全防护,用户群等等。
阿里云的运营方式跟微软与世纪互联合作,IBM与首都在线合作都是一个思路。这几家都是要踏踏实实做服务的,眼光不仅仅只是Web应用和移动应用,还包括了企业应用的范围。
以下是云计算常见的六种架构
1、云计算数据中心总体架构
云计算架构分为服务和管理两大部分。在服务方面,主要以提供用户基于云的各种服务为主,共包含3个层次:基础设施即服务IaaS、平台即服务PaaS、软件即服务SaaS.在管理方面,主要以云的管理层为主,它的功能是确保整个云计算中心能够安全、稳定地运行,并且能够被有效管理。
2、云计算机房架构
为满足云计算服务弹性的需要,云计算机房采用标准化、模块化的机房设计架构。模块化机房包括集装箱模块化机房和楼宇模块化机房。
3、云计算网络系统架构
1)按照传送数据业务性质和面向用户的不同,网络系统可以划分为内部核心网、远程业务专网、公众服务网等区域。
2)按照网络结构中设备作用的不同,网络系统可以划分为核心层、汇聚层、接入层。
3)从网络服务的数据应用业务的独立性、各业务的互访关系及业务的安全隔离需求综合考虑,网络系统在逻辑上可以划分为存储区、应用业务区、前置区、系统管理区、托管区、外联网络接入区、内部网络接入区等。
4、云计算主机系统架构
云计算核心是计算力的集中和规模性突破,云计算中心对外提供的计算类型决定了云计算中心的硬件基础架构。从云端客户需求看,云计算中心通常需要规模化的提供以下几种类型的计算力,其服务器系统可采用三(多)层架构,一是高性能的、稳定可靠的高端计算,主要处理紧耦合计算任务,这类计算不仅包括对外的数据库、商务智能数据挖掘等关键服务,也包括自身账户、计费等核心系统,通常由企业级大型服务器提供;二是面向众多普通应用的通用型计算,用于提供低成本计算解决方案,这种计算对硬件要求较低,一般采用高密度、低成本的超密度集成服务器,以有效降低数据中心的运营成本和终端用户的使用成本;三是面向科学计算、生物工程等业务,提供百万亿、千万亿次计算能力的高性能计算,其硬件基础是高性能集群。
5、云计算存储系统架构
云计算采用数据统一集中存储的模式,在云计算平台中,数据如何放置是一个非常重要的问题,在实际使用的过程中,需要将数据分配到多个节点的多个磁盘当中。而能够达到这一目的的存储技术趋势当前有两种方式,一种是使用类似于GoogleFileSystem的集群文件系统,另外一种是基于块设备的存储区域网络SAN系统。
6、云计算应用平台架构
云计算应用平台采用面向服务架构SOA的方式,应用平台为部署和运行应用系统提供所需的基础设施资源应用基础设施,所以应用开发人员无需关心应用的底层硬件和应用基础设施,并且可以根据应用需求动态扩展应用系统需的资源。
三、应用或数据库迁移过程/开发过程
1)首先进入阿里云官网注册阿里云帐号
2)进入云服务器管理控制台,点击右上角的 创建实例
3)根据需要,自己选择计费方式等需要的项目
Ⅰ)如果不知道自己想选什么地区的服务器,可以看看地域表。因为我这个项目是面向全球的,所以需要多个地区协作。同时注意,不同地域是不连通的。
Ⅱ)带宽方面,如果是小型网站,建议按量收费。大型网站,按固定带宽收费。至于带宽大小,自己算算就知道了。同时,阿里云免费提供最高 5Gbps 的恶意流量攻击防护。
Ⅲ)系统镜像方面
Windows
系统内含正版激活。
适合于运行Windows下开发的程序,如.net等。
支持SQL Server等数据库(需自行安装)。
以使用远程桌面方式登录进行管理。
Linux
最流行的服务器端操作系统,强大的安全性和稳定性。
免费且开源,轻松建立和编译源代码。
通过SSH方式远程访问您的云服务器。
一般用于高性能web等服务器应用,支持常见的PHP/Python等编程语言,支持MySQL等数据库(需自行安装)。
阿里云提供以下Linux操作系统:
CentOS (推荐) 请使用yum方式在线安装软件。
Ubuntu 请使用apt-get方式在线安装软件。
Debian 请使用aptitude方式在线安装软件。
Aliyun Linux 请使用yum方式在线安装软件。
CoreOS
FreeBSD
OpenSUSE
SUSE Linux
! 香港、新加坡、美国地域的云服务器暂不支持 Linux 和 Windows 系统的互相更换,仅支持 Linux和Linux、Windows 和 Windows 同类型系统的更换。
Ⅳ)因为阿里云首次购买在部分地区好像有优惠。所以,要注意优惠,不要错过信息。像我选的这个套餐,便宜了非常多钱,这个在其他云不存在的。
Ⅴ)自己设置的用户名密码,务必记住。
注意事项:
4)确认信息并且支付。
本来我是想装2003的,但是2003现在微软已经不提供更新和支持了,为了安全性,我选择了2008 R2
实例创建好之后,您会收到短信和邮件通知,告知您的实例名称、公网 IP 地址、内网 IP 地址等信息。您可以使用这些信息登录和管理实例。
很多重要的信息都是通过绑定手机的短信接收,并且重要的操作(如重启、停止等)都需要手机接收验证码,因此请务必保持绑定手机通信畅通。
5)连接 Windows 实例
Ⅰ)WINDOWS客户机按WIN+R运行mstsc
Ⅱ)在 远程桌面连接 对话框中,输入实例的 IP 地址,单击 连接。
Ⅲ)输入密码后,你就拥有了第一台阿里云服务器了
Ⅳ)TIPs:
当普通远程连接软件(比如 Putty、Xshell、SecureCRT 等)无法使用时,您可以通过云服务器管理控制台的 远程连接 功能进入云服务器登录界面,查看服务器界面当时状态;如果您拥有操作权限,可以登录到服务器进行操作配置,对于有技术能力的用户解决自己遇到的问题有很大的帮助6)键入代码及保存测试
这里的代码是Single File.PHP的代码。本地化(相对连接)的代码请进入https://github.com/kajweb/ESC查看
<?PHP
//************************************************
//************************************************
//************************************************
//--------https://github.com/kajweb/ESC-----------
//************************************************
//************************************************
//************************************************
$Address_Data = GetADD();//调用获取地点数据
if($Address_Data['country'] == '中国') $Address_Data['country']="";//如果国家是中国,则地名不显示中国。如果是其他国家则正常显示
if($Address_Data['province'] == $Address_Data['city'])$Address_Data['city']="";//如果省份和城市相同、则只显示一个
$User_Address = $Address_Data['country'].$Address_Data['province'].$Address_Data['city'];//将地区信息储存在$User_Address中
if(empty($Address_Data['ip'])){$Address_Data['ip'] = "您";$User_Address = "你那里";}//错误处理,加入获取不了IP的处理方式
function GetADD($ip = ''){
if(empty($ip)){
$ip =$_SERVER["REMOTE_ADDR"];
}
$res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip); //经测试@file_get_contents可用,不必使用cURL
if(empty($res)){ return false; }
$jsonMatches = array();
preg_match('#\{.+?\}#', $res, $jsonMatches);
if(!isset($jsonMatches[0])){ return false; }
$json = json_decode($jsonMatches[0], true);
if(isset($json['ret']) && $json['ret'] == 1){
$json['ip'] = $ip;
unset($json['ret']);
}else{
return false;
}
return $json;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>祝阿里云越办越好</title>
<script type="text/javascript" src="http://t.cn/RJibm1T?aliyunCDN of jquery.min.js"></script>
<script type="text/javascript" src="http://t.cn/RJiqZN6?aliyunCDN of jscex.min.js"></script>
<script type="text/javascript" src="http://t.cn/RJiGsGK?aliyunCDN of jscex-parser.js"></script>
<script type="text/javascript" src="http://t.cn/RJiGBXw?aliyunCDN of jscex-jit.js"></script>
<script type="text/javascript" src="http://t.cn/RJiG0Nw?aliyunCDN of jscex-builderbase.m.js"></script>
<script type="text/javascript" src="http://t.cn/RJiGt8T?aliyunCDN of jscex-async.min.js"></script>
<script type="text/javascript" src="http://t.cn/RJiG26P?aliyunCDN of jscex-async-powerpa.js"></script>
<script type="text/javascript" src="http://t.cn/RJibM8S?aliyunCDN of functions.js" charset="utf-8"></script>
<script type="text/javascript" src="http://t.cn/RJiq5cM?aliyunCDN of love.js"></script>
<link rel="stylesheet" href="http://t.cn/RJiqXdh?aliyunCDN of main.css" type="text/css" />
</head>
<body>
<audio autoplay="autopaly">
<source src="http://t.cn/RJiUnop?aliyunCDN of BGM" type="audio/mp3">
</audio>
<div id="main">
<div id="error">本页面采用HTML5,很遗憾你的浏览器不支持本页面,请换成其他浏览器,或者更新到最新版本。</div>
<div id="wrap">
<div id="text">
<div id="code">
<font color="#FF0000">
<span class="say">亲爱的用户:<br> 您好!</span><br>
<span class="say"> </span><br>
<span class="say"> <b><?php echo $User_Address?></b>好玩吗?我一直想去,</span><br>
<span class="say"> </span><br>
<span class="say">可是,自从<B>2009年09月10号。</B></span><br>
<span class="say"> </span><br>
<span class="say">阿里云成立,</span><br>
<span class="say">就必须无时无刻地为programmer服务。</span><br>
<span class="say">我不能走开,一步也不可以。 </span><br>
<span class="say">我的目的是,为大家提供优质的服务。 </span><br>
<span class="say"> </span><br>
<span class="say"><span class="space"></span> -- 一个无名的Coder--</span><br>
<span class="say"></span><br><br>
<span class="say">对<?php echo $Address_Data['ip'] ?>表示最真挚的问候~~</span>
</font>
<p></p>
</div>
</div>
<div id="clock-box">
<span class="STYLE1"></span><font color="#33CC00">亲爱的用户,阿里云</font>
<span class="STYLE1">已经<font color="red">稳定</font>运营了</span>
<div id="clock"></div>
</div>
<canvas id="canvas" width="1100" height="680"></canvas>
</div>
<script type="text/javascript" src="http://t.cn/RJiq0uF?aliyunCDN of main.js"></script>
</div>
</body>
</html>
7)效果预览
2. 个人用户芝麻信用分≥620分
3. 从未购买过阿里云产品(域名、邮箱除外)
【遇到问题2】GitHub代码上传失败
【遇到问题3】关于PHP获取IP
<?php
//方法一:
function GetIP(){
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif(!empty($_SERVER["REMOTE_ADDR"])){
$cip = $_SERVER["REMOTE_ADDR"];
}
else{
$cip = "无法获取!";
}
return $cip;
}
echo GetIP();
?>
<?php
//方法二:
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR")){
$ip = getenv("REMOTE_ADDR");
}
else{
$ip = "Unknown";
}
echo $ip;
?>
<?php
//方法三:
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp ;
?>
<?php
//方法四:
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP
?>
<?php
//方法五:
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if($ip){
array_unshift($ips, $ip); $ip = FALSE;
}
for($i = 0; $i < count($ips); $i++){
if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){
$ip = $ips[$i];
break;
}
}
}
return($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo get_real_ip();
?>
<?php
//方法六:
if(getenv('HTTP_CLIENT_IP')){
$onlineip = getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR')){
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR')){
$onlineip = getenv('REMOTE_ADDR');
}
else{
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
echo $onlineip;
?>
【遇到问题4】关于通过IP获取具体城市的API
【解决方案4】在实际应用中,发现许多通过IP获取具体城市的API不能正常使用的。后来通过网上帖子的分析与论证,发现了该接口。当写完后,发现阿里云市场也有。但是,人懒,能用就行了 !所以就没改。其实,我们也可以用过自己创建IP段的形式写IP库,但是,懒!调用云服务就可以了。
【遇到问题5】其他代码类问题
【解决方案5】可以进入阿里云工单系统,点击 提交工单 然后就可以问萌萌的客服问题了
五、上云前后分析对比
1)一站式服务
2)一站式备案
以前采用普通主机,备案需要走来走去,自从有了阿里云,阿里云拥有完善的备案系统https://beian.aliyun.com 通过这个系统,方便简介地备案。3)弹性伸缩
根据业务需求和策略,自动调整其弹性计算资源的管理服务,在满足业务需求高峰增长时无缝地增加ECS实例,并在业务需求下降时自动减少ECS实例以节约成本。
4)容器服务
容器服务(Container Service)提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大地简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力,打造 Docker 云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。
5)批量计算
批量计算(BatchCompute)是一种适用于大规模并行批处理作业的分布式云服务。BatchCompute可支持海量作业并发规模,系统自动完成资源管理,作业调度和数据加载,并按实际使用量计费。
6)CDN
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。7)对象存储 OSS
阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以通过调用 API,在任何应用、任何时间、任何地点上传和下载数据,也可以通过 Web 控制台对数据进行简单的管理。OSS 适合存放任意类型的文件,适合各种网站、开发企业及开发者使用。按实际容量付费真正使您专注于核心业务。
8)负载均衡及后端数据同步
阿里云由于使用rsync等同步软件进行实时数据同步。所以,阿里云建议用户将负载均衡后端所有ECS配置成无状态的应用服务器,将数据和文件统一存放在后端RDS和OSS等公共服务上。
9)API 网关
10)服务器安全及抵抗高流量攻击
Ⅰ)云盾
当受到攻击时,流量会经过云盾节点,并触发清洗机制,起到CC/DDoS防护作用。
Ⅱ)加密服务
加密服务(Data Encryption Service)是云上的加密解决方案。服务底层使用经国家密码管理局检测认证的硬件密码机,通过虚拟化技术,帮助用户满足数据安全方面的监管合规要求,保护云上业务数据的隐私性要求。借助加密服务,用户能够对密钥进行安全可靠的管理,也能使用多种加密算法来对数据进行可靠的加解密运算。
Ⅲ)DDoS 基础防护 & DDoS 高防IP
阿里云免费为用户提供最高5G的默认DDoS防护能力。阿里云在此基础上,推出了安全信誉防护联盟计划,将基于安全信誉分进一步提升DDoS防护能力,用户最高可获得100G以上的免费DDoS防护资源。
云盾DDoS高防IP是针对互联网服务器(包括非阿里云主机)在遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务,用户可以通过配置高防IP,将攻击流量引流到高防IP,确保源站的稳定可靠。
Ⅳ)阿里绿网
Ⅴ)证书服务
云盾证书服务(Alibaba Cloud Certificates Service)是阿里云联合若干国内外知名CA证书厂商,在阿里云平台上直接提供服务器数字证书,阿里云用户可以在云平台上直接购买甚至免费获取所需类型的数字证书,一键部署在阿里云产品中,最小成本的将所持服务从HTTP转换成HTTPS。
Chrome从2017年10月起将要求遵守证书透明
Ⅵ)云盾混合云
Ⅶ)漏洞扫描
六、借助阿里云国际版布局海外市场的经验
1)地域列表
可用区是指在同一地域内,电力和网络互相独立的物理区域。同一可用区内的 ECS 实例网络延时更小。
·在同一地域内可用区与可用区之间内网互通,可用区之间能做到故障隔离。是否将云服务器 ECS 实例放在同一可用区内,主要取决于对容灾能力和网络延时的要求。
·如果您的应用需要较高的容灾能力,建议您将云服务器 ECS 实例部署在同一地域的不同可用区内;
如果您的应用在实例之间需要较低的网络时延,则建议您将 ECS 实例创建在相同的可用区内。
2)全球节点无缝覆盖
3)一键控全球,免备案
4)高速跨境网络优势
5)阿里云和亚马逊云详细对比
七、其他人的上云经验
【Q】为什么成千上万的客户信任阿里云?
【A】阿里云正在为千万开发者提供全球领先的云计算服务平台,可弹性扩展、安全稳定、简单易用。
安全稳定
弹性扩展
节约成本
快速运维
八、引用
点击体验本文实例
浅析云计算的六种架构
html5唯美表白
关于杭州市网站公安备案公告
九、选云总结
经过这次选型,我确定云计算是未来服务器的首选,并确定了阿里云在云计算的领先地位。同时也确定了阿里云对个人、企业具有重要意义,是一个可靠的云服务商。 通过上云,不仅仅是拥有了可靠的性能,还拥有了稳定的弹性伸缩。
纸上谈兵终觉浅,但是对于新鲜实物的尝试,也需要做足功课,对整体的云市场、操作环境、案例、遇到问题与解决有一个详细的了解,相信和我一样慎重的人,大有人在,也希望此篇分享,可以对即将上云的您有一定的参考,在上云后的日子,还有很多未知的难题,相信今后还会有更多问题交流解决与大家一起学习与分享!
本文章撰写时间偏长,部分引用可能忘记标出来源。
为增强文章说服力,本文内容部分采用引用互联网的文章,请作者知悉后联系本文作者(kajweb@163.com)。
更多推荐
所有评论(0)