DevOps

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

3
如何从凭据.xml解密詹金斯密码?
我已经接手了这个项目,在该项目中,很多Jenkins凭证都包含我需要知道的密码或密码字符串,以便继续进行该项目,但是不幸的是,这些文件并未在任何地方进行记录。 我检查了credentials.xml存储这些凭据的文件,但它们不是纯文本格式,例如: <passphrase>{AAAAAAAAAAAANzxft/rDzyt8mhxpn3O72dxvVqZksL5vBJ4jNKvAjAA=}</passphrase> 注意:出于隐私原因,我已对其进行了少许更改。 如何根据上述字符串解密其原始密码?

6
如何测试Terraform配置?
如果您具有复杂程度适中的Terraform配置,您将如何围绕可作为持续集成/持续交付管道的一部分执行的配置编写测试? 例如,您可能具有指定以下所需状态的多云配置: Azure容器服务在Azure中托管Docker Azure Blob存储 SQL Azure EC2容器服务以在AWS中托管Docker Amazon S3存储服务 Amazon RDS SQL Server数据库 可能terraform apply会从头开始创建上述内容,或从部分部署状态过渡到上述所需状态。 我知道Terraform将其工作分为执行计划阶段和应用程序阶段,后者实际上是对目标体系结构进行更改。是否可以使用它来针对执行计划编写测试,如果有的话,是否有框架可以帮助编写这些测试?

5
如何在Ansible设置中测试配置和配置?
正在尝试尝试在我们的Ansible设置中建立一些弹性,以处理配置和配置。 我了解在事物的配置方面进行测试的几种方法,但是我想知道如何最好地在事物的配置方面进行测试,以及是否有任何工具可以帮助实现这种类型的实现。 目前,我们的许多测试是在剧本期间连续进行的,这对于诸如“有服务出现; vip可用;异步任务已完成”之类的事情很有用,但真正令我感到担忧的是我们管理漂移的能力。在应用程序层和供应层进行配置(例如VM配置)。我知道Ansible并不是解决配置漂移的最佳工具,但我很想知道您的意见。 如果您有什么可以使流程完全自动化的更好。(我们有一些丑陋的脚本,它们每天都会以松弛状态返回报告)。 注意:现在,在一些情况下,可能会发生重新配置(例如,从备份进行重建,严重的系统问题),但是通常情况下,它只是循环执行一些烦人的配置任务,因此不再考虑其他事情。

7
我为什么不应该尝试聘请“ DevOps工程师”?
具有的想法的DevOps工程师已成为颇为流行最近,它似乎呼吁只是有一个人谁可以在插槽,并提供了许多的DevOps的好处,如木偶描述博客: 使用DevOps做法的组织具有很高的功能:根据我们的2015年DevOps状况报告,部署代码的频率是竞争对手的30倍,而失败的部署则减少了50%。 但是,我注意到许多反对DevOps工程师尝试进行以下改进的想法: 即使就DevOps核心属性达成广泛共识,“ DevOps工程师”一词仍引起争议。有人说,该术语本身与DevOps的值相矛盾。持续交付的合著者Jez Humble指出,仅凭称呼一名DevOps工程师就可以在开发人员和操作人员之外创建第三个孤岛-“ ...显然,尝试和解决这些问题的方法很糟糕(具有讽刺意味的) 。” 为什么企业聘用DevOps工程师尝试并“实施DevOps”并不是一个好主意,而不是像这样的博客所提倡的组织变革呢?仅具有独立的DevOps角色是否会抵消好处?

3
DevOps与ITIL兼容吗?
在我的职业生涯中,我既是软件开发人员,也是ITIL的从业人员。因此,DevOps对我来说是自然而然的进步。 但是,我一直在为ITIL引入的高度专业化的语言而苦苦挣扎,并且使“开发人员友好”不足以完全拒绝开发人员。 ITIL是国际公认的IT服务管理框架,已经发展了30多年,作为一系列实践已被证明对组织的运营稳定性和成熟度有好处。 DevOps是否真的与ITIL兼容,或者本质上,我们需要秉承ITIL的精神并将其“翻译”为开发团队可以更好地理解的语言: 突发事件和问题管理→生产缺陷,错误或问题 变更和发布管理→持续交付 事件管理→记录,遥测,仪表和警报


5
从Docker Hub下载Docker映像而不使用Docker
我想从Docker Hub手动下载Docker映像。更具体地说,我想在没有(也不能)安装Docker客户端软件的受限环境中的机器上,从Docker Hub下载Docker映像。我以为可以使用官方API做到这一点,但事实并非如此-请参阅以下讨论: 无需docker命令即可获取docker映像。例如与wget API确实不支持下载图片吗?有办法解决这个问题吗? 更新1: 我遇到了以下ServerFault帖子: 下载Docker映像以传输到非互联网连接的计算机 该接受的解决方案使用的docker save命令,这并不在我的处境有所帮助。但是这里发布的另一个解决方案引用了以下StackOverflow帖子: 拉泊坞窗图像 其中的一种解决方案涉及一种称为docker-registry-debug的命令行工具,该工具除其他外可以生成curl用于下载映像的命令。这是我得到的: user@host:~$ docker-registry-debug curlme docker ubuntu # Reading user/passwd from env var "USER_CREDS" # No password provided, disabling auth # Getting token from https://index.docker.io # Got registry endpoint from the server: https://registry-1.docker.io # Got token: signature=1234567890abcde1234567890abcde1234567890,repository="library/docker",access=read curl -i --location-trusted …
32 docker  dockerhub 

6
我如何说服团队中的开发人员接受“您构建,运行”?
我如何说服团队中的开发人员拥抱“您构建,运行”?这样,我就牢记沃纳·沃格斯的这句话: 从客户和技术的角度来看,赋予开发人员操作职责可以极大地提高服务质量。传统的模型是将您的软件带到隔离开发和操作的墙壁上,将其抛弃然后忘却它。不在亚马逊。您构建它,然后运行它。这使开发人员可以接触到其软件的日常操作。它还使他们与客户进行日常联系。客户反馈回路对于提高服务质量至关重要。 我特别想到了一组开发人员: 被雇用为开发人员角色,很少/根本没有提及与操作相关的任务。 传统上,向操作团队“扔掉代码”。 传统上,工作时间表是9-5,特别是在正常工作时间之外,对“传呼机职责”,参加灾难恢复,撰写验尸等想法充满敌意。(注意:为此,我只考虑很少的停机;我不建议我们在下班后为该团队的工作量增加客户支持。) 当前不负责编写/支持对其应用程序的监视或警报。 假设有一个团队正在快速开发新的云微服务,其配置文件的状况越来越差,因为将这些服务交给运维团队并不理想,因为他们无法跟上对运维的深入了解。有效管理和监视它们所需的服务。“创建,运行它”对于该团队来说会更好,因为可以将任务委派给每个负责的团队成员。因此,该团队将开始参与设计基础架构,为服务提供监视/警报工具,以及(很少)响应中断事件。 我对方法学特别感兴趣,并以实际示例为后盾。如何在其他工作场所成功实现此目标,以及在实现此目标时是否要遵循任何规范步骤?任何可以支持答案的文章链接都将非常有帮助。
29 culture 


3
这是谁的混乱猴子,为什么他让我的服务器崩溃了?
我有一台完美的服务器,它非常漂亮,坚固,因此我将其命名为Petra。无论从哪方面来看,它都是完美的,所有的配置和调整都恰到好处,它具有完美的100%服务记录和753天的正常运行时间。我花了很多时间和精力来确保它运行良好。公司中没有其他服务器如此出色。但是昨晚这个邪恶的怪物无缘无故地使我的服务器崩溃了。 当然,我是在凌晨2点收到通知的,直到启动和运行它都花了我很多时间,所有的配置和调试工作都进行了,但是我担心它不会像以前那样好。回到以前的辉煌可能要花几周的时间。现在我的正常运行时间已经过去了,我什至没有3个9,而且谁知道这会对我的声誉产生什么影响。这个混沌猴子是谁?为什么他要对我的服务器这样做?为什么他要毁了我?

3
了解Docker层
我们的代码块如下Dockerfile: RUN yum -y update RUN yum -y install epel-release RUN yum -y groupinstall "Development Tools" RUN yum -y install python-pip git mysql-devel libxml2-devel libxslt-devel python-devel openldap-devel libffi-devel openssl-devel 有人告诉我,我们应该团结起来使用这些RUN命令,以减少创建的docker层: RUN yum -y update \ && yum -y install epel-release \ && yum -y groupinstall "Development Tools" \ && yum …

5
与Packer打包时,如何在Ubuntu 16.04中运行“ apt-get upgrade -y”时避免交互对话框?
我正在使用Packer创建基于Ubuntu 16.04映像的AWS AMI。首先,我正在进行升级: sudo apt-get update sudo apt-get upgrade -y 这是我的预配器部分的相关部分: "provisioners": [ { "type": "shell", "inline": [ "sudo apt-get update", "sudo apt-get upgrade -y" ] } ] 但是,这将打破自动化,因为会弹出一个交互式对话框: amazon-ebs: Found kernel: /boot/vmlinuz-4.4.0-72-generic amazon-ebs: A new version of /boot/grub/menu.lst is available, but the version installed amazon-ebs: currently has been locally …

4
如何正确缩放詹金斯?
在我的项目中,我们有一台运行Jenkins Master的AWS服务器+ 1个Jenkins从属服务器(2个执行程序)...并且我们需要更多 以增强构建能力,我们有以下三种选择: 扩大规模:使AWS实例更大,并添加更多执行程序。 向上扩展:扩大 AWS实例并添加另一个jenkins从属进程。 向外扩展:使用jenkins从服务器创建另一个AWS实例,并将其连接到主服务器 我们想做的是2.我们身处一个大组织中,而我们目前的Jenkins Master已经可以访问他需要的每个地方。选项3。“新服务器”很复杂,因为它需要更多的官僚机构的批准,这将需要数周的时间。 所以我的问题是: 选项2是否有任何技术问题?。也许每个詹金斯奴隶的执行者都不知道其他奴隶的执行者? 通常,扩展Jenkins的最佳方法是什么?向上扩展还是向外扩展?

4
为什么AWS EC2的现货价格大于按需价格?
我昨天试图通过Ansible设置现货实例,即使我将现货价格==该实例的按需价格,几乎所有请求都失败了。 因此,当我查看现货价格图表时,发现了一些非常有趣的东西: us-east-1a中该实例的现货价格高于按需价格,这使我感到困惑。[实际上,高出约5倍] 现货实例不是以低成本为首选吗?如果是,那么价格为什么高于按需价格? 根据AWS的文档: 竞价型实例使您可以以相对于按需价格的大幅折扣访问未使用的Amazon EC2容量。 另外,这是否意味着人们正在按需出价? 如果是,那为什么呢?他们不是按需实例更好吗? 还是我理解竞价型实例的概念错了?

2
您如何计算云服务的复合服务水平协议(SLA)?
通过托管云服务Amazon Web服务,天青,谷歌和其他大多数发布小号 ervice 大号埃维尔一个 greement或SLA,因为他们提供的个人服务。然后,架构师,平台工程师和开发人员负责将它们放在一起,以创建一个架构,为应用程序提供托管。 孤立地考虑,这些服务通常提供的可用性在三到四分之九的范围内: Azure Traffic Manager:99.99%或“四个九”。 SQL Azure:99.99%或“四个九”。 Azure应用服务:99.95%或“三九五”。 但是,当在体系结构中组合在一起时,任何一个组件都可能会发生中断,从而导致总体可用性不等于组件服务。 系列化合物的可用性 在此示例中,存在三种可能的故障模式: SQL Azure已关闭 应用服务已关闭 都下来了 因此,此“系统”的总体可用性必须低于99.95%。我对这种思维的理由是,如果在这两项服务的SLA是: 该服务将在24小时中的23小时内提供 然后: 应用服务可能在0100到0200之间 数据库出在0500和0600之间 这两个组成部分均在其SLA内,但整个系统在24小时内无法使用2小时。 串行和并行可用性 在这种体系结构中,主要有很多故障模式: RegionA中的SQL Server已关闭 RegionB中的SQL Server已关闭 RegionA中的应用服务已关闭 RegionB中的应用服务已关闭 流量管理器已关闭 以上组合 由于流量管理器是断路器,因此能够检测任一区域的中断并将流量路由到工作区域,但是流量管理器仍然存在单点故障,因此“系统”的总可用性无法高于99.99%。 如果企业希望获得比架构所能提供的服务级别更高的服务水平,则如何为企业计算和记录以上两个系统的复合可用性,并可能需要重新配置? 如果您想注释图表,我已经在Lucid Chart中构建了它们并创建了一个多用途链接,请记住,任何人都可以对其进行编辑,因此您可能希望创建页面的副本以进行注释。

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.