![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
运维
文章平均质量分 79
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 评论 -
Python 你必须要知道的 Flask
Flask介绍Flask 是一个轻量级的 web 开发框架, 使用 Python 开发, 上手简单。安装 Flaskpip install Flask第一个 Flask 程序1、编写 app.py 文件内容如下:#encoding: utf-8# 导入Flask类from flask import Flask# 创建Flask实例app = Flask(__n...原创 2018-10-26 17:01:57 · 287 阅读 · 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 评论 -
用什么监控我们的容器?
本文介绍常见监控工具 zabbix 和 prometheus 的主要特点以及应用于容器监控时各自的优缺点,希望能够帮助同学们选择适合项目的监控工具。说明:本文介绍的两个工具 zabbix 和 prometheus 都是开源、免费的。Zabbix 的主要特点作为老牌监控工具,zabbix 历史悠久,功能全面且强大。下面罗列一些它的主要特点:数据收集方式灵活全面支持可用性和性能检查 支...转载 2019-09-05 10:58:53 · 91 阅读 · 0 评论 -
如何在容器中运行 Jenkins pipeline 任务
持续集成中的 pipeline 技术和 docker 都是当前正在发展的主流方向,当然把它们结合起来在 CI/CD 过程中发挥出更强大的威力也是大家共同的目标。本文将介绍如何在 Jenkins pipeline 中集成使用 docker,好在当前的 Jenkins 已经默认通过插件实现了与 docker 的集成,所以这将是一段轻松愉快的旅程。添加 linux 主机作为 build agent...转载 2019-09-09 11:02:22 · 342 阅读 · 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 评论 -
无监控不运维——Prometheus 快速入门
Prometheus 是由 SoundCloud 开发的开源监控报警系统和时序列数据库(TSDB),自 2012 年起,许多公司及组织已经采用 Prometheus,并且该项目有着非常活跃的开发者和用户社区,现在已经成为一个独立的开源项目,并且保持独立于任何公司,Prometheus 在 2016 加入 CNCF ( Cloud Native Computing Foundation ), 作为在...原创 2019-09-19 11:20:53 · 442 阅读 · 0 评论 -
cadvisor 与 Prometheus 集成
在之前的一篇文章容器监控之 cadvisor (一)已经介绍了如何通过 cadvisor 来收集容器的运行状态信息,那这篇文章将具体讲解如何与 Prometheus 集成并通过 Prometheus 查看收集的数据。主要内容:cadvisor 与 Prometheus 集成 在 Prometheus 中查看容器的 CPU,内存,网络流量等信息cadvisor 与 Prometheu...原创 2019-09-25 10:50:52 · 1209 阅读 · 0 评论 -
借助 webpack 对项目进行分析优化
进入公司之后,接手的便是前人留下来的一个大项目。庆幸的是整个项目拥有完善的产品功能文档,但是由于项目过于庞大,老旧。包含了打包过慢,冗余文件过多等诸多问题。想要快速的解决这些问题,想要完全把功能重构一遍的话,成本太高了。一个一个文件来过,时间成本也比较大。因此在此篇文章中,我们介绍一下我是如何配合webpack一步步进行分析,将项目进行优化的。同时我针对思路封装了一个webpack-unuse...转载 2019-08-26 16:00:43 · 150 阅读 · 0 评论 -
如何在 Go 中使用 TLS 连接 MongoDB
通常我们的数据库都配置为内网访问,但由于业务部署架构的不同,有时也需要通过公网访问 MongoDB 数据库,此时为了防止被端口扫描和脱库,MongoDB 需要配置为 TLS 访问,那在 Go 中应该如何实现呢?依赖配置了 TLS 公网访问的 MongoDB 实例Go 的 MongoDB 驱动 globalsign/mgoGo 实现代码:package modelimport...原创 2019-06-17 15:38:34 · 567 阅读 · 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 评论 -
Python编程(二):Python进程、线程的那点事儿
本文由作者:auxten 授权发布链接:http://zhuanlan.zhihu.com/auxten/20167077著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。多进程,多线程编程系统程序员、运维开发程序员在面试的时候经常会被问及一个常见问题:进程是什么,线程是什么,进程和线程有什么区别?不得不承认,这么多年了。这个问题依旧是个很难以招架...原创 2018-12-07 11:06:31 · 203 阅读 · 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 评论 -
一个用Go写的集群数据分发工具
背景在工作中遇到大数据(20G左右)批量部署的问题,刚开始通过scp或者rsync限速80M串行分发,大约每台机器的耗时为5分钟,极大的增加了大批量部署的时间和难度,各种难产。于是作者就花了一天多的时间做了个简易的传输工具,现在还不太成熟,希望对大家有启发,更希望大家多多提建议。思路将传输完成的目标机器转换成数据源为其他机器提供数据源服务。(相当于《行尸走肉》中的僵尸一样,每一个被感染...原创 2018-09-07 15:51:49 · 1067 阅读 · 0 评论 -
DevOps 转型之 Pipeline 实践
DevOps 转型之 Pipeline 实践由于技术更新速度越来越快,业务需求变化频度激增,DevOps 如何落地,寻找合适切入点很关键,充分利用 Jenkins Pipeline 在 DevOps 和持续集成中的的核心作用,本主题将在 DevOps 工具链的选型以及如何落地实践做介绍。 Pipeline 流水线是指软件从版本控制库到用户手中这一过程的自动化实现是持续交付与 DevOps 的核...原创 2018-09-12 18:27:05 · 1148 阅读 · 1 评论 -
资产管理系统 CMDB 详解
两年前笔者在一个中小型互联网公司做运维,当时我们经理在机房,花了半天找一台服务器,但是服务器搞错了,悲剧了^.^! 当时我们的做法是用了一个 Excel,很多时候更新不及时,重启一台机器、拔一根网线都提心吊胆。那个时候如果有一个资产管理系统的话就可以省去很多麻烦,这也是我们今天要介绍的主要内容——资产管理系统(CMDB)如何构建一个好的资产管理系统?当我们在做资产管理系统的时候,也遇到...原创 2018-09-05 15:02:07 · 23566 阅读 · 8 评论 -
Web 访问日志分析
用途记录访问服务器的远程主机 IP 地址,可以得知浏览者来自何处 记录浏览者访问 web 资源,可以了解网站哪些部分最受欢迎 记录浏览者使用浏览器,可以根据大多数浏览者使用浏览器对站点进行优化 记录浏览者访问时间访问日志位置1.Apache在 httpd.conf 和引用的*.conf文件中查找 CustomLog "logs/access.log" combined说明:...原创 2018-08-31 14:45:53 · 1761 阅读 · 0 评论 -
Docker 快速搭建 mock-server
项目目前选型是前后端分离开发,其中前端使用 AntDesign pro。根据和一线工程师沟通,引入mock技术搭建 json-server,可以快速模拟调用后端接口,实现增删查改以及复杂的业务逻辑。不用等后端开发完毕,配合 rap2 接口管理系统,前后端统一约束,而且前端不用手工造数:可以从配置好正则的接口生成(来自rap2接口服务器的支持)。原计划引入Rap2后,将其作为 Json-se...原创 2018-12-17 17:45:38 · 1384 阅读 · 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 验证 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 评论 -
如何在 Go 中使用 CGroup 实现进程内存控制
背景从 Linux 内核 2.6.25 开始,CGroup 支持对进程内存的隔离和限制,这也是 Docker 等容器技术的底层支撑。使用 CGroup 有如下好处:在共享的机器上,进程相互隔离,互不影响,对其它进程是种保护。对于存在内存泄漏的进程,可以设置内存限制,通过系统 OOM 触发的 Kill 信号量来实现重启。CGroup 快速入门默认挂载分组Linux 系统默认支持...原创 2019-06-11 17:56:56 · 1452 阅读 · 0 评论 -
Prometheus 的优雅关闭姿势
最近在看 Prometheus 的源代码,发现它自带了优雅的关闭方式,这和我以前博文讲到的热更新十分相似。如何优雅关闭 使用 kill 命令 因为 Prometheus 是一个 Unix 二进制程序,我们可以向 Prometheus 进程发送 SIGTERM关闭信号。 使用pgrep-f prometheus找到运行的 Prometheus 进程号 使用kill...原创 2019-06-04 11:04:00 · 13125 阅读 · 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 评论