开发者社区> scottx> 正文

上云实践操作(漫步云端)之上云动力

简介: 传统IDC机房上云之路
+关注继续查看

上云之前

在选择使用阿里云之前,整个技术部门采用的是自购服务器+机房托管的方式来部署所需要的程序。并且考虑到不同区域的业务以及灾备的问题,一共在南北两个城市的IDC机房都部署有服务器来支撑日常业务的运行。在IDC模式的运维工作上面,首先带来的问题是日常的巡检和维护,当某一个机房的设备如果出现了硬件损坏的情况,运维通常可以联系机房进行临时的设备替换,并重新申请购买新的设备,并到机房去安装。 这样的话,首先就是当损害一旦产生,某些服务或者程序所提供的算力会在某一段时间内降低,而且对于设备损坏重新购买所申请的费用,在预算控制上面也是一个比较难以估计的问题。再者,当新设备回来后,还是得需要运维人员到机房现场去替换设备,这样随之而来的也就产生了一些不必要的差旅费用,这些临时费用的产生,对于整个部门的预算管理都是一种挑战。
假设上架的服务器都没有问题,稳定的渡过了3年的时间,或者因为业务做得特别好,需要对机房进行扩容,这个对于在传统机房部署上又是一个比较头疼的问题。从选择什么样的机器,机房是否有足够的机柜,机柜间的网络状况,给供应商签署合同,发货,机器到货上架,整个流程会非常的长,如何选择最经济合适的方案来采购机器以匹配现有的业务,这个应该是对决策者比较考验的问题。 如果我们把整个IDC机房的运行时间和设备采购的成本以放到5年来看,我们会发现下面的一个情况。
image.png
从上图我们可以看得出来,根据逐年的业务提升,总是会发现IDC的服务无法满足业务的要求,从而再次对IDC机房进行扩容,扩容后的某一段时间内是可以满足业务的需要,但是再某些时候IDC机房所能提供的能力又大于业务的需求,造成了资源的浪费,图形中的两条线并不是平滑匹配的。
为了解决以上的问题,我们再2018年的时候开始考虑使用云计算的方案来替代我们现有的IDC的机房结构。

准备上云

上云之需求
说到为什么要上云,其本质上并不是说要去追寻什么现在主流的上云趋势。而是要实实在在解决我们在上一个章节中遇到的问题,总结来说,上云需要解决:

  • 预算控制问题
  • 日常运维的快速响应问题
  • 算力扩容问题
  • 业务与机器平滑匹配的问题

带着以上的几个问题,我们也开始着手去调研过一些云厂商的产品与服务。最后从提供的产品,价格的方面考虑还是选择了阿里云。最初在选择的时候我们调研到了阿里云的以下几个产品能够满足我们的需求:

  • ECS (提供与日常服务器一致的功能)
  • EMR (提供hadoop集群功能)
  • RDS (提供Mysql和Redis的功能)
    但如果只是仅仅考虑到以上的几个产品就去上云感觉无非就是把云服务当成了普通的服务器来使用,并没有什么太大的优势。但是结合到阿里云提供的一些其他产品,整个系统的结构会发生大的变化,所以我们最后选择使用的产品有:
  • VPC
  • NAT 网关
  • RDS
  • SLS
  • OSS
  • MaxCompute
  • CDN
  • PAI
  • EMR
  • SLB
    最终组成的业务架构图如下:

image.png

首先通过EIP按照业务的需要向外暴露服务,整个服务都装在VPC当中,通过NAT网关的DNAT和SNAT进行指向,进入的流量由SLB的规则分发到指定的ECS当中进行业务的处理,ECS当中的PHP,Python, Go 等程序可以通过读写RDS当中的数据进行处理,处理后的日志文件交由SLS统一收集并推送到Maxcompute 当中进行一些业务计算。计算后的最终结果再次写入到RDS当中供前端程序展示。计算中间结果存入OSS当中进行备份保存。
在配置沙河环境的时候同样采用了以上的思路,只是具体机器配置上比正式环境的略低几个档即可。

以上的所涉及到的各个产品与服务将在后面的章节具体介绍。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19664 0
使用sqlite3 模块操作sqlite3数据库
Python内置了sqlite3模块,可以操作流行的嵌入式数据库sqlite3。如果看了我前面的使用 pymysql 操作MySQL数据库这篇文章就更简单了。
558 0
自定义Application使用示例——几个Activity共同操作某个变量
MainActivity如下: package cn.testapplication; import android.os.Bundle; import android.
681 0
Egg中使用Sequelize ORM框架操作MySQL--增删改查
Egg中使用Sequelize ORM框架操作MySQL--增删改查
35 0
让SecureCRT终端字体显示颜色的操作
勾选下面红框中的内容就好啦 效果如下
1732 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
17967 0
使用iOS原生sqlite3框架对sqlite数据库进行操作(三)
使用iOS原生sqlite3框架对sqlite数据库进行操作
54 0
+关注
scottx
专注移动互联网广告
23
文章
1
问答
来源圈子
更多
阿里云最有价值专家,简称 MVP(Most Valuable Professional),是专注于帮助他人充分了解和使用阿里云技术的意见领袖阿里云 MVP 奖项为我们提供了这样一个机会,向杰出的意见领袖表示感谢,更希望通过 MVP 将开发者的声音反映到我们的技术路线图上。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载