![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DevOps
文章平均质量分 80
reboot_xwa
这个作者很懒,什么都没留下…
展开
-
GO 语言操作 redis 数据库
redis数据库是一种高性能的Key-Value数据库 NoSQL数据库 缓存型数据库 key-value型数据库 错误的说法非关系型数据库1.redis介绍1.1NoSQL:一类新出现的数据库(not only sql)泛指缓存型的数据库不支持SQL语法存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式NoSQ...原创 2020-03-27 17:10:13 · 354 阅读 · 1 评论 -
Kubernetes CRD
CRDGitHub地址:https://github.com/kubernetes-sigs/kubebuilderKubernetes 里资源类型有如下所示:上述资源类型可以满足大多数分布式系统部署的需求但是在不同应用业务环境下,对于平台可能有一些特殊的需求,这些需求可以抽象为 Kubernetes 的扩展资源,而 Kubernetes 的 CRD (CustomResour...原创 2020-03-20 11:57:52 · 380 阅读 · 0 评论 -
CMDB 详解
什么是 CMDB?“CMDB 即配置管理数据库,通过获取、维护,检查企业的IT资源,从而高效控制与管理不断变化的 IT 基础架构与 IT 服务,并为其它系统,例如任务调度、运维工单、发布管理等系统提供准确的配置信息。”早期 CMDB 是以数据存储为驱动来进行建设的,现在比较主流的 CMDB 的建设方式,是以应用和业务驱动的,需要什么数据,就创造什么数据,通过灵活数据建模,来实现以需求为导向...原创 2020-03-07 07:59:44 · 16171 阅读 · 2 评论 -
运维大神如何使用 Golang 日志监控应用程序
你是如何使用 Golang 日志监控你的应用程序的呢?Golang 没有异常,只有错误。因此你的第一印象可能就是开发 Golang 日志策略并不是一件简单的事情。不>支持异常事实上并不是什么问题,异常在很多编程语言中已经失去了其异常性:它>们过于被滥用以至于它们的作用都被忽视了。-- Nils本文导航1、Golang 日志基础使用 Golang “log” 库...转载 2020-02-27 11:08:32 · 1185 阅读 · 0 评论 -
GO 语言之 Goroutine 原理解析
并发一个 CPU 上能同时执行多项任务,在很短时间内,CPU 来回切换任务执行(在某段很短时间内执行 程序 a,然后又迅速得切换到程序 b 去执行),有时间上的重叠(宏观上是同时的,微观仍是顺序执行),这样看起来多个任务像是同时执行,这就是并发。并行当系统有多个 CPU 时,每个 CPU 同一时刻都运行任务,互不抢占自己所在的 CPU 资源,同时进行, 称为并行。进程CPU 在切换程...原创 2020-02-13 11:39:32 · 2549 阅读 · 0 评论 -
Go 微服务框架 micro
微服务是什么 微服务是一种架构风格,也是一些协同工作小而自治的服务 微服务的颗粒度比较小,一个大型软件应用由多个微服务组成 每种服务只做一件事,一种松耦合能够被独立开发和部署的无状态服务我们怎么做的微服务 使用 micro 微服务框架+代码生成器提高开发效率 持续集成:代码提交后,自动发布测试环境 使用分布式调用链追踪 ...原创 2020-01-02 11:06:10 · 197 阅读 · 0 评论 -
Kubernetes 之 Nginx 动静态 PV 持久存储 下篇
接上篇Kubernetes 中部署 NFS Provisioner 为 NFS 提供动态分配卷(上篇)一、nginx 使用 nfs 静态 PV1、静态 nfs-static-nginx-rc.yaml##清理资源kubectl delete -f nfs-static-nginx-rc.yaml -n testcat >nfs-static-nginx-rc...原创 2019-12-26 14:46:09 · 269 阅读 · 0 评论 -
Go 和 Android 集成实战
看到这个标题,你可能会问,为什么要在 Android 中运行 Go,直接使用 Java 不挺好吗?是的,如果你有现成很强大的 Java 团队,这没有问题,但并不是所有团队都是如此。而且我在这里想强调的是 Android 与 Go 的集合,即在 Android 程序中使用 Go 而不是完全用 Go 来写 Android 程序。我能想到在 Android 中用 Go 的一些原因:团队熟...原创 2019-12-20 16:29:45 · 459 阅读 · 0 评论 -
Unit Test In Go With Docker
本篇文章主要讲解如何在 Docker 中进行 Go 单元测试,依赖 Docker 和 Go Modules。为什么是 Docker在 Docker 之前我们往往需要在 Jenkins 服务器上配置不同的 Go 版本以及针对每个项目配置 GOPATH,项目之间的隔离性差,经常出现基础库版本冲突的问题。有了 Docker,我们可以在不同容器中运行单元测试,该测试不局限不同项目,甚至可以是同...原创 2019-12-16 17:25:38 · 253 阅读 · 0 评论 -
Kubernetes 之 Nginx 动静态 PV 持久存储 下篇
接上篇Kubernetes 中部署 NFS Provisioner 为 NFS 提供动态分配卷(上篇)一、nginx 使用 nfs 静态 PV1、静态 nfs-static-nginx-rc.yaml##清理资源kubectl delete -f nfs-static-nginx-rc.yaml -n testcat >nfs-static-nginx-rc.yaml&l...原创 2019-12-04 11:17:09 · 298 阅读 · 0 评论 -
如何在 Ubuntu 上交叉编译 ARM 架构的 CGO 程序
我们都知道在不涉及 CGO 的时候,Go 的交叉编译非常简单,只需要设置对应的 GOOS 和 GOARCH 即可,但当涉及到 CGO 时,问题就变得有点复杂了,因为你需要指定特定的 GCC。例如,想在 Ubuntu 上交叉编译一个带有 CGO 的动态库,目标 CPU 架构为 arm,我们该如何操作呢?示例代码# shared.gopackage mainimport "C"...原创 2019-11-26 10:37:59 · 2165 阅读 · 0 评论 -
Go http.Flusher 在实际项目中的应用
最近在使用 Docker Go SDK 做开发的时候,参考了官方的示例代码:package mainimport ( "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" "...原创 2019-11-22 12:25:34 · 663 阅读 · 0 评论 -
Kubernetes 中部署 NFS Provisioner 为 NFS 提供动态分配卷(上篇)
一、NFS Provisioner 简介NFS Provisioner 是一个自动配置卷程序,它使用现有的和已配置的 NFS 服务器来支持通过持久卷声明动态配置 Kubernetes 持久卷。持久卷被配置为:namespace−{pvcName}-${pvName}。二、External NFS 驱动的工作原理K8S 的外部 NFS 驱动,可以按照其工作方式(是作为 NFS ser...原创 2019-11-19 19:49:32 · 1487 阅读 · 0 评论 -
Prometheus+Consul服务自动发现监控
一、简介在上一篇Prometheus+Node_exporter+Grafana+Alertmanager 监控部署(上)里,已经有了 promethues 的一套监控环境。但是这里有个问题,就是在 prometheus.yml 里配置需要监听的服务时,是按服务名写死的,如果后面增加了节点或者组件信息,就得手动修改此配置,并重启 promethues;那么能否动态的监听微服务呢?Prome...原创 2019-11-11 17:57:26 · 1451 阅读 · 0 评论 -
Prometheus+Node_exporter+Grafana+Alertmanager 监控部署(上)
一、Prometheus 安装及配置1、下载及解压安装包cd /usr/local/src/export VER="2.13.1"wget https://github.com/prometheus/prometheus/releases/download/v${VER}/prometheus-${VER}.linux-amd64.tar.gzmkdir -p /data0/p...原创 2019-11-06 14:53:48 · 827 阅读 · 0 评论 -
cadvisor 与 Prometheus 集成
在之前的一篇文章容器监控之 cadvisor (一)已经介绍了如何通过 cadvisor 来收集容器的运行状态信息,那这篇文章将具体讲解如何与 Prometheus 集成并通过 Prometheus 查看收集的数据。主要内容:cadvisor 与 Prometheus 集成 在 Prometheus 中查看容器的 CPU,内存,网络流量等信息cadvisor 与 Prometheu...原创 2019-09-25 10:50:52 · 1209 阅读 · 0 评论 -
“古怪的 Python 内存泄漏”怎么破?
笔者曾经开发过的几个大型 Django 应用程序都在某个时候出现了内存泄漏。Python 进程缓慢地增加它们的内存消耗,直到崩溃。这一点也不好玩。即使自动重新启动进程之后,仍然会有一些宕机问题。Python 中的内存泄漏通常发生在无限增长的模块级变量中。这可能是一个具有无穷大 maxsize 的 lru_cache 变量,也可能是一个在错误范围内声明的简单列表。泄漏也不是只有发生在你自己写...翻译 2019-10-11 10:44:40 · 1549 阅读 · 0 评论 -
Prometheus 的优雅关闭姿势
最近在看 Prometheus 的源代码,发现它自带了优雅的关闭方式,这和我以前博文讲到的热更新十分相似。如何优雅关闭 使用 kill 命令 因为 Prometheus 是一个 Unix 二进制程序,我们可以向 Prometheus 进程发送 SIGTERM关闭信号。 使用pgrep-f prometheus找到运行的 Prometheus 进程号 使用kill...原创 2019-06-04 11:04:00 · 13125 阅读 · 0 评论 -
Docker快速搭建zookeeper3.4集群
本文由作者:蛮大人 授权发布链接:https://opsdev.fun/2018/06/19/O1-8-40-Docker%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BAzookeeper%E9%9B%86%E7%BE%A4/著作权归作者所有。转载请联系作者获得授权。项目引入了 zookeeper,甲方一时提供不了开发用的 zookeeper 服务器。只能我们...原创 2018-12-27 10:17:22 · 683 阅读 · 0 评论 -
无监控不运维——Prometheus 快速入门
Prometheus 是由 SoundCloud 开发的开源监控报警系统和时序列数据库(TSDB),自 2012 年起,许多公司及组织已经采用 Prometheus,并且该项目有着非常活跃的开发者和用户社区,现在已经成为一个独立的开源项目,并且保持独立于任何公司,Prometheus 在 2016 加入 CNCF ( Cloud Native Computing Foundation ), 作为在...原创 2019-09-19 11:20:53 · 442 阅读 · 0 评论 -
jenkins Pipline 庖丁解牛
9月12日晚21:00 为大家带来干货分享结合实际工作实战案例为大家带来 Jenkins Pipline 必知必会的一些知识。主要内容如下:Pipline 语法讲解 Pipline 项目实战-Maven JAVA 项目构建 Pipline 项目实战-NodeJS 项目构建 分享一个多语言构建的 Pipeline 小栗子1.Pipline 的组成Jenkins Pipeline...原创 2019-09-11 10:37:42 · 180 阅读 · 0 评论 -
如何在容器中运行 Jenkins pipeline 任务
持续集成中的 pipeline 技术和 docker 都是当前正在发展的主流方向,当然把它们结合起来在 CI/CD 过程中发挥出更强大的威力也是大家共同的目标。本文将介绍如何在 Jenkins pipeline 中集成使用 docker,好在当前的 Jenkins 已经默认通过插件实现了与 docker 的集成,所以这将是一段轻松愉快的旅程。添加 linux 主机作为 build agent...转载 2019-09-09 11:02:22 · 342 阅读 · 0 评论 -
Docker 搭建 Django+Mariadb 环境
本文由作者:蛮大人 授权发布链接:https://opsdev.fun/2017/07/17/O1-8-02-Docker%E6%90%AD%E5%BB%BADjango-Mariadb%E7%8E%AF%E5%A2%83/著作权归作者所有。转载请联系作者获得授权。阅读建议先通读全文后,再自行决定需要实践的步骤。后文总是有更简洁更快更好的实践。不过,新人建议从头到尾实践,也不...原创 2018-12-25 15:59:37 · 847 阅读 · 1 评论 -
Docker 验证 Centos7.2 离线安装 Docker 环境
本文由作者:蛮大人 授权发布链接:https://opsdev.fun/2018/05/09/O2-0-Docker%E9%AA%8C%E8%AF%81Centos7-2%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%E7%8E%AF%E5%A2%83/著作权归作者所有。转载请联系作者获得授权。序题记:搞定了就是故事,搞不定就是事故。条件有...原创 2018-12-19 11:10:59 · 1821 阅读 · 0 评论 -
Docker 快速验证保存 iptables 的转发策略
故事和事故这里的故事都是来源于事故。当然处理好了是传说中的故事,处理不好就是惨痛的事故。前言接上回(Docker 快速验证 tomcat 单机多实例方案),解决非 root 账号不能绑定80端口,采用的是iptables转发的解决办法.这只能是个临时方案:root@SuSE11:/etc/sysconfig$ iptables -t nat -A PREROUTING -p tc...原创 2018-12-29 10:39:25 · 675 阅读 · 0 评论 -
Docker 快速搭建 mock-server
项目目前选型是前后端分离开发,其中前端使用 AntDesign pro。根据和一线工程师沟通,引入mock技术搭建 json-server,可以快速模拟调用后端接口,实现增删查改以及复杂的业务逻辑。不用等后端开发完毕,配合 rap2 接口管理系统,前后端统一约束,而且前端不用手工造数:可以从配置好正则的接口生成(来自rap2接口服务器的支持)。原计划引入Rap2后,将其作为 Json-se...原创 2018-12-17 17:45:38 · 1384 阅读 · 0 评论 -
为什么 Django 框架持续统治着 Python 开发世界
Python 开发人员呀...有大量的框架可供选择来用于他们的 Web 项目...不过,现在 Django 毫无疑问已成为世界上 Python 开发人员中最流行的 Web 框架。本文将来谈谈 Python 开发人员为什么喜欢 Django 而不是其他流行的 Python Web 框架,如 Flask,Pyramid,Tornado,Bottle,Diesel,Pecan,Falcon 等等.......转载 2018-11-21 17:31:26 · 278 阅读 · 0 评论 -
Python 分析拉钩职位
前言近年来 Python 之火大家都有感而知,那亲们知道北京的 Python 开发岗位、运维开发岗位招聘地域都是如何分布的吗?薪水如何?是否有前景等等,这些数据呢直接通过招聘信息来了解到企业用人是最直接的,也是最简单的途径。那本次将通过分享 Python 来抓取拉钩的招聘信息,然后加以分析,做一个北京的 Python 职位地域分布、薪资范围、福利待遇等维度出一个简单的分析报告,希望能帮助到...原创 2018-11-14 18:18:35 · 210 阅读 · 0 评论 -
无监控不运维——使用 Python 写一个小小的项目监控
在公司里做的一个接口系统,主要是对接第三方的系统接口,所以,这个系统里会和很多其他公司的项目交互。随之而来一个很蛋疼的问题,这么多公司的接口,不同公司接口的稳定性差别很大,访问量大的时候,有的不怎么行的接口就各种出错了。这个接口系统刚刚开发不久,整个系统中,处于比较边缘的位置,不像其他项目,有日志库,还有短信告警,一旦出问题,很多情况下都是用户反馈回来,所以,我的想法是,拿起 Python,为...转载 2018-11-01 17:30:36 · 162 阅读 · 0 评论 -
最新的一些云技术及私有云运维
云运维的优势与传统的运维服务相比,基于云计算运维服务实现了三大转变。首先它变被动为主动。基于云计算的运维服务以及各种监控、警告、日志、报告服务工具为依托,通过全面的网络式监控可以及早发现故障隐患,从而可以建立起主动式运维。其次,它大幅度降低了运维成本。云计算运维服务把数据乃至应用程序全部集中到云端,也就是数据中心的服务器上。对于运维来说,这意味着大量在本地的运维工作转移到云服务器,运维的总体工...原创 2018-09-27 14:41:20 · 3360 阅读 · 0 评论 -
Docker 快速验证:不转发让 Tomcat 绑定 80 端口
前言之前写过 tomcat 单机多实例,最后解决80端口访问用的是 iptables 转发;第三轮投产前,客户做了迁移和扩容。重启后,不但转发策略失效,重新执行转发命令后仍旧不能访问80。后来我还发现是彻底关闭了防火墙。后来经研究,通过打开防火墙,配置自定义防火墙函数保存 iptables 策略,解决了iptables转发重启失效的问题;方案也提交了客户。方案稍后整理发布。第三轮投产时...原创 2019-01-03 13:01:05 · 762 阅读 · 0 评论 -
滚动 docker 中的 nginx 日志
Nginx 自己没有处理日志的滚动问题,它把这个球踢给了使用者。一般情况下,你可以使用 logrotate 工具来完成这个任务,或者如果你愿意,你可以写各式各样的脚本完成同样的任务。本文笔者介绍如何滚动运行在 docker 中的 nginx 日志文件。 思路Nginx 官方其实给出了如何滚动日志的说明: Rotating Log-filesIn order to rotate...转载 2019-01-18 16:36:06 · 989 阅读 · 1 评论 -
用什么监控我们的容器?
本文介绍常见监控工具 zabbix 和 prometheus 的主要特点以及应用于容器监控时各自的优缺点,希望能够帮助同学们选择适合项目的监控工具。说明:本文介绍的两个工具 zabbix 和 prometheus 都是开源、免费的。Zabbix 的主要特点作为老牌监控工具,zabbix 历史悠久,功能全面且强大。下面罗列一些它的主要特点:数据收集方式灵活全面支持可用性和性能检查 支...转载 2019-09-05 10:58:53 · 91 阅读 · 0 评论 -
kubernetes 线下环境容器化落地实践
Jenkins 和 k8s 实战资料分享链接: https://pan.baidu.com/s/1pk3t-GYirNNW_1267uXaCA提取码: ndv6代码地址:https://github.com/GeekSRE/jenkins-demokubernetes 线下环境容器化落地实践内容:容器技术介绍Kubernetes 生态介绍Kubernetes ...原创 2019-08-27 17:19:01 · 312 阅读 · 1 评论 -
如何在 Go 中使用 CGroup 实现进程内存控制
背景从 Linux 内核 2.6.25 开始,CGroup 支持对进程内存的隔离和限制,这也是 Docker 等容器技术的底层支撑。使用 CGroup 有如下好处:在共享的机器上,进程相互隔离,互不影响,对其它进程是种保护。对于存在内存泄漏的进程,可以设置内存限制,通过系统 OOM 触发的 Kill 信号量来实现重启。CGroup 快速入门默认挂载分组Linux 系统默认支持...原创 2019-06-11 17:56:56 · 1452 阅读 · 0 评论 -
如何在 Go 中优雅关闭子进程
有时我们会遇到这样的需求,在一个主进程中启动另外一个进程,而在 Go 中可以使用 exec 包的 Cmd 来轻松实现这类需求,例如代码:package mainimport ( "fmt" "log" "os" "os/exec" "os/signal")func main() { cmd := exec.Cmd{ P...原创 2019-06-19 18:01:20 · 2382 阅读 · 0 评论 -
Docker 快速验证 HTML 导出 PDF 高效方案
需求分析项目中用到了 Echarts,想要把图文混排,当然包括 echarts 生成的 Canvas 图也导出 PDF。设计和实现时,分析了 POI、iText、freemaker、world 的 xml 模版、Jquery-printArea.js、JQuery Plugin-TableExport、flying saucer 等等技术组合,不尽人意。甚至因为echarts不支持后端调用...原创 2019-01-16 15:22:44 · 542 阅读 · 0 评论 -
容器网络通,但业务网络不通,怎么办?
本着为大家分享有用的技能和知识的原则,专门出了一个解决 bug 的主题分享。具体的 bug 描述可以看下面问题一描述: 某线上业务有 A,B 两个集群,集群之间存在横向访问, 当 A 集群中的某个容器(A.a)重建(发布更新)之后发现,(A.a)可以 ping 通 B 集群中的(B.b)容器,而通过 curl 和 telnet 业务端口的时候是连接被拒绝;第一直觉是业务自身的问题,就在 B...原创 2019-01-09 16:15:50 · 707 阅读 · 0 评论 -
为容器化的 Go 程序搭建 CI
本文介绍如何使用 Jenkins 的声明式 pipeline 为一个简单的 Golang web 应用搭建 CI 环境。如果你还不太了解 Jenkins 及其声明式 pipeline,请先参考笔者的 Jenkins 系列文章,或者直接到 Jenkins 官网进行学习。说明:本文的演示环境为 ubuntu 16.04。准备 Jenkins 环境鉴于篇幅原因,本文不再介绍 Jenkins 环境...转载 2019-01-24 16:17:11 · 356 阅读 · 0 评论 -
DevOps 转型之 Pipeline 实践
DevOps 转型之 Pipeline 实践由于技术更新速度越来越快,业务需求变化频度激增,DevOps 如何落地,寻找合适切入点很关键,充分利用 Jenkins Pipeline 在 DevOps 和持续集成中的的核心作用,本主题将在 DevOps 工具链的选型以及如何落地实践做介绍。 Pipeline 流水线是指软件从版本控制库到用户手中这一过程的自动化实现是持续交付与 DevOps 的核...原创 2018-09-12 18:27:05 · 1148 阅读 · 1 评论