1、为什么会有云计算
1.1 传统IT架构特点
传统软件开发模式的缺点
传统软件开发模式通常采用瀑布开发模式,标准化,阶段清晰,环环相扣。最早的软件开发模型,给定规定的顺序,将生命周期从上一个阶段向下一个阶段逐级过过渡,如同流水下泻,最终得到所开发的软件产品投入使用,这种开发模式就叫瀑布开发模式。
如:计划->需求分析->设计->编码->测试->运维
架构上,大多数都是单体架构,即每个业务对应自己的ui,自己的数据库,自己的后端服务。
随着业务发展传统的软件开发模式面临新挑战:
1、不同语言开发的应用如何通信
2、单体架构造成大量数据孤岛(各个业务数据库独立), 信息孤岛
3、代码复用度差 功能开发重复
4、用户规模变大
5、服务器压力变大
6、维护困难
7、集群扩展,资源利用率差,用户量增多后,集群规模也要增加
8、用户需要自建机房,负责集群扩展,成本太高
IDC概念
IDC是互联网数据中心(Internet Data Center)简称,传统IDC分为实体服务器托管和租用两种类型
实体服务器托管:用户自行购买硬件发往运营商机房托管,期间设备的监控和管理工作均有用户单方独立完成,IDC数据中心提供IP接入,带宽接入、店里供应和网络维护等。
租用:由IDC数据中心租用实体设备给客户使用,同时负责环境的稳定,用户无需购买硬件设备
为解决传统单体架构问题软件架构的改变:
SOA-面向服务的架构
基于SOA的架构思想将重复公用的功能抽取为组件,以服务的方式给各个系统提供服务
ESB企业服务总线作为项目与服务之间的通信桥梁
互联网+带来的挑战:
互联网+时代的业务特征:
1、用户规模大,接入方式多
2、集中式访问,流量突增
3、大数据
4、需求变化快
传统基础设施的局限性:
1、服务器设备、机房专人维护,前期投入成本高
2、倍数部署,资源利用率差
3、流量突增难以应对,不够灵活
4、创业公司无法支持高成本的投入
因此,引入了云计算,用以减少传统互联网中心业务传统IDC的成本,支持弹性伸缩,灵活应对互联网+场景
1.2、云计算简介:
云计算是一种新的提供 资源按需租用的服务模式,一种新型的互联网数据中心业务
传统IDC与云计算区别:
传统IDC自己购买硬件发往机房,业务系统自己维护,成本高,简单的集约化管理,无法快速大规模资源交付,交付周期长
云计算将规模化的硬件服务器整合虚拟到云端,为用户提供从基础设施(Iaas)到业务基础平台(PaaS)再到应用层(SaaS)的连续的整体的全套服务
资源租用范围:云计算业务租用的资源范围广泛,不局限在服务器和带宽
服务能力,云计算业务提供弹性的按需扩展的资源租用
资源透明性上,云计算业务中,用户不需要了解资源的物理信息
运维难度降低:云计算业务中,较多的沟通和少量的运维
云计算特征:
1、超大规模
2、高可靠性
3、多租户隔离
4、弹性扩展
5、按需服务
6、资源可监控计量
7、低成本
云计算的3种服务模式:
3层,也是3种服务模式:
1、IaaS,即基础设施即服务,用户无需再关注基础设施建设问题
2、Paas,即平台即服务,提供服务器平台、开发环境
3、SaaS软件即服务,通过网络程序提供软件服务
云计算解决的问题
1、规模大,按需付费
2、资源扩展问题,支持弹性伸缩,
3、可靠,快速故障恢复,保障应用高可用
4、极速,安全,易用
各模式下用户需要关注的点:
传统方式需要关注从网络层到应用层,Iaas只需关注操作系统到应用层,Paas则只需关注应用和数据库,Saas则直接使用服务,无需用户关注
仍然存在的问题:
云计算目前主要解决基础设施的问题,但应用的问题仍存在
有扩展能力但不够灵活(仍只能扩展整个应用程序包,不能单点功能扩展)
迭代、更新困难
代码有一定复用能力,但复用度较低
各业务系统数据部分开始打通,但仍存在数据孤岛
互联网+背景下开发模式演变
瀑布开发变为敏捷开发
软件开发流程上的演变:DevOps
devops是为了填补开发段和运维端之间的信息鸿沟,改善团队之间的协作关系,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。它包含了开发,测试,运维三方
软件架构演变
单体架构转变为微服务架构,把一个庞大的application拆成几个小的独立的服务,再把独立的服务串起来的一种架构设计。
软件架构演变-serverless
并非真的不需要服务器,是把服务抽象到函数级别,托管到服务平台,平台根据触发器事件完成代码运行环境的准备,调度,触发,执行,扩容