怎么使用starwind部署iscsi_2019 年总结 - 多环境多版本的部署

自己几乎经历了部署演进的所有阶段,手动部署、自动部署,部署到服务器、部署到容器。我们也在不断演进并追赶行业前沿的技术/理念。保守估计今年可以基本追赶到行业前沿的最低水平。

工作中经历了部署语言的多样化,部署目标的演化/进化,有最最原始的手动复制,也有还算前沿的 Docker,总结起来,大致经历了以下的阶段, - 单一开发语言部署单一操作系统 - 多开发语言部署单一操作系统 - 多开发部署多操作系统 - 服务器部署 - 容器化部署

单一开发语言部署单一操作系统
当时所使用的开发语言为 http://asp.net的 mvc 单体应用, 这就决定了使用的服务器必须是 Windows 操作系统的服务器(基于 mono 也可以用于 linux)。项目也属于刚刚起步,应用也比较少,需要的服务器也很少。这个时候,几乎所有的发布就是手动编译、手动部署(CV 操作)。这个时候最大的问题就是部署效率很低,但是因为应用很少,所以效率的高低并无明显感知。 多开发语言部署单一操作系统
公司在发展,业务在推进,为了能够让更多的人协同工作,发挥不同语言的的优势,采用了前后端分离的开发方式。后端采用 http://asp.netweb api + 前端 nodejs。nodejs 可以直接部署到 IIS,所以服务器还是采用 windows 操作系统(其实性能也没有网上喷的那么差,性能也挺好的)。发布的任务也越来越重,采用 Jenkins 解决手动发布的问题。在 windows 操作系统上安装了 Jenkins,毕竟 windows 操作系统,操作相对容易一些。 多开发部署多操作系统
服务器部署

随着微软推出了跨平台的 .net core 并且推出正式版本,任何一个做技术的同学都有一种对追求新技术的癖好,我们也开始跃跃欲试,对他虎视眈眈。既然是一门跨平台的语言,如果不用跨平台部署那就失去他的意义了。当然,并不是为了跨平台而跨平台,主要是希望通过跨平台的过渡能更加靠近前沿/流行的技术。容器化部署
Docker 是现在最主流的容器引擎。但是对现有的项目来说,存在一个无法忽视的问题, Windows 操作系统无法对 linux 镜像做操作(pull、build、run 等等),Linux 操作系统也无法对 Windows 镜像做操作。这就导致,开始在 windows 操作系统上安装的 Jenkins 不能满足现在的需求。需要安装多个 Jenkins 才能可以解决,但也势必带来一定运维和沟通成本。最后通过更深入的了解 Jenkins,发现他提供了 Jenkins Master + Node 的方式,Node 可使用不同的操作系统,几乎完美解决了不同操作系统编译和沟通成本的问题。
.net core 确实发展很快,不断的迭代,每个一个新的稳定版本都有很多新功能同时也修复一些 Bug。出了新的版本就代表旧的版本会在将来的某个时间点停止维护,我们只能选择在合适的时机升级版本。升级代码版本,只要不到一秒钟就说完了,开发团队就至少要花几天的时间开发和测试,DevOps 的团队就需要花更长的时间准备环境,以及保证服务器环境不出现兼容性问题。 兼容性问题? 不是已经使用 Docker 了么,每一个 image 都是单独的环境,哪里来的兼容性问题?兼容性问题来自于 Jenkins 的编译上,怎么做到一个语言多个版本编译的问题?我们已经采用了 node 编译的方式,使用更多不同的 node 啊!也可以用环境变量指定使用哪一个版本啊!
如果我现在不是 DevOps 职位是个开发职位的话,也觉着这样完全没问题。对于 DevOps 来说,这个方式的维护成本和沟通成本太高了。这只能最为保底的、最坏的解决方案。Docker 给出了解决方案 multi-stage builds,他几乎完美的解决了这个问题,中间 stage 产生的 image 不会被提交到 repository。不用再担心任何语言有任何版本的变化,也不担心有多少个版本。

最后还有一个问题没解决,由于使用 Docker 编译,中间的 stage 并不会保留,导致每次都要拉取(mvn、nuget、npm)引用的包/代码编译不够快(敏捷)。

希望你留下你对这个问题的思路/方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

家用计算机注意哪些参数,电脑小白买内存条要注意哪些?主要看哪些参数?这些知识要掌握...

内存条是电脑的核心硬件之一,它的作用主要是为CPU服务的,电脑运行的时候,CPU从硬盘里调用数据通过总线寻址放在内存里,内存相当于缓冲处理区,处理好信息后再回馈给CPU,然后电脑再根据指令运行。内存没有记忆…

java 单元测试技巧_其他一些单元测试技巧

java 单元测试技巧在我以前的文章中,我展示了有关JavaBeans单元测试的一些技巧。 在此博客文章中,我将针对单元测试一些相当常见的Java代码(即实用程序类和Log4J日志记录语句)提供另外两个提示。 测试实用程序类 如果您的实用程序…

日照职业技术学院计算机怎么样,日照职业技术学院宿舍条件怎么样 住宿环境好不好...

又到了一年一度的新生入学季,今年考上日照职业技术学院的学子们对你们的新学校有没有期待?下文中有途网小编给大家整理了日照职业技术学院的宿舍环境,供参考!日照职业技术学院宿舍环境如何大学宿舍是各位同学们在大学期间会陪伴我…

cam350怎么看顶层_蛋糕胚速学教程大全,适合初学者看哦!

蛋糕胚速学教程大全,适合初学者看哦!烘焙蛋糕最难的还是装饰,对手残星人来说,好不容易切好了蛋糕胚,抹面费了老大劲还是凹凸不平,做出来像狗狗啃过似的~快来看这份蛋糕抹面技巧,教你…

Java 14的新功能

2020年3月17日,Oracle发布了名为Java 14的Java新版本,其中包括许多新功能,工具,安全性,调试和更新的文档方面的改进。 但是,Oracle还向您提供Java的较旧版本,因为它具有向后兼容性,因…

计算机学校教学大纲,中等职业学校计算机应用基础教学大纲

附件4:中等职业学校计算机应用基础教学大纲一、课程性质与任务计算机应用基础课程是中等职业学校学生必修的一门公共基础课。本课程的任务是:使学生掌握必备的计算机应用基础知识和基本技能,培养学生应用计算机解决工作与生活中实际问题的能力…

voms下的反射大师_VOMS旧版

VOMS旧版又叫做虚拟大师,有独立运行的系统,安卓可以支持各种版本,自定义分辨率,应有游戏多开,还有虚拟定位的功能,是用户的好帮手,需要的朋友快来下载吧。VOMS旧版介绍VMOS 是一款运行在安卓上的…

java ssh客户端_简单的Java SSH客户端

java ssh客户端可以使用jcabi-ssh在Java中通过几行代码通过SSH执行shell命令: String hello new Shell.Plain(new SSH("ssh.example.com", 22,"yegor", "-----BEGIN RSA PRIVATE KEY-----...") ).exec("echo Hello, world!&qu…

hbase中的row key_hbase中RowKey的设计规则

在关心到hbase中rowkey设计的时候,说明hbase基本的知识已经了解了。就直接上干货(如果不了解的可以参考我上面一片关于hbase的自我总结的文章,我觉得总结的还是很好的)。如果文章中有错误或是不规范的地方,欢迎随时找我哈rowkey长度原则rowke…

计算机一级上机考试试题题库,2016年计算机一级上机考试题库

2016年计算机一级上机考试题库第1题、 ****** 本套题共有5小题 ******(1)新建文档WDA01.DOC,插入文档WTA01.DOC的内容,将文中所有“星星”替换为“行星”,存储为文档WDA01.DOC。(2)新建文档WDA02.DOC,插入文档WDA01.DOC的内容&…

赞扬精心设计:基于属性的测试如何帮助我成为更好的开发人员

开发人员的测试工具箱就是其中之一,很少保持不变。 可以肯定的是,某些测试实践已被证明比其他测试更有价值,但是,我们仍在不断寻找更好,更快和更具表现力的方法来测试我们的代码。 基于属性的测试 是 Java社区中鲜为人…

docker项目部署 php_「Docker部署PHP+Vue项目」- 海风纷飞Blog

创建Docker映射目录—— vue_demo # Demo项目—— php_vue—— docker-compose.yaml—— nginx———— apps # 项目代码———— conf # nginx配置文件—————— nginx.conf———— log # nginx———— vhost # 虚拟机配…

在美国本科 计算机排名2015,(word)2015年美国大学专业排名汇总-以计算机专业排名为例.doc...

(word)2015年美国大学专业排名汇总-以计算机专业排名为例美国大学经常有一些国内没有的专业,而且由于国情不同,很多在国内的热门专业,在国外可能不是那么“吃香”,另外不是名校的专业就是最好的,可能某个普通大学的专业…

stc单片机485发送多出一字节_单片机干货!STC8H案例制作分享(内含高清实物动图)...

本期,Lucy制作了九个案例分享给大家,分别为:流水灯、按键LED、数码管、点阵、定时蜂鸣器、NTC温度计、超声波测距仪、光敏RGB灯、氛围灯(红外)Lucy无偿提供全部案例的原理图和部分案例的代码。有需要的朋友先关注并私信我。需要源码私信我&am…

λ演算的语法和语义_λ和副作用

λ演算的语法和语义总览 Java 8添加了诸如lambda和类型推断之类的功能。 这使语言不再那么冗长和简洁,但是它带来了更多的副作用,因为您不必对自己的工作做得那么明确。 Lambda的返回类型很重要 Java 8推断闭包的类型。 一种方法是查看返回类型&#xf…

计算机系统中存储管理是,《计算机操作系统5、存储管理.doc

《计算机操作系统5、存储管理一、选择题1.存储器管理的主要功能是内存分配、地址映射、内存保护和( )。A.2.把逻辑地址转变为内存的物理地址的过程称作( )A. D.重定位3.物理地址对应的是( )。A.…

怎么调用获取被创建的预制体_Go 语言 Web 编程系列—— 获取用户请求数据(上)...

0、GET/POST 请求数据在 PHP 中,可以直接通过全局变量 $_GET 和 $_POST 快速获取 GET/POST 请求数据,GET 请求数据主要是 URL 查询字符串中包含的参数,以前面在线论坛项目的群组详情页为例:http://localhost:8080/thread/read?id…

Java 8 –集合sort()方法–按Employe对象(Id,名称,年龄)列出自定义排序示例...

有关在Java中对自定义对象进行排序的完整指南。 Collections.sort()方法基于Comparable或Comparator实现进行排序。 用于对Employee对象进行排序的示例自定义排序 1.简介 在本教程中,您将学习如何在java中对Custom对象进行排序 。 首先&…

删除表报正在使用_U盘拔出要不要点quot;安全删除USB硬件quot;退出?

小U盘,大用处。U盘不仅可以用来存储各种各样的文件,甚至还可以用来制作电脑启动盘、Win to Go系统盘等。直接拔还是点“安全删除”后再拔U盘呢?在用完U盘后,有的会点击电脑右下角“安全删除”才拔,有的则会不管那么多直…

cpu性能测试软件 国际象棋,CPU性能评测软件

作者选择100电脑网推荐配置了解最佳配置看首页电脑CPU的评测软件有很多,一般用户用的鲁大师就是国内家喻户晓比较流行的评测软件,但是鲁大师的权威性一直没有被市场充分肯定。在windows系统出到vista后,windows内置了电脑性能评分&#xff0c…