Details
Failure: PIP - Pip Inspector |
For more output please click to expand.
👉 Click to see more output 👈
[main] --- ======== Detect Issues ======== |
ENVIRONMENT:
- Product: synopsys-detect-7.11.1.jar
- Others: OpenJDK 11, Python 3.6 and Python 2.7.5
Failure: PIP - Pip Inspector |
For more output please click to expand.
[main] --- ======== Detect Issues ======== |
ENVIRONMENT:
DevOps 是 IT 界最近几年的一个热门话题,而且还会越来越热。
最近有幸和一位做传播咨询的读者朋友交流关于 2022 年最值得关注的 DevOps 趋势以及一些问题和回答,分享给大家。
无服务器计算是一种新兴趋势,实际上已经存在了十多年。企业购买无服务器框架需要一段时间,主要是因为对行业支持和对投资回报的担忧。
无服务器具有许多越来越难以忽视的优势,主要的两个最大好处是效率和可靠性。没有基础设施管理的负担,企业可以将资源集中在正重要的事项上。此外,无服务器还降低了传统框架可能出现的潜在维护问题的风险。
无服务器提供固有的可扩展性和可靠性并自动化开发人员不喜欢的日常操作任务,2022 年无服务器计算会经历下一次发展。
随着无服务器计算在 2022 年的发展,微服务也将如此。
微服务架构是将单体应用分化为小的独立单元,或服务,从而为大型团队提供了更大的灵活性。它有以下优势:
当然也必须认识到微服务的一个弊端,如果实施不佳可能导致严重问题,包括数据丢失、可靠性差和安全风险。
在写博客和公众号这件事上,不知不觉已经是我的第五个年头了,没想过能这么久。
借此分享一下这些年我的职业线路的变化,以及写博客&公众号有什么收获,算是自己过去的一个总结,如果能有点共鸣和帮助就更好了。
最早关注我公众号读者朋友大概都是因为软件测试而结缘的。是的,我做了近 10 的软件测试工作,先后在 SIMcom、东软、京东商城、外企从事过功能&自动化&性能测试工作。
从功能测试入行开始,我慢慢地感受到编程不是开发的独门武功,它也是测试工程师的必备技能,只有具备良好的编码能力,才能去做自动化、Unittest、以及测试开发等工作。
当我做了自动化测试工程师,我又发现相对于“发现”问题,“解决”问题更令我愉悦。我开始梦想有机会能去做开发,这样不但可以提高自己的编程能力,另外开发、测试都懂也能为自己今后的职业发展找到更多可能性。
最终是因为有这样的机会+自己的主动+编码过得去,我从测试转到了开发。起初的艰难和压力都是我工作近 10 年来前所未有的,白天看代码、晚上看代码、周末看代码… 天天如此。经过了半年多的努力,才终于上岸,可以做 C/C++ 项目的 Bugfix 了。
也正是因为有开发、自动化、持续集成的经验,在团队需要一名 Build/Release 工程师的时候,我知道这就是我最适合的岗位,负责产品的自动化构建、发布、基础设施建设、CI/CD 以及提高研发效能的相关开发工作。
就这样我从 QA 到 DEV 到 DEVOPS。公众号的更名记录也记录了我的职业路线变化:
写作是一项长期收益远超短期收益的事情。
对于绝大多数人在短期内几乎不会有什么实质性的收益,还会花费大量的业余时间,妥妥的是用爱在发电。从金钱角度来衡量这件事,这是一件投入和产出完全不成比例的事情,很难坚持。
如果从长期来看,坚持写作一定会带来价值的,我总结有以五个方面的好处:
关于 Vagrant 的介绍,可以参看前一篇文章:什么是 Vagrant? Vagrant 和 VirtualBox 的区别
关于 Vagrant 的介绍,可以参看前一篇文章:什么是 Vagrant? Vagrant 和 VirtualBox 的区别
关于 Vagrant 被问到最多的问题:Vagrant 和 Docker 之间有什么区别。
如果不分场景的直接比对 Vagrant 和 Docker 是不恰当的。在一些简单场景中,它们的作用是重复的,但在更多场景中,它们是无法相互替代的。
那么什么情况下应该用 Vagrant,什么情况下用 Docker 呢?
所以如果你仅仅是想管理虚拟机,那么你应该使用 Vagrant;如果你想快速开发和部署应用,那么应该使用 Docker。
下面具体来说说为什么。
Go 是一种开源编程语言,可以轻松构建简单、可靠和高效的软件。
先问一个大多数人可能会忽略的问题:Google 的这门开源编程语言叫 Go 还是 Golang?还是两个都行?给你三秒钟想一下 …
Google 说:它叫 Go。之所以有人称它为 Golang 是由于之前的 Go 语言官网是 golang.org(因为 go.org 已经被别人用了),因此有人将 Golang 和 Go 混用了。
现在输入 golang.org 会直接跳转到 go.dev 这个网址,这也算是彻底给自家孩子正个名。
官网是这样介绍 Go 语言的:
今天,Go 被用于各种应用程序:
本篇分享在编写 Dockerfiles 和使用 Docker 时应遵循的一些最佳实践。篇幅较长,建议先收藏慢慢看,保证看完会很有收获。
Dockerfile 最佳实践
COPY
而不是 ADD
Python
包缓存到 Docker 主机上ENTRYPOINT
和 CMD
之间的区别HEALTHCHECK
Docker 镜像最佳实践
.dockerignore
文件利用多阶段构建的优势来创建更精简、更安全的Docker镜像。多阶段 Docker 构建(multi-stage builds)允许你将你的 Dockerfile 分成几个阶段。
例如,你可以有一个阶段用于编译和构建你的应用程序,然后可以复制到后续阶段。由于只有最后一个阶段被用来创建镜像,与构建应用程序相关的依赖关系和工具就会被丢弃,因此可以留下一个精简的、模块化的、可用于生产的镜像。
Web 开发示例:
工作十几年用过了不少显示器,从最初的 17寸,到后来的 23寸、27寸、32寸、再到现在的 34 寸,根据我自己的使用体验,来个主观推荐:
第一名,一个34寸曲面显示器
第二名,一个27寸 + 一个23寸的双屏组合
第三名,一个32寸 + 一个23寸的双屏组合
第三名,两个 23 寸的双屏组合(并列第三名)
以上这些屏幕推荐购买 2K 及以上的分辨率,1080p 的分辨率不推荐。
下面我就按照时间轴说说我用过的那些显示器。
在一个组织内,不同的团队之间可能会有不同的维度来评估 CI/CD 的成熟度。这使得对衡量每个团队的 CI/CD 的表现变得困难。
如何快速评估哪些项目遵循最佳实践?如何更容易地构建高质量的安全软件?组织内需要建立一个由团队成员一起讨论出来的最佳实践来帮助团队建立明确的努力方向。
这里我参考了开源项目 CII 最佳实践徽章计划,这是 Linux 基金会 (LF) 发起的一个开源项目。它提供一系列自由/开源软件 (FLOSS) 项目的最佳实践方法。参照这些最佳实践标准的项目可以进行自认证, 以获得核心基础设施促进会(CII)徽章。要做到这点无需任何费用,你的项目可以使用 Web 应用(BadgeApp) 来证明是如何符合这些实践标准的以及其详细状况。
这些最佳实践标准可以用来:
最佳实践包含以下五个标准:基本,变更控制,报告,质量,安全,分析。
更多关于标准的细分可以参考 CII 中文文档 或 CII 英文文档。
已经很多知名的项目比如 Kubernetes, Node.js 等在使用这个最佳实践徽章计划
如果你的项目在 GitHub 上或是你可以按照上述的徽章计划进行评估,就可以使用它来评估你项目的最佳实践,并可以在项目主页的 README 上显示徽章结果。
如果上述项目不能满足你的评估要求,结合我的实践,制定了如下“最佳实践标准”并分配了相应的成熟度徽章,供参考。
徽章 | 分数 | 描述 |
---|---|---|
🚩WIP | < 100 | 小于100分获得 🚩Work In Progress 徽章 |
✔️PASSING | = 100 | 等于100分获得 ✔️PASSING 徽章 |
🥈SILVER | > 100 && <= 150 | 大于100,小于等于150分获得🥈银牌徽章 |
🥇GOLD | > 150 | 大于等于150分获得🥇金牌徽章 |
注:这个分数区间可调整。
类别 | 最佳实践标准 | 分数 | 描述 |
---|---|---|---|
基本 | 🔰构建任何分支 | 20 | Jenkins:支持任何分支构建 |
🔰构建任何PR | 20 | Jenkins:支持对任何 Pull Request 在 Merge 之前进行构建 | |
🔰上传制品 | 10 | Jenkins:构建产物上传到制品仓库保存 | |
👍容器化构建 | 10 | 推荐使用容器化技术实现Pipeline | |
质量 | 🔰自动化测试 | 20 | Jenkins:支持触发冒烟/单元/回归测试 |
👍性能测试 | 10 | Jenkins:支持触发性能测试 | |
👍代码覆盖率收集 | 10 | Jenkins:支持获得代码覆盖率 | |
安全 | 🔰漏洞扫描 | 10 | Jenkins:支持触发漏洞扫描 |
🔰License扫描 | 10 | Jenkins:支持触发证书扫描 | |
分析 | 👍Code Lint | 10 | Jenkins:支持对PR进行代码格式检查 |
👍静态代码分析 | 10 | Jenkins:支持对PR进行静态代码分析 | |
👍动态代码分析 | 10 | Jenkins:支持对PR进行动态代码分析 | |
报告 | 🔰Email或Slack通知 | 10 | 支持通过Email或Slack等方式通知 |
注:以Jenkins为例。
No | Repository Name | 实现的最佳实践标准 | 徽章 |
---|---|---|---|
1 | project-a | 🔰构建任何分支 🔰构建任何PR 🔰上传制品 🔰自动化测试 🔰Email或Slack通知 |
🚩WIP |
2 | project-b | 🔰构建任何分支 🔰构建任何PR 🔰上传制品 🔰自动化测试 🔰漏洞扫描 🔰License扫描 🔰Email或Slack通知 |
✔️PASSING |
3 | project-c | 🔰构建任何分支 🔰构建任何PR 🔰上传制品 👍容器化构建 🔰自动化测试 🔰漏洞扫描 🔰License扫描 🔰Email或Slack通知 |
🥈SILVER |
4 | project-d | 🔰构建任何分支 🔰构建任何PR 🔰上传制品 👍容器化构建 🔰自动化测试 👍性能测试 👍代码覆盖率收集 🔰漏洞扫描 🔰License扫描 👍Code Lint 👍静态代码分析 👍动态代码分析 🔰Email或Slack通知 |
🥇GOLD |
Q: 为什么使用徽章而不是分数?
A: 使用徽章能更好的帮助团队朝着目标而不是分数努力。
Q: 建立最佳实践标准还有哪些帮助?
A: 团队之间容易进行技术共享,更容易地构建高质量的安全软件,保持团队之间在统一的高水准。
最近实现了一个很有意思的 Workflow,就是通过 GitHub Actions 自动将每次最新发布的文章自动同步到我的 GitHub 首页。
就像这样在首页显示最近发布的博客文章。
要实现这样的工作流需要了解以下这几点:
README.md
信息会显示在首页README.md