DevOps

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

2
如何调查在Docker容器中死亡的主要流程?
有时,您必须检查一个已停止的容器,或者启动后很快死亡并停止的容器。 docker exec -ti <id> bash 仅适用于正在运行的容器,一旦完成,bash提示也会终止。 随着docker start你不能提供一个不同的命令,如果容器模具突然再次,你不会有足够的时间进入容器,做你的调查。 我们可以这样做docker commit,然后docker run使用不同的命令在新映像上进行操作,但是我想知道是否还有其他选择。 注意:docker logs仅返回打印到stdout / stderr的所有应用程序。这可能不足以找出问题所在。

4
如何增加Amazon EC2上正在运行的实例上磁盘的大小
我使用Ubunto获得了EC 2服务器设置的运行实例。在没有停机时间和最小风险的情况下增加磁盘大小的最佳方法是什么? 通读指南,一种方法是创建新磁盘,迁移数据,关闭实例交换磁盘并将其重新打开。这种方法听起来有点风险,需要一些停机时间。我想知道是否有更好的方法?

2
如何在避免将凭据存储在文件中的同时运行Ansible Azure剧本?
背景 我们使用Ansible来配置和管理Azure基础结构。目前,我们“手动”运行Ansible,即我们手动执行各种自动化任务的剧本。没有CI基础架构。 可能不相关,但我们使用动态脚本管理库存azure_rm.py。 我们鼓励我们尽可能地安全,即 不要~/.vault_pass在任何本地文件中或任何本地文件中存储保险柜密码 不要在其中存储Azure机密 ~/.azure/credentials 不要将任何安全的东西存储在中.bashrc。 在这种情况下,我很难提出一种连贯的策略来确保我的剧本可以访问Azure机密,同时遵循上述准则。 题 如何避免在文件上存储Ansible Vault和Azure凭据,同时又确保我的剧本可以访问它们? 我尝试过的 到目前为止,我已经提出了一个包装器脚本 向用户询问保险柜密码 用它来解密Vault Shell脚本 评估脚本,该脚本将Azure环境变量加载到环境中; 在已设置的环境上运行剧本。 有更好的解决方案(更优雅,更简单,更“ Ansible”)吗?

2
如何存储应用程序所需的凭据?
所有人都说将凭据存储在版本控制(git)中是一件坏事。因此,必须有其他更好的存储凭据的方法。 应用程序必须从某处接收凭据才能使用其依赖的服务。这些凭据通常存储在配置文件中。手动输入每台服务器以创建该文件是不可能的,因为服务器的往返操作无需人工干预。 如何管理应用程序的凭据?

2
如何检查Jenkins构建执行程序的可用内存?
在Jenkins中,单击“ 生成执行器状态”时,我只能看到与可用磁盘空间有关的统计信息(URI:)/computer。如何在Jenkins中监视空闲系统内存(RAM)? 我问,是因为有时候当我的执行者过多(尽管配置了交换空间,但下面没有)时,詹金斯却死机了或崩溃了很多。

2
如何使用Kubernetes自动执行部署?
假设我已经通过Rancher部署了Kubernetes,并且Jenkins正在构建新映像,并在将新代码签入GitHub后将它们推送到DockerHub,我如何自动化部署新映像? 提出问题的另一种方式可能是:“我以前使用Octopus来管理我的部署。是否有类似Kubernetes或Rancher内置的东西?” 最终,这是我正在努力的最后一个差距。

1
建议如何在图形数据库中记录IT技术堆栈,包括它们之间的关系?
在一家拥有500多名IT员工和1000多台服务器的大型公司中工作,每台服务器都运行自己的业务应用程序,因此在了解与哪个IT员工联系哪个服务器方面,我们面临着巨大的信息和协调挑战。由于不同的IT人员负责IT堆栈的不同层,因此协调问题变得更加复杂。例如,有不同的团队负责硬件,虚拟化,操作系统,应用程序服务器和应用程序本身。 考虑到这一挑战,在DevOps中需要定义和记录构成IT环境中各种技术堆栈的所有组件。传统上,这可以通过适当的CMDB解决方案来完成。 为此,我已经研究了典型的CMDB解决方案,例如BMC Atrium和其他解决方案,但是问题是,按照ITIL框架,它们停留在对IT资产本身进行文档化的层次上,而在更高层次上却没有解决文档问题IT技术堆栈的详细信息。我还研究了Puppet,Ansible和Salt等工具,但这些工具更多地侧重于软件部署和配置,而不是围绕软件的人员协作。 例如,一个可行的解决方案将定义各种概念,以及对这些概念重要的关键属性: 硬件 虚拟化 操作系统 应用服务器 应用领域 这些概念随后将根据它们之间的关系相互关联,以形成解决方案。例如,一个应用程序将取决于一个应用程序服务器,该服务器将取决于一个操作系统等。此解决方案将一起在“财务系统”中定义。定义了系统后,将捕获与这些系统关联的所有元数据,以便于堆栈中各层的协调。即,每一层的技术支持人员的协调。 这种解决方案的目的是对技术堆栈进行各种查询,例如: 确定谁支持哪些组件 哪些组件已过期 哪些组件需要打补丁 考虑到这一点,在诸如Neo4J之类的图形数据库中,存在哪些开源工具来定义IT技术堆栈的所有组件,包括它们之间的关系?

6
Adam Smith与全栈开发人员-DevOps的生产力?
通过亚当·斯密(Adam Smith),分工可以使您的效率提高240倍(例如以18步生产销的销工厂为例)。 如果这实际上降低了生产率,那么为什么会需要多技能的角色?或者史密斯只是错了,那又为什么呢? 在Google上搜索“全栈开发人员”的趋势仍然很高,但显然比两年前要慢: ===== 综上所述,全栈开发人员几乎可以完成所有价值链(如果我做错了,请纠正我): 与客户讨论并完善其工作中可行的敏捷性要求 确定选择哪种架构,工具和组件-只给他一个笔记本 为前端,后端和集成编写代码,这些代码跨设备兼容并且不需要大量测试,也不需要包含它 剖析和浏览数据,使用Cloud AI / ML API获得高级功能 编写所需的IaC代码并推出 在出现错误或销售流程时随时待命 注意与安全相关的设计,整体修补,迁移和现代化 以详细的方式查看帐户时间表,以简化雇主的发票 ...我忘记了什么吗? UPD-“ 我们需要专业化的生产力,但我们不希望看到“极端劳动分工 ” 的孤立世界观。(DevOps Guys,“ DevOps,Adam Smith和通才的传奇”,2013-2016年)

1
严格的变更管理政策协调持续部署
我很好奇其他人如何在严格的变更管理环境(例如,变更咨询委员会(CAB)批准流程)中构建其DevOps做法。 我知道自动化可以通过保证更严格,可证明和可重复的过程来改善您的审核过程。但是,在这种情况下,感觉连续部署几乎是不可能的。由于可能需要一周或更长时间才能批准更改,因此您将失去快速且经常部署的能力。除了提交变更请求和等待批准之外,您还需要采取什么步骤来在这些流程中工作?

4
CodeBuild-AWS Pipeline中的多个输入工件
我正在构建一个AWS CodePipeline,它依赖于两个源存储库。如果在“ CodeBuild”步骤中指定了多个Input工件,则会出现错误:.. declares 2 input artifacts which is more than the maximum count。文档严格要求CodeBuild仅具有单个输入工件。 另一方面,Lambda没有此限制。我一直在寻找一种方法,使Lambda可以将两个工件“合并”为一个工件,然后将其传递给CodeBuild。不幸的是,关于这个主题的信息非常有限。 是否有人能正常工作的CodePipeline Lambda会将两个工件合并为一个? 注意:有关如何访问工件的文档。

1
从Slack将字符串传递给Jenkins工作
在理想的世界中,我们的技术知识程度较低的员工只需使用Slack命令来运行作业,并将结果轻松地反馈给他们,而无需使用Jenkins GUI。我发现在GitHub上使用Slack Command在Jenkins中开始构建,但是它有一些局限性,包括似乎要求Heroku实例与Jenkins作业的比例为1:1,这对我们的目的而言并不理想。 我的想法是让人们使用诸如的单数命令/jenkins,并在其后使用将由一项作业解析并用于在下游启动其他作业的参数。这使我们只能使用一个松弛命令/一个实例,但仍然为我们提供了所需的所有灵活性。 问题在于将参​​数传递给詹金斯。我在想像下面的工作流程; 用户类型/Jenkins job2 param1 param2为Slack。这正在调用一个伞形作业,它将解析参数以找出要运行的参数。 命令以某种方式发送到了伞式詹金斯的工作。Heroku实例,直接集成,带电子。 伞作业job2 param1 param2以字符串形式接收。(也许作为单个参数的值,也许预分割成多个字段) 如果尚未完成,Umbrella作业会拆分字符串,并job2使用参数param1和找出用户想要运行param2。 伞作业会执行一个buildjob来按要求运行下游作业,这会将Slack反馈给用户。 是第2-3步使我感到震惊。如何从Slack向我的Jenkins工作传递一个字符串(带空格!)? 如果我的前提不对,我也很乐意挑战自己的构架。
12 jenkins  slack 

2
Docker容器容量规划
我正在4个虚拟机上运行我的应用程序,这些虚拟机具有8个3.2 GHz虚拟CPU和32 GB,但是,我将把这些进程分成单独的容器。 我不确定每个主机要运行多少个容器。典型的数字是多少?例如,虚拟机与裸机服务器的比例通常为1:10,要考虑的属性,决策框架或经验方面的任何链接都将有所帮助!

1
如何备份Amazon Cognito?
Amazon Cognito是Amazon通过Amazon Web Services提供的用户管理和身份验证服务: Amazon Cognito使您可以轻松地将用户注册和登录添加到您的移动和Web应用程序。使用Amazon Cognito,您还可以选择通过社交身份提供商(例如Facebook,Twitter或Amazon),SAML身份解决方案或使用自己的身份系统来对用户进行身份验证。此外,Amazon Cognito使您能够在用户设备上本地保存数据,即使您的设备处于离线状态,应用程序也可以正常工作。然后,您可以跨用户设备同步数据,以使他们的应用程序体验保持一致,无论他们使用什么设备。 您实际上正在做的就是将客户数据存储在Amazon托管的封闭系统中。如果您是一家公司,例如社交网络,那么谁的数据代表了组织内的重要资产,那么如何确保防止这些数据受到以下影响: Amazon Cognito被意外关闭,即应执法或政府机构的要求。 您的访问密钥被泄露,部分或全部记录被破坏。 您的组织与Amazon之间的关系破裂到了Amazon撤回所有服务即刻生效的地步。 Amazon Cognito对组织和开发人员来说是一个巨大的好处,因为它需要特别困难的软件并且易于实施。从服务可操作性的角度来看,我们需要找到随时减轻,补救或接受公司资产风险的方法。

2
结合Docker Swarm和Kubernetes
我的公司正在努力在DevOps领域赶上一些追赶者。我一直在大量研究应用程序的容器化以及随之而来的编排系统。我碰到了一篇文章(我希望我已经保存了一篇),他们在谈论将Swarm与Kubernetes结合使用以获得更好的功能。在本文中,他们没有定义这样做所带来的好处。 我想知道这会带来什么好处?增加额外的复杂性真的会给您带来很多回报吗? 编辑:我正在寻找技术专家的/骗局。KISS是一个很好的座右铭,但不会与您的CEO或董事会争论不休。 几乎可以肯定的是,我们将为容器选择Docker,为编排选择Swarm。但是,我希望在我们的领域中看到Kubernetes,因此可以将这些技术合并在一起以获得更强大的解决方案的主张吸引了我。感谢您的任何见解。

4
BitBucket不支持运行docker-compose吗?
目标 目的是在BitBucket管道中运行docker-compose 尝试 bitbucket-pipelines.yml image: docker/compose:1.12.0 pipelines: default: - step: script: - docker-compose up --build 结果 The Docker Engine version is less than the minimum required by Compose. Your current project requires a Docker Engine of version 1.13.0 or greater. 讨论区 根据这篇文章不支持?

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.