9 feng1456

尚未进行身份认证

热爱技术,勤于学习,乐于分享!

等级
TA的排名 3k+

大规模容器镜像管理方案

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

2019-11-10 22:10:56

Go 语言持续交付流水线

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

2018-12-17 17:05:17

Golang Goroutine 和 Channel 的使用

参考阅读:Goroutinehttps://golangbot.com/goroutines/Channelhttps://golangbot.com/channels/什么是 GoroutineGoroutines 是与其他函数或方法同时运行的函数或方法。Goroutines可以被认为是轻量级线程。 与线程相比,创建Goroutine的成本很小。因此,Go应用程序通常会同时运行数千个...

2018-10-21 18:29:59

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

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

2018-09-28 09:58:31

Go 语言性能测试 - 入门篇

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

2018-09-21 09:59:48

Go 语言单元测试 - 入门篇

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

2018-09-17 14:27:45

Bazel 构建工具介绍

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

2018-09-16 19:01:02

深入理解NPM依赖模型

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

2018-09-15 20:30:05

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

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

2018-09-15 20:06:23

Artifactory PHP Composer仓库应用实践-续

Artifactory PHP Composer仓库应用实践-续 上一篇介绍了Artifactory Composer仓库的使用,演示了如何通过Composer客户端与Artifactory交互获取依赖,以及在Jenkins中打包完成持续集成的过程。如何优化提升完成一个基本的应用场景还不够,因为我们还关心如下内容:该制品的依赖信息该制品的发布过程信息该制品的构建、...

2018-09-08 12:57:09

Artifactory PHP Composer仓库应用实践

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

2018-09-07 17:35:16

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

1.1功能需求 1.1.1 支持持续交付工具链 支持需求管理工具(JIRA/Redmine/禅道)、代码管理工具(SVN/Git)、代码构建工具(Maven/Gradle/Conan)、持续集成工具(Jenkins/GitLab-CI)、常用测试工具(UT/Sonar/JMeter)和常用部署工具(Ansible/Kubernetes) 1.1.2支持可视化作业流水线 支持手动配置(fre...

2018-09-04 11:56:01

JFrog Xray 开源安全管控的哲学

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

2018-08-30 23:12:02

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

随着开源软件被大量引用,线上运行的代码中超过80%的部分是开源代码。软件安全的重点已经从内部代码转移到所引用开源部分上。 DevOps安全需要关注内部研发团队的自研代码以及外部第三方开源软件的安全,对于内部代码,所使用的依赖必须清楚,如果底层依赖有风险,还必须快速反向分析哪些其他软件受到同样的威胁;目前DevOps安全团队和持续交付团队往往独立运行,信息交互频繁且效率低导致质量难以保证,安全...

2018-08-30 19:21:18

编写 Dockerfile 的五个最佳实践

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

2018-08-22 08:29:23

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

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

2018-08-16 11:12:17

Spinnaker 核心概念解析

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

2017-08-17 10:09:10

Go channel 使用示例代码

package mainimport ( "fmt")type Person struct { ID string `json: "id"` Name string `json: "name"`}type PersonHandler interface { bath(origs <-chan Person) <-chan Person handle(orig Pers

2017-08-06 10:31:52

Nginx 入门指南

Nginx 入门指南安装部署针对CentOS7,安装部署如下步骤如下:Repo创建/etc/yum.repos.d/nginx.repo,并写入如下内容[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=0enabled=1这里的$releasever使

2017-07-15 17:24:28

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

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

2017-03-28 18:47:20

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。