DevOps

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

3
AWS中的简单CI / CD容器
我正在使用AWS Code Pipeline和Code Build创建一个新的Docker容器并将其推送到ECR。 我的应用程序是一个基于简单直接的单一容器的应用程序。减少当前运行中的Container并从ECS注册表中重新启动新Container(通过Code Pipeline生成Code Build)的摩擦会更少。 我尝试了使用EC2用户数据的CloudFormation,一侧的自定义脚本以及另一侧的ECS和任务定义的CloudFormation(尚未成功)。我强烈认为必须有更明显,更简单的方法。

4
如何对AWS Lambda函数进行性能测试?
AWS Lambda成本取决于函数运行的时间,并且在某种程度上取决于内存占用量。具有更快完成的功能并占用更少的内存可以节省很多钱。特别是在经常执行这种功能时。 如何调整Node.js Lambda函数的速度和较小的内存占用量以节省成本? Lambda是否有其他方面需要改进?


1
用curl测试RESTful API的系统方法?
我已经注意到,在集成测试过程中,我实际上使用的是Restful API(或一般的HTTP接口)的重复使用案例,我在这里和那里使用bash + cURL进行检查。 它开始看起来非常凌乱,并且变得难以维护。为什么要乱成一团? 典型的用例是: 检查URL是否返回http响应代码,例如200 在这种情况下,检查内容类型是否与您需要的某些MIME相匹配 检查返回的内容是否匹配某种模式,或通过抽象验证过程 到目前为止,我发现并在不重新发明轮子的情况下认为是可行的选择是: 可以使用PyCurl-希望它可以完全实现所有cURL选项esp。代理以及其他我可能需要的开关 使用Python的内置单元testng 然后,例如,我可以检查每个服务一项单元测试: import unittest, pycurl class TestService (unittest.TestCase): def test_1(self): self.assertEqual(pycurl.returncode("some_url"), 200) def test_2(self): self.assertTrue(pycurl.response("some_url").matches ("xxx") ) def test_3(self): self.assertTrue (pycurl.ContentType("some_url").equal("xxx")) if __name__ == '__main__': unittest.main() 这是否有意义?或者是否有更高级的工具(但不太复杂,无法使用和集成)?

4
为什么开发反对运营?
我仍然是学生,但是我对操作并不了解,而且我的英语仍然很差。 我的问题是:为什么开发反对运营?何时展开反对行动?
14 operations 

2
如何跟踪我的云资源使用情况?
我正在尝试使用Jenkins自动化我的AWS应用程序部署。 现在,如果要在任何环境(例如UAT)中更新应用程序,我们将构建docker映像,找到当前的ECS任务,并使用新映像进行更新,找到正在运行的ECS集群,然后更新任务。 广义上讲,在持续集成环境中跟踪云资源ID(ECS群集ID,ECS任务ID,EC2 ID等)的最佳实践是什么?

5
签入和签出有什么区别?
当向不熟悉软件配置管理的学生讲授SCM课程时,碰巧会出现类似“ What's the difference between checkin and checkout?”的问题。 与此不同的是,这些学生对这些SCM概念感到困惑(反过来,他们也理解它们)。 那么,您可以使用哪种隐喻向此类受众解释这一至关重要的SCM概念?
14 terminology  scm 

2
将Docker容器连接到主机和内部网桥网络
我正在尝试将Docker容器作为私有(--internal)Docker网络和预定义host网络之间的路由器运行。这意味着容器需要具有两个网络接口:一个“外部”接口可以访问所有主机IP地址,而一个“内部”接口可以充当内部Docker网络中容器的网关。 然后,路由器容器本身将对来自/到容器的NAT网络流量进行NAT。 我还没有找到一种配置Docker来使用这两个接口运行容器的方法。我能得到的最接近的结果是bridge分配了两个接口,这并不是我所需要的。 尝试手动连接会导致错误: # docker network connect host root_router_1 Error response from daemon: Container cannot be disconnected from host network or connected to host network 有人可以告诉我如何实现这一目标,最好是连Docker Compose都可以实现?

2
Docker在Kubernetes中的部署
我正在使用通过以下方式创建同级Docker容器的第三方库: docker run -d /var/run/docker.sock:/var/run/docker.sock ... 我正在尝试从上述容器中创建一个Kubernetes部署,但目前得到: 无法通过unix:///var/run/docker.sock连接到Docker守护程序。泊坞窗守护程序正在运行吗? 这是预期的,因为我没有/var/run/docker.sock在部署yaml中声明为卷。 问题是我不知道该怎么做。是否可以/var/run/docker.sock作为卷安装在部署Yaml中? 如果不是,从Kubernetes部署/容器中运行docker兄弟容器的最佳方法是什么?

6
DevOps团队人手不足的迹象是什么?
DevOps团队人员不足的典型信号是什么?您如何证明/解释增加团队成员的要求? 我很想让这个问题笼统,但是这里有一些附加信息: 目前,我们有2个DevOps专家作为一个团队一起工作,但是需求,产品数量和复杂性都在增长。我们正在考虑要求增加一个新的团队,但是在解释和证明为什么这是一个好主意方面有些困难。

1
有没有可以在线验证Jenkinsfiles的工具?
目前,我正在编辑Jenkins文件,然后让它运行,除非Jenkins报告问题。这种方法花费大量时间。我更喜欢在提交Jenkinsfile之前先验证语法。是否有解决此问题的工具? 在gitlab中有一个URI,即/ci/lint可以提交gitlab文件,单击检查按钮,然后UI会指示语法是否正确。

3
您如何执行git行为,包括本地(特别是在Windows上)?
我正在把这个.NET商店从svn转移到git,并指出了一些我想解决的辅助问题,然后再进行切换。 我特别要问的一个问题是行尾强制执行。默认情况下,用于Windows的git使用“ checkout crlf,commit lf”安装,对于一堆仅由crlf结尾组成的源(据我所知),它不起作用。 我不知道我会盲目地信任任何给定的开发人员即使在给定指令的情况下也能正确配置此功能,因此我正在考虑以下一项(或两项),但很好奇这里是否有人走了另一条路。 一个预提交钩子,用于检查是否有任何lf行的结尾(或可能是所有lf行的结尾),并在该事件中拒绝。 分发给开发人员的安装脚本,使用“原样,原样”填充全局配置。 PS在撰写本文时,我想到从svn到git的初始转换可以采用默认方式,而且只要人们坚持使用默认值,那么转换也将是无缝的。曾经是.NET商店中使用git的开发人员,并且安装了非默认的“按原样,按原样”的git,所以我也在那里创建了自己的问题(他们在到达之前就已滚动默认值) 。所以我仍然倾向于某种执行机制。
13 git  scm  windows 

3
在Jenkins声明式管道中使用Artifactory插件
我正在使用Jenkins声明性管道自动化我的构建过程。仅在某些条件(Sonar,Checkmarx)通过的情况下,我们才希望将工件发布到远程JFrog存储库。 经过一番研究,我发现Artifactory插件对此很有用。但是我找不到有关如何集成到声明式管道中的任何文档。以下是Jenkinsfile的代码段 stages{ stage('Pre-Build'){ steps{ script{ def server = Artifactory.server 'LocalJfrog' def rtGradle = Artifactory.newGradleBuild() rtGradle.resolver server: server, repo: 'gradle-dev-local' rtGradle.deployer server: server, repo: 'gradle-release-local' rtGradle.useWrapper = true } } } } 上面的代码无法进行条件发布,因为即使禁用了自动发布,我也无法重用服务器变量。

2
多个iOS项目的持续集成基础架构
作为iOS开发人员,我一直在为迄今为止我们正在开发的iOS项目创建CI和CCQ(=连续代码质量)基础架构。我们已经将Jenkins和SonarQube用于几乎所有的Web和Android项目(使用VM foreach项目,自动安装和配置CI和CCQ),并且效果很好。但是对于iOS项目,Jenkins需要在运行macOS的计算机上进行构建,因此我不确定是否有完美的解决方案。 我正在寻找一种虚拟化macOS的解决方案。对于每个项目,要创建一个虚拟macOS并将Jenkins作为从站安装在那里,以处理构建。该解决方案看起来很完美,但似乎不合法的是要在macOS上运行两个以上的VM(当然,仅在Mac计算机上) http://images.apple.com/legal/sla/docs/macOS1012.pdf ->点2.B。所以这不是我的情况的解决方案。 我读过的另一种常见解决方案是有一台Mac计算机(也许是MacMini),它将处理所有项目的所有构建。您如何看待这种实施方式?它可以处理多少个项目?开发人员可能需要在自己的项目上进行一些配置(尤其是在SonarQube中),是否安全? 我们可以在同一台计算机上使用不同端口使用多个Jenkins和SonarQube实例吗?这甚至是要考虑的解决方案,还是我在胡说八道? 还有其他可行的解决方案,也许比上面的解决方案更好:)吗? 注意:我不坚持使用Jenkins + SonarQube组合,如果还有其他更适合iOS开发的工具,请与我分享。

3
哪些关键绩效指标(KPI)用于衡量DevOps?
我试图在DevOps转换计划中推动良好的行为,以支持这一点,我正在寻找围绕运营准则确定可行的指标: 问题与事件管理 容量管理 变更和发布管理 绝对要清楚,这些功能曾经属于运营组织,现在由Agile / DevOps组织拥有。现有导致不良行为的KPI是: 根本原因分析时间已完成: 驱动不完整的RCA只是为了使它们按时进入系统。 测试执行时间: 禁用长期运行的测试,无论其业务价值如何。 云服务的平均利用率: 鼓励过度使用计算资源,从而导致响应时间变慢 在DevOps计划中,哪些关键绩效指标可用于鼓励良好行为?
13 culture  metrics  kpi 

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.