DevOps 已经走了很长一段路,毫无疑问,它将在今年继续发光。由于许多公司都在寻求有关数字化转型的最佳实践,因此重要的是要了解领导者认为行业发展的方向。从这个意义上讲,以下文章是 DevOps 领导者对 DevOps 趋势的回应的集合,需要在 2021 年关注。
让我们看看他们每个人对来年的 DevOps 有何评价。
DevOps 已经走了很长一段路,毫无疑问,它将在今年继续发光。由于许多公司都在寻求有关数字化转型的最佳实践,因此重要的是要了解领导者认为行业发展的方向。从这个意义上讲,以下文章是 DevOps 领导者对 DevOps 趋势的回应的集合,需要在 2021 年关注。
让我们看看他们每个人对来年的 DevOps 有何评价。
As I have management our team’s git repositories for more than two years, and as my daily work using Bitbucket, so I’ll take it as an example.
Here are some settings recommend you to enable.
Recently our Bamboo server has an error when connecting to the Windows build system.
Some errors like: Can not connect to the host XXXX 22 port.
I log into the build machine find port 22 with the below command
netstat -aon|findstr "22" |
but not found port 22 is inbound.
相信许多程序员在新年开始在做 code sign (数字签名)的时候可能遇到 Verisign Timestamp 服务器不好用了 http://timestamp.verisign.com/scripts/timstamp.dll 的情况。出现了如下错误:
自 2020 年因疫情开始,越来越多的 IT 公司都因不得不在家办公从而彻底转为 WFH(Work From Home) 公司,因此对于 IT 从业者来说,工作机会今后将会是全球性的。
如果你有意想进入一个跨国公司工作,想与世界各地的人在一起工作,那么就不能仅仅的关注国内的这些大厂,要将眼光放眼到全世界,看看这些耳熟能详的公司对于工程师的职位要求有哪些。
今天就先来看看 DevOps 岗位的需求是什么样的,了解这些,一来可以帮助我们在2021 年树立学习方向,而来如果你有意向去这些公司,了解并提早做准备才能有机会获取你想要的岗位。
由于这些职位的介绍和要求会很长,因此我就先说结论。
具体的职位要求细节,请看后面的职位介绍吧 …
I believe most of you have used the Jenkins configuration as code principle, so you build/test/release process will be described in code.
It looks like all is good, but not all of the configuration is in code, same of the Jenkins system configuration is store in the Jenkins service, so we also need to backup Jenkins in case of any disaster.
There are two ways to backup Jenkins, one used Jenkins plugin, the other is create shell scripts.
I used the ThinBackup
plugin, here is my thinBackup configuration.
想要对 Java 项目进行代码覆盖率的测试,很容易就找到 JaCoCo 这个开源代码覆盖率分析工具是众多工具中最后欢迎的哪一个。
本篇仅仅是在学习 JaCoCo 时对其实现设计文档 https://www.jacoco.org/jacoco/trunk/doc/implementation.html 的粗略翻译。
这是实现设计决策的一个无序列表,每个主题都试图遵循这样的结构:
覆盖率信息必须在运行时收集。为此,JaCoCo 创建原始类定义的插装版本,插装过程发生在加载类期间使用一个叫做 Java agents 动态地完成。
有几种收集覆盖率信息的不同方法。每种方法都有不同的实现技术。下面的图表给出了 JaCoCo 使用的技术的概述:
字节码插装非常快,可以用纯 Java 实现,并且可以与每个 Java VM 一起工作。可以将带有 Java 代理钩子的动态插装添加到 JVM 中,而无需对目标应用程序进行任何修改。
Java 代理钩子至少需要 1.5 个 JVMs。用调试信息(行号)编译的类文件允许突出显示源代码。不幸的是,一些 Java 语言结构被编译成字节代码,从而产生意外的突出显示结果,特别是在使用隐式生成的代码时(如缺省构造函数或 finally 语句的控制结构)。
最近在思考如何将团队里的所有的虚拟机都很好的管理并监控起来,但是由于我们的虚拟机的操作系统繁多,包括 Windows, Linux, AIX, HP-UX, Solaris SPARC 和 Solaris x86. 到底选择哪种方式来管理比较好呢?这需要结合具体场景来考虑。
这里有一个关于 Chef,Puppet,Ansible 和 Saltstack 的对比文章
https://www.edureka.co/blog/chef-vs-puppet-vs-ansible-vs-saltstack/
如果你的虚拟机没有这么多平台,只是 Windows 和 Linux,假如你已经有了 VMware vSphere 来管理了,那么可以通过 VMware vSphere API 来查看这些机器的状态。
这里是 VMware 官方的 API Library 供使用:
如果你和我的情况一下,想监控很多个操作操作系统,那么就只能通过 ssh 来登录到每一台机器上去查看,比如执行 uptime
等命令。可以写 shell 脚本来完成这些登录、检测等操作。
另外就是使用 Ansible 的 Playbook。Playbook 里描述了你要做的操作,这是一个权衡,学习 Ansible 的 Playbook 需要花些时间的。
如果想了解下 Ansible 那么可以试试 Ansible Playbook。以下是我使用 Ansible 做了一些练习。
+- vars |
我在使用 Artifactory 做持续集成已经有一段时间了,对企业级 Artifactory 也有了一些经验和总结,希望能通过本篇的分享帮助刚接触这个工具的人了解什么是Artifactory,它能做什么,为什么要选择它,以及在使用过程中应该注意什么。
一句话概括:Artifactory 是一个存放制品(Artifacts)的工具。当前,Artifactory 是一个非常有影响力,功能非常强大的工具。
可能你的团队已经有了自己的管理制品的方式,比如 FTP 等。Artifactory 能带来什么呢?让我先来看看它有哪些优势。
注:以下优势都是针对 JFrog Aritifacvtory 企业版来介绍的。开源版,即 OSS 版本不具备以下丰富的功能。
JFrog Artifactory 企业版完全支持所有主要包格式的存储库管理器。它不但可以管理二进制文件,也可以对市面上几乎所有语言的包的依赖进行管理,如下图所示
因此,使用 Artifactory 能够将所有的二进制文件和包存储在一个地方。
本篇介绍个人或企业在 GitHub 上发布一个 Python 项目需要了解和注意哪些内容
打包和发布一项都是通过准备一个 setup.py
文件来完成的。假设你的项目目录结构如下:
demo |
在使用打包命令 python setup.py sdist bdist_wheel
,将会生成在 dist 目录下生成两个文件 demo-1.0.0-py3-none-any.whl
和 demo-1.0.0.tar.gz
.whl
文件是用于执行 pip install dist/demo-1.0.0-py3-none-any.whl
将其安装到 ...\Python38\Lib\site-packages\demo
目录时使用的文件。
.tar.gz
是打包后的源代码的存档文件。而 MANIFEST.in
则是用来控制这个文件里到底要有哪些内容。
If you want to release python project on PyPI, you must need to know about PyPI usage characteristics, then I did some test about pip install command.
For example: I have a Python project called demo-pip
. and beta release would like 1.1.0.xxxx
, offical release version is 1.1.0
to see if could success upgrade when using pip
command.
Base on the below test results, I summarized as follows:
--upgrade
option or not, they’ll all both success.--upgrade
option installs successfully. without --upgrade
option install failed.--upgrade
option or not, install failed.--upgrade
not work when our official release version is 1.1.0.