Это 3 части серии, документирующих мое путешествие через разработку программного обеспечения. Для путешествия через DevOps — Часть 1: Мир без DevOps, нажмите здесь
После турбулентного посвящения в разработку программного обеспечения одна вещь была наверняка, я был полным новичком и должен был повысить свою игру. Именно на этом соединении я прошел свой первый курс облачных вычислений, Основы AWS: Going Cloud Contian Анкет Теперь этот курс научил меня нескольким концепциям, таким как отказоустойчивость, зоны доступности и балансировщики нагрузки.
Но было несколько проблем. По мере роста сложности инфраструктуры, а она росла:
- Необходимость управлять инфраструктурой.
- Потребность в разработке методологии разработки программного обеспечения, которая позволит легко интегрировать изменения в приложения с существующей инфраструктурой.
Бывший выпуск был отражен в случае, когда я потерял отслеживание глобального акселератора AWS (сетевой сервис, который повышает производительность трафика ваших пользователей), и он продолжал стоить нам кредитов в течение нескольких месяцев. Я вручную искал ресурс во всех регионах, что не идеально. Последняя проблема была отражена, когда было несколько моделей обработки естественного языка, и их нужно было обновляться вручную в нескольких случаях.
Введите DevOps
Мой папа инженер программного обеспечения Так что я всегда слышу слова и технологии, которые они использовали в своем рабочем процессе. И, посмотрев слова, я обнаружил, что они решат проблему, с которой я сталкиваюсь в своем рабочем процессе. Хотя объяснение DevOps — это то, что выходит за рамки как меня, так и в блоге. Это инструменты в моем путешествии, которые позволили мне решить проблемы и внедрить практики DevOps.
CI/CD (проблема 2)
Дженкинс
Это универсальный инструмент для выполнения как непрерывной интеграции, так и непрерывной доставки (CI/CD). Jenkins — это серверный инструмент, который может определять процессы CI/CD как трубопровод как код. Так что это означает, что есть дополнительные накладные расходы в установке мастер -узла Дженкинса и узлов агента. Таким образом, для небольшого масштабного проекта, как наш, его универсальность была проклятием.
Нам нужно было что -то легкое.
Действия GitHub
Действия GitHub — это относительно новая функция в GitHub, где мы можем объявить процессы сборки и тестирования в GitHub как файлы YAML. Затем они выполняются либо на бегунах GitHub (в основном виртуальные машины, размещенные GitHub), либо на самостоятельных бегунах. Это изменение игры, потому что они позволяют выполнять много простых процессов, просто выдвигая код или создавая запрос на тягу.
Однако они решают только половину головоломки. Действия GitHub чрезвычайно легко включить в процессы CI, однако часть CD остается проблемой. Помимо базовой поддержки кластеров Kubernetes (только предоставленное облако), очень мало вариантов CD.
Однако до нашего второго выпуска было достаточно действий GitHub, поэтому мы их использовали.
Hashicorp (проблема 1)
После нашего первого проекта стало очевидно, что мы масштабировали инфраструктуру. Введите, Terraform
Терраформ
Мой роман с Хашикорпом начался с Terraform. Честно говоря, не было такой отчаянной необходимостью в этом, я использовал это, потому что это казалось крутым, хотя невозможно отделить терраформу от моей нынешней роли.
Чтобы узнать больше о Terraform и его использование, проверьте мой пост на Средний Анкет
Мое заблуждение о Terraform заключалось в том, что это должно было развернуть инфраструктуру, как и мы, в приложении. Это будет означать, что я пишу код для необходимой инфраструктуры, и я бы развернул его в день 0, а затем установил свое заявление на соответствующие ресурсы. Однако это оказалось невозможным. Terraform — это инструмент, который является частью вашего ежедневного рабочего процесса. Инкрементные изменения в инфраструктуре регистрируются и создаются Terraform, что позволяет отслеживать и визуализировать инфраструктуру, которую вы используете, и как она соединяется вместе, как головоломка.
Хотя существуют такие инструменты, как Pulumi, которые предлагают IAC (инфраструктура как код) на языках программирования, таких как Python или Node, я предпочитаю Terraform из -за его простоты и простоты использования.
Вывод
Конечно, это были серьезные скачки из предыдущего опыта (то есть описанный в предыдущем посте), смысл написания этих постов, чтобы мы надеемся, что люди знали, что то, что вы строите сначала, будет ужасным, и вы будете съеживаться, когда вы оглянетесь назад. Однако, как сказал один из моих любимых фильмов о приготовлении пищи, мы можем с уверенностью поспорить: «Не каждый может быть отличным разработчиком, но отличный разработчик может прийти из любого места».
Оригинал: «https://dev.to/thundersparkf/journey-through-devops-part-2-the-awakening-4pmk»