Merge remote-tracking branch 'LCTT/master'

This commit is contained in:
Xingyu Wang 2020-08-08 16:28:34 +08:00
commit 88a1fe5633
4 changed files with 167 additions and 170 deletions

View File

@ -0,0 +1,79 @@
[#]: collector: (lujun9972)
[#]: translator: (chenmu-kk)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12497-1.html)
[#]: subject: (Developer happiness: What you need to know)
[#]: via: (https://opensource.com/article/19/2/developer-happiness)
[#]: author: (Bart Copeland https://opensource.com/users/bartcopeland)
开发者的福音:你需要知道的事
======
> 开发者需要快速编程的工具和自由,而不会因为合规性和安全性所困扰。
![](https://img.linux.net.cn/data/attachment/album/202008/07/214051ki2zitovo8zzynco.jpg)
一个人需要合适的工具来完成工作。比如说没有比修车修到一半,却发现你没有完成工作的专业工具更沮丧的事情了。同样的道理也适用在开发者身上:你需要工具来发挥你的才能,而不会因为合规性和安全性的需求打断你的工作流程,这样你才可以更快速地编码。
根据 ActiveState 的研究《[2018 年开发者调查:开源运行时的痛苦][1]》显示,超过一半的开发人员(具体为 51%),每天只需要花费 1-4 小时的时间进行编程。换句话说大多数开发人员花费不到一半的时间编程。根据调查一半的开发人员认为安全是他们最大的担忧之一但是由于公司政策方面的原因67% 的开发人员选择在编程时不添加新的语言。
结果是开发人员不得不投入更多的精力在非编码的活动上,例如在构建软件和语言之后检查软件的安全性和合规性标准。而且由于公司政策的原因,他们无法选择适合的开发工具或语言。他们的满意度会下降,同时风险提高。
因此,开发人员无法将时间投入在高价值的工作上。这会带来额外的商业风险,因为他们的软件上市时间变慢了,并且公司因为没有授权开发人员在不受公司政策影响的前提下决定“最佳的”技术的能力,从而增加了技术债务。
### 纳入安全性和合规性的工作流程
我们如何解决这个问题呢?一种方式是通过四个简单的步骤将安全性和合规性的工作流程集成到软件开发中:
#### 1、集中你的力量
获得所有相关人员的支持,这是一个经常被遗忘但却至关重要的第一步。确保考虑到了广泛的利益相关者,包括:
* 开发运维DevOps
* 开发人员
* 信息安全
* 合法/合规
* IT 安全
利益相关者想要了解相关的商业利益,因此要为消除软件构建后的安全和合规性检查点提供坚实的理由。你可以在构建你的商业案例中考虑以下任何一个(或者全部)因素:节省时间、机会成本和开发人员生产力。在开发流程中,你也可以通过集成安全性和合规性来避免语言的改造。
#### 2、寻找可信赖的资源
接下来,选择可使用的可信资源,以及他们的许可证和安全要求。考虑到如下相关信息:
* 基于环境或应用程序类型的使用限制以及每种语言的版本控制
* 允许哪些开源组件,例如,特定的程序包
* 哪种环境类型可以使用哪种许可证(例如,研究与生产)
* 安全级别的定义、可接受的脆弱性风险等级、什么样的风险级别会触发一个措施,这个措施是什么并且谁来负责它的执行
#### 3、从一开始就纳入安全性和合规性
纳入安全性和合规性的工作流程的结果是,它最终将安全性和合规性融入到代码的第一行。它消除了公司政策的拖累,因为你是按照规范进行编码,而不是必须事后解决问题。但要做到这一点,请考虑在构建代码时采用自动扫描代码的机制,以及使用无代理监控你的运行时代码。你可以节省时间,还可以通过编程实施策略来确保整个组织的合规性。
#### 4、监控、报告和更新
出现新的漏洞,新的补丁和版本也会出现。所以,将代码部署到生产中以及运行代码时,需要考虑安全性和合规性。你需要知道哪些(如果有的话)代码存在风险以及该代码在何处运行。所以,部署和运行代码的过程应该包括监视、报告和更新生产中的代码。
通过一开始就在你的软件开发过程中集成安全性和合规性,你还可以在部署后跟踪代码的运行位置,并在新的威胁出现时获得警报。你也能追踪当你的应用程序何时受到攻击,并通过自动执行软件策略做出响应。
如果你的软件开发过程中已经引入了安全性和合规性的工作流程,你将会提高你的生产率。你将能够通过增加编码时间、提高安全性和稳定性、以及在维护和发现安全性和合规性的威胁方面节省的成本和时间来衡量价值。
### 集成所带来的幸福
如果你不开发和更新软件,你的组织将无法前进。开发人员是公司成功的关键,这意味着他们需要快速编写代码的工具和自由。尽管合规性和安全性至关重要,但你不能让这个需求阻碍你的发展。开发人员显然很担心安全性,因此最好的办法就是“左移”,从一开始就集成安全性和合规性的工作流程。你将可以做更多的事情,在第一次就可以完成,而花费更少的时间进行代码更新。
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/2/developer-happiness
作者:[Bart Copeland][a]
选题:[lujun9972][b]
译者:[chenmu-kk](https://github.com/chenmu-kk)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/bartcopeland
[b]: https://github.com/lujun9972
[1]: https://www.activestate.com/company/press/press-releases/activestate-developer-survey-examines-open-source-challenges/

View File

@ -0,0 +1,88 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12496-1.html)
[#]: subject: (Easy DNS configuration with PowerDNS for nameservers)
[#]: via: (https://opensource.com/article/20/5/powerdns)
[#]: author: (Jonathan Garrido https://opensource.com/users/jgarrido)
使用 PowerDNS 轻松配置 DNS 名称服务器
======
> 使用 PDNS 为你的项目提供稳定可靠的域名系统DNS服务器。
![](https://img.linux.net.cn/data/attachment/album/202008/07/202953copoqjmkefkdf3j4.jpg)
几个月前,我们接到了一个要求,为一个新项目提供一个稳定可靠的域名系统([DNS][2])服务器。该项目使用容器进行自动部署,每个新环境都会生成唯一的随机 URL。在对可能的方案进行了大量研究之后我们决定尝试一下 [PowerDNS][3]PDNS
一开始,我们发现 PowerDNS 在所有主流 Linux 发行版中都得到了支持,它采用 GPL 许可,且仓库保持更新。我们还在官方网站上发现了整洁、组织良好的[文档][4],以及大量来自真正喜欢和使用该产品的人在网络上的使用方法。看了一些并学习了一些基本命令之后,安装了 PDNS启动并运行我们的旅程开始了。
### 数据库驱动
PowerDNS 将记录保存在 SQL 数据库中。这对我们来说是新变化,不必使用文本文件来保存记录是一个不错的更改。我们选择 MariaDB 作为首选的强大工具,由于有大量的正确地设置来安装名称服务器的信息,我们可以完美地设置和加固我们的数据库。
### 简单配置
其次使我们感兴趣的是 PDNS 的所有功能都在配置文件中。`pdns.conf` 有许多选项,你可以通过添加或删除 `` 号来启用或禁用这些选项。这真是太神奇了,因为它使我们有机会将这项新的服务集成到我们现有的基础架构中,并且只有我们想要的功能,不多也不少。一个简单的例子:
谁可以访问你的网络服务器?
```
webserver-allow-from=172.10.0.1,172.10.1.2
```
我可以转发基于域的请求吗?当然!
```
forward-zones=mylocal.io=127.0.0.1:5300
forward-zones+=example.com=172.10.0.5:53
forward-zones+=lucky.tech=172.10.1.5:53
```
### 包含 API
我们可以使用配置文件进行激活 API 服务,解决了我们开发团队的第一个需求,让我们见识到了 PDNS 的强大。这个功能让我们通过发送请求,简单、干净地创建、修改或删除 DNS 服务器中的记录。
这个 API 有一些基本的安全性参数,因此,只需几步,你就可以基于 IP 地址和预共享密钥验证的组合来控制谁有权与名称服务器进行交互。这是配置文件的样子:
```
api=yes
api-key=lkjdsfpoiernf
webserver-allow-from=172.10.7.13,172.10.7.5
```
### 日志
在日志方面PDNS 做得非常出色。你可以使用日志文件和一个简单的内置 Web 服务器来监控服务器并查看计算机的运行状况。你可以使用浏览器查看服务器不同类型的统计信息,例如 CPU 使用率和收到的 DNS 查询。这非常有价值。例如,我们能够检测到一些“不太健康”的 PC它们正在向我们的服务器发送与恶意流量相关的站点的 DNS 请求。深入查看日志后,我们可以看到流量来自何处,并对这些 PC 进行清理操作。
### 其他功能
这只是你使用 PowerDNS 可以做的所有事情的一点点。它还有更多的功能。它是一个拥有很多功能和特性的完整名称服务器,因此值得一试。
目前,我们尚未部署 [DNSSEC][5]但似乎只需点击一下即可将其快速投入生产环境。另外在将递归服务与名称服务器分离时PowerDNS 有个不错的方法。我了解到它还支持 [DNS RPZ][6](响应策略区域),并且还提供了非常不错且设计良好的前端,可让你使用 Web 浏览器来管理服务器,如下图。
![PowerDNS frontend][7]
信不信由你,你只需花费几个小时了解 PDNS就可以大大提高你对 DNS 和 IT 操作的了解。
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/5/powerdns
作者:[Jonathan Garrido][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jgarrido
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_space_graphic_cosmic.png?itok=wu493YbB (Computer laptop in space)
[2]: https://en.wikipedia.org/wiki/Domain_Name_System
[3]: https://www.powerdns.com/opensource.html
[4]: https://doc.powerdns.com/
[5]: https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions
[6]: https://dnsrpz.info/
[7]: https://opensource.com/sites/default/files/uploads/pdns.jpg (PowerDNS frontend)

View File

@ -1,78 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (chenmu-kk)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Developer happiness: What you need to know)
[#]: via: (https://opensource.com/article/19/2/developer-happiness)
[#]: author: (Bart Copeland https://opensource.com/users/bartcopeland)
开发者的福音:你必须知道的事
======
开发者需要工具和快速编程的自由,不会因为合规性和安全性使得它停滞而无法进行下去。
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_happy_sad_developer_programming.png?itok=72nkfSQ_)
个人需要合适的工具来完成工作。比如说没有比修车中途才发现 你没有完成工作的专业工具更沮丧的事情了。同样的道理也适用在开发者身上:你需要工具来发挥你的最大才能,而不会因为合规性和安全性的需求打断你的工作流程,因此你可以更快速地编码。
根据ActiveState的最新研究显示超过一半的开发人员具体为51%每天只需要花费1-4小时的时间进行编程[Developer Survey 2018: Open Source Runtime Pains][1]。换句话说大多数开发人员花费不到一半的时间编程。根据调查一半的开发人员认为安全是他们最大的担忧之一但是由于公司政策方面的原因67%的开发人员选择在编程时不添加新的语言。
结果是开发人员不得不投入更多的精力在非编码的活动上,例如在构建软件和语言之后检查软件的安全性和合规性标准。而且由于公司政策的原因,他们无法选择适合的开发工具或语言。他们的满意度会下降同时风险提高。
因此,开发人员无法将时间投入在高价值的工作上。这会带来额外的商业风险,因为他们的上市时间变了慢,并且公司因为没有授权开发人员在不受公司政策影响的前提下决定最佳技术的能力而增加了技术债务。
### 固化安全性和合规性的工作流程
我们如何解决这个问题呢?一种方式是通过四个简单的步骤将有安全性和合规性的工作流程集成在软件开发中:
#### 1\. 集中你的力量
获得所有相关人员的支持,这是一个经常被遗忘但却至关重要的第一步。确保考虑到了广泛的利益相关者,包括:
* 开发运维
* 开发人员
* 信息安全
* 合法/合规
* IT安全
利益相关者想要了解相关的商业利益,因此要做一个稳固的案例来消除软件构建后的安全性和合规性的检查点。你可以在构建你的商业案例中考虑以下任何一个(或者全部)因素:节省时间,机会成本和开发人员生产力。在开发处理过程中,你也可以通过集成安全性和合规性的工作流程来避免语言的改造。
#### 2\. 寻找可信赖的资源
接下来,选择可使用的可靠资源,以及他们的许可证和安全要求。考虑到如下相关信息:
* 基于环境或应用程序类型以及每种语言的版本控制的使用限制
* 允许哪些开源组件,例如,特定的程序包
* 哪种环境类型可以使用哪种许可证(例如,研究与生产)
* 安全级别的定义,可接受范围内的漏洞风险级别,什么样的风险级别会触发一个措施,这个措施是什么并且谁来负责它的执行呢
#### 3\. 从第一天开始就融入安全性和合规性
合并安全性和合规性的工作流程的结果是最终它将安全性和合规性固化成代码中的第一行。它消除了公司政策的麻烦,因为您是按照规范进行编码,而不是必须事后解决问题。但要做到这一点,请考虑在构建代码时采用自动扫描代码的机制,以及对运行时代码使用无代理监视。你可以节省时间,还可以通过编程实施策略来确保整个组织的合规性。
出现新的漏洞,并且提供有效的新补丁和版本。所以,将代码部署到生产中以及运行代码时,需要考虑安全性和合规性。你需要知道哪些(如果有的话)代码存在风险以及该代码在何处运行。所以,部署和运行代码的过程应该包括监视,报告和更新生产中的代码。
通过一开始就在你的软件开发过程中集成安全性和合规性,你还可以在部署后跟踪代码的运行位置,并在新的威胁出现时获得警报。你也能追踪当你的应用程序何时受到攻击,并通过自动执行软件策略做出响应。
如果你的软件开发过程中已经引入了安全性和合规性的工作流程,你将会提高你的生产率。您将能够通过增加编码时间、提高安全性和稳定性、以及在维护和发现安全性和合规性的威胁方面节省的成本和时间来衡量价值。
### 集成所带来的幸福
如果你不开发和更新软件,你的公司将无法前进。开发人员是公司成功的关键,这意味着他们需要快速编写代码的工具和自由。尽管合规性和安全性至关重要,但你不能让这个需求阻碍你的发展。开发人员显然很担心安全性,因此最好的办法就是“左移”,从一开始就集成安全性和合规性的工作流程。你将可以做更多的事情,在第一次就可以完成,而花费更少的时间进行代码更新。
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/2/developer-happiness
作者:[Bart Copeland][a]
选题:[lujun9972][b]
译者:[chenmu-kk](https://github.com/chenmu-kk)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/bartcopeland
[b]: https://github.com/lujun9972
[1]: https://www.activestate.com/company/press/press-releases/activestate-developer-survey-examines-open-source-challenges/

View File

@ -1,92 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Easy DNS configuration with PowerDNS for nameservers)
[#]: via: (https://opensource.com/article/20/5/powerdns)
[#]: author: (Jonathan Garrido https://opensource.com/users/jgarrido)
使用 PowerDNS 轻松配置 DNS nameserver
======
使用 PDNS 为你的项目提供稳定可靠的域名系统 DNS 服务器。
![Computer laptop in space][1]
几个月前,我们要求为新项目提供稳定可靠的域名系统 [DNS][2] 服务器。项目使用容器进行自动部署,每个新环境都会生成唯一的随机 URL。在对可能的方案进行了大量研究之后我们决定尝试 [PowerDNS][3]PDNS
一开始,我们发现 PowerDNS 在所有主流 Linux 发行版中都受支持,它是 GPL 许可,且仓库保持更新。我们还在官方网站上发现了整洁、组织良好的[文档][4],还有网上许多喜欢且在使用这个产品的人们许多的操作方法。看了一些并学习了一些基本命令之后,安装了 PDNS启动并运行我们的旅程开始了。
### 数据库驱动
PowerDNS 将记录保存在 SQL 数据库中。这对我们来说是新的,不必使用文本文件来保存记录是一个不错的更改。我们选择 MariaDB 作为首选的强大工具,由于有大量有关安装 nameserver 的正确设置信息,我们可以完美地设置和加固我们的数据库。
### 简单配置
使我们感兴趣的第二件事是 PDNS 的所有功能都在配置文件中。pdns.conf 有许多选项,你可以通过添加或删除#号来启用或禁用这些选项。这真是太神奇了,因为它使我们有机会将这项新服务集成到我们现有的基础架构中,并且只有我们想要的功能,不多也不少。一个简单的例子:
谁可以访问你的网络服务器?
```
`webserver-allow-from=172.10.0.1,172.10.1.2`
```
我可以转发基于域的请求吗?当然!
```
forward-zones=mylocal.io=127.0.0.1:5300
forward-zones+=example.com=172.10.0.5:53
forward-zones+=lucky.tech=172.10.1.5:53
```
### 包含 API
我们可以使用配置文件进行激活,通过解决我们开发团队的第一个请求 API 服务),我们见到了 PDNS 的强大。这个功能让我们通过发送请求,简单、干净地创建、修改或删除 DNS 服务器中的记录。
API 有一些基本的安全性参数,因此,只需几步,你就可以基于 IP 地址和预共享密钥验证的组合来控制谁有权与 nameserver 进行交互。这是配置文件的样子:
```
api=yes
api-key=lkjdsfpoiernf
webserver-allow-from=172.10.7.13,172.10.7.5
```
### 日志
在日志方面PDNS 做得非常出色。你可以使用日志文件和简单的内置 Web 服务器来监控服务器并查看计算机的运行状况。你可以使用浏览器查看服务器不同类型的统计信息,例如 CPU 使用率和收到的 DNS 查询。这非常有价值。例如,我们能够检测到一些“不太健康”的 PC它们正在向我们的服务器发送与恶意流量相关的站点的 DNS 请求。深入查看日志后,我们可以看到流量来自何处,并对这些 PC 进行清理操作。
### 其他功能
这只是你使用 PowerDNS 可以做的所有事情的一瞥。它还有更多的功能。它是一个拥有很多功能和特性的完整 nameserver因此值得一试。
目前,我们尚未部署 [DNSSEC][5],但似乎只需点击一下即可将其快速投入生产。另外,在将递归服务与 nameserver 分离时PowerDNS 有个不错的方法。我了解到它还支持 [DNS RPZ][6](响应策略区域),并且还提供了非常不错且设计良好的前端,可让你使用 Web 浏览器来管理服务器,如下图。
![PowerDNS frontend][7]
([PowerDNS 文档][4]MIT 许可)
信不信由你,你只需花费几个小时了解 PDNS就可以大大提高你对 DNS 和 IT 操作的了解。
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/5/powerdns
作者:[Jonathan Garrido][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jgarrido
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_space_graphic_cosmic.png?itok=wu493YbB (Computer laptop in space)
[2]: https://en.wikipedia.org/wiki/Domain_Name_System
[3]: https://www.powerdns.com/opensource.html
[4]: https://doc.powerdns.com/
[5]: https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions
[6]: https://dnsrpz.info/
[7]: https://opensource.com/sites/default/files/uploads/pdns.jpg (PowerDNS frontend)