Рубрики
Uncategorized

DevOps — Сохранение вашего кода из апокалипсиса

Что значит DEVOPS? Как это выгодно вам? Каковы шаги и инструменты для идеального жизненного цикла разработки программного обеспечения? Теги с карьерой, WebDev, начинающими, Devops.

Бывший студент по информатике, который сейчас является профессором, попросил меня поговорить о DEVOPS. Кажется, всегда интересны нынешним студентам, чтобы услышать некоторые идеи от людей в отрасли. Итак, я подготовил разговор и подумал, почему бы не сделать сообщение в блоге из этого? И вот результат.

Я также создал онлайн-курс, чтобы пойти с разговором. Если вы не хотите читать и просто смотреть видео, вы можете получить курс бесплатно Прямо здесь .

Если вы хотите увидеть разговор, я дал, что вдохновил этот пост, вы можете проверить это на YouTube Отказ

Во-первых, определение. Для DevOps нет идеального определения, но следующая цитата подходит довольно хорошо. Дежол есть

Набор практик, объединяющих разработку программного обеспечения (DEV) и операций с информационными технологиями (OPS), который предназначен для Уменьшить Время между совершать изменение в системе и изменение быть размещен в нормальное производство, а Обеспечение высокое качество.

Таким образом, у нас есть разработка программного обеспечения на одной стороне и работает или запустить его с другой. Важным фактором является то, что многие из них Практики могут быть автоматизированы , следовательно, Укорочение жизненного цикла разработки программного обеспечения .

Эмоции — или мотивация?

Но прежде чем мы вступим в детали, давайте поговорим о том, как Evons может заставить вас чувствовать — и, возможно, как это будет мотивировать вас.

Если вы вообще не реализуете практику, вы можете попасть в беду. Есть много инструментов, которые поставляются с DevOps, и это поможет вам построить ваше приложение. Но если вы не используете какие-либо из этих инструментов и практику, то — и поверьте мне, я был там — вы можете в конечном итоге выглядеть так.

Нет девопла вообще. Это совсем не весело.

Но когда вы начинаете с инструментов и концепций, жизнь разработчика становится легче!

Видите ли, вы можете быть более расслабленным. Работа над проектом это весело. Может быть, вы также можете захватить чашку кофе и немного охладить.

Это самый реалистичный сценарий — или, по крайней мере, самая реалистичная цель.

Конечно, есть также мечта, где дежопт делает все для нас. Все автоматизировано, вам не нужно больше делать больше, тогда вы можете просто охладить на пляже.

Но это утопия. Мы еще не там. Наша цель — ваша цель — должна быть вторая картина.

Теория развития

Теория каждого жизненного цикла разработки программного обеспечения является это: вы хотите повернуть кофе — или любой другой вид горячего напитка — в прибыль.

Интересная часть — это область между ними. Как вы получаете из кофе на прибыль?

В настоящее время это магия.

К концу этого поста вы узнаете, как работает эта волшебная.

Хорошо, теперь то, что это на волшебстве?

Как вы можете видеть здесь, процесс разработки программного обеспечения не является чистой строкой, которая перемещает вас от точки A до Z. Это Повторяющий процесс шести этапов Отказ

Начнем сверху слева, планирование Отказ Вы получаете ваши задачи, запросы на функции, вы можете иметь представление о том, что все о вашем проекте И тогда вы должны начать планировать этот проект. Опять же, он не планирует весь путь от начала до конца, вы повторяете несколько шагов во время разработки. Для этого есть отличные инструменты и концепции.

Далее построить фаза. Теперь мы говорим о кодировании. Вы начинаете свою IDE и реализуете функции, которые вы планируете на этапе ранее. На этом этапе есть инструменты, чтобы убедиться, что ваш код безопасен, и вы можете вернуться, если что-то пошло ужасно неправильно.

Непрерывная интеграция Это отличный способ автоматически развертывать ваш код. Такая постоянная интеграция и развертывание рода идет вместе. Мы доберемся до деталей позже. Просто помните, что это отличный способ развертывать код всей вашей команды.

Кроме того, есть несколько отличных платформ для Развертывание . Ваш код до. Если вы хотите сделать веб-приложение и использовать услугу, когда это приложение запущено, обратите внимание во время развертывания.

Теперь, когда ваше приложение работает, вы можете отслеживать его. Сервером всегда работает, возникают ли какие-либо ошибки. Это действовать фаза. Есть инструменты для этого, или вы просто реализуете небольшое решение самостоятельно.

И, наконец, вам нужно Обратная связь Отказ Ваше приложение делает то, что он должен делать. Это весело, используя это? Все, что может быть сделано, конечно, с инструментами, такими как ошибки трекеры И тогда вы используете обратную связь, чтобы вернуться к шагу планирования.

Все эти шаги окружены коммуникация . Безусловно самая важная часть. Вы должны общаться с вашей командой. Великое, что вам не нужно оставить свой дом, чтобы сделать это.

Есть некоторые из инструментов, которые вы можете использовать во всех этапах жизненного цикла разработки программного обеспечения, показанного на рисунке выше.

Не волнуйтесь, мы не будем говорить о каждом одном Но я дам несколько советов, какой инструмент может быть хорошим выбором.

Возможно, вы слышали о Git и GitHub, Google Drive, Slack и так далее. Много вариантов для вас.

Еще одна вещь, прежде чем мы попадаем в детали. Почему вы должны беспокоить? Зачем использовать еще больше инструментов? Каковы преимущества?

Преимущества

Ну, он начинается с вашего кода. Намного проще работать вместе с помощью определенных инструментов. Качество кода вашей команды улучшится Отказ

Вам понадобится Меньше времени для развития Отказ В частности, развертывание может быть боль. Вы гораздо более организованы, так что вы знаете, что делать дальше, а затем просто сделать это вместо того, чтобы удивляться, как добраться до определенной цели.

Когда вы используете определенные практики и инструменты, вы найдете ошибки, которые вы иначе не нашли бы вообще. Это может быть плохо для вашей прибыли в конце концов.

И последнее, но не менее важное, это много Больше веселья работать так, и вы определенно Спи лучше ночью Отказ

Хорошо, давайте поговорим о деталях каждой фазы сейчас.

Одна вещь, которую вам придется делать все время, работая над вашим проектом, — это общаться.

Независимо от того, будь то о планировании, исправления ошибок, мониторинг вашего приложения, вы действительно должны поговорить с вашей командой обо всех этих аспектов — а иногда и к своим клиентам. А иногда даже для себя …

Поскольку все время невозможно сидеть в одном и том же офисе, приятно еще иметь инструмент, где вы хотя бы доступен большую часть времени или где вы можете проверить, произошло ли что-то интересное.

Конечно, есть электронная почта, но есть определенно лучшие решения.

Вот где Слабый приходит в. По сути, Slash — это клиент чата. Вы можете загрузить и установить Slack или использовать веб-клиент.

Затем вы можете создать свое собственное рабочее пространство бесплатно и пригласить всех членов вашей команды.

После этого у вас есть собственное маленькое рабочее пространство для вашего проекта, где вы можете создавать разные каналы для планирования, говорить о ошибках, случайной болтовне и так далее.

Кроме того, вы можете интегрировать несколько услуг с провисанием. Например, если вы развертываете свое приложение, то вы можете Автоматически отправлять сообщение в ваше Slack Workspace где каждый может видеть, было ли развертывание успешно или не удалось. Таким образом, вам не нужно смотреть процесс развертывания самостоятельно.

И Slack предоставляет еще несколько функций, таких как передача файлов и видеозвонки.

Мне не платят, так сказать это (как со всеми инструментами, которые я рекомендую здесь), но Slack действительно является отличным инструментом, чтобы помочь вам во время развития.

Вы можете начать использовать Slack абсолютно бесплатно. Поэтому я рекомендую вам пойти на slack.com и зарегистрируйте свое рабочее пространство прямо сейчас.

Планирование — это тема, которую вы не должны недооценивать. Он может сделать или сломать свой проект, в частности, если вы думаете, что вы будете реализовывать некоторые функции на стороне, хотя они могут быть введены в ваш метод управления проектами.

Вы когда-нибудь слышали о водопад модель или спиральная модель ? Это более или менее устаревшись, но все же интересно узнать, как было разработано программное обеспечение в прошлом … Ну, иногда еще сегодня, но в настоящее время есть определенно лучшие решения.

В любом случае. Как вы можете видеть ниже, модель водопада обеспечивает несколько шагов. Каждый шаг должен быть завершен, прежде чем перейти к следующему.

Можете ли вы представить, что все требования готовы и никогда больше не говорите о них, потому что они должны быть четкими для всех? Конечно, это почти никогда не работает. То же самое для дизайна или даже реализаций. Модель водопада — очень нереально в реальном мире Отказ

Конечно, должна быть концепция, документ, в идеале все функции, которые должно иметь приложение. Но ожидать, что не будут никаких изменений не приведет вас к неприятностям. Что вы собираетесь сказать, если клиент хочет что-то изменить или не знал, как должна выглядеть определенная часть программного обеспечения? » Время вверх, мы должны начать с нуля снова, и это будет стоить еще одно состояние? » Могу поспорить, вы никогда не увидите этого клиента снова.

Спиральная модель была определенно лучше и очень похожа на Agile процессы, которые в основном используются в наши дни.

Это все о Итерации здесь. Вы управляете своим проектом таким образом, чтобы вы пройдете каждый шаг много раз. Опять же, хорошо иметь грубую концепцию для программного обеспечения, но подробности обсуждаются и реализованы в соответствующей итерации. Это также отличный способ обрабатывать любые запросы на изменение. Вы Не нужно начинать все снова Отказ

Итак, сегодня люди используют аналогичный подход, так называемый Agile Development процессы.

Вот цитата из Википедии, которая описывает развитие Agile Software довольно хорошо.

Он защищает адаптивное планирование, эволюционное развитие, раннюю доставку и постоянное улучшение, и оно поощряет быстрый и гибкий ответ на изменение.

Итак, логин означает, что вы в состоянии быстро реагировать на определенные события, такие как запросы на изменение или ошибки.

Вместо того, чтобы планировать весь процесс развития от A до Z, как в модели водопада, вы Посмотрите на ваш проект еженедельно или, может быть, каждую две недели.

Конечно, вы имеете в виду большую картину, но важно всегда смотреть на следующий цикл, следующую итерацию или как они это называют Scrum — Один из рамок разработки программного обеспечения, упомянутых здесь — следующий Спринт Отказ

Эти рамки разработки программного обеспечения — Scrum или Kanban — помогите вам использовать процессы Agile Development. Так что давайте поговорим о них. Начнем с Scrum.

Это структура Scrum. Не волнуйтесь, я не буду говорить час о каждой детали. Этот абзац должен просто дать вам обзор, как можно работать, и как Scrum May Улучшить цикл вашего развития Отказ

Как вы можете видеть на далеких левых, у вас есть Отслеживание продукта Отказ По сути, это все задачи, все функции, просто все, что ваш конечный продукт должен иметь, когда это сделано. Эти задачи или функции даны так называемыми Владелец продукта . Она разговаривает с заказчиком или заинтересованными сторонами или просто имеет свои собственные идеи для проекта.

Но вместо того, чтобы подниматься на всю эту гору вещи, чтобы сделать сразу, вы хотите Переместить один шаг за другой Отказ Вот что Планирование спринта это для. Опять же, спринт — одна итерация и обычно устанавливается в течение одной или двух недель.

В собрании планирования спринта — Ну, это может быть скорее, чтобы быть спринтом планирования — вы планируете все задачи для следующего спринта. Результатом этой встречи является Sprint backlog. Все задачи, которые вы и ваша команда совершать делать в этой итерации Отказ

В идеальном мире вы действительно должны подтвердить задачи, которые бродят в это отставание, потому что вам придется сделать это и Только вы можете оценить время, которое требуется чтобы закончить их. По крайней мере, в теории. Но ничего не происходит, если вы не можете встретить крайний срок. Вещи происходят, возникают проблемы или оценки были неверными. Обычно это не имеет большого значения. Это какие отзывы, ретроспективы и новые планировки спринта.

Во время спринта есть Ежедневные Scrums Отказ Это должно быть ежедневное собрание, которое является Действительно коротко Отказ Каждый член команды просто рассказывает короче, без деталей, на что она работала над тем, что она работает на данный момент, и если есть какие-либо проблемы. Если есть проблемы, то вы будете говорить о них после ежедневной Scrum. Это действительно просто для проверки текущего состояния развития.

Этот ежедневный Scrum удерживается так называемой Scrum Master Отказ Этот человек просит всех за свою текущую ситуацию и, при необходимости, назначает новые задачи. И если есть какие-либо проблемы или члена команды нуждаются в поддержке, Master Scrum является лицом к контакту.

В конце спринте приходит обзор, который по существу, по сути, тест на прием пользователя. Это означает, что вы показываете результаты клиенту или заинтересованным сторонам или любому человеку, который имеет право видеть результаты. Надеюсь, эти люди принимают ваши реализации.

После спринта вы размышляете о том, что прошло хорошо, и что не в ретроспективе Sprint. Это идеальная встреча, чтобы дать обратную связь и предложить любые улучшения.

Вот и все! Следующая итерация начинается.

Опять же, это был действительно просто краткий обзор. Но это должно дать вам общую идею, как работает эта структура разработки программного обеспечения.

Что такое канбан? На самом деле Kanban — это система планирования для наклонного и просто вовремя. Он был разработан инженером-инженером в Toyota для повышения эффективности производства. Кстати, японское слово «канбан» означает «визуальный сигнал». Часто ваша фактическая работа как разработчик невидима. Использование Kanban делает его видимым, и вы можете показать его другим и держать всех на одной странице.

Канбан был доставлен в мир разработки программного обеспечения Дэвидом Андерсоном с Канбанская доска Отказ

Доска Kanban — это то, что вы видите выше. Это пример инструмента Trello Отказ Доска состоит из столбцов и карт и хочет помочь вашей команде разработки получить все готово! Карта представляет собой задачу и столбец категории или текущее состояние этой задачи.

Вы можете полностью Объедините доску Kanban с Scrum Отказ Как видите, есть столбец для карт Todo, один для карт или задач, которые вы в настоящее время делаете и один столбец для готовых задач. Вы также можете добавить столбец отставания. В таком случае вы можете добавить все ваши задачи отставок вашего продукта в этот столбец. Затем, для предстоящего спринта вы перемещаете задачи, ваша команда хочет сделать в столбце Todo. Как только кто-то оттуда хватает задачу, она будет перемещена в колонну, и так далее. Вы получаете идею.

Еще одна замечательная вещь о Treello или Digital Kanban Rock в целом заключается в том, что вы можете добавить дополнительную информацию на карту. Вы можете добавить описание на свою карту, назначить членов команды, добавить контрольный список, и вы также можете добавить изображения или записи комментариев. Это, кстати, очень полезно, если вы хотите отслеживать любые ошибки в своем приложении — добавьте скриншот с описанием и отладки могут начать …

Это простое, но очень эффективное решение для управления проектами. Конечно, есть большие инструменты, такие как Асана , monday.com , Basecamp и больше. Но канбанское доску, такое как Trello, может быть абсолютно достаточным. Опять же, это просто рекомендация из моего опыта.

Теперь вот где происходит фактическая работа.

Я не могу действительно помочь вам с IDE, которую вы используете, чтобы написать свой фактический код. Есть много и много вариантов.

Я рекомендую Визуальный студийный код Хотя с несколькими расширениями, если это соответствует вашим потребностям. Это определенно мой любимый IDE для проектов в .NET, JavaScript и Teadncript. Вы также можете использовать его для проектов Java или Python с определенными расширениями.

Но это не то, о чем это «сборка» — это все о. Это больше о управлении вашим кодом. И для этого вам определенно нужно контроль источника Отказ Теперь, что такое контроль источника? Упражнение источника означает, что вы Отслеживание и управление изменениями в коде Отказ Но не только код Вы пишут. Речь идет о коде вашего целое команда.

Когда вы сами работаете над проектом, вы можете подумать, что вам действительно не нужен контроль источника. Вы можете подумать, что вы сможете управлять своими изменениями, создавая некоторые файлы, и это. Но я действительно рекомендую использовать контроль источника, даже если вы работаете в качестве одного человека армией. И даже больше, если вы работаете над командой, конечно.

Есть много преимуществ использования контроля источника как иметь История ваших изменений , Слияние кода Изменения членов вашей команды и создание Особенности филиалов Отказ

Давайте разработаем все, что по примеру системы контроля источника Гит Отказ

Система управления исходным управлением или версией, которая соответствует большинству проектов, является GIT.

Git был изначально разработан Линус Торвальдс Парень, который также создал ядро Linux. Это определенно поможет вам отслеживать и управлять изменениями в свой код, в частности, когда вы работаете в команде.

Итак, что делает отслеживание и управление вашими изменениями вашего кода.

Для начала, если вы или одна из членов вашей команды запутались, вы можете просто вернуться к версии вашего приложения, которая работала. Были времена, когда люди использовались для копирования и вставки файлов из одной машины к другой и надеемся, что все работает. Поверьте мне, я был там. Это было не отличное время. Помните шокированную кошку от раньше?

Но не сегодня. Сегодня у вас есть так называемый Репозиторий Отказ Все в вашей команде совершают и толкают их кодовые изменения в этот репозиторий.

Скриншот, который вы видите выше, это Git Client, в этом случае это называется Вилка Отказ По сути, вы видите репозиторий Git здесь. Вы можете увидеть вся история коммитов Отказ Слева вы также можете увидеть, что мы смотрим на Мастер филиал — Допустим, это главная версия вашего кода. Мы собираемся поговорить о филиалах через минуту.

Когда вы совершаете свои изменения, и вы не изменились один и тот же код, кто-то еще изменился, Git будет Автоматически объединить ваши изменения кода С изменениями ваших коллег сами по себе. Разве это не здорово? Это даже не должно быть разными файлами. Допустим, вам и коллеги работают на одном файле, но по разным функциям. GIT будет управлять своими изменениями. Не нужно копировать и вставлять этот материал больше. (Если вы новичок для этого, то это может быть изменение жизни!)

Если, однако, вы и один или несколько ваших товарищей по команде внесли изменения в тот же код, тогда вы можете получить конфликт слияния.

Это означает, что уже преданы изменения в те же строки кода, которые вы хотели изменить. На скриншоте вы можете увидеть, что Git не знает, какую версию кода он должен выбрать. Их версия или наши?

В этом случае вы должны решить этот конфликт самостоятельно. Поэтому либо выбираю одну сторону, выбирая оба или быстро исправляя конфликт вручную в редакторе. Есть инструменты, которые помогут вам разрешить конфликты.

Например, большинство IDES уже удалось сделать это. Таким образом, один из инструментов может быть сам код Visual Studio. Другие инструменты, которые специально сделаны для Git, являются Tortoisegit или Gitkraken Отказ Вы также уже видели Вилка и Sourcetree Отказ Большинство клиентов Git доступны бесплатно или хотя бы имеют бесплатную пробную версию.

Если вы не большой поклонник клиентов с графическим пользовательским интерфейсом, вы также можете придерживаться GIT Bash, терминала или командной строки — в зависимости от вашей операционной системы.

Но сделать эту работу, сначала вы должны Скачать git Для вашей операционной системы.

После того, как вы загрузили GIT, вы можете либо создать репозиторий на вашем компьютере или на сервере или использовать один из бесплатных услуг в Интернете и просто клон Онлайн создал репозиторий на ваш местный компьютер.

Клонирование означает, что вы вроде загружают репозиторий, и что ваши изменения будут отслеживаться, чтобы вы могли совершить и нажать — значит загружать — их снова. Мы поговорим об этих онлайн-сервисах в абзаце непрерывной интеграции.

Что бы вы ни выбирали, каждый член команды может затем использовать этот репозиторий и нажать на него изменения. Прекрасное централизованное решение.

Но это не все. Еще одна замечательная вещь о Git — это способность создавать филиалы Отказ

Теперь, что такое ветви, иногда также называются филиалами имени?

Вы можете схватить текущую базу кода и создать копию текущего состояния. Затем внесите изменения в код и подтолкните ваши изменения, не касаясь скопированной кодовой базы, часто упоминаются на ведущую ветку.

Опять же, вы делаете Копия главного филиала и изменить свой код не касаясь главной ветви Отказ Это отлично, если вы хотите создать новую функцию и выдвинуть изменения в эту функцию без риска уничтожения базы рабочего кода. Таким образом, ваш код безопасен в репозитории и не лежит на вашем жестком диске.

Вы видите эти красочные линии на скриншоте? Это разные ветви. Hero_Images. , Google_verification. Эти особенности, которые были разработаны в собственном ветке, и после того, как они были успешно проверены, они были объединены с главной ветви, и ваши изменения становятся частью основной кодовой базы.

Если вы не будете работать таким образом, может произойти что-то вроде следующее.

Эти изображения были взяты из прицепа Соник фильм Отказ Paramount опубликовал трейлер для этого фильма, и сообщество не было довольным этим. Вы можете сказать, что первая версия представляет собой изменение кода непосредственно в главной ветке без рассмотрения или тестирования их.

Вторая версия использовала функциональную ветку, которая была протестирована, а затем объединена в главную ветку. Намного лучше, не так ли?

Еще одна вещь, которую я хочу упомянуть, это Докер или контейнеры в целом.

Давайте посмотрим на эту цитату из Википедия :

Docker может упаковать приложение и его зависимости в виртуальном контейнере, который может Беги на любом сервере Linux Отказ Это помогает обеспечить гибкость и Портативность Включение приложения будет проводиться в различных местах, будь то в общедоступных облаках или в частном облаке. Докер […] Разрешить контейнеры [S] для запуска в одном экземпляре Linux, избегая накладных расходов запуска и обслуживания виртуальных машин.

Положите просто, с докером, вы можете уволить своего рода виртуальную машину, которая захватывает все необходимое (библиотеки и т. Д.) Чтобы запустить ваше приложение и просто, ну, запустите его. Таким образом, вы можете проверить ваше приложение Real Quick каждый раз, когда вы вносите изменения И скажите наверняка, что ваше приложение не только работает на вашем компьютере, но и в полностью свежей системе. Может быть, вы хотите взглянуть на это в конце концов. Это может увеличить вашу производительность еще больше.

Хорошо, это это для строительной части. Давайте перейдем к непрерывной интеграции.

Непрерывная интеграция большая — и действительно полезна. Но что все это в любом случае?

Я думаю, что это короткое предложение взято из Gitlab описывает это довольно хорошо.

Непрерывная интеграция — это практика интеграции кода в Общий репозиторий и создание/тестирование каждого изменения автоматически , как можно раньше — обычно несколько раз в день Отказ

Мы говорили об этом уже немного в абзаце контроля источника. Каждый день вы и ваши товарищие по команде работают над проектом, вы можете захотеть совершить и подталкивать изменения в базе кода в день в день.

Без репозитория и без непрерывной интеграции вам придется объединить весь код вручную — снова несколько раз в день. Это было бы действительно много времени. Таким образом, вы предпочитаете объединить ваш код только один раз в день, раз в неделю или даже один раз в месяц. Это вызывает много проблем или, по крайней мере, раздражающих задач.

С непрерывной интеграцией и контролем источника этот материал это история.

Вы получили репозиторий, вы проверяете свой код в и Вам больше не нужно беспокоить эту административную работу .

Это изображение показывает, как обычно может выглядеть обычный процесс разработки вашего программного обеспечения. В цитате из Gitlab они упомянули что-то о тестах — точнее это о Автоматизированные тесты Отказ

Вы создаете свое приложение, после нажатия ваших изменений автоматизированные тесты будут запущены, и если они добится успеха, ваше приложение будет развернуто на вашем сервере, в облако, вы называете его.

Автоматизированные тесты

Каковы эти автоматические тесты? Короткое экскурсию.

Самые известные — Агрегаты тесты и Интеграционные тесты — вместе с Тестовое развитие , но это еще один вид практики развития.

Например, проходят тесты на единицу. Как имя уже подразумевает, вы хотите Тестовые единицы единицы с этими тестами. Представьте, что у вас есть калькулятор, и вы просто хотите проверить, работает ли добавление или вычитание. Тогда ты Написать тесты только для этой части Отказ

После того, как вы сделали эти тесты, вы можете проверить, если все Эти единицы также работают вместе . Можно ли вычесть и добавлять цифры в один расчет? Это было бы Тест интеграции Отказ

Другой пример состоит в том, чтобы написать тесты подразделения для заднего кода, но также писать тесты интеграции на посмотрите, работает ли передний конец вместе с задней частью .

Если вы используете только тесты на единицу и оставьте тесты интеграции, что-то подобное может случиться:

Видите ли, раздвижные двери и качели магазинные ворота отлично работают, но не вместе. Кто-то определенно забыл сделать некоторые тесты интеграции здесь …

Как всегда, есть куча тестирование, которые вы можете использовать. Выше является примером структуры тестирования Microsoft. В Visual Studio вы можете увидеть, какой тест не удался, и какой тест был успешным. Если тест терпит неудачу, вы также можете иметь более глубокий взгляд и узнать, что пошло не так. Это ваша реализация устройства, или вы написали неправильный тест?

Если вы находитесь в мире Java, Junit с Eclipse выглядит очень похожим. Результаты теста на левой стороне, деталях или реализациях справа. Вы также можете увидеть, что тестовые реализации имеют свои аннотации. Таким образом, есть конкретные правила о том, как писать тест и как работать с определенной структурой тестирования.

Все, что вы пишете своему программному обеспечению, появится система тестирования. Просто посмотрите вокруг. Угловой на передней части уже есть свои собственные тестовые файлы.

Хорошо, так много для нашей маленькой тестовой экскурсии. Они идеально подходят в процесс непрерывной интеграции, но вам не нужно их использовать. Просто помните, что идея непрерывной интеграции состоит в том, что вы записываете свой код, толкайте его в свой репозиторий для управления исходным управлением, то ваше приложение будет создано или скомпилировано на сервере, то тесты будут запущены, и после того, как все тесты прошли, ваше приложение будет развернут.

Сервисы непрерывной интеграции

Есть несколько услуг, которые вы можете использовать для непрерывной интеграции. Некоторые могут сделать больше, некоторые меньше. Дженкинс Например, одна из ведущих серверов автоматизации. Но для вашего дела другие решения могут быть лучше.

По моему опыту, Дженкинс и Гудсон Сделайте отличную работу по непрерывной интеграции, и вы можете добавить больше функций через расширения. Но есть и другие платформы, которые обеспечивают Полные решения DevOps Отказ

Gitlab , Битбукет или Azure DevOps (который даже использует срок DevOps) Хотите быть все в одном решениях — и в моем опыте они действительно есть. Вы не только получаете постоянную интеграцию. Вы получаете репозиторий, вы получаете доски, решения по продаже билетов, развертывания, уведомления, множество вариантов интеграции с другими инструментами и так далее.

Не поймите меня неправильно. Другие услуги могут сделать это тоже, но у вас могут быть больше работы.

В конце концов, это для вас решить, какую услугу, инструмент или платформу вы хотите использовать. Лучший способ решить, что просто попробовать их и найти тот, который вам нравится больше всего, и это соответствует вашим требованиям, конечно.

Конфигурация непрерывной интеграции

Но давайте посмотрим, как вы делаете постоянную интеграцию работать на примере GitLab.

Первое, что вам нужно, это Конфигурации файла Отказ В случае GitLab это файл YML, называемый .gitlab-ci.yml Отказ

Вы видите, что он просто вводится в корневой каталог вашего проекта.

Этот файл YML состоит из скрипта. Вы можете определить этапы, а затем добавлять команды на каждый этап или команды на данный момент до или после определенного этапа.

В этих примерах вы видите сценарии развертывания для .NET Задний конец ядра и угловой передний конец.

По сути, вы просто вводите команды, которые вы также будете работать, когда вы хотите создать приложение локально на вашей машине разработки. А затем вы добавляете команды для публикации скомпилированного приложения.

Например, в .NET Core Case Мы запускаем Dotnet Build и Dotnet Publish Команды для публикации версии отладки и выпуска. Что касается угловых, мы называем NPM установить Чтобы установить все зависимости, а затем запускать NG Build С конкретными конфигурациями. Оба приложения Вернувшаясячатая служба и угловой передний конец развернуты в сервис Internet Informance на сервере Windows.

Одним из прекрасных преимуществ этого является то, что вы создаете код каждый раз, когда это первый раз. В идеале, в случае ошибки, вы никогда не слышите фразу «Но она работает на моей машине» снова.

Как упоминалось ранее, есть способы интеграции платформы DEVOPS, как GitLab с другими инструментами, такими как провисание. Как только код был выдвинут или процесс сборки и развертывания был завершен, Сообщение будет отправлено на слабый канал . Это также добавит Официальное сообщение и Результат развертывания Отказ

Оттуда я могу нажать «Сравнить изменения» или на трубопроводном номере процесса развертывания.

«Сравнить изменения», приносит меня к фактическому фиксации, которые я могу, хорошо, сравните изменения кода. В этом примере вы видите измененный файл со всеми различиями к предыдущей версии этого файла, например, добавленного условия в строке 290.

Нажатие на трубопровод поднимает меня к результату сценария YML. Вы видите команды, такие как Dotnet Publish и результаты этих команд. Если что-то пошло не так, вы бы увиделите бетонную ошибку здесь, надеюсь, с подсказками на то, как это исправить. Если все прошло хорошо, вы видите Работа преуспела утверждение.

Вот так работает непрерывная интеграция. Код будет интегрирован в общий репозиторий, он будет построен и тестировать автоматически несколько раз в день.

Мы можем даже пойти немного дальше с Непрерывное развертывание или доставку Отказ

Непрерывная доставка Добавляет, что программное обеспечение может быть выпущено для производства в любое время, часто путем автоматического толкания изменений в систему постановки.

Непрерывное развертывание идет еще дальше и толкает изменения в производстве автоматически.

По сути, это означает, что вы не только построили и проверили свой код, вы также развернули его на свой рабочий сервер для этого приложения. Нет необходимости вручную перемещать вашу тестовую или промежуточную версию на ваш производственный сервер. Дежол может сделать все это для вас автоматически Отказ

Помните кошку на пляже? Вот как мы туда добираемся.

Мы уже говорили о развертывании при охватывании непрерывной интеграции.

Развертывание — это Процесс, который перемещает ваш код на сервер или платформу где люди могут на самом деле использовать это.

Есть несколько способов сделать это. Вы можете арендовать свой собственный выделенный сервер, виртуальную машину или вы используете одну из многих доступных платформ, таких как Microsoft Azure. , Amazon Web Services или Google Cloud Отказ

Большое преимущество этих трех в том, что вы Не нужно проводить и настроить свой собственный сервер . Вы просто платите за то, что вам действительно нужно. Вам нужна база данных и маленький WebSpace для вашего веб-приложения? Отлично просто добавьте их, решите, сколько памяти и какой процессор вы хотите, и вы закончите.

Еще одна великая вещь в этих платформах — вариант Масштабирование Отказ Если вам нужно больше энергии только в течение короткого периода времени, вы можете добавить больше памяти или что-либо еще на этот период. Если ваше приложение или количество пользователей растет, вы также можете масштабировать на более длительный срок.

Когда вы должны полагаться на сервере, вам удается самостоятельно, вам, возможно, придется покупать еще один дополнительно или даже полностью перенести вашу приложение.

С Gitlab и Битбукет У вас есть Great DevOps Solutions, но вы можете получить сервер самостоятельно, где будет развернуто ваше приложение.

Конечно, услуги, как Microsoft Azure Стоимость денег. Но есть Доступны бесплатные варианты , слишком. В этом случае вы можете проверить услугу в течение 12 месяцев. Вы можете проверить и развернуть приложения на виртуальные машины и использовать базы данных SQL, например. Мобильные приложения также нет проблем вообще и, еще одно большое преимущество, с обслуживанием, как Azure, вы можете получить представление от ваших пользовательских данных И, возможно, улучшите ваше приложение и пользовательский опыт на основе этих данных.

Amazon Web Services очень похожи. Есть также бесплатные варианты, но они отделены в уровнях Отказ Некоторые услуги навсегда бесплатны, некоторые вы можете проверить 12 месяцев, а другие имеют более ограниченный пробное время, как 30 дней. Но опять же, вы можете добавить только необходимую услугу.

Google Cloud Platform берет другой подход. Здесь вы получаете бюджет в размере 300 долларов США, который вы можете использовать для создания и доступа к тому, что хотите. Здорово, что вы также можете использовать специальные услуги Google и API, как Firebase или API Google Maps.

И я думаю, что это действительно хороший и дружелюбный клиент, что вам не будет взиматься никаких сборов автоматически после окончания бесплатных испытаний. Вы должны сначала перейти на оплаченный план.

Bitbucket и Gitlab выглядят немного по-другому. Доступны бесплатные планы, и я думаю, что в большинстве случаев они полностью достаточно, если вы просто начинаете.

Есть типичная модель ценообразования для Bitbucket Отказ Есть определенные функции бесплатно для небольшой команды. Если ваша команда растет или вам нужно больше функций, вы должны обновить до платного плана.

Я думаю, что это здорово, что вы уже получаете неограниченные частные репозитории, интеграцию Trello и непрерывную интеграцию в свободный план.

Опять же, Gitlab очень похоже. В свободном плане вы уже получаете неограниченные репозитории и постоянную интеграцию, и я думаю, что вы также получите несколько видов интеграционных вариантов. Похоже, что он не ограничен размером вашей команды.

С заплатными планами вы просто получаете все больше и больше функций.

В конце концов это зависит от вас. Что вам нужно? Я рекомендую вам сравнить услуги, возможно, начать с бесплатного плана, возможно, даже сервис с ограниченными возможностями, просто чтобы получить это, а затем переключиться на что-то большее, когда вам это нужно, и когда вы более знакомы со всеми разными функциями Эти платформы и услуги должны предложить.

Следующий этап в круге DevOps будет работать. Или другими словами, Мониторинг Ваши серверы, Регистрация Информация и происходящие ошибки и Отправка уведомлений если необходимо.

Опять же, есть куча услуг, которые могут помочь вам со всем этим. Нагиос , Loggly , Dynatrace и Splunk Может быть некоторые услуги, на которые вы хотите взглянуть.

Нагиос все о мониторинге. Он может контролировать вашу систему Windows или Linux, какие-либо сервер, приложения, и так далее И это будет регистрировать результаты мониторинга всего этого.

И, конечно же, есть бесплатная пробная версия.

Вот структура того, как работает с NAGIOS.

У вас есть свои объекты слева. Это обычно любой вид серверов. Нагиос может затем проверять, работает ли все и работает и работает так, как он должен работать. Также он может отслеживать производительность данных.

Тогда у нас есть столбец статуса справа. Это просто означает, что Nagios может отправить уведомление перед вами всякий раз, и где бы вы ни хотели. Поэтому, например, если ошибка возникает, например, вы можете сказать Nagios отправлять электронную почту, SMS или просто войдите в систему в базу данных или веб-приложении, где вы можете проверить эти ошибки самостоятельно.

Это уже это на самом деле. Опять же, все сделано автоматически, и вам не нужно смотреть свои серверы все время самостоятельно.

Динатрас делает другой подход. Они рекламируют свои услуги с AI-питание , все в один платтформ. Вместо того, чтобы просто мониторинг и доставлять данные, они также хотят также предоставлять интерпретации и «ответы» на ваши данные. Бесплатная пробная версия также доступна здесь.

Но для меня большой вопрос, Вам действительно нужен такой сервис ? В основном эти виды мониторинга необходимы для Средние до крупных компаний Отказ В большинстве случаев вы можете попробовать делать некоторые Регистрация и отправка уведомлений самостоятельно Но все еще автоматизировано.

Почему бы не просто написать службу регистрации на спине самостоятельно? Вы можете написать любую информацию, которую вы хотите в базе данных или даже текстовый файл, и если какие-либо ошибки или исключения были брошены, просто Отправить письмо на себя Или к команде разработки с определенной информацией, такой как дата и время, пользователь, вызывающий ошибку и данные запроса.

Затем вы можете иметь более глубокий взгляд в журнал, попробуйте воспроизвести ошибку, исправить ее, и вы закончите.

Просто дайте ему мысль может быть?

Мы медленно приходите к концу круга DevOps с последним этапом обратной связи.

Обратная связь поступает по-разному. У нас есть Автоматизированные обновления состояния , IT Service Management (ITSM) , Управление отношениями клиентов (CRM) и Отслеживание ошибок Отказ

Сделайте просто, мы можем сказать, что ITSM больше фокусируется на отзывах для ИТ-отделах, тогда как CRM фокусируется на клиенте. Отслеживание выпуска может быть частью IT-сервисного управления. Но давайте сначала посмотрим на некоторые из этих услуг.

У нас есть услуги и платформы для IT Service Management, управление отношениями к клиентам и отслеживание проблем здесь.

Некоторые услуги более актуальны для управления взаимоотношениями с клиентами. Это означает, что они сосредоточены на сохранении информации о клиентах, предоставляя им обратную связь и, надеюсь, приведут к Увеличение прибыли . Потому что, когда вы можете отслеживать информацию о клиентах и дать им правильную обратную связь, ваши клиенты могут быть счастливее, чаще покупают и рекомендуют ваши услуги.

Но я хочу сосредоточиться на IT-сервисном управлении или более точно, выпуска или отслеживание ошибок. Мантис , Bugzilla С Джира и Trello являются веб-приложениями, которые предоставляют возможность писать билеты и отчеты об ошибках. Mantis и Bugzilla сфокусируются больше на отслеживании ошибок.

Целью отслеживания выпуска, как Mantis, заключается в том, чтобы предоставить возможность добавить описание проблем в вашем приложении к указанному трекеру. Поэтому, как только возникает ошибка или тестер вашего приложения, добавляет новый вопрос с названием, описание того, что произошло, и, возможно, также, какие последствия имели этот вопрос. Сбой приложения сделал это ошибку просто привести к странному поведению UI или что-то еще?

С Mantis или Bugzilla у вас есть трекер, который позволяет вашей команде сотрудничать и смотреть все ошибки в вашем приложении.

Почти всегда всегда вы можете начать бесплатную пробную версию или даже убираться на службе. Потому что официальный трекер самого Мантиса открыт для всех.

Как видите, у нас есть список нескольких вопросов. Некоторые неназначены, некоторые решаются, вы можете увидеть график проблем, которые были созданы, отредактированы или прокомментированы, и вы также можете подробно просмотреть все вопросы.

Затем вы видите свойства, такие как серьезность, статус или категория каждого выпуска. Конечно, вы также видите дату последнего обновления и резюме того, о чем эта проблема.

Таким образом, вы, надеюсь, будут организованы ваши ошибки, и это поможет вам лучше сделать ваше программное обеспечение. Кроме того, с включенным уведомлением, Ваша команда узнает, что происходит все время Отказ

Например, если член команды исправляет ошибку, репортер этой ошибки может получить уведомление и уже проверить исправление. Потому что благодаря непрерывной интеграции и доставке код с фиксированной ошибкой уже опубликован и развернут в вашу тестовую систему, верно? Отличный материал!

Джира — это еще один пример этого программного обеспечения. Но где Mantis фокусируется только на ошибках, Jira обычно также используется для запросов на функции или любые билеты в целом. Но основная функциональность такая же. Создавайте билеты, отслеживайте их, обновите их, закончите их и отправьте уведомления.

GitLab также предоставляет функцию отслеживания выпуска. Вы даже можете решить для себя, если вы хотите увидеть билеты или проблемы в виде списка или в качестве доски. Вы также можете добавить категории, тяжести, разные цвета и так далее. И это выглядит действительно похоже на Treello.

А где мы снова найдем Trello? На этапе планирования, так что право в начале нашего круга DevOps. Выпуск трекеров, таких как Mantis, может выглядеть по-другому, но на самом деле Вы можете полностью использовать программное обеспечение, которое вы используете для планирования жизненного цикла вашего развития, чтобы также отслеживать ваши проблемы Отказ

Если вы используете платформу SEVOPS Solutions, такие как GitLab, вам даже не нужен дополнительный инструмент.

Вы видите, куда я иду с этим? Мы пришли Полный круг Отказ Предоставление и предоставление обратной связи приводит к планированию вашей следующей итерации.

Пришло время суммировать все.

Так что мы пришли полный круг сейчас. Мы отправились от планирования для создания, затем непрерывной интеграции и развертыванию, а затем мы ввели опцию DEVOPS, где речь идет о работе и обратной связи. На основании этой обратной связи мы можем спланировать следующий шаг развития. Все это окружено коммуникацией в реальном времени.

Вы видели много и много инструментов, которые могут помочь вам на каждом этапе DevOps. То, что вы используете, полностью зависит от вас. Выберите инструмент на каждый шаг, сделайте вещи, как и исключение журнала и отправка электронных писем в вашу команду или схватить одну из платформ Big DevOps и сделайте все с одним сервисом.

Просто не забудьте реализовать DevOps в своем жизненном цикле разработки программного обеспечения вообще. Вы не хотите выглядеть как шокированная кошка в начале, ты?

Попробуйте разные инструменты, а затем найдите способ подходит вам лучше всего. Существует так много решений там, что я думаю, что есть правильный путь для каждой команды, каждая компания, каждая программа, которую вы хотите построить.

Я надеюсь, что вы узнали что-то, и у вас есть новые идеи. Если у вас есть вопросы, не стесняйтесь спросить!

Увидимся в следующий раз, позаботься.

Заголовок Изображение: Romolo Tavani/ShuttTerstick.com

Но подожди, есть больше!

  • Получите полный и обновленный DevOps Онлайн курс бесплатно.
  • Давайте подключемся к Twitter , YouTube , LinkedIn Или здесь на dev.to. .
  • Наслаждайтесь более ценными статьями для вашей жизни и карьеры разработчика на patrickgod.com Отказ

Оригинал: «https://dev.to/_patrickgod/devops-saving-your-code-from-the-apocalypse-4aco»