Добро пожаловать на окончательное противостояние между Git Tags и AWS Tags, двумя соперниками, у которых нет ничего общего, кроме любви к слову “tag“. Давайте посадим их лицом к лицу и посмотрим, кто победит в схватке путаницы и полезности!
Раунд 1: Кто они
Git Tags
Историки программного мира. Им не важно настоящее; они просто любят закладывать важные события (например, релизы), чтобы вы могли вернуться в прошлое. Думайте о них как о вашем машина времени для контроля версий — без риска столкнуться с вашими прошлыми ошибками в коде… о, подождите. Удачи в отладке v1.0.0-final-final-definitely-final-this-time!
AWS Tags
Чрезмерно организованный офисный менеджер, который хочет видеть ярлыки на всем, начиная с ваших экземпляров EC2, ведер S3 и даже этой забытой функции Лямбда, которая стоит вам $500 в месяц. AWS Tags — как тот друг, который разукрашивает всю свою жизнь цветами… за исключением случаев, когда он забывает, и теперь никто не понимает, что означает что.
Раунд 2: Что они делают
Git Tags
- Помогают вам отмечать важные коммиты (например, v1.0.0, production-release)
- Используются для версионирования программных релизов
- Могут быть легковесными (просто ярлык) или аннотированными (ярлык с уроком истории)
- После отправки они как неловкий твит — сложно удалить! (Вы пожалеете.)
AWS Tags
- Помогаем вам добавить пары ключ-значение к ресурсам AWS (Среда: Продакшн, Владелец: Рам)
- Используется для отслеживания затрат, организации и соблюдения правил
- Может быть обязательным (если ваш босс так скажет) или опциональным (если вам лень)
- Легко изменить, в отличие от вашего ежемесячного счета AWS (который более непредсказуем, чем поворот сюжета в ограблении миллионов)
Раунд 3: Реакции в реальной жизни
Пользователь Git Tag
“Я только что пометил свой релиз! Ой, подождите, мне нужно переименовать его. О, нет… О, нет… О, НЕТ.” (Спойлер: переименование тега сложнее, чем переименовать своего питомца после трех лет.)
Пользователь AWS Tag
“Кто пометил этот экземпляр EC2 тегом ‘Удалить меня’?! Подождите… куда пропал мой EC2?!” (Настоящий фильм ужасов: счета AWS и случайные удаления.)
Раунд 4: Что произойдет, если их игнорировать?
Игнорирование Git Tags
- Ваши релизы – загадка. Была ли v1.2 до или после fix-bug-final-final2?
- Отладка продукции превращается в парадокс путешествия во времени.
- Ваша команда DevOps/Release Engineering задает себе вопросы о своем выборе профессии и рассматривает переезд в зону без интернета.
Игнорирование AWS Tags
- Ваша команда FinOps плачет, когда видит счет AWS (и вы тоже).
- Никто не знает, какие экземпляры – тестовые среды, а какие Продакшн.
- Вы случайно завершаете любимую панель приборов генерального директора. Ой!!! (Пора обновить свое резюме!)
Раунд 5: Как тегировать оба
Git Теги
- Используйте
git tag v1.0.0
для создания легковесного тега. - Используйте
git tag -a v1.0.0 -m "Выпуск версии 1.0"
для создания аннотированного тега. - Отправьте его с помощью
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 напомнит вам об этом. Больно.
Раунд 6: Продвинутые техники тегирования
Продвинутое тегирование Git
- Список всех тегов:
git tag -l
- Отметить определенный коммит:
git tag -a v2.0.0 <хэш-коммита> -m "Релиз версии 2.0"
- Проверить подписанную метку:
git tag -v v1.0.0
- Переместить метку на другой коммит:
git tag -f v1.0.0 <новый-хэш-коммита>
- Поделиться всеми метками с удаленным репозиторием:
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
. Или, может быть, вы обнаружите экземпляр EC2, помеченный какProduction
, и поймете, что никто не помнит, что он делает. - Тегирование – это как маркировка еды в офисном холодильнике. Важно для организации, но, к сожалению, часто полностью игнорируется. Все это веселье и игры до тех пор, пока вы ищете старую поставку или пытаетесь оправдать дорогостоящий счет AWS.
- Поэтому относитесь к тегированию осторожно. Одна дополнительная метка сегодня может спасти вас от полномасштабного кризиса завтра. Или по крайней мере вызвать очень неловкий разговор с вашим менеджером.
Вердикт
Итак, кто побеждает? Ну, это единственное, что у них общее – любовь к слову “тег,” как уже упоминалось.
- Если вы цените историческую точность и хорошо задокументированные релизы кода, то Git Tags – ваш лучший друг.
- Если вы следите за тем, куда уходят ваши деньги (или хотя бы делаете вид), то теги AWS необходимы.
В любом случае, теги – недооцененные технические герои, пока не перестанут быть ими. Поэтому, когда вы добавляете тег к чему-либо, помните: одно неверное движение, и будущее будет очень смущено.
Счастливого тегирования!
Source:
https://dzone.com/articles/git-tags-vs-aws-tags-a-tag-tastic-showdown