
Security News
TypeScript is Porting Its Compiler to Go for 10x Faster Builds
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
@choerodon/devops
Advanced tools
简体中文 | English
DevOps Service
DevOps Service是Choerodon平台实现持续交付的基础. 当前版本为: 0.22.0
DevOps Service通过自主整合的DevOps工具链,集成相关的开源工具,以此形成了计划、编码、测试、部署、运维以及监控的DevOps闭环。 并且只需通过简单的配置,您便能获得最佳的开发体验。
DevOps Service
含有以下功能:
应用服务管理
:对应用服务进行管理应用服务版本管理
:对持续集成
(Continuous Integration)过程中产生的可以直接在Kubernetes
集群中进行部署的服务版本进行管理代码管理及版本控制
:对服务的代码进行版本控制和管理分支管理
:能够对服务的Git
分支进行相应的操作代码质量监测
:在CI
过程中进行代码质量数据收集,集成sonarqube
对代码质量进行监测持续集成概览
:查看服务的持续集成过程部署管理
:对持续集成所产生的服务版本通过GitOps
进行部署持续部署流水线管理
:使用工作流实现持续部署资源管理
:对部署的资源(如:网络,域名,密文等)进行管理集群管理
:管理Kubernetes
集群DevOps Service
基于Java8进行开发DevOps Service
使用GitLab
进行代码的托管。同时,通过基于GitLab Runner
实现持续集成以完成代码编译,单元测试执行,代码质量分析,docker镜像生成,helm chart打包,服务版本发布等自动化过程DevOps Service
的数据持久化choerodon-register
: 注册中心,在线上环境代替本地的eureka-server
choerodon-iam
:用户服务,与用户有关的操作依赖与此服务choerodon-gateway
: 网关服务choerodon-oauth
: 授权服务choerodon-asgard
: 事务一致性服务choerodon-message
: 通知服务gitlab-service
:gitlab服务workflow-service
:工作流服务agile-service
:敏捷服务,查询与分支有关的敏捷Issue需要依赖此服务bootstrap.yml
:
server:
port: 8060
spring:
application:
name: devops-service
cloud:
config:
failFast: true
retry:
maxAttempts: 6
multiplier: 1.5
maxInterval: 2000
uri: localhost:8010
enabled: false
mvc:
static-path-pattern: /**
resources:
static-locations: classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources,file:/dist
management:
server:
port: 8061
endpoints:
web:
exposure:
include: '*'
application.yml
:
spring:
datasource:
url: jdbc:mysql://localhost/devops_service?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: choerodon
password: choerodon
hikari:
maximum-pool-size: 15 # 数据库连接池连接数
redis:
host: localhost
database: ${SPRING_REDIS_DATABASE:1}
http:
encoding:
charset: UTF-8
force: true
enabled: true
services:
harbor:
baseUrl: "harbor.example.com" # harbor地址
username: "123456" # harbor用户名
password: "123456" # 对应harbor用户名的密码
insecureSkipTlsVerify: false
gitlab:
url: "gitlab.example.com" # gitlab地址
sshUrl: "gitlab.example.com" # 用于ssh操作的gitlab地址
projectLimit: 100 # gitlab用户可以创建的项目的数量限制
helm:
url: "helm.example.com" # 存放helm chart包的仓库地址
gateway:
url: "http://api.example.com" # 网关地址
hzero:
websocket:
# 用于连接websocket的路径
websocket: /websocket
# 与当前服务的redis数据库一致
redisDb: ${SPRING_REDIS_DATABASE:1}
# 后端长连通信密钥
secretKey: devops_ws
choerodon:
saga:
consumer:
core-thread-num: 20
max-thread-num: 20 # 消费线程数
poll-interval: 3 # 拉取消息的间隔(秒),默认1秒
enabled: true # 是否启用消费端
schedule:
consumer:
enabled: true # 启用任务调度消费端
thread-num: 1 # 任务调度消费线程数
poll-interval-ms: 1000 # 拉取间隔,默认1000毫秒
resource:
jwt:
ignore: /workflow/**, /sonar/**, /ci, /sonar/info, /v2/api-docs, /agent/**, /ws/**, /gitlab/email, /webhook/**, /v2/choerodon/**, /choerodon/**, /actuator/**, /prometheus, /devops/**, /pre_stop, /websocket
agent:
version: "0.5.0" # devops-service此版本所预期的 choerodon-agent 的版本
serviceUrl: "agent.example.com" # 用于 choerodon-agent 连接 devops-service 的地址
certManagerUrl: "agent.example.com" # 存放CertManager的地址,用于安装
repoUrl: "helm.example.com" # 存放agent的地址,用于安装
mybatis:
mapperLocations: classpath*:/mapper/*.xml
configuration:
mapUnderscoreToCamelCase: true
feign:
hystrix:
shareSecurityContext: true
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 30000
ribbon:
ConnectTimeout: 50000
ReadTimeout: 50000
asgard-servie:
ribbon:
ConnectTimeout: 50000
ReadTimeout: 50000
devops:
# 流水线生成Gitlab Ci文件中默认的runner 镜像地址
ci:
default:
image: registry.cn-shanghai.aliyuncs.com/c7n/cibase:0.9.1
pipeline:
sync:
executor:
# 核心线程池大小
corePoolSize: 5
# 最大线程池大小
maxPoolSize: 8
unterminated:
# ci流水线对未终结的流水线进行数据补偿的时间阈值, 单位: 毫秒 (默认600秒)
thresholdMilliSeconds: 600000
pending:
# ci流水线对pending的流水线进行数据补偿的时间阈值, 单位: 毫秒 (默认600秒)
thresholdMilliSeconds: 600000
jobEmpty:
# ci流水线对非跳过状态的且没有job信息流水线进行数据补偿的时间阈值, 单位: 毫秒 (默认600秒)
thresholdMilliSeconds: 600000
refresh:
# redisKey的过期时间, 用于控制同一条流水线的刷新间隔, 减少对gitlab的访问次数
periodSeconds: 60
# 批量部署的请求条数限制
batch:
deployment:
maxSize: 20
# websocket的最大缓冲区大小,单位字节byte
websocket:
buffer:
maxTextMessageSize: 4194304
maxBinaryMessageSize: 4194304
创建数据库devops_service
,创建用户choerodon
,并为用户分配权限:
CREATE USER 'choerodon'@'%' IDENTIFIED BY "choerodon";
CREATE DATABASE devops_service DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON devops_service.* TO choerodon@'%';
FLUSH PRIVILEGES;
拉取DevOps Service
代码到本地:
git clone https://github.com/choerodon/devops-service.git
在项目根目录执行命令: mvn clean package spring-boot:repackage -Dmaven.test.skip=true && bash init-database.sh
使用下列命令运行或直接在集成环境中运行 DevopsServiceApplication
mvn clean spring-boot:run
如果您发现任何缺陷或bug,请及时 issue告知我们 。
欢迎参与我们的项目,了解更多有关如何参与贡献的信息。
FAQs
English | [简体中文](./README.md)
The npm package @choerodon/devops receives a total of 42 weekly downloads. As such, @choerodon/devops popularity was classified as not popular.
We found that @choerodon/devops demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 8 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.