初创型公司-持续部署系列(一)服务架构

本人是一个运维工程师,所以不会从软件层面上去设计架构。网上很少有.net为例的持续交付,这次我们就以.net服务来说明初创型公司怎么做持续交付。

本次采用最基础的可扩展的集群架构

Paste_Image.png

这也是我建议初创型公司使用的架构,网站静态页面使用cdn缓存,与后端交互则走nginx负载层。nginx把外网流量均衡到后端各个服务器,服务器连接后端数据库,处理数据后并返回给用户。

** 如果预算允许的话,还可以加强下高可用性,比如使用下列架构。**

Paste_Image.png

面开始介绍线上环境持续交付的操作。测试环境稍后会说明。任何复杂的事情,画画流程图就显得清晰明了。下面请看线上持续交付的流程图

分为两步骤操作

** 第一步:编译打包**

Paste_Image.png

编译任务由jenkins操作,而不是由开发操作,一是为了节省开发的时间,而是确保版本控制里的代码是正确的,可编译得。

此处需要用到的东西:

  • git 用来拉去代码
  • msbuild 用来编译代码
  • 7z 用来压缩代码
  • powershell 用来传送代码到后端服务器

第二步:发布

Paste_Image.png

打包和发布分开来的原因,一是减少代码发布时间,而是避免在发布过程中出现问题,我们在初创型公司也知道,到处都是坑,随时都会出现问题。

此处需要用到的东西:

  • powershell 用来执行后端服务器上的发布脚本
  • 7z 用来解压代码
  • curl 用来操作consul
  • bat 用来发布iis站点

对于持续交付的需求:

  1. 在发布过程中,服务不能中断;采用灰度发布。
  2. 提供维护界面;在出现发布错误的时候,自动的将维护界面展现给用户。
  3. 当部署代码出错时,可以回滚至上一版代码。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 163,994评论 24 696
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 128,836评论 18 137
  • 考试的座位是按上一次的名次排的,所以他正好又与林渺隔一个走道。他做完题目看她时,只看见一对惺忪的眼睛在桌子上似望非...
    何青猊阅读 59评论 0 2
  • 记得年少的时候,喜欢过班里的一个男生。 喜欢他的原因很简单,就是因为和他同名同姓。 现在想起来,我那时脑袋让门挤了...
    奔跑的图图阅读 153评论 1 2
  • 今天应某人允许(其实就是想拍照,顺便解解心里的馋),买了人生中第一包香烟。 不是第一次抽,和同学玩儿会抽两根,酒喝...
    Forri阅读 154评论 0 0