欢迎来到 Git 标签 和 AWS 标签 之间的终极对决,这两个竞争者除了对”标签“这个词的热爱外,没有任何共同之处。让我们让它们正面交锋,看看在混乱与实用性之争中谁将获胜!
第一轮:他们是谁
Git 标签
软件世界的历史学家。他们不关心现在;他们只喜欢收藏重要事件(如发布)以便您可以穿梭时光。把它们看作是您的版本控制时光机 — 没有遇到过去编码错误的风险…哦,等等。祝您调试v1.0.0-final-final-definitely-final-this-time时好运!
AWS 标签
过于有条理的办公室管理员希望在所有事物上贴标签,包括您的 EC2 实例、S3 存储桶,甚至那个让您每月花费$500的遗忘的 Lambda 函数。AWS 标签就像那个将整个生活进行颜色编码的朋友… 除非他们忘记了,现在没人知道任何东西的意义。
第二轮:他们的作用
Git 标签
- 帮助您标记重要的提交(例如,v1.0.0,生产发布)
- 用于软件版本控制
- 可以是轻量级(只是一个标签)或注释型(带有历史教训的标签)
- 一旦推送,它们就像一条令人尴尬的推文 — 难以删除!(您会后悔的。)
AWS 标签
- 帮助您向AWS资源添加键-值对(环境:生产,所有者:Ram)
- 用于成本跟踪、组织和合规
- 可以是强制性的(如果老板这么说)或者是可选的(如果您感觉懒惰)
- 易于修改,不像您每月的AWS账单(比“钱”劫案中的情节转折更难以预测)
第三轮:现实生活中的反应
Git标签用户
“我刚给我的版本打了标签!哦,等等,我需要重命名它。哦不……哦不……哦不。”(剧透:重命名标签比三年后重命名宠物更难。)
AWS标签用户
“谁给这个EC2实例打上了‘删除我’的标签?!等等…我的EC2去哪了?!”(真正的恐怖电影:AWS账单和意外删除。)
第四轮:如果忽视它们会发生什么?
忽视Git标签
- 您的发布版本是一个谜。v1.2是在修复-bug-final-final2之前还是之后?
- 调试生产环境变成了一个时空悖论。
- 您的DevOps/发布工程团队开始怀疑他们的人生选择,并考虑搬到没有互联网的地方。
忽视AWS标签
- 您的FinOps团队看到AWS账单时会哭泣(您也会)。
- 没有人知道哪些实例是测试环境,哪些是生产环境。
- 您意外终止了首席信息官最喜欢的仪表板。糟糕!!!(是时候更新您的简历了!)
第五轮:如何给Git标签打标签使用
Git标签
- 使用
git tag v1.0.0
创建轻量级标签。 - 使用
git tag -a v1.0.0 -m "Version 1.0 release"
创建带注释的标签。 - 使用
git push origin v1.0.0
推送标签。 - 您是否意外地给错误的提交打了标签?恭喜,您将迎来一次冒险!
- 使用
git tag -d v1.0.0
(如果在本地),以及 git push --delete origin v1.0.0
(如果在远程)来撤消混乱。
- 使用
- 您是否对从1000000个存储库中删除标签感到沮丧,然后使用您的自动化(在Jenkins中的简单脚本可以帮助您节省大量时间和精力)
AWS标签
- 使用
AWS CLI:aws ec2 create-tags --resources i-1234567890abcdef0 --tags Key=Environment,Value=Production
。 - 在AWS控制台中,转到任何资源(如EC2或S3),并在“标签”选项卡下手动添加键值对。
- 使用AWS组织自动化标记策略,并像标记霸主一样强制执行它们。
- 您是否忘记给资源打标签?您的AWS账单会提醒您。令人痛苦。
第六轮:高级标记技术
高级Git标记
- 列出所有标签:
git tag -l
- 标记特定提交:
git tag -a v2.0.0 <commit-hash> -m "Version 2.0 发布"
- 验证签名的标记:
git tag -v v1.0.0
- 将标记移动到不同的提交:
git tag -f v1.0.0 <new-commit-hash>
- 与远程共享所有标记:
git push --tags
高级 AWS 标记
- 列出资源的所有标记:
aws resourcegroupstaggingapi get-resources --tag-filters Key=Environment,Values=Production
- 一次为多个资源打标记:
aws ec2 create-tags --resources i-1234567890abcdef0 i-0987654321abcdef0 --tags Key=Project,Value=MyApp
- 删除标记:
aws ec2 delete-tags --resources i-1234567890abcdef0 --tags Key=Environment
- 在 AWS 控制台中使用 AWS 标记编辑器进行批量标记。
- 实施 AWS Lambda 函数 来确保所有资源的标记合规性。
第 7 轮:存在主义标记危机
- 每位工程师都会在某个时刻问自己:标记重要吗?答案是肯定的 — 直到不重要为止。总有一天,您会翻阅多年的 Git 历史,想知道为什么有人将提交标记为
final-final-v2-fix-thatworks-for-sure-this-time
。或者您可能会发现一个被标记为Production
的 EC2 实例,却发现没有人记得它是做什么的。 - 标记就像在办公室冰箱里标记食物一样重要,但往往会被完全忽视。一切都很有趣,直到你在寻找旧的部署或试图证明一笔昂贵的AWS账单。
- 因此,谨慎地接受标记。今天多加一个标签可能会在明天避免一场严重危机。或者至少让你和你的经理之间进行一次非常尴尬的对话。
裁决
那么,谁是赢家?嗯,除了他们对“爱”这个词有着共同点之外,他们之间没有任何共同之处,正如前面所提到的。tag。
- 如果你喜欢历史准确性和记录完善的代码发布,Git标签是你最好的朋友。
- 如果你喜欢追踪资金去向(或者至少假装你在追踪),AWS标签是不可或缺的。
无论哪种方式,标签都是不为人知的技术英雄,直到它们不再是。所以下次你给某样东西打标记时,请记住一个错误的举动,未来将会变得非常困惑。
祝愉快地打标签!
Source:
https://dzone.com/articles/git-tags-vs-aws-tags-a-tag-tastic-showdown