为什么想到要做分布式部署解决方案?

当项目越做越大以后,你会发现部署变成一件极其头疼的事情。当然头疼的绝不仅仅在部署一个环节,比如新服务器环境搭建当中就许多坑要踩、各种重复性的工作,包括但不仅限于增加IIS Application、修改防火墙、加入到域等。

不要慌,我不会做一个大而全的解决方案,一方面本人实在没那么多精力满足所有人的需求,另一方面很多定制化的功能我也不可能加入进来。

所以本开源项目的第一个版本的目的就相对简单而明确。

PS:将来会在此基础上扩展更多实用的功能,先卖个关子,都是跟分布式架构相关的。

第一个版本有哪些功能?

1 基础的权限控制(可能只支持一个角色,甚至是写死)

2 部署项目管理(以Jenkins为例,做自动化构建方案)

3 部署服务器管理(以Aliyun服务器为例)

4 部署组管理(包括部署组、部署组项)

5 创建部署任务(包括触发自动化构建、部署文件关联等)

6 部署服务器常驻服务(以Windows Service的形式驻留,主要完成中控的指令协助部署)

7 一键部署(支持单台或部署组)

7.1 支持手动绑定历史部署文件版本(理论上支持所有的,如Jenkins这种构建方案还会涉及到保存构建副本数量和天数等,另本功能只支持单台部署,部署组的修改版本通过创建部署任务时统一指定)

7.2 自动检测部署文件包状态(以Jenkins为例,会自动等待构建完毕,并会自行检测构建状态判断是否继续向下执行)

7.3 下载部署文件包并解压

7.4 控制负载均衡降权

7.5 部署(包括等待服务器正在执行的请求完成的检测)

7.6 触发缓存(也可以理解为触发首次访问,提升用户体验)

7.7 控制负载均衡升权

PS:这里先列出一些核心功能。另外部署过程是属于冷部署,原因是加入了负载均衡控制和触发缓存,可以更好的解决部署导致的服务预热问题。

开源计划?

首先澄清一下,本项目目前还没有任何代码,整个编写过程都会一步步的写出来,不只是单纯的开源一个项目那么简单。里面还包含了设计思路、不断的优化过程、遇到的难点攻破等。但请各位放心,因为核心功能已经写了一版,目前正在本人供职的公司使用中。

更新时间其实我并没有给自己定一个明确的目标,可能就是抽空了便写一些,直到项目完结吧。也欢迎有兴趣的人加入一起来做这件事。群号应该会找得到吧,哈哈。

题外话说完入正题。

1 项目会放在oschina的git上,原因很简单,不用FQ啊。(不是不会,是懒得翻)

2 项目会基于 .net core 来做,但可能很长一段时间只会在windows上测,保证windows上可以正常使用。

3 使用开源的UI框架、相对流行的技术选型、相对主流的架构。

4 整个编写过程中,欢迎大家提建议和意见,我会根据实际情况选择一些好的建议加入到第一个版本中。

口说无凭?

部署界面

最初的流程图,当然新版肯定是功能更多更复杂

最后最后,其实写这篇的原因是希望在我正式开始写源码之前,有一部分人可以关注到这个项目,从而给出一些建议那是最好了。

本篇因太水,自知不敢上博客园首页,欢迎扩散,欢迎扩散,欢迎扩散!

【G】开源的分布式部署解决方案 - 预告篇的更多相关文章

  1. 【G】开源的分布式部署解决方案(一) - 开篇

    做这个开源项目的意义是什么?(口水自问自答,不喜可略过) 从功能上来说,请参考 预告篇,因自知当时预告片没有任何含金量,所以并没有主动推送到首页,而是私下的给一些人发的. 从个人角度上来说,我希望.n ...

  2. 【G】开源的分布式部署解决方案(三) - 一期规划定稿与初步剖析

    G.系列导航 [G]开源的分布式部署解决方案 - 预告篇 [G]开源的分布式部署解决方案(一) - 开篇 [G]开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的 [G]开源的分布式 ...

  3. 【G】开源的分布式部署解决方案文档 - 手动安装

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 序言 因各种原因,决定先写使用文档.也证明下项目没有太监.至于安装过程复杂,是因为还没有做一键安装,这个现阶段确实没精力. 项目进度 (点击图片 ...

  4. 【G】开源的分布式部署解决方案文档 - 使用手册

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 已知问题 导航没有联动 因为权限只是做了基础的登录校验,考虑到后面导航要跟权限关联上暂时是写死的. 只有部分界面使用了Vue.js 因为刚开始没 ...

  5. 【G】开源的分布式部署解决方案文档 - Web Deploy

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 微软官方部署方式 右键项目->发布 这个大家应该再熟悉不过,在部署前有个预览界面可以看本次更新到底更新哪些文件. 既然它可以预览部署结果, ...

  6. 【G】开源的分布式部署解决方案文档 - 部署Console & 控制负载均衡 & 跳转持续集成控制台

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 设置项目部署流程 项目类型:选择Console,这个跟功能无关,只是做项目分类,后面会有后续功能 宿主:选择Console 部署方式:选择原始, ...

  7. 【G】开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的

    分析目前项目结构 眼前出现这么一坨坨的文件夹,相信很多人已经看不下去了.是的,首先就是要把它给做掉. 按照这个项目文件夹的命名意图,大概可以划分如下: 1.Business:业务代码 2.Data:数 ...

  8. SpringCloudAlibaba分布式事务解决方案Seata实战与源码分析-上

    概述 定义 Spring Cloud Alibaba Seata 官网地址 https://seata.io/zh-cn/ 最新版本1.5.2 Spring Cloud Alibaba Seata 文 ...

  9. BI系统的分布式部署原理和技术实现

    1.什么是分布式 关于"分布式系统"的定义,我们先看下书中是怎么说的.<分布式系统原理和范型>一书中是这样定义分布式系统的:"分布式系统是若干独立计算机的集合 ...

随机推荐

  1. 用free -m查看的结果:

    用free -m查看的结果: # free -m          total    used    free     shared buffers     cached Mem:           ...

  2. 解决airserver在Windows下安装失败的问题

    airserver 可以将iphone 实时投影到mac 和 pc.在mac上安装非常简单.但是在Windows上安装时会有很多问题.之前我电脑安装很快就完成了(因为我之前已经在不知情的前提先事先装过 ...

  3. java XML转JSON格式

    标签: XML转Json json 2014-05-20 20:55 6568人阅读 评论(6) 收藏 举报  分类: [J2SE基础](20)  代码如下所示,从这个例子中发现了代码库的重要性,如果 ...

  4. ListView与RadioButton组合——自定义单选列表

      标签: radiobuttonlistviewandroidlayout 2013-09-10 11:13 19396人阅读 评论(8) 收藏 举报  分类: Android(19)  版权声明: ...

  5. python mysql 2014 Commands out of sync; you can't run this command now

    这个问题出现再 mysql和c  的api. 简单的解决方法是不使用api直接把整个连接和命令传过去. 例如,cmd = 'mysql -h 192.168.32.210 -P 3316 -u bfd ...

  6. IFrame跨域访问自定义高度

    由于JS禁止跨域访问,如何实现不同域的子页面将高度返回给父页面本身,是解决自定义高度的难点. JS跨域访问问题描述:应用A访问应用B的资源,由于A,B应用分别部署在不同应用服务器(tomcat)上,属 ...

  7. iOS开发——Localizable.strings

    这篇写的不多,但是绝对诚意满满.不会像别人一样,要不不详细,要不罗里吧嗦一堆. 1.创建Localizable.strings文件 Command+N—>iOS—>Resource—> ...

  8. Bootstrap兼容处理

    接将一下代码引用到页面 </body> 之前 <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js" ...

  9. LIBPNG

    libpng 库的源码包中有个 example.c ,里面包含PNG文件读/写的示例代码,参考示例代码和注释(虽然是英文的),可以了解大致的用法. 以下是读取PNG图片的图像数据的代码,使用前还需要按 ...

  10. c#第5章 变量的更多内容 隐式和显式转换、枚举、结构、数组、

    1.目标数据 destination 英[ˌdestɪˈneɪʃn] 美[ˌdɛstəˈneʃən] n. 目的,目标; 目的地,终点; [罕用语] 预定,指定; 2.源数据 source 英[sɔ: ...