首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Django实现自动发布(2视图-服务版本查找和新增)
】的更多相关文章
Django实现自动发布(2视图-服务版本查找和新增)
前面做好了服务的管理,接下来是服务版本的管理,和服务类似,版本也有增删改查.先在服务的管理页面做一个入口,如下图: 需要在上一步的服务管理页面增加按钮.按钮方法,点击按钮跳转时要打开一个新的页面,所以还要增加对应的页面视图. 页面方法 templates/microservice/service.html 的标签<script type="text/html" id="barDemo">后面 增加内容 <a class="layui-bt…
Django实现自动发布(2视图-服务管理)
通常页面要能对资源进行增删改查,对应http的 POST.DELETE.UPDATE.GET 页面显示使用了layui,而layui的表格有自己的数据获取方式,所以我们的视图要做一些调整,不使用后端渲染,只返回数据 具体的实现是页面点击按钮或者导航后,服务端渲染一个空的页面,剩下的数据由页面的js驱动获取. 返回空页面的视图: from django.views import generic class ServicePageView(generic.ListView): template_na…
Django实现自动发布(2视图-任务接收)
上一篇服务版本的新增,是通过触发 gitlab 任务来实现的,那么如何得到任务的最终状态呢? 好在 gitlab 为我们提供了webhook,也就是消息钩子,可以发送pipeline消息到我们指定的地址. 当我们收到消息后,就可以跟据任务的最终状态(成功or失败)来更新数据库里相应的版本: 失败时直接更新任务状态为失败 成功时除了更新状态,还要记录版本的路径 版本的存储路径 gitlab 的pipeline任务有一个递增的ID号,我们可以直接拿过来使用,以此ID为版本目录,打包好的服务就存放在该…
解决GP服务产生的结果无法自动发布为地图服务的问题
在ArcGIS for Javascript API或REST API调用GP服务时,常常会遇到这样一种情况:GP服务运行以后,执行成功,也能够生成结果,然而结果并没有直接产生动态的地图服务供API调用(即使勾选了"view results with a map service",如下图). 那么产生这一现象的原因可能为: 1. GP服务输出的结果路径存在人为干预,也就是生成的结果不在ArcGIS for Server管理的目录下(默认执行的结果会在JOB目录的Scratch中). 2…
Django实现自动发布(1数据模型)
公司成立之初,业务量较小,一个程序包揽了所有的业务逻辑,此时服务器数量少,上线简单,基本开发-测试-上线都是由开发人员完成. 随着业务量逐渐上升,功能增多,代码量增大,而单一功能上线需要重新编译整个程序,编译时间由原来的几秒到几分甚至几十分钟,一方面效率降低,另一方面横向扩容带来的处理性能提升效果逐渐减弱.所以由大一统拆分出各个子模块,将大而全的程序"微服务"化. 微服务的好处自然是不言而喻,但是许多个服务部署.变更也确实让人头疼. 如何解决这个问题呢?百度一下大把的服务治理.服务标准…
Django实现自动发布(3发布-升级和回退)
发布实际上就是将服务的某个版本和一台主机关联,我用一张表(MicroServiceInstance)记录了主机id.服务id.版本id,目前一台主机只能部署一个版本,所以主机id和服务id要做联合索引. 当我们操作某个实例时(升级.回退),为了防止其他人也进行相关操作,要对实例当前的状态就行判断,这里用 locked 标记. 升级.回退操作类似,都是更新MicroServiceInstance表记录的版本id,可以放在一个视图里实现. 升级回退页面 点击页面的版本管理,则弹出对应服务的版本列表页…
Django实现自动发布(3发布-安装)
相对于服务的升级.回退,新部署一个服务要复杂一些,要满足以下要求: 已经运行了服务实例的主机不能重复部署 进程启动需要的配置文件要先同步到主机上 之前的升级.回退都是指进程的操作,不涉及配置文件的变更 配置文件的管理.同步比较复杂,放到后面,这里就专注于服务的安装了 不能重复部署,这个比较容易实现,资产表和实例表做个关联查询,返回所有在实例表中不存在的资产,代码大概是这个样子: def get(self, request, service_id): deployed = MicroService…
Nacos发布0.5.0版本,轻松玩转动态 DNS 服务
阿里巴巴微服务开源项目Nacos于近期发布v0.5.0版本,该版本主要包括了DNS-basedService Discovery,对Java 11的支持,持续优化Nacos产品用户体验,更深度的与Spring Cloud体系的网关集成等方面做了演进. 一.发布 DNS-F 为了进一步降低微服务多语言生态.异构系统.Kubernetes体系的服务注册与发现的实现成本,Nacosv0.5.0 发布了一款DNS-F客户端,以便支持将注册在Nacos上的服务以域名的方式暴露端点,让三方应用方便的查阅及发…
GeoServer自动发布地图服务
1 NetCDF气象文件自动发布案例 GeoServer是一个地理服务器,提供了管理页面进行服务发布,样式,切片,图层预览等一系列操作,但是手动进行页面配置有时并不满足业务需求,所以GeoServer同时提供了丰富的rest接口可供用户自己组织业务逻辑进行自动化管理. 本文以气象文件的NetCDF自动化发布的需求,阐述如何以rest接口实现用户多样性需求.气象文件特殊性在于几乎每隔一段时间就会更新,甚至逐小时或半小时的更新频率,用户如果手动发布了气象文件的若干图层作为专题服务,一旦获取到最新的气…
自动发布工具版本从python2升级成python3后遇到的种种问题(涉及paramiko,Crypto,zipfile等等)
从在公司实习到正式入职,一直还在被同事使用的是我写的一个自动发布工具.该工具的主要功能是:开发人员给出需要更新的代码包(zip格式),测试人员将该代码包部署到测服,这些代码包和JIRA数据库里的项目信息挂钩,同时这个工具也支持回滚代码包.因为涉及到sftp的相关操作,最初选择了paramiko这个饱受好评的第三方库.可是当时该库只支持Python2,所以我的这个自动化工具在Python2的环境下编写. 最近又在写一个原创的WEB自动化测试框架,在Python3环境编写,所以我装了个虚拟机,WIN…