DevOps

针对从事自动化测试,持续交付,服务集成和监控以及构建SDLC基础架构的软件工程师的问答

5
DevOps是否仅限于具有SaaS产品的公司?
描述DevOps的实践(例如连续交付,自动化等)与提供连续服务的产品(例如SaaS产品)相关。 例如,一家软件开发公司主要为其他客户做项目,而在项目结束后,这些公司可能永远都不会得到维护。客户项目与其他客户不共享,因为它们无关紧要。 DevOps是否甚至适用于一次性开发多个项目的公司?如果有的话,什么DevOps实践适用于这种情况?

2
将机密传递给Docker容器
我有一个基本的docker映像,用于运行映像分析软件。对于从映像创建的每个容器,都有一组配置设置,其中一些是秘密(加密密钥,客户信息等),软件可以使用这些秘密来分析和分发处理后的映像。我如何安全地将这些机密传递到容器?

3
Docker不应该用于数据库的原因是什么?
我正在和一个朋友讨论Docker用例。团队中的一个人想使用Docker来完成所有工作-就像一种通用的unix进程包装器。另外认为,应该多克仅用于无状态的类似应用微服务和AWS LAMBDA风格的应用程序。 我们为两者设计了概念证明。在我们的Docker集群上,我们有一个共享驱动器,该驱动器在Docker主机安装时就被挂载了,如果在容器中的数据库被挂载了,它只会将一个卷挂载到共享驱动器上。 尽管有相反的证据,我的朋友仍然坚持他的立场。(他还指出,Docker通过增加堆栈的复杂性而增加了不必要的风险。) 无论是出于同理心,还是与他更好地推理,我都试图倾听并理解他的观点。(我们都相处得很好-因此,这是疯狂和认真讨论的结合)。 问题背后的一种问题是:数据库是牛吗?此注释表明,对于数据库而言,良好的自动备份和检索策略与牛服务器是无法区分的。 我的问题是:为何不应该将Docker用于数据库? 编辑: 人们要求我阐明我的术语。我以为数据库应用程序位于容器中,而存储位于卷中。我的意思是,RDBMS位于容器中,而数据库存储位于卷中。 一些评论者建议docker卷驱动程序不能很好地处理数据库写入。(或类似的东西)。您能对此进行扩展吗?

4
有哪些方法可以评估DevOps的ROI?
DevOps很复杂,涉及文化和流程等许多不确定性方面。 有哪些方法可以衡量DevOps成功的举措? 您如何向企业证明他们所做的投资正在回报(或节省)真实美元?
24 metrics  roi 

4
在哪里放置ansible-Vault密码
我们计划在项目中使用ansible保管库,以防止git中的密码或密钥泄漏。 想法是将所有敏感数据放入一个普通文件中,然后在推送到git之前使用密码使用ansible-vault对该文件进行加密。 要解密文件,我们必须将Vault密码传递给ansible,我正在考虑3种可能性: 将其存储在服务器环境变量中 将其作为选项传递给ansible-playbook命令 将其存储到未版本控制的文件中。 是否还有其他选择,这是存储ansible-Vault密码的最佳(和安全)方法,而ansible最佳做法文档对此没有说明。

2
如何在Terraform中使用cloud-init?
我正在使用Digital Ocean和Terraform,并且我已经可以自动执行域,子域,网络首选项和主机的操作,但是有一个名为以下部分User data: 该字段的描述说Allows the use of Cloud-init to configure your droplet。环顾四周,我找到了文档。 我的问题是,在使用Terraform时如何利用此优势?

2
为什么不允许在docker-compose.yml中使用布尔值?
在docker-compose.yml文件中定义布尔值: environment: SOME_VAR: true 运行docker up结果如下: contains true, which is an invalid type, it should be a string, number, or a null 试图解决问题 如果将true更改为True,则问题仍然存在。 使用'true'不是由代码本身接受(戏剧框架的应用程序是使用开始./target/universal/stage/bin/APPNAME -Dplay.evolutions.db.default.autoApply=,即无论是-Dplay.evolutions.db.default.autoApply=true或-Dplay.evolutions.db.default.autoApply=false参数): VAR的类型为STRING,而不是BOOLEAN 使用yes或no作为变量会导致: 包含true,这是无效的类型,应为字符串,数字或null 使用yes和使用可转换yes为真实作品的脚本 讨论区 根据文档 Any boolean values; true, false, yes no, need to be enclosed in quotes to ensure they are not …

4
什么是容器?
关于容器存在一些问题,例如: 配置管理工具在不变的基础架构中扮演什么角色? 容器编排可以解决哪些问题? AWS中的简单CI / CD容器 我的问题: 实际上是什么“容器”(在DevOps中)? 为什么使用它们?

5
什么是不可变服务器?
关于不可变服务器,存在一些问题,例如: 如何在不丧失进行验尸的能力的情况下实现不可变的服务器模式? 配置管理工具在不变的基础架构中扮演什么角色? 显然,这与服务器有关(这是我得到的)。而且,只要消化不可变的语法,我就会认为这与“不可能静音 ”有关。如果这个猜测很接近,我不知道到底什么是不能静音的(我怀疑这与声卡或其他东西有关)。 我的问题: 什么是真正的“不可变服务器”(在DevOps的上下文中)? 为什么使用它们?

2
为什么在Dockerfile中使用EXPOSE-因为您仍然可以绑定到所有端口
我可以docker run -p 3000:3000 image 不 EXPOSE使用容器中的该端口(请参见下文)。如果是这样,那为什么还要麻烦将EXPOSE放入Dockerfile中呢?它仅用于与图像用户通信吗?因为我不知道EXPOSE端口是否可以绑定的功能性原因。 这些步骤显示了我绑定到容器中的端口,尽管事实并非如此 $ cat Dockerfile FROM alpine RUN apk add nodejs npm vim COPY webserver /webserver CMD [ "node", "/webserver/index.js" ] $ docker build . Sending build context to Docker daemon 1.931MB Step 1/4 : FROM alpine ---> 11cd0b38bc3c Step 2/4 : RUN apk …

3
四眼原理的可能实现方式(或示例)是什么?
MichaelGrünewald最近发布了此评论: 您没有提到的一个非常重要的方法是在金融中使用的“四眼原则” –作为监管义务或作为安全保障。在软件行业中,它以多种方式实现,例如代码审查,但也可用于验证影响实时系统的命令。 如果我错了,请纠正我,但是在至少2个人(和/或自动化过程)给予了他们先前的祝福之后,我被告知“四眼原则”是关于“被批准发生”的事情。或使用有关的(略修正)的措辞“两轮(WO)人治”从维基百科: 两人规则是一种控制机制,旨在为特别重要的物料或操作实现高级别的安全性。根据此规则,所有访问和操作都必须始终有两个授权人员在场。 可以肯定的是,监管义务不在本文的讨论范围之内,但是在“安全防范”的背景下,这种四眼原则的可能概念性实现是什么,它们可能适用于所使用的任何平台/操作系统/硬件?

5
如何清理孤立的AWS EC2快照?
我们最终获得了删除了AMI的大量AWS EC2快照,但是这些快照被遗弃了。我想要一种非手动的方式来识别和删除这些孤儿,以节省我们的金钱和空间。 理想情况下,我在考虑使用CLI的bash脚本,但是我的AWS-fu很弱。我以为以前有人这样做过,但是我找不到真正有效的脚本。 在最佳情况下,这也将检查体积并清理体积,但这可能更适合第二个问题。

4
如何使用声明性管道正确实现动态并行操作?
当前,我将需要一个实现,该实现必须找到目录中的所有文件并为找到的每个文件启动并行任务。 是否可以使用声明性管道来实现这一目标? pipeline { agent any stages { stage("test") { steps { dir ("file_path") { // find all files with complete path parallel ( // execute parallel tasks for each file found. // this must be dynamic } } } } } } }

1
如何解决AWS SQS不符合HIPAA的事实?
我有一个用例,其中来自S3的数据排队进入AWS SQS,后者又连接到CloudWatch,其指标将触发AWS Lambda。 但是,我希望该体系结构符合HIPAA。所以,我想出了这个主意: 我的S3存储桶收到文件后, 启动Lambda函数,该函数对文件进行哈希/名称加扰,然后复制到另一个S3存储桶(通过aws cp) 将具有散列名称的存储桶连接到SQS队列 这是一种良好且安全的做法吗?还是有更好的解决方法?(如果我可以将S3的加密密钥发送到SQS,将感到非常高兴。但是不确定是否可以或可能)

1
为什么Docker-in-Docker被认为是不好的?
2013年8月,JérômePetazzoni在Docker中创建了Docker,dind简而言之,这允许在Docker Containers中创建Docker容器,这一功能非常受欢迎,导致Jérôme的GitHub Repository获得了上千个星星和300个分支。 从两年后(2015年8月)发布的Docker 1.8开始,Docker便直接提供了Docker中的Docker支持。但是,在Docker中使用Docker会带来警告,似乎与Jérôme的文章:在您的CI或测试环境中使用Docker-in-Docker?三思而后行。这着重说明了为什么Docker中的Docker并不是持续集成的绝佳选择的原因。 为什么在Docker中使用Docker不好?这是避免海龟全程下降的简单案例吗?还是性能方面的考虑?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.