Rancher 中文文档 目录
2017-10-27 tech rancher docker 1 mins 366 字
最近在接触 Rancher 。还不习惯阅读英文文档,决定自己翻译一些官方文档:http://rancher.com/docs/rancher/latest/en/。
2017-11-8更新:我打算弃坑了,看完前三章已经会的差不多了233333333333333后边的我就不更新了。
以下是这次翻译的目录:
最近在接触 Rancher 。还不习惯阅读英文文档,决定自己翻译一些官方文档:http://rancher.com/docs/rancher/latest/en/。
2017-11-8更新:我打算弃坑了,看完前三章已经会的差不多了233333333333333后边的我就不更新了。
以下是这次翻译的目录:
有的 Linux 机器没有安装 ntfs 安装包,就无法挂载 NTFS 格式的硬盘。连格式化该硬盘都无法做到。
然而 ntfs 的安装包不叫 ntfs
我第一次尝试安装
apt-get install ntfs
就显示没有这个包Orz
遇到这种情况有两种办法。
apt-cache search ntfs
好吧,我的第一反应打了 apt-get search
,没想到也是不对的。
firewalld 提供了支持网络 / 防火墙区域 (zone) 定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。以前的 iptables 防火墙是静态的,每次修改都要求防火墙完全重启。这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等。而模块的卸载将会破坏状态防火墙和确立的连接。现在 firewalld 可以动态管理防火墙,firewalld 把 Netfilter 的过滤功能于一身.
以上引自《使用 firewalld 构建 Linux 动态防火墙 - IBM》
systemctl start firewalld.service
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl restart firewalld.service
systemctl status firewalld.service
firewall-cmd --state
还没有做任何配置,default zone和active zone都应该是public
firewall-cmd --get-default-zone
firewall-cmd --get-active-zones
firewall-cmd --zone=public --list-ports
firewall-cmd --list-services
firewall-cmd --get-services
firewall-cmd --permanent --add-service=IPSec // 换成想要开放的service
firewall-cmd --zone=public --add-port=8080/tcp --permanent (
# --permanent永久生效,没有此参数重启后失效
然后更新规则
firewall-cmd --zone= public --remove-port=80/tcp --permanent
firewall-cmd --reload
或者直接重启 firewall
systemctl restart firewalld
systemctl enable firewalld.service
systemctl disable firewalld.service
systemctl is-enabled firewalld.service
接触到了一些POC测试的东西。这篇文章翻译的真不错。转载过来看一下~~
译者是:海燕。
如何实现在自动化测试中的概念验证(POC) ?
每个团队都有不同的测试过程和步骤,手工测试是重要的、不可代替的,然而,自动化测试正加快它的发展脚步。
向一个团队介绍自动化测试是一个挑战,以下的要点将决定他们是否需要自动化测试:
项目持续时间
短期项目还是长期项目–长期项目更适合自动化测试
每轮测试要进行多少次的回归验证?
对具有重复性和冗长回归测试的项目进行自动化测试,降低了整体的测试时间,同时确保了完全覆盖。
应用程序的稳定性
应考虑对不受频繁变动的应用程序进行自动化测试。不稳定的产品,其图形用户界面/功能、页面元素或者XPath在不断变化 ,不应该实行自动化,不应在稳定之前对其进行自动化测试。
项目数据是否安全,测试是否需要一些复杂的过程?
在这种情况下,最好是做手工测试
团队有自动化测试的预算吗?
自动化测试将给团队增加额外的支出,例如:自动化工具成本、资源成本以及用于框架开发和编写/维护自动化测试脚本所需的时间成本 。
对于自动化测试来说,漏测、认为测试结果是理所当然的情况将永远不会发生。它100%保证每个给定的模块的覆盖率并且每一次的测试都是相同的。同时,它也将有助于在多个浏览器和多个平台上,多次执行相同的测试。
以下的图片,将帮助你了解自动化测试的过程
从技术测试的角度来看,QA团队需要从以下几个方面了解他们的自动化工具:
选择正确自动化测试工具:
1. 被测的应用程序是一个网络应用程序还是桌面应用程序
2. 选择一个开源工具还是付费工具
3. 工具应满足应用程序的测试要求
4. 使用该工具—根据团队的专业知识以及适合级别来使用和学习工具
5.是否支持报告?如果不支持,没有其他的报告可供选择(开源或付费),如果支持的话,它是如果从介绍和内容的角度来传递正确的数据 **另外:工具评估包括:**
在选择自动化工具时,有一点是非常重要的,那就是要考虑它是否支持应用程序图形用户界面 GUI 的实现。
1、GUI的实现,是使用传统的HTML或Ajax或其他Web开发工具
2、GUI是否包括视频,图像或大量的文本?
3、它是交互性的还是静态信息
4、浏览器测试
通过上面几点来评估测试工具,用来了解该工具是否真的符合项目的测试要求是很重要的。
实施 **自动化测试(POC) **是至关重要的,最常用的是向一个团队介绍一个工具的一种方法。一旦决定做自动化测试,选定了工具,就是时候为POC创建原型,然后提交给管理层来展示它的实时使用情况以及效益。
要做到这一点:
1、决定在POC中我们将用到的测试用例
2、选择客户最感兴趣的领域可以帮助更好的展示
3、通过一种方式来计划显示手工测试VS自动化测试,证明选择自动化测试在质量上没有退化
4、添加一个运行失败并继而找到缺陷的测试用例–这有助于进一步证实该工具确实可以找到缺陷
5、在任何需要的地方使用断言和验证点
6、明确哪些可以和不能自动化测试的地方。通常,以下几个方面不能自动化测试:
7、高亮显示,如果该工具满足以下要求:
POC的结果 -通常是下列之一:
1、工具符合项目要求–进一步的细节,例如,实施成本-谈判价格是必要的,最后确定的许可费、培训以及支持成本,咨询和实施支出等。在开源工具的情况下,确定工具的成熟度和学习曲线,以及是否可以获取学习资源和后续支持,不论是授权的工具还是开源工具,都需要考虑维护成本。需要牢记的是,这些好处在很长一段时间内才是巨大的。
2、工具不符合要求且有其局限性,则不再考虑该工具。
3、工具部分符合要求–重新审视和检查假如有一个能更好的满足要求,或完全与自动化无关。
一旦我们向管理层提出我们的概念证明,并得到了他们的批准。下一步就是在试点项目上尝试该工具。
POC模板:
没有一个完美的POC模板。它的模板一般包括:
1、POC要求
2、POC备选项(所有的自动化工具)
3、项目要求
4、基于项目需求的每一种工具的优缺点
5、POC的结果
这里有几个参考自动化POC模板:
= > POC模板1
= > POC模板2
实施试点项目:
我们应该确定我们的试点项目:
第1步# 选择测试案例
第2步# 自动化框架开发
测试自动化框架是一组概念、过程、程序、实践和环境的集合。这只不过是一个集成的系统,由规则组成,来自动化测试任何给定的产品。该系统包括一系列的功能库、API、测试数据、对象库以及各种其他模块。用于测试自动化的框架和方法脚本,对它本身的成本有影响。
以下的脚本技术可以使用:
使用上述任何技术,都可以设计一个测试框架,以帮助实现一个特定的格式来推动测试,简化测试执行和报告。
确定模板、对象的命名规则、测试用例、测试套件、数据仓库等。
第3步# 脚本开发与执行
第4步# 报告
该工具是否具有内置的报表功能?内置的报告能够准确地传送所有需要的信息吗?我们需要另一个工具,如水晶报表,reportNG等来达到报告的目的吗?
第5步# 维护自动化脚本
向利益相关者说明:
正如概念证明和实施试点项目十分重要一样,将其以正确的方式呈现也同样重要。以下几点将有助于用一种积极的方式呈现:
1、通过描述在每个测试周期中,手动测试有多么耗费精力,手动测试中面临的挑战以及如何通过自动化测试来解决问题来开始说明。
2、解释基于概念证明如何选择工具
3、自动化工具的突出特点及其如何满足测试要求
4、同时通过自动化运行,说明自动化工具如何不仅更快的测试执行,同时还有它执行验证和错误识别的能力。
5、演示报告如何显示测试用例的执行状态
6、突出报告功能,如通过彩色的图例来显示不同的测试状态,不同的测试情况下,失败的测试案例的快照,并报告可移植性
7、最后展示每一个测试周期减少的测试时间
8、解释如何实现你已经开发的整个自动化框架,以及它在使用和维护方面的好处。
做好回答一个简单的、关键的功能将需要多少时间来自动化的问题的准备 。除此之外,如果应用程序发生一个小的变更,将需要多少脚本变更以及需要多少时间来修改。
我们希望本指南能帮助你开始写一个自动化测试POC文件。
【英文原文:http://www.softwaretestinghelp.com/implement-proof-of-concept-poc-in-automation-testing/】
最近又要安装新系统,然后按照惯例地搭建工作环境。却在 postgresql 这一块出了问题,使用 Navicat Premium 访问数据库时弹出了这样的错误:
column “rolcatupdate” does not exist
出现这个问题的根源在于 Postgres 9.5 以后 “rolcatupdate” 便不再支持了。这个问题是客户端的问题。23333333333
所以用官方自带的 pgAdmin 4 访问数据库,则完全不会出现这个问题呢。
其实要解决 Navicat Premium 的这个报错也很简单,你只需要用官方自带的客户端添加好相应的数据库db 和角色role,这个报错就不会再出现了~
服务治理,从中文字面意思不好理解,如果你知道他的英文,很容易就能理解了:service manage —— 管理服务。以下转载自: 分布式系统中的必备良药 —— 服务治理 ,写的很好,可以辅助学习和理解。
首先本文仅作为笔者在做一些调研之后的总结,仅提供思路,不提供源码,所以如果是想直接冲着源码来的,可以跳过此文。如果后续有机会将项目开源出来,会第一时间写新文章讲解实线细节。
在分布式系统的构建之中,服务治理是类似血液一样的存在,一个好的服务治理平台可以大大降低协作开发的成本和整体的版本迭代效率。在服务治理之前,简单粗暴的RPC调用使用的点对点方式,完全通过人为进行配置操作决定,运维成本高(每次布置1套新的环境需要改一堆配置文件的IP),还容易出错,且整个系统运行期间的服务稳定性也无法很好的感知。
关于服务治理网上相关的信息也是非常多,但是如何基于每个公司的当下情况去选择最合适的方案落地,是我们每个架构师或者Leader需要考虑的问题。所谓工欲善其事必先利其器,做好了服务治理,那么SOA化的推进会事半功倍,已经从技术层面天然支持了程序的水平扩展。.Neter社区下成熟的服务治理平台缺乏,我想这也是每个基于.Net技术栈公司面临的问题。2016年微软正式推出了Service Fabric,并于17年开源(https://github.com/Azure/service-fabric),但是相对Java社区常见的解决方案,这个还未得到大规模验证,所以还需谨慎对待。所以本文就通过对不同的成熟解决方案来分析,提炼出一些核心的通用准则,来分析自建一个服务治理框架需要做些什么。欢迎大家拍砖。
查阅的一些资料,目前的业界一些比较成熟的解决方案如下:
名称 | 所属公司 | 是否开源 | 资料文档 | 备注 |
---|---|---|---|---|
Dubbo | 阿里巴巴 | 是 | 多 | |
HSF | 阿里巴巴 | 否 | 中 | 目前已作为阿里云产品EDAS其中的套件开放使用 |
Tars | 腾讯 | 是 | 中 | 已作为腾讯云应用框架对外提供使用 |
JSF | 京东 | 否 | 少 | |
Linkerd | CNCF | 是 | 少 | 原型是Twitter所构建的一个基于scala的可扩展RPC系统Finagle |
Motan | 新浪微博 | 是 | 中 | |
istio | 谷歌、IBM、Lyft | 是 | 少 |
相关资料文档较为丰富的只有一个Dubbo。下面先罗列一下这些解决方案的架构设计(点击图片可跳转到图片出处)。
译者注:原文地址,本译文仅供学习参考,如有侵权请立即联系我,我会立即删除。
Compose是一个用于在Docker上定义并运行复杂应用的工具。通过Compose,你可以很容易地使用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。
在开发环境、临时服务器、CI中使用Compose是非常合适的。但是,我们目前不建议你在生产环境中使用。
使用Compose需要三个基本步骤。
首先,你需要使用一个Dockerfile
来定义你的应用的运行环境,这样你就可以在任何地方轻松地重建这个环境。
FROM python:2.7
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code
CMD python app.py
然后,你需要在docker-compose.yml
中确定你的应用所使用的服务,这样它们就可以在一个隔离环境中一起运行。
web:
build: .
links:
- db
ports:
- "8000:8000"
db:
image: postgres
最后,执行docker-compose up
命令,然后Compose就会启动并运行你的整个应用。
Compose有一整套命令来对你的应用的整个生命周期进行管理。
让我们完整地进行一套Compose的使用流程——在Compose上运行一个简单的Python的web应用。在这里我们假定你已有一点关于Python的知识,但是即使你不懂也没关系,下文中会出现的概念都很浅显易懂。
首先,安装Docker和Compose。
然后,创建项目目录。
$ mkdir composetest
$ cd composetest
在目录中,创建app.py
,这是一个使用Flask框架、用于递增Redis中的数据的简单应用。
from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
redis.incr('hits')
return 'Hello World! I have been seen %s times.' % redis.get('hits')
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
接下来,在requirements.txt
中确定Python依赖:
flask
redis
现在,创建一个包含了你的应用所有依赖的Docker镜像。你需要在Dockerfile
中确定你创建镜像的Docker命令:
FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
这些命令会创建一个包含Python、你的代码、Python依赖的Docker镜像。想了解更多关于如何编写Dockerfile的信息,请看Docker用户指南和Dockerfile参考文档
接下来,在docker-compose.yml
中定义你使用的服务的集合:
web:
build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
redis:
image: redis
上文确定了两个服务:
Dockerfile
安装在当前目录。另外它在镜像中运行了python app.py
命令。在镜像中,容器使用开放的5000端口连接宿主机的5000端口,同时访问Redis服务,并且将当前目录挂载到容器中,这样我们在代码上工作改进时就不需要重建镜像了。redis
,这个服务使用了公共镜像redis,这个进镜像可以从Docker中心注册镜像库(Docker Hub registry)上拉下来。现在,当我们执行docker-compose up
命令时,Compose就会自动拉下Redis镜像,按你的需求建立镜像,然后将环境和依赖部署好,并运行相关服务:
$ docker-compose up
Pulling image redis...
Building web...
Starting composetest_redis_1...
Starting composetest_web_1...
redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3
web_1 | * Running on http://0.0.0.0:5000/
这个web应用现在应该正在Docker守护进程上监听5000端口(如果你使用了Boot2docker工具,执行boot2docker ip
可以显示它的地址)。
如果你希望后台运行这些服务,就在执行docker-compose up
时传入-d
标志,执行 docker-compose ps
就可以看到现在正在运行的服务:
$ docker-compose up -d
Starting composetest_redis_1...
Starting composetest_web_1...
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------
composetest_redis_1 /usr/local/bin/run Up
composetest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp
docker-compose run
命令能够让你对服务执行一次性指令。比如,如果你想查看web
服务的所有可用环境变量:
$ docker-compose run web env
通过查看docker-compose run web env
的回显能够查看其他可用命令。
如果你使用docker-compose up -d
命令启动Compose,你可能需要这条指令来在运行应用结束后终止你需要的服务:
$ docker-compose stop
看完以上内容,你已经了解了使用Compose的基本过程。