作者Lizeyang来源DevOps云学堂(ID:idevopsvip)基于Gitlab实现项目端到端交付实践,从需求开发开始到交付流水线实现应用发布。每个项目团队的工作流都是不一样的,本文档中的工作流是根据之前项目团队工作模式而配置的。重点参考技术的实现方式,工作流可以根据自身团队情况而定义。来源:http:www.idevops.site1.整体规划设计创建issue创建特性分支特性分支提交流水线合并分支流水线发布分支流水线创建issues关联特性分支(特...
2022-06-22 17:21:40 8255浏览 0点赞 0回复 0收藏
作者Lizeyang来源DevOps云学堂(ID:idevopsvip)Docker快速入门1.1安装docker(Linux)yum源:https:mirrors.tuna.tsinghua.edu.cndockercelinuxcentosdockerce.repo为了速度可以替换文件中的url。:%sdownload.docker.commirrors.tuna.tsinghua.edu.cn\dockercegDockerversion19.03.12,build48a66213fednfconfigmanageraddrepohttps:download.docker.comlinuxcentosdockerce.repodnflistdockercednfinstalldockercenobestysystem...
2022-06-22 17:21:23 6972浏览 0点赞 0回复 1收藏
作者Lizeyang来源DevOps云学堂(ID:idevopsvip)本文主要讲解使用Helm在K8S中部署MatterMost,涉及到一些坑需要修改chart模板文件。点击上面图片,免费获取视频教程。MattermostMattermost是为开发团队推动创新而构建的开源消息传递平台。支持私有云部署在不牺牲隐私的情况下提供了现代通信的优势。Mattermost为企业提供了自治能力和可扩展性,使他们能够在满足需求的同时提高生产力IT和安全团队的要求。Mattermost可轻松与流...
2022-06-22 17:21:12 7378浏览 0点赞 0回复 0收藏
作者Lizeyang来源DevOps云学堂(ID:idevopsvip)本文主要讲解prometheus的基本使用,适合初学者入门。安装部分在官网下载对应的压缩包文件,解压、添加系统服务器、启动。Nodeexporter安装命令tarzxfnodeexporter0.17.0.linuxamd64.tar.gzCusrlocalvimetcsystemdsystemnodeexporter.service[Unit]DescriptionnodeexporterAfternetwork.target[Service]RestartonfailureExecStartusrlocalnodeexporter0.17.0.linuxamd64nodeexpo...
2022-06-22 17:20:32 5056浏览 0点赞 0回复 0收藏
作者Lizeyang来源DevOps云学堂(ID:idevopsvip)使用Docker完成Jenkins部署,配置构建环境静态Slave与动态Slave。Docker部署Jenkins前往DockerHub下载Jenkins长期支持版本镜像。查看官方的镜像历史(获取Jenkins相关信息)ARGhttpport8080ARGagentport50000ARGJENKINSHOMEvarjenkinshomeARGREFusrsharejenkinsrefENVJENKINSHOMEvarjenkinshomeENVJENKINSSLAVEAGENTPORT50000启动Jenkinsdockerrunnamejenkinsitd\p8081:8080\p5000...
2022-06-22 17:20:18 8129浏览 0点赞 0回复 0收藏
作者Lizeyang来源DevOps云学堂(ID:idevopsvip)使用Prometheus对系统进行监控,使用Grafana进行数据展示。我的环境是K8S,我的部署方式是通过yaml文件进行部署。已经部署文件上传到了Github地址:https:github.comzeyanglidevopsonk8s.1、部署nodeexporter对集群进行监控部署nodeexpoter对k8s集群监控使用DaemonSet方式使用最新镜像:nodeexporter:v0.18.1部署描述文件如下:在这里我创建了一个DaemonSet类型的部署,会在每个...
2022-06-22 17:19:23 3.1w浏览 0点赞 4回复 2收藏
作者Lizeyang来源DevOps云学堂(ID:idevopsvip)主要内容pod管理(创建、删除、更新)使用label对pod管理简介其实在日常的工作中,我们并不会直接在PaaS平台运行容器,而是以pod为单位对应用进行部署。一个pod可以包含一个或多个容器,pod中的容器肯定是在同一台主机中绝不会跨节点。我们为什么需要podpod能够解决什么问题呢Docker和Kubernetes期望每个进程运行在自己的容器中。试想一下一个容器包含多个进程是多么糟糕的事情。...
2022-06-22 17:19:02 4528浏览 0点赞 0回复 0收藏
bitmap是redis的一种扩展数据类型,主要用于二值状态统计,比如公司记录员工打卡记录,电商网站记录用户登录行为,积分商城记录用户签到情况。bigmap底层使用的是String的数据结构,而String保存在计算机中的格式是二进制的字节数组,这样bitmap就充分利用了每个字节的bit位,大大节省了内存开销。下面我们看一下bitmap的使用。员工打卡假如一个公司有100个员工,公司要对员工11月份的打卡行为进行统计,我们可以为11月份每一天...
2022-05-05 14:56:51 6359浏览 0点赞 0回复 0收藏
这几天,kubernetes社区发生了一件大事,1.20版本宣布放弃docker,圈内一下子炸锅了。我们看一下官方描述:Dockersupportinthekubeletisnowdeprecatedandwillberemovedinafuturerelease.Thekubeletusesamodulecalled"dockershim"whichimplementsCRIsupportforDockerandithasseenmaintenanceissuesintheKubernetescommunity.WeencourageyoutoevaluatemovingtoacontainerruntimethatisafullfledgedimplementationofCRI(v1alpha1or...
2022-05-05 13:02:46 6534浏览 0点赞 0回复 0收藏
redis在很早之前就支持消息队列了,使用的是PUBSUB功能来实现的。PUBSUB有一个缺点就是消息不能持久化,如果redis发生宕机,或者客户端发生网络断开,历史消息就丢失了。redis5.0开始引入了stream这个数据结构,stream可以很好地用于消息队列,它支持消息持久化,同时可以记录消费者的位置,即使客户端断开重连,也不会丢失消息。本篇文章我们就来聊一聊基于stream的消息队列使用。stream队列简介基于stream实现的消息队列有4个...
2022-05-05 12:59:02 9812浏览 0点赞 0回复 0收藏
单体数据库时代,随着系统交易量的不断上升,数据库读写性能出现了严重下降。我们可以借助分库分表中间件,比如mycat、shardingjdbc来实现分库分表,缓解单库的读写性能。但是分库分表中间件并不支持事务,如果要保证数据一致性,就需要借助于分布式事务中间件,比如阿里巴巴的seata。后来分布式数据库逐渐成为解决数据一致性的选择,目前分布式数据库产品已经比较成熟,支持ACID事务,本文就来聊一聊分布式数据库。增加代理层...
2022-05-05 12:58:42 8976浏览 0点赞 0回复 0收藏
单表的数据量如果太大,会影响到读写性能。我们可以使用分库分表来解决单表的性能问题。Oracle的分区表是将一张大表在物理上分成几张较小的表,从逻辑上来看仍然是一张完整的表。这样每次DML操作可以只考虑其中一张分区表。oracle建议单表大小超过2GB时就使用分区表。今天我们就来聊一聊分区表的使用。分区类型范围分区范围分区是最常用的分区方法,它使用分区键来作为划分分区的依据,分区键可以使用时间、id等易于比较的字段...
2022-05-05 12:58:02 5724浏览 0点赞 0回复 0收藏
一条sql就能让oracle挂了,真的是不敢相信啊,前几天生产上确实出现了这样一个故障,我们来一起做一个事件回放。系统介绍系统架构见下图:application1和application2是一个分布式系统中的2个应用,application1连接的数据库是database1,application2连接的数据库是database2,application2生产的数据要给application1做跑批使用。application1要获取database2的数据,并不是通过接口来获取的,而是直连database2来获取,因此a...
2022-05-05 12:57:09 7722浏览 0点赞 0回复 0收藏
又到了金三银四跳槽季,好多同学已经开始行动了。今天我来助力一把,送出这套redis面试题,助力大家通关。1redis为什么响应快1.1数据保存在内存中redis数据保存在内存中,读写操作只要访问内存,不需要磁盘IO。1.2.底层数据结构redis的数据以key:value的格式存储在散列表中,时间复杂度o(1)。redis为value定义了丰富的数据结构,包括动态字符串、双向链表、压缩列表、hash、跳表和整数数组,可以根据value的特性选择选择最高效...
2022-05-05 12:56:36 6028浏览 0点赞 0回复 0收藏
最近,confluent社区发表了一篇文章,主要讲述了Kafka未来的2.8版本将要放弃Zookeeper,这对于Kafka用户来说,是一个重要的改进。之前部署Kafka就必须得部署Zookeeper,而之后就只要单独部署Kafka就行了。[1]1.Kafka简介ApacheKafka最早是由Linkedin公司开发,后来捐献给了Apack基金会。Kafka被官方定义为分布式流式处理平台,因为具备高吞吐、可持久化、可水平扩展等特性而被广泛使用。目前Kafka具体如下功能:消息队列,Kafka...
2022-05-05 12:56:08 7771浏览 0点赞 0回复 0收藏
面试官:你们系统是怎么实现分布式锁的我:我们使用了redis的分布式锁。具体做法是后端接收到请求后加入一个分布式锁,如果加锁成功,就执行业务,如果加锁失败就等待锁或者拒绝请求。业务执行完成后释放锁。面试官:能说一下具体使用的命令吗我:我们使用的是SETNX命令,具体如下:SETNXKEYNAMEVALUE设置成功返回1,设置失败返回0。如下图,客户端1加锁成功,客户端2获取锁失败:面试官:这样设置会不会有问题呢如果加锁成功的客户...
2022-05-05 12:53:28 1.1w浏览 1点赞 0回复 0收藏
今天,系统中的一个业务处理莫名地执行了6个小时都没有结束,正常处理也就是3分钟左右,对原因进行定位,发现是在Oracle客户端上同步执行一个命令没有响应。今天来分享一下这个问题,让更多的人避开这个坑。1业务场景我们要把一个csv文件(文件名biz.csv)中的数据读取到Oracle数据库表(表名tbiz,tbiz)中,数据库表tbiz表结构如下:biz.csv文件内容如下:id,a,b,c1,a1,b1,c12,a2,b2,c23,a3,b3,c3把biz.csv文件的内容读入到表tbiz...
2022-05-05 12:53:06 5926浏览 0点赞 1回复 0收藏
简介Shippable是一个DevOps流水线平台,可帮助开发人员和DevOps团队获得CICD,并使软件发布频繁,可预测且无错误。为此,我们将所有DevOps工具和活动连接到事件驱动的有状态工作流中。Shippable的DevOpsAutomation平台为您提供了一种简便的方法,可为您的项目设置持续集成(CI),并针对源代码控制存储库中的任何更改自动进行单元测试,打包和部署。背景有大量的DevOps工具可用于配置,配置管理,持续集成,部署等。如今,大多数D...
2022-05-05 12:52:17 6272浏览 0点赞 0回复 0收藏
如果让三个人描述DevOps,您将得到四个不同的答案。有时,从事运营工作的开发人员被称为DevOps。其他人则说这与基础架构和部署的自动化有关。有时,您可以看到DevOps是sysadmins的现代化标签。我们可以看到该术语很流行。那到底是什么呢什么是DevOpsDevOps的第一种方式是通过组织中各个职能领域(从收集需求到生产中的软件运维)创建平衡稳定的工作流程。重点放在整个系统的全局目标上,而不是单个部门的局部目标上。为了使概念更...
2022-05-05 12:50:13 6154浏览 0点赞 1回复 0收藏
Jenkins是什么Jenkins是一种自动化工具。与他一起,可以创建工作来构建,测试和部署应用程序。可以在jenkins中创建管道。什么是管道管道是需要做的所有事情的步骤组成的脚本。例如:创建一个管道来构建代码。第一步是签出git代码,此后需要测试,构建,打包,创建docker映像并最终部署代码。对于Jenkins的第一步,让我们在机器中创建一个容器。您需要在机器上安装并运行docker。执行以下命令:dockerrun namejenkinscip8080:80...
2022-05-05 12:49:43 6654浏览 0点赞 0回复 0收藏