独立开发者的 DevOps 和基础设施
独自工作并不意味着你的基础设施和运营就必须糟糕。遗憾的是,在单人团队(以及一般的小团队)中,身体或情感上亲密的人(例如生活中的朋友、商业伙伴)可能会成为你忽视日常工作中这一重要部分的绝佳借口。
你可以找到大量投资 DevOps 基础设施的理由,但对我来说最重要的两个理由是:
从长远来看,这能帮你省事
因此,您明天将向您的唯一客户或公司中非常重要的利益相关者进行演示。
你确定它会按预期运行吗?在准备阶段,自动化测试是否始终成功运行?部署过程是否自动化?你对你的部署工具是否拥有“点击后就走”的信任度?
如果你手动完成所有这些工作,你怎么知道大型演示之前预期的压力不会对你造成破坏呢?建立一个系统来阻止这种情况发生。Devops!
它将帮助您的团队有效扩展
你现在可能孤狼一人,但如果一切顺利,你不会永远孤狼。最终,你会与其他狼结伴(雇佣同事,招募更多团队成员),并在狩猎过程中收获更多猎物(扩大公司规模)。
你想让这一切变得简单,但如果所有狼都遵循“某种流程”,你就会得到“某种结果”。这不仅适用于运营,也适用于开发部分。
让我们看看一些我认为从第一天起就会有帮助的事情。
版本控制和流程代码流策略
信不信由你,并非所有人都欣赏版本控制系统 (VCS) 的强大功能,但它确实很重要。毕竟,Joel 在他那场著名的测试中,就把它作为了第一个问题。因为它是基础设施中最基础、最重要的东西。
但仅仅拥有 VCS 是不够的。你需要有一个代码流和分支策略,否则每个人都会往 master 分支推送,这毫无意义。你可以在这里阅读更多相关信息。
问题跟踪流程
对于初学者来说,即使是 trello 的基本“待办事项-正在做-完成”工作流程也可以,但是当任务规模增加并且并行工作流规模增加十倍时,投资更详细的工作流程将会获得回报。
如果您不打算在接下来的 X 年里过这样的生活并且只记住每张票的状态,那么您可能不需要它。
某种自动化测试
我不在乎你首选的解决方案是点击机器人(需要电池供电)还是覆盖率高达 120% 的最佳单元测试套件。单元测试比以往任何时候都更容易,而且还有其他类型的测试,例如BDD 测试,越来越多的人觉得它更自然。选择其中一种,并努力实现一个令人满意且持续增长的覆盖率。
尽可能集中精力,让关键区域覆盖率达到 85% 以上。
代码审查
我已经写了一些关于进行自我审查的技巧,但考虑到我们正在谈论基础设施,这是一个集中精力建立自动代码审查解决方案(如Sonar或Codacy)的好时机。
它们无法取代人类的直觉,但至少在出现重大问题时,它们能起到非常有帮助的警示作用。它们通常与 CI/CD 流程集成在一起。说到这……
持续集成/持续交付
如今,以极简的方式部署 CI/CD 解决方案变得异常简单。例如,GitLab 提供了开箱即用的 CI/CD,并且你可以在开源仓库中找到大量示例,这些示例可以根据你的需求进行调整,以实现极简设置。
每次触发构建事件(通常是 VCS 主分支的变更)时,CI/CD 系统都会执行一系列流程,包括编译项目、运行测试以及部署到远程服务器等步骤。这样可以确保最低质量,并让您在大型演示前一晚睡得更好。:)
我明白,独自一人完成所有这些设置可能会让人不知所措。不过,除了这些基本设置之外,你还可以设置一些其他东西,让你的工作更加高效。但即使没有这些,你也能生存下来,并且(稍微)扩大规模。
IaC、虚拟化和类似工具
如果你曾经见过有人将各种 Docker 镜像部署到多个云服务器,或者能够快速迁移到其他云提供商,你就会明白基础设施即代码 (IaC) 的含义以及它带来的好处。简直是魔法。如果你不了解,这里有一篇关于 Terraform 的精彩文章,Terraform 是这类工具中的知名工具。
监控和警报工具
你喜欢半夜醒来,因为有人试图攻击你的 Web 应用程序,然后监控工具给你打了个自动拨号电话吗?是的,我也是。#讽刺
尽管如此,这仍会给你带来回报,特别是如果你的软件被需要全天候在线的客户(例如银行)使用。
如果您需要一些入门提示,请查看Nagios、Rollbar、Sentry或Pingdom之一。
感谢您阅读本文。如果您是独自旅行,别忘了阅读我另外 两篇关于该领域的文章。
如果您想对任何事情发表评论,我很乐意听到您的反馈。
最初发表于 perigk.github.com
鏂囩珷鏉ユ簮锛�https://dev.to/perigk/devops-and-infrastruct-for-the-solo-dev-1op2