【腾讯云的1001种玩法】十分钟轻松搞定云架构之一 :从上云开始
序言
本文是 【十分钟轻松搞定云架构】的第一节课:从上云开始,从这节课开始,我们来一起学习云端架构。
在这节课,我们主要讲两个知识点:
- 云计算和本地托管的区别
- 云端最简架构
云计算和本地托管的区别
云计算和本地托管最大的区别,就是弹性,而云计算最大的优势也是弹性。
在安全性上,云计算主机相比于本地托管的独立主机依然有一定的弱势,云计算的虚拟化的模式导致你可能会被你的邻居所影响,而独立租用的主机一般是独享线路和服务器。不用担心邻居的问题。不过目前来说,云计算服务商大多已经把这个问题处理的非常好。我们已经无需担心。。
不过从另外的方面看,云计算的安全性要强于本地托管主机,因为本地托管的主机是无法提供附加的安全服务的。而云计算主机商大多有附加的安全服务,可以为我们提供软件、网络层面更多的安全能力。
在稳定性上,云计算主机要优于本地托管的独立主机。云计算数据中心的大规模投入保证了相应的基础设施的完善。而这些完备的基础设施,将为我们的应用保驾护航。本地托管的主机大多没有这样的投入,对于故障的响应和对应的解决方案准备大多不足。容易出现故障无法恢复的问题。
在弹性上,云计算资源的分配基于虚拟化,存在资源池的性质。各种资源都可以通过对参数的调整来实现应用的配置的调整。而本地托管的物理机就没这么方便,可能需要你关机、重启服务器来去配置你的应用,而服务器的启动周期较长,会有一个较长的停止服务的周期,这样对于大多数应用来说,都是不可接受的。其他相关的配置的变化也是比较耗时的。大批量的变更可能耗费大量时间。
投入方面,由于云计算具备强大的弹性,我们可以在业务发展的初期,使用一个较低的配置,来跑我们的业务,随着业务的不断发展来提升我们的配置,这样你的支出就会以一个比较低的起点,不断的提升;而传统的本地托管模式,需要你在开始部署应用前,就计划好可能用到的资源的数目,一次性投入大量的资金购买基础设施,如果前期的投入不足,会导致你在后期需要不断的重启、提升配置,可能会造成更大的损失,这样来说,本地托管的投入是更高的。
云端最简架构
大部分中低端用户和对云计算不了解的开发者,都在使用这种云端最简架构。
这种架构的优势在于他的学习成本较低,维护和操作也要简单一些(单机总是要比集群操作起来简单一些),使用的成本也相对较低(只需要支付一台云主机的价格)。
但是这种架构存在很多问题:容易爆发单点故障(关于单点还是多点,可以看本课程的知识点课:单电和多点)、性能受主机影响较大(单机的性能存在上限)、业务拓展的难度高(应用性能受主机的性能限制)。
如何优化最简架构?
想要优化架构,就要找到薄弱的点在哪里。一开始, 比较容易考虑到的是,在业务层面,拆分计算能力和存储能力,也就是在代码层面,使用合理的设计,将我们的业务的重点和难点,拆分出来,进行强化。
另一个方面,就是拆分数据库:我们的文件读写是占用硬盘的IO,数据库的读写也是要占用硬盘的IO,当两者都在同一台机子上时,就会出现IO 不够用的情况,我们可以将数据库拆分出去,来降低我们的硬盘IO 的压力。
关于如何上云,这次课程,我们就讲到这里,下节课我们为大家揭秘更多云计算的知识。
- 2017 Multi-University Training Contest - Team 9 1002&&HDU 6162 Ch’s gift【树链部分+线段树】
- 【Java学习笔记之三十二】浅谈Java中throw与throws的用法及异常抛出处理机制剖析
- Linux上访问SQL Server数据库
- 2017 Multi-University Training Contest - Team 9 1001&&HDU 6161 Big binary tree【树形dp+hash】
- 【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析
- 【Java学习笔记之二十九】Java中的"equals"和"=="的用法及区别
- NET跨平台:在Ubuntu下搭建ASP.NET 5开发环境
- 【Code】关关的刷题日记22——Leetcode 53. Maximum Subarray
- 【Java学习笔记之三十四】超详解Java多线程基础
- Codeforces 842B Gleb And Pizza【几何,水】
- Python3希尔排序
- Codeforces 842A Kirill And The Game【暴力,水】
- Wannafly模拟赛 A.矩阵(二分答案+hash)
- 【Java数据结构学习笔记之一】线性表的存储结构及其代码实现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 小书MybatisPlus第3篇-自定义SQL
- Nginx + Spring Boot 实现负载均衡
- 小书MybatisPlus第2篇-条件构造器的应用及总结
- 一个案例演示 Spring Security 中粒度超细的权限控制!
- 信息收集之主机发现:nmap
- 文本文件逐行处理–用java8 Stream流的方式
- 使用java8API遍历过滤文件目录及子目录及隐藏文件
- 使用位运算、值交换等方式反转java字符串-共四种方法
- 精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换
- 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用
- 在图中添加多边形
- 设置坐标轴刻度的位置和样式
- OkHttp透明压缩,收获性能10倍,外加故障一枚
- 体验spring-boot-devtools热部署,流畅且不失强大
- 【每周一库】 simsearch - a simple and lightweight fuzzy search engine