自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 大规模容器镜像管理方案

大规模容器镜像管理方案 随着容器技术的深入和广泛应用,容器镜像的管理成为了一个关键的环节,在大规模并发访问镜像中心的时候,镜像仓库的高可用性、性能及安全性都是值得关注的问题。目前市场上存在一些开源及商业的解决方案,旨在满足特定场景下的需求,本篇文章就针对容器镜像管理的一些场景和方案进行梳理。 ...

2019-11-10 22:10:56 223 0

原创 Go 语言持续交付流水线

Go 语言的依赖管理 Go 语言发展至今,其依赖管理机制一直被人诟病,从 go get 到 go dep,再到现在的 VGo。随着 Go 模块化支持的引入,大家逐渐开始接受由 Google 主导的 VGo 作为其官方依赖管理工具。VGo 顾名思义,Version of Go,就是为解决 Go 的版...

2018-12-17 17:05:17 381 0

原创 Golang Goroutine 和 Channel 的使用

参考阅读: Goroutine https://golangbot.com/goroutines/ Channel https://golangbot.com/channels/ 什么是 Goroutine Goroutines 是与其他函数或方法同时运行的函数或方法。Goroutines可以被认...

2018-10-21 18:29:59 226 0

原创 Go 语言包管理机制深入分析

随着 Go 语言的深入使用,其依赖管理机制也一直是各位 Gopher 热衷于探讨的话题。Go 语言的源码依赖可通过 go get 命令来获取,但自动化程度不高,于是官方提供了 Dep 这样的自动化批量管理依赖的工具。虽然 Go 语言的依赖管理在很多方面还是不如人意,但整个体系正在日趋完善,本篇就...

2018-09-28 09:58:31 683 0

原创 Go 语言性能测试 - 入门篇

Go 语言性能测试 - 入门篇 Go 语言是非常高效的,在处理并发请求时的性能表现非常出色,在某些考虑性能因素的场景下,我们需要进行性能测试,Go语言提供了用于性能测试的 testing.B 框架,本篇就介绍下Go语言的性能测试的基本做法。 参考阅读 Go 语言单元测试 https://bl...

2018-09-21 09:59:48 1077 0

原创 Go 语言单元测试 - 入门篇

go 语言发展非常迅速,大家对go语言编程也比较熟悉了,但很多同学对于go语言的测试不太熟悉,最近准备三篇关于Go语言的测试文章来介绍Go语言的测试相关内容。 单元测试框架 go语言提供了编写go语言的自动化测试框架testing.T,testing.B等,我们通过go test命令就...

2018-09-17 14:27:45 441 0

原创 Bazel 构建工具介绍

什么是 Bazel Bazel 是一个开源的构建和测试工具,类似于Make、Maven及Gradle。它使用一种人易于理解的高级构建语言。Bazel 支持多种开发语言的项目,能够基于多个平台来构建。Bazel支持跨多个制品库和大规模用户的大型代码仓库。 为什么我们需要Bazel Baz...

2018-09-16 19:01:02 2410 0

翻译 深入理解NPM依赖模型

npm是目前前端开发领域最主流的包管理器。虽然有其他选择,但npm的江湖地位短期内已经无法撼动。即便是强大如Bower这样可以管理前端所有文件的工具也被推到了一边,对我来说最有趣的是npm相对新颖的依赖管理方法。不幸的是,根据我的经验,它实际上并没有那么好理解,所以我尝试在这里澄清它是如何工作的,...

2018-09-15 20:30:05 1843 0

翻译 C/C++ 基于 Jenkins、Conan 和 Artifactory 的持续交付

C/C++在很多重要的行业都有应用,比如操作系统、嵌入式系统、金融系统、科研系统、汽车制造、机器人及游戏等等。在这些行业里,性能是非常关键的考量因素,而其他的语言又无法满足要求。作为一个如此重要的语言,C/C++ 的生态面临着一些严峻的挑战: 大型工程 - 当代码行数达到百万级别时,如果没有现...

2018-09-15 20:06:23 1353 0

原创 Artifactory PHP Composer仓库应用实践-续

Artifactory PHP Composer仓库应用实践-续 上一篇介绍了Artifactory Composer仓库的使用,演示了如何通过Composer客户端与Artifactory交互获取依赖,以及在Jenkins中打包完成持续集成的过程。 如何优化提升 完成一个基本的...

2018-09-08 12:57:09 288 0

原创 Artifactory PHP Composer仓库应用实践

php开发效率高,很多公司都会采用PHP Composer来管理依赖,JFrog Artifactory是全球唯一一款全语言制品仓库,默认也支持Composer仓库,这篇文章介绍如何使用Artifactory PHP Composer 仓库来管理PHP依赖。 PHP Composer ...

2018-09-07 17:35:16 452 2

原创 二进制软件制品库需求参考

1.1功能需求 1.1.1 支持持续交付工具链 支持需求管理工具(JIRA/Redmine/禅道)、代码管理工具(SVN/Git)、代码构建工具(Maven/Gradle/Conan)、持续集成工具(Jenkins/GitLab-CI)、常用测试工具(UT/Sonar/JMeter)和常用部署...

2018-09-04 11:56:01 1102 0

原创 JFrog Xray 开源安全管控的哲学

背景 随着开源软件的大量使用,企业生产环境中运行的大部分都是开源代码,但开源并不意味着安全,近年来频繁出现的开源安全漏洞也印证了这一点。在安全问题被发现后,各企业在内部进行自我排查,这种被动的安全管控弊端是显而易见的。是否存在一种主动的防御模式,在交付流程开始的时候就可以洞悉所引用的开源软件的...

2018-08-30 23:12:02 1350 0

原创 DevOps 安全威胁,你值得关注!

随着开源软件被大量引用,线上运行的代码中超过80%的部分是开源代码。软件安全的重点已经从内部代码转移到所引用开源部分上。 DevOps安全需要关注内部研发团队的自研代码以及外部第三方开源软件的安全,对于内部代码,所使用的依赖必须清楚,如果底层依赖有风险,还必须快速反向分析哪些其他软件受到同样...

2018-08-30 19:21:18 612 0

原创 编写 Dockerfile 的五个最佳实践

此文适合Docker初学入门读者,大师请绕行!,遵守最佳实践可少踩坑、提升性能体验及可移植性,期望对读者有所帮助! 什么是Dockerfile Dockerfile 是一个文本文件,里面包含了打包Docker镜像所需要用到的命令。Docker 可以通过读取 Dockerfile 里面的...

2018-08-22 08:29:23 2744 0

原创 JFrog Artifactory 二进制软件制品仓库介绍

什么是二进制软件制品仓库 软件制品是指可在服务器上直接运行的二进制形式的文件,通常称之为二进制软件制品。 不同开发语言所产生的制品的获取、使用、共享方式不同,二进制制品仓库能够统一管理所有开发语言类型的二进制制品,同时无缝对接现有的标准化构建和发布工具。 关于 JFrog Arti...

2018-08-16 11:12:17 10434 0

原创 Spinnaker 核心概念解析

Spinnaker 调研汇总参考资料 API Doc:https://www.spinnaker.io/reference/api/docs.html Swagger UI:http://15.114.100.67:8084/swagger-ui.html Spinnaker Reference:...

2017-08-17 10:09:10 1471 0

原创 Go channel 使用示例代码

package main import ( "fmt" ) type Person struct { ID string `json: "id"` Name string `json: "name"` } type Per...

2017-08-06 10:31:52 424 0

原创 Nginx 入门指南

Nginx 入门指南安装部署针对CentOS7,安装部署如下步骤如下: Repo 创建/etc/yum.repos.d/nginx.repo,并写入如下内容[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$relea...

2017-07-15 17:24:28 666 0

原创 Go语言的那些事儿(第一篇)

Golang的特点 部署简单 Golang编译生成的是一个静态可执行文件,除了 glibc 外没有其他外部依赖,完全不需要操心应用所需的各种包、库的依赖关系,大大减轻了维护的负担。 并发性好 Goroutine和Channel机制使得编写高并发的服务端软件变得相当容易,很多情况下完全不需要考虑锁机...

2017-03-28 18:47:20 1268 0

原创 Python Module和Package辨析

Python 基础学习说明 这不是最基础的入门教程,如需了解Python的数据类型、变量等基础内容,请移步:https://docs.python.org/2/tutorial/index.html 这里的代码使用Python2.7环境,没有在>3版本环境下测试,如有不兼容等问题,欢迎交流。...

2017-03-24 16:45:48 2283 0

原创 人工智能基础概念

1.背景人工智能涉及的内容非常广泛,从数学到计算机科学,有很多的基础知识需要储备,之前打算阅读一些人工智能方面的书籍,总感觉比较吃力,这里会将一些人工智能方面的基础知识做一个总结梳理。2.基础概念1)人工智能人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方...

2017-01-04 21:02:34 7939 2

原创 TensorFlow介绍

1. 简介TensorFlow是谷歌2015年11月发布的开源人工智能系统,目前主要应用在语音识别、自动驾驶、图像识别等领域。这套框架在github上有开源代码,并且社区也有完善的文档及API。之前的软件算法都基于领域知识,给出既定的规则,程序负责对数据进行处理,得出相应的结果,但是人工智能的方式...

2016-12-31 11:46:55 1684 0

原创 World Runs on Kubernetes

1.前言Kubernetes 最近发布了1.5版本,很多科技媒体称之为"震撼发布"。从开发者的反馈来看,Kubernetes 确实备受亲睐,越来越多的应用可以在这个平台上运行,解决了部署、升级、运维等诸多方面的问题。今天就介绍下目前几个非常有前瞻性的项目。从这些项目中,我们或许...

2016-12-26 22:52:03 674 0

原创 关于公共安全解决方案的思考

1.    前言         最近世界范围内发生了多起公共安全事件,引起了全世界人民的高度关注。这些事件虽然没有发生在我们身边,但中国也是一个公共安全事件频发的国家,从这些事件中反思我们在公共安全处理措施方面的问题,也是有百利而无一害的,对于每个人来说,了解一些公共安全事件的预防及处置措施,在...

2016-12-21 21:43:24 786 1

原创 【杂文】宇宙思辨

前言今天匆匆赶到机场,发现飞机由于航空管制延误。联想到前几天看到一篇博客,里面提到一个问题:你确定你不是机器人吗? 自己喜欢看《黑客帝国》系列电影,加上最近这几年做技术研发,随着云计算等技术的蓬勃发展,很多技术上的哲理性思维突然在我的脑海中迸发出来,加之今年很火的量子力学,我于是匆匆而就,遂有此文...

2016-12-16 23:20:16 619 2

原创 Kubernetes 高级特性集锦

1.前言kubernetes 项目发展至今,社区出现了很多非常优秀的特性,这些特性极大地扩展了Kubernetes的能力。目前很多公司基于Google Kubernetes 和 Docker 打造各自的私有化PaaS平台,这些高级特性往往是PaaS平台需要的,深入了解这些特性能够帮助架构设计人员快...

2016-12-11 21:27:43 5877 0

原创 Hadoop 核心概念解析

Hadoop 权威指南读书笔记 - 入门前言在大学里曾经使用过Nutch,实现了一个简单的搜索引擎。工作之后,公司里有同事使用Lucene来做站内搜索。这些年伴随着大数据的兴起,Hadoop已经成为了静态数据处理的标准,号称性能更优且可以处理 流式数据的Spark也发展得如火如荼。记得那时候搜索...

2016-10-16 07:56:05 5804 1

原创 Linux Shell 使用手记

1.背景Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被python等脚本代替。既然是基本功,那就需要掌握,毕竟学习Shell脚本的过程中,还是能了解到很多Linux系统的内容。Linux脚本大师不是人人都可以达到的,但是用一些简单的Shell实现一些常见的基本功能还是很...

2016-10-15 13:44:21 4070 3

原创 Kubernetes 滚动升级

Kubernetes Rolling Upgrade 背景 Kubernetes 是一个很好的容器应用集群管理工具,尤其是采用ReplicaSet这种自动维护应用生命周期事件的对象后,将容器应用管理的技巧发挥得淋漓尽致。在容器应用管理的诸多特性中,有一个特性是最能体现Kubernetes强...

2016-10-14 21:09:59 11032 0

原创 量子科学家带给我们的思考

最近中国发射了第一颗量子通信卫星-墨子号,一时之间量子力学、量子纠缠、量子通信等概念也被大家所熟知。这时候,我突然想起我高中的物理老师,虽然仅仅只是一个高中很普通的物理老师,但是给我们普及了很多量子力学的概念,为我开拓了视野,导致后来我也一直很关注物理学前言的新闻。最近又看到中国科学技术大学的潘建...

2016-09-02 22:15:36 799 0

原创 Kubernetes ReplicaSet 和 HPA 介绍

1.前言在kubernetes中,Pod是最基础的调度单位,多个pod 可以组成一个集合,这个集合向外提供服务。这时候,我们需要以下两种情形需要关注:1)集合中的Pod可能会由于某种原因Fail,这时候需要某种机制能够创建新的Pod以确保有足够数量的Pod在运行。2)Pod 的个数由访问请求决定。...

2016-08-13 22:51:38 4707 0

原创 kubernetes scheduler 模块分析 - 续

1.前言在上一篇《kubernetes scheduler 模块分析》中,分析了scheduler调度的流程和主要的算法。从整体上把握了scheduler的调度机制,今天想继续分析下更为细节的内容。2.概要今天主要分析scheduler的缓存机制,Extender扩展机制及Taint&To...

2016-08-07 12:42:43 2355 0

原创 kubernetes scheduler 模块分析

1.背景kubernetes 社区十分火热,版本迭代非常快,本分析基于社区Kubernetes master版本。2.scheduler模块介绍调度器是kubernetes中独特而又重要的一个模块。独特是因为在kubernetes体系中,scheduler是唯一一个以plugin形式存在的模块,重...

2016-08-05 23:15:48 3895 0

原创 一段Golang代码引发的思考

1.前言Golang有一些异于其他语言的特性,如果对这些特性不了解,看一些代码的时候经常就会感到莫名其妙。最近在看Kubernetes的一段代码时,由于没有深刻领会Golang的接口机制导致一脑袋雾水,当真正理解了之后,不得不佩服Golang的灵活性,堪称神一般的存在。2.分析这段代码的部分片段如...

2016-08-02 23:04:39 1118 0

原创 Golang 常用的一些基本操作

下面是Golang常用的一些操作,获取环境变量、操作文件等等;package main import ( "fmt" "os" "path/filepath" "io/ioutil" ) func mai...

2016-06-30 09:20:45 3159 2

原创 Ubnutu 部署 k8s 的一个坑

1.背景在Ubnutu14.04 上部署K8S过程大致如下:1.执行apt-get update 和 apt-upgrade2.配置apt的代理(公司网络通过代理上网)3.通过apt-get install docker.io方式安装docker4.编译k8s,以本地模式启动2.问题发现无法正常启...

2016-06-29 23:30:20 2707 2

原创 Go-restful Usage

1.前言Go 语言是一种表达能力非常强大的语言。目前有一个Golang实现的restful webservice 包,go-restful使用起来很简单。2.Demo例子实现了一个查询操作,更详细的Demo见这里:https://github.com/emicklei/go-restful/blo...

2016-06-29 17:01:30 3259 0

原创 Golang 小技巧

1.前言Golang 开发过程中的一些小技巧在这里记录下。2.内容1)包的引用经常看到Golang代码中出现 _ "controller/home" 类似这种的引用,这里的下划线有什么作用呢? 其实默认每个文件都有一个init函数,加下划线表示引入这个包,仅执行init函数,别...

2016-06-16 22:17:04 2179 2

原创 Golang Basic - select and channel usage

今天学习了一下Golang 的 tag,select 和 channel ,记录在此!1.tag 的作用package main import ( "encoding/json" "fmt" "reflect" ) type A...

2016-04-25 13:24:37 5482 0

提示
确定要删除当前文章?
取消 删除