001 云开发基础

学习目标:

  1. 了解传统业务的特点

  2. 了解传统应用的开发模式

  3. 了解云计算的基本概念

  4. 了解云时代的业务特点和开发模式

目录:
  1. 传统应用开发

    1.1 传统IT架构的特点

    1.2 业务驱动下的IT架构变革

    1.3 “互联网+”带来的挑战

  2. 云端应用开发

    2.1 云计算简介

    2.2 云计算解决的问题

    3.3 云时代的开发模式

[A] 传统IT架构的特点

  1. 在传统的IT架构下,企业进行内部的信息化建设,用于加快企业发展,提高工作效率。

    企业信息化建设:

      OA管理系统

      ERP管理系统

      CRM管理系统

      学生档案管理系统

      资产管理系统

      。。。。。。

  2. 传统IT结构下的信息化建设的特点:

      1. 在企业内部应用

      2. 需求变化慢

      3. 用户规模小

      4. 需求变化慢

      5. 技术复杂度低  

      6. 迭代升级缓

  3. 传统应用的开发模式

      软件开发模式:

        瀑布开发模型:标准化,阶段清晰,环环相扣

                        

      软件架构开发模式:

        单体架构:开发速度快,成本低

                  

[B] 业务驱动下的IT架构变革

  1. 业务发展带来的挑战:

    1. 不同语言开发的应用之间如何通信

    2. 易产生数据孤岛

    3. 代码复用度差

    4. 用户规模变大

    5. 的服务器压力大

     。。。。。。

  2. IT架构如何支撑业务发展

    1. 硬件基础设施方面

      问题:随着用户增多,服务器的集群规模也需要不断扩大,需要能够快速响应业务的变化,所以此时对于硬件设施的建设要求会更高。

      解决方案1:自建机房,拓展服务器集群

           所需要承担的工作如:

              规划建设类:机房设计,土建。。。。。。

              部署类:服务器,存储。。。。。。

              运维类:监控,告警,安全运维。。。。。。

              业务不熟,安全运维,可用性,可靠性

      缺点:成本太高,周期太长

      解决办法2:租用服务器IDC

          IDC是互联网数据中心(Internet Data Center)的简称。传统IDC分为实体服务器托管和租用两种类型。

          实体服务器托管:用户自行购买硬件发往运营商机房进行托管,期间设备的监控和管理工作均由用户单方独立完成,IDC数据中心提供IP接入,宽带接入,电力供应和网络维护等

          租用:由IDC数据中心租用实体设备给客户使用,同时负责环境的稳定,用户无需购买买硬件设备。

      特点:大大降低了成本

    2. 软件架构

      问题:传统的单体应用架构造成大量的信息孤岛,各个业务部门软件之间不能互通,代码的复用度比较低,所以必须要有新的架构来改善现有状况

      解决办法:面向服务的框架(Service-Oriented Architecture,SOA)

           SOA架构思想是将重复公用的功能抽成组件,以服务的方式给更系统提供服务

           ESB企业服务总线作为项目和服务之间的桥梁

                

       特点:部分解决传统软件架构下的问题

[C] “互联网+”带来的挑战

  1. “互联网+”时代的业务特点:

    1. 用户规模大,接入方式多

    2. 集中式访问,流量突增

    3. 大数据

    4. 市场需求变化很大

     。。。。。。

  2. 在应对“互联网+”时代到来时,传统技术设施建设的局限性:

    1. 服务器设备,机房专人维护,前期投入成本高

    2. 倍数部署,资源利用率差,资源浪费

    3. 流量突增难以应对,不够灵活

  3. 是否可以按需付费,弹性伸缩?

    of course  ——>  云开发

[D] 云计算的简介

  1. 云计算定义

    云计算是一种新的提供资源按需租用的服务模式

    云计算是一种新型的互联网数据中业务

  2. 传统IDC与云计算的区别

    传统IDC:

      1. 自己购买硬件发往机房,业务系统自己维护,成本高;

      2. 简单的集约化管理,无法快速大规模资源交付;

      3. 交付周期长;

    云计算:

      将规模化的硬件服务器整合虚拟到云端,为用户提供从基础设施(IaaS)到业务基础平台(PaaS)再到应用的层(SaaS)的连续的整体的全套的服务

                      

  3. 云计算的特征

                    

   4. 云计算的服务模式

    1. SaaS

      (Software as a Service) 软件即服务,SaaS侧重于服务,通过网络提供软件程序服务

      类似于:在饺子店吃饺子  ——>  用户只需要付费即可,商家提供一切服务

    2. PaaS

      (Platfrom as a Service) 平台即服务,PaaS侧重于平台,以服务器平台或者开发环境提供服务

      类似于:煮好的饺子  ——>  用户只需要提供餐桌,餐具即可享用

    3. IaaS

·      (Infrastructure as a Service) 基础设施即服务,IaaS注重计算资源的共享,消费者通过Internet从资源池中获取IT相关基础设施资源

      类似于:超市的速冻饺子  ——>  用户不必从和面开始工作

[E] 云计算解决的问题

  1. 规模大,按需付费

    √  成本大大降低

  2. 弹性

    √  优雅的应对流量突增,灵活拓展

  3. 可靠,快速故障恢复

    √  保证应用高可用

  4. 极速,安全,易用

    √  几分钟时间即可轻松获取一个,数百个甚至数千个服务器实例,用户可一键购买,配置,扩展,管理自己的服务,全方位保证应用

  有了云计算,使用者所需要关注的点大大减少:

                      

  云计算仍存在的问题:

    1. 有拓展能力,但不够灵活

    2. 迭代,更新困难

    3. 代码有一定的复用能力,大那是复用度比较低

    4. 各个业务系统数据部分开始打通,但是数据孤岛仍然存在

[F] 云时代开发模式

  1. 特点:基于与特性进行开发,开发出来的软件具有水平拓展,低门槛准入和高解耦复用等云计算特性

    云时代开发变革:

      开发模式:理论支撑

      软件架构:实践指导

  2. 开发模式的转变    

    传统开发模式转变为敏捷开发

      敏捷开发是一种应对需求快速变化的软件开发能力

    敏捷开发特点:
      1. 迭代快,开发周期短;

      2. 面对面交流,只写必要文档;

      3. 每天都输出成果,客户能看得到

      4. 沟通多,容易发现问题

  3. DevOps

    DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程是的软件构建,测试,发布更加快捷,频繁和可靠。

    DevOps其实包含了三个部分:

      1. 开发

      2. 测试

      3. 运维

  4. 软件架构的演变——微服务架构

    在云开发时代,传统的单体架构转变为微服务架构,即把一个庞大的application拆分成几个小的独立的服务,再把独立的服务穿起来的一个架构设计。

    微服务架构特性:

      1. 日日可更新  

          基于DevOps和微服务架构,通过灰度发布,金丝雀等方法,让变更不再头疼

      2. 时时可更新

          面对双十一流量洪峰,记性弹性扩缩容,基于不同的仓库数据,实时更新,热生效

      3. 能力可积累

          开发的代码或者接口,都可以进行服用,达到越来越快的效果

      4. 技术可共存

          基于微服务的spring cloud或者service mesh可以进行跨语言,跨系统的对话,不排他

    传统应用和云端应用的区别:

                      

  技术栈区别:

                      

  云时代开发的分类:

    1. 本地应用迁移到云端

        已有应用使用云计算资源,实现弹性伸缩,减少成本以及维护工作,适合旧系统迁移,无需系统重构

    2. 基于云端特性开发

        基于云计算资源,运输局库等进行开发工作,负载能力有一定的提升,但还不足以应对高并发,市场快速变化需求

    3. 云原生应用开发

        基于微服务架构,容器,持续继承,devops等;适合新业务,需求快速变化,高并发等互联网应用场景

    4. 无服务器Serviceless

        业务代码委托给平台,通过事件触发,使用简单,高效,大幅降低开销

原文地址:https://www.cnblogs.com/carreyBlog/p/14434413.html