自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JFrog技术博客

JFrog原创技术博客

  • 博客(145)
  • 收藏
  • 关注

原创 研发与运维一体化,见证终极协同奥义

家家有本难念的经,但是痛却总是惊人的相似场景1:某个软件开发公司里,所有的设计、开发、测试、运维虽然被分配了不同职能与任务,但是他们都有一个统一的称呼——工程师。实际上,他们经常会互相干一些本不属于自身职能范围的工作。公司业务拓展,业务系统功能扩展、需求变更,“996”的日子成功进化成“007”,甚至都不够用。场景2:某电商APP上线在即,由于系统频繁升级、升级耗时长、上线时间紧、测试不充分,经常出现发布版本错误。结果上线的日子本该轻松一些,却忙得不可开交,还需要调试线上系统的各类诡异的环境问题……

2020-05-29 17:55:26 273

原创 Artifactory中Maven仓库配置优化——提升Virtual仓库下载速度 

问题背景随着研发团队不断扩大Artifactory中Maven仓库也在逐步增多,包括 local、remote、virtual 仓库,其中往往会涵盖RELEASE和SNAPSHOT包类型仓库,为了对使用客户透明简化用户配置,管理人员会通过创建一个virtual仓库,将所有用到的 local(RELEASE和SNAPSHOT)、remote(RELEASE和SNAPSHOT) 包含到一个virtual 仓库中。这样让客户统一使用 virtual 仓库,虽然最大程度上节约了用户在修改配置的成本,但是也...

2020-05-27 19:26:51 943

原创 研发与运维一体化,见证终极协同奥义

家家有本难念的经,但是痛却总是惊人的相似场景1:某个软件开发公司里,所有的设计、开发、测试、运维虽然被分配了不同职能与任务,但是他们都有一个统一的称呼——工程师。实际上,他们经常会互相干一些本不属于自身职能范围的工作。公司业务拓展,业务系统功能扩展、需求变更,“996”的日子成功进化成“007”,甚至都不够用。场景2:某电商APP上线在即,由于系统频繁升级、升级耗时长、上线时间紧、测试不充分,经常出现发布版本错误。结果上线的日子本该轻松一些,却忙得不可开交,还需要调试线上系统的各类诡异的环境问题……

2020-05-26 18:41:00 495

原创 首次联袂DevOps技术实践在线沙龙

报名链接:https://www.bagevent.com/event/6553170

2020-05-20 16:40:45 128

原创 杰蛙&Jenkins中文社区 首次联袂DevOps技术实践在线沙龙

报名链接:https://www.bagevent.com/event/6553170

2020-05-19 18:36:30 206

原创 内建质量,你真的了解么?

内建质量定义 内建质量作用在开发过程中,要求软件生命周期之间参与的各个角色都需要实时的对软件的质量负责。确保软件在交付到下一环节前已经有了基础的质量保证。其核心目的就是减少因为质量问题导致的返工,而浪费大量人力成本。1.敏捷中的内建质量内建质量是规模化敏捷SAFe的核心价值观,引用下面一段话,我们看一下敏捷中定义的内建质量在讲什么内容(原文出处:https://www.scaledagileframework.com/built-in-quality/)简单的翻译过...

2020-05-09 18:45:49 3586

原创 Netflix如何使用Druid进行业务质量实时分析

一 Durid介绍Apache Druid是一个高性能的实时分析数据库。它是为快速查询和摄取的工作流而设计的。Druid的优势在于即时数据可见性,即时查询,运营分析和处理高并发方面。Druid不是关系数据库,需要的是数据源,而不是表。与关系数据库相同的是,这些是表示为列的数据的逻辑分组。与关系数据库不同的是没有连接的概念。因此,Netflix需要确保每个数据源中都包含Netflix...

2020-04-30 11:12:50 264

原创 Golang之go module开发系列二--使用伪版本和GoCenter

Go模块已经为Go开发带来了秩序,但也存在一些潜在的混乱。管理模块尤其是伪版本可能很困难,尤其是在要进行一些最新更改的情况下。JFrog GoCenter是一个免费的版本话棋模块仓库,现在它包含了一些重要的更新,可以帮助你坚持这个最佳实践。首先让我们看看伪版本是如何工作的,以及您可以期望从这些更改中得到什么。我们还提供了一些指导,让您在升级到1.13或更高版本时保持Go的构建工作。Go 的...

2020-04-24 21:15:52 1320

原创 如何从Nexus迁移到Artifactory

前言由于 JFrog Artifactory 在业界得到了普遍的应用,并且 Artifactory 可以完全替代 Nexus 作为 Maven 私服,所以JFrog 提供了自动化的迁移工具 nexus2artifactory,目的是帮现有的 Nexus 用户一键迁移到 Artifactory,从而让用户得到更好的Maven 仓库。目前该工具支持仓库类型: local(hosted), ...

2020-04-17 18:54:49 1267 1

原创 一篇小短文让你了解Maven

简介Apache Maven是一个项目管理及构建工具,主要用于Java项目的构建,Maven还可以用于构建和管理以C#,Ruby,Scala和其他语言编写的项目。Maven解决了构建软件那几方面问题:编译构建传统的项目没有使用Maven大部分情况是由IDE对编写代码进行自动编译,将JAVA文件编译成CLASS之后,由研发对bin目录下的CLASS进行打包部署。而Maven通过插件进行...

2020-04-09 16:12:02 976

原创 工欲善其事,必先利其器——DevOps中如何管理工具包

一、背景作为DevOps交付流水线的开发者,为支持CI/CD中各项任务的自动化,都需要依赖多种包管理工具来下载各种相关的工具,比如针对产生最终交付件的构建过程,就需要在构建流程的第一步,自动地把相关工具,如Curl、wget、Maven、Gradle、npm等等,下载到CI服务器。这些工具的下载,通常都需要依靠对应的公网服务器和包管理工具来支持。而这样通过公网来下载工具,有时会遇到稳定性的问题...

2020-04-01 16:56:23 465 1

原创 使用Artifactory集群作为文件共享中心

一、背景和痛点大企业内部,跨团队,跨地域,导致文件共享困难如果不使用Artifactory,如何实现跨数据中心的文件共享呢?挂载NFS文件系统,开通跨数据中心的rsync/sftp协议 自研解决方案,通过REST API或者CLI方式, 例如,雅虎的dist工具 私有或者公有的云储存方案 利用SCM版本控制系统- 对于编译构建效率影响很大NFS和云储...

2020-03-24 18:31:17 980

原创 解读神书《凤凰项目》,带你跳出DevOps转型的所有坑

提高DevOps工程师软技能,可以了解一下笔者前一篇文章《DevOps工程师必备软技能》《凤凰项目》是DevOps界神书,虽然内容表现形式是小说,但是依然是敏捷开发及DevOps领域的必读书籍。很多知名的咨询师都是通过此书开启了DevOps及敏捷之旅,书中故事均来源于运维的日常工作,正是体现了艺术源于生活、高于生活的本质。笔者间隔两年时间,阅读此书两次,希望可以讲书中了解到的一些经验分享给大家...

2020-03-19 18:29:29 925

原创 Artifactory清理未使用的二进制品的最佳实践

Artifactory充分利用了基于Checksum的存储,但是这种机制无法代替常规的工件清理任务。软件开发可能很杂乱,很多时候Artifactory中的许多工件都从未使用过。例如,许多CI / CD构建都配置为基于源代码控制“提交”运行,并且一旦将这些快照构建发送到Artifactory,就永远不会实际下载它们。考虑到软件开发的动态性质,大多数组织都有自己的数据保留策略。由您决定可以清...

2020-03-10 18:58:36 2298

原创 Kubernetes上的“火眼金睛”——Prometheus的安装实录

一、背景Kubernetes是目前最为流行、成为事实标准的容器集群管理平台,为容器化应用提供了集群化部署运行、自动资源调度,和动态水平伸缩等一系列完整功能。虽然Kubernetes平台本身已经实现了应用状态的实时监控,但是监控的指标和方式还是比较基础,难以满足各种复杂和个性化的监控管理需求。因此,我们需要在Kubernetes的基础上,增加独立的、不影响现有应用集群的架构和部署的,而且功能全面...

2020-03-04 18:44:48 568

原创 利用开源软件搭建JAVA工程CI&CD自动化工具链

JAVA传统项目交付流程的问题开发和运维间环境有明显差异 代码缺乏统一质量度量 客户要求上线时间紧,人工测试慢,导致测试不充分,时常做线上BUG修复打造工具链源码管理Gitlab 持续集成Jenkins 代码扫描SonarQube 接口测试PostMan+NewMan 制品管理ArtifactoryOSS版本(仅支持Maven) 自动部署Ansible ...

2020-02-25 12:15:21 813 1

原创 Artifactory & GitLab CI持续集成实践

GitLab CI支持创建多个构建,并评估每次代码提交是否通过测试和以及对您产品的影响。在构建过程中,会生成大量二进制文件,如果不能正确的大规模管理这些文件,就会导致二进制文件管理混乱。为了克服这个问题,Artifactory被无缝地集成到GitLabCI构建过程中,以便更好的发布和管理这些二进制文件,并通过JFrog CLI, GitLab CI缓存、发布您的依赖包、制品包和构建信息到Ar...

2020-02-19 17:32:54 2032

原创 CapitalOne - Artifactory高可用集群的自动化部署实践

背景本文为大家介绍Capital One如何利用自动化流水线实现ArtifactoryHA集群进行自动化运维。Capital One银行是美国最大的数字化银行之一,在Capital One的devops体系中应用了JFrogArtifactoryHA集群进行软件制品管理。由于Capital One规模庞大并且为满足业务连续性要求,其部署的ArtifactoryHA拥有primary和D...

2020-02-18 20:51:48 697

原创 基于Jenkins打造符合DevOps能力成熟度三级标准的持续集成流水线

DevOps的核心是自动化,自动化的核心是标准化。而DevOps最重要的一环节是持续交付,持续交付中建设的重点是流水线,所以如何打造标准的持续交付流水线则为DevOps建设中最重要的一环,也是评估DevOps能力的一个重要的打分点。本文内容参照《研发运营一体化(DevOps)能力成熟度模型 第3部分:持续交付》,基于jenkins,对持续集成流水线建设的一些关键点进行技术应答,带领大家把方法论...

2020-02-14 18:10:32 570

原创 你的K8s 运行时环境安全吗? KubeXray帮你保护K8s环境及应用

引言大多数安全措施都是为了防止漏洞逃跑而设计的,在此之前,我们也分享了一些第三方安全扫描的文章(请移步到历史文章中查看),尽早识别应用程序的风险意味着您可以防止或限制它部署到您的系统中(安全左移策略)。有了这些知识或工具,容器中任何可能造成损坏的漏洞都可以安全地留在由您的安全策略围栏后面。但是,当这些漏洞已经逃跑时,我们能做什么呢? 如何确保已经在Kubernetes pods中运...

2020-02-12 18:28:43 284

原创 微服务构建持久API的7大规则

前言近年来,微服务架构发展迅速,SparkPost就是早期落地微服务架构公司之一,他们发现落地微服务过程中,不光需要考虑服务发现、服务注册、服务调用跟踪链等等架构问题,也需要重视微服务API的变更管理。微服务的一大特性就是独立发布,快速迭代,但前提是足够稳定,他们在使用微服务构建API的过程中就遇到很多问题:1.客户(微服务使用方)经常反馈API 升级变更后不可用,有时影响范围不可控,导...

2020-02-11 18:04:13 268 1

原创 Saas 应用12个架构规范

引言如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或软件即服务(SaaS)。12-Factor 为构建如下的 SaaS 应用提供了方法论:使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目。 和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性。 适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源。 将开发环境和生产环境的差异降...

2020-02-10 18:39:44 3026 1

原创 Docker 镜像仓库为什么要分库分权限?

先说一个事故案例:场景:某大型互联网电商公司,使用一个镜像仓库管理所有Docker镜像。开发者打出的镜像上传到唯一的镜像库,测试通过后,运维环境的 Kubernetes 直接从这个库里拉取镜像,所有人对镜像库都有 CRUD 的权限。事故:由于镜像存储容量过大,开发者打算清理下Snapshot 的镜像,在镜像清理的时候,误将生产环境的镜像进行了删除,导致上线出现问题。本质是镜像缺乏成熟度的区...

2020-01-20 11:17:03 397

原创 生产环境容器落地最佳实践 - JFrog 内部K8s落地旅程

引言Kubernetes已经成为市场上事实上领先的编配工具,不仅对技术公司如此,对所有公司都是如此,因为它允许您快速且可预测地部署应用程序、动态地伸缩应用程序、无缝地推出新特性,同时有效地利用硬件资源。本期我们将回顾采用Kubernetes作为容器编排工具的公司所面临的复杂性和挑战。我们希望我们提供的经验教训、最佳实践和技巧将帮助您在前往K8s旅途中起步并继续前进。本...

2020-01-19 10:47:01 811 1

原创 优秀的DevOps工程师必须具备的软技能

年末将至,大批攻城狮与程序猿早已蠢蠢欲动,开始了跳槽涨薪之旅,虽然受社会大形势影响,IT行业虽然无法和前几年的突飞猛进的势头相比,但是对DevOps的热度却只增不减,工程效能团队的普及率正在迅速增长,对DevOps工程师需求量也是呈指数式增加。转型做DevOps工程师、DevOps教练也是逐渐成为IT圈的时尚。那么如何在大量的DevOps工程师中脱颖而出,打破开发与运维之间的隔阂,成为团队内首屈一...

2020-01-15 14:18:49 424

原创 基于Saltstack、Artifactory打造传统模式下持续部署平台

一、持续部署1. 现状由于没有建立标准的持续部署流程,导致了版本管理混乱,制品管理混乱,上线持续时间长,上线测试覆盖不全面,业务流量上升后故障较多,排查复杂。运维、测试、开发人员每次版本迭代的时候,都要可能需要经历一次通宵的历练,并且这种在上线的第二天依然会出现很多线上故障。2. 痛点自动化发布体系覆盖率低。 无标准化发布的流程。 a. 只注重敏捷、忽视质量问题;...

2020-01-15 10:51:41 405

原创 DevOps is Hard、DevSecOps is Even Harder --- Enterprise Holdings.

Enterprise Holdings. 的IT团队超过2000人,在2018年的演讲中介绍了Enterprise Holdings的DevOps是如何转型的。我们通过打造一个不只包涵了pipeline的CI/CD平台,将其称之为SDLC。在最开始的200+个应用中,我们挑选出5个来作为试点。当时的情况证明这次DevOps转型计划是成功的,我们的团队有4+位工程师和两位架构师,从2年半前就开始...

2020-01-13 14:52:31 300

原创 GoCenter助力Golang全速前进

一、背景Go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。为了方便搜索和识别,有时会将其称为Golang。自2009年11月Google正式宣布推出,成为开放源代码项目以来,Go语言已成为当今开发人员和DevOps领域最流行的语言之一, 它被用于设计和编写Kubernetes和Helm。但是,相比语言本身已经得到了广泛的普及和使用,Go语言的包管理方案却...

2020-01-08 14:43:50 506

原创 微服务监测的五大原则

一、背景容器和微服务的出现并得到大量应用,从根本上改变了应用系统的组成和运行方式。而随着开发人员开始利用编排系统来管理和部署容器,规则进一步发生了变化。以往主机上的一个简单应用,现在已成为一个复杂的、动态编排的、多容器的体系架构,这同时也对应用的监测提出了全新的挑战。Sysdig,是专注于系统故障排查和监控工具的公司,其产品Sysdig Cloud是定位于容器系统故障排查和监控的平台。在...

2020-01-08 11:26:30 336

原创 为什么5000+企业放弃Sonatype,选择JFrog Artifactory

一、背景制品,artifact,也称为工件,是指在构建或持续集成过程中从源码创建而成的二进制包,而这些二进制包通常是通过赋予其的版本号来唯一定位和管理的。制品仓库,artifact repository,则是存储和管理这些版本化的二进制包,并对外提供检索和访问方法的应用程序。制品仓库通常分为中央仓库、企业仓库和本地仓库。中央仓库面向公众开放,存储和管理预先构建好的二进制包,通常提供软件开发...

2020-01-07 10:18:59 1321

原创 [首发]国内某大型银行的持续集成与交付实践

一、背景随着架构的不断演进以及微服务技术在我行的深入应用,应用部署发布的复杂性大大增加,简单的代码配置管理模式、人工的版本记录及手工部署等发布操作和管理的模式,效率低、操作风险较大,因此急需从整体上提升我行软件持续交付的能力,降低应用部署发布的操作风险。通过引入构建自动化及可视化的软件交付流水线,整合从开发、构建、测试、部署、发布、运维等多个环节,加强各职能团队协助和沟通,全面实现项目构建...

2020-01-06 17:54:42 501

原创 Helm, 在Kubernetes中部署应用的利器

一、背景Kubernetes(k8s)是一个基于容器技术的分布式架构领先方案。它在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。在容器云环境及容器化服务在业界开始大规模部署应用的前提下,Kubernetes在业界的实际应用情况又是怎样的呢?在今年召开的JFrog SwampUp用户大会上,Codefre...

2020-01-03 14:36:51 556

原创 火箭还是飞机?——DevOps的两种模式

一、背景在当下的软件应用开发领域中,越来越多的敏捷化企业希望自己的软件开发过程能以超音速、甚至于星际穿梭的速度,来快速响应各种变化,但同时还要保证安全性。DevOps流水线无疑为这一目标提供了最佳实践。但是,要完全满足这样的需求,我们应该如何去建立合适的DevOps流水线呢?有没有一种很好的方式,能够帮助我们去理解DevOps流水线当中CI/CD过程,以及容器技术,如Docker和Kube...

2020-01-02 11:30:26 248

原创 你的DevOps中有完善的持续交付体系么?

背景:DevOps已经成为软件开发领域一个炙手可热的名词。敏捷开发、持续交付、CI/CD,K8s…这些主流的开发理念、工具无一例外都与DevOps有着很强的联系。这种环境影响下,传统的运维团队均开始向DevOps进行转型。一时之间运维开发、SRE、工程效能工程师需求量大增,无论公司大小,都会开始着手DevOps的从0到1的建设。我们开始搭建工具链、部署流水线、集成自动化测试工具、开发自动化发布...

2019-12-30 17:50:32 411

原创 Captial One如何实现Artifactory HA集群的自动化维护

一、背景本文整理自Hank Hudgins,Capital One高级工程师,在JFrog 2019用户大会上的讲演《Automated Artifactory HA Pipeline》。Capital One是美国最大的数字化银行之一,其IT管理方法和应用技术也极为敏捷,全球拥有上万研发,具备非常丰富的 DevOps落地经验。在Capital One的DevOps体系当中,有很...

2019-12-30 14:20:20 306

原创 关注你所关注的 - Golang社区调研报告

Golang语言可以说现在炙手可热,大家熟悉的Kubernates 就是使用Golang开发的。我们在最近于伦敦和圣地亚哥举行的GopherCon大会上调查了1000多名开发者,以更好地了解Go 开发社区和对Go Module的总体看法。随着最近发布的Go 1.13版本,现在是向社区分享一些有趣数据的好时机。BTW, 在JFrog,我们也是Go开发者(JFrog CLI和Xray都是用Go...

2019-12-20 15:49:39 283

原创 传统企业如何打造统一的持续集成平台

一、传统行业打造统一持续集成平台痛点多团队维护多套工具链,重复任务多、运维成本高。 各团队交付流程不统一么,重复造轮子,知识经验无法共享。 各交付质量、标准不统一,难以形成统一的度量体系。二、从零到一的解决方案1. 成立团队该团队初期视公司技术人员规模,可由虚拟组或专属devops工程师组成。该需要具备下述能力:对需求管理、敏捷有所了解,敏捷教练最佳。 各语言...

2019-12-16 16:16:48 429

原创 通往成功DevOps的六大障碍

一、背景在现今的社会中,每个公司都是软件公司,无论是通过台式机、云服务还是移动设备,软件都已成为世界各地、各个公司日常工作的工具。例如,汽车是带轮子的计算机,空调是数据终端,而银行在手机中提供服务,等等。在这个新的世界中,软件更新可以满足客户的需求。每一个交付都是您更新,或破坏,与客户间信任的机会。如何才能保证您的每个更新都以最快的速度提供一流的服务?这就是为什么DevOps对您的公司...

2019-12-13 17:47:00 205

原创 你的Helm安全吗?

一、背景Kubernetes是目前最为流行、成为事实标准的容器集群管理平台,为容器化应用提供了部署运行、资源调度、服务发现和动态伸缩等一系列完整功能。在Kubernetes当中,用户通过使用API对象,如Pod、Service、Deployment等,来描述应用的程序规则,而这些资源对象的定义一般需要写入一系列的YAML文件中,然后通过Kubernetes 命令行工具Kubectl进行部署。...

2019-12-04 16:04:21 273

原创 基于Jenkins打造符合DevOps能力成熟度三级标准的持续集成流水线

基于Jenkins打造符合DevOps能力成熟度三级标准的持续集成流水线DevOps的核心是自动化,自动化的核心是标准化。而DevOps最重要的一环节是持续交付,持续交付中建设的重点是流水线,所以如何打造标准的持续交付流水线则为DevOps建设中最重要的一环,也是评估DevOps能力的一个重要的打分点。本文内容参照《研发运营一体化(DevOps)能力成熟度模型 第3部分:持续交付...

2019-11-14 15:03:18 1527

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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