Что такое прод в it
Перейти к содержимому

Что такое прод в it

  • автор:

Deploy

Деплой (deploy) — это развертывание и запуск веб-приложения или сайта в его рабочей среде, то есть на сервере или хостинге. Разработчик загружает приложение, написанное на локальном компьютере, в специальное пространство, из которого оно доступно в интернете.

«IT-специалист с нуля» наш лучший курс для старта в IT

Когда сайт загружают на сервер или хостинг, говорят, что его деплоят или «выкатывают». Также процесс называют деплоингом (deploying). Еще есть выражение «отправка в продакшн» или «на прод» — оно описывает этот же процесс.

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

Само английское слово deploy в переводе означает «развертывать».

Профессия / 8 месяцев
IT-специалист с нуля

Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

vsrat_7 1 (1)

Для чего нужен деплой

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

Без деплоя код не дойдет до сервера и так и останется на рабочей машине программиста. А писать прямо на сервере — очень плохая идея даже в теории: это сложно, неудобно и может его «уронить». Тем более часто рабочая среда — не один сервер, а сотни разных устройств, и процесс развертывания и запуска в продакшн довольно сложный.

Читайте также Deploy

Что именно деплоят

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

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

Курс для новичков «IT-специалист
с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить

Как выглядит жизненный цикл кода

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

1. Разработчик пишет код. Это может быть принципиально новый сервис или доработка к уже существующему, обновление сайта или что-то еще. Он делает это на локальном компьютере.

2. Когда код готов, разработчик коммитит его: загружает в репозиторий, специальную «общую папку» команды, например на сервисе GitHub. Там его смогут увидеть и прокомментировать другие разработчики — это называется код-ревью.

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

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

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

Что входит в деплой

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

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

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

Деплоймент пошагово: как это выглядит

Вот как примерно выглядит процесс:

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

Автоматизация деплоя

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

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

  • с помощью надстроек и утилит, написанных для конкретных языков или библиотек;
  • через системы автоматизации и управления, такие как Ansible, или через облачные сервисы для веб-приложений вроде Heroku;
  • с помощью оркестраторов, платформ, которые управляют контейнерами, — самым известным примером считается Kubernetes.

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

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

Избежание простоя: что такое подход Zero Downtime

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

При использовании подхода Zero Downtime Deployment сайт не останавливается. Это происходит, потому что в таком случае сначала запускается новая версия, а потом отключается старая.

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

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

Как начать деплоить

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

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

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

IT-специалист с нуля

Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.

картинка (75)

Статьи по теме:

IT-термины: как разговаривать с программистами

Анна Климушка

IT-термины: как разговаривать с программистами

Сколько раз с вами случалось, что в ответ на предложение «скипануть» встречу или «заэстимейтить» план задач собеседник удивленно приподнимал бровь? Такое происходит довольно часто, когда IT-специалисты или выпускники курсов программирования используют свой сленг при общении с теми, кто работает в других сферах.

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

Scrum—способ ведения разработки, при котором сохраняется итеративность (четкие списки задач на короткие отрезки времени) и равномерное распределение ответственности между всеми участниками команды.

Спринт — это не только бег спортсменов на короткую дистанцию, известный в широких кругах как sprint. В разработке это — небольшой промежуток времени (1-4 недели), укомплектованный задачами на команду.

Релиз — своеобразный «выход в свет», release. Выпуск целого приложения или его части (например, багфикс) в продакшн-версии для конечного пользователя или в промежуточной для внутреннего тестирования. В идеале каждый спринт должен заканчиваться релизом.

Продакшн —конечная версия приложения или сайта, доступная рядовым пользователям (production). Проще говоря, то, что мы можем найти в Google, скачать с Google Play или Apple Store.

Стейджинг —промежуточная, отладочная версия сайта, выкладка для тестировщиков (staging). Обычным юзерам недоступна.

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

Багфикс — работа над ошибками и их исправление (bug fix).

Деплой — перенос разработчиками свежего кода на нужный сервер (промежуточный или продакшен), deploy. Очень часто в конце спринта можно услышать тревожное «Задеплоил ли ты свои изменения?».

Билд —сборка мобильного приложения, несущая в себе последние обновления (build). Самые свежие результаты «строительства».

Таска —задача (task). Например, добавить поле на странице регистрации.

Эстимейт — оценка времени или усилий, необходимых для выполнения задачи (estimate). Если используем время, то проставляем количество часов, необходимых для закрытия задачи. Если усилия — стори поинты.

Стори поинты —баллы, неотъемлемая часть скрама. Индивидуальная оценка задачи разработчиком. Чем больше баллов, тем сложнее. При использовании story points основная задача менеджера – понять, сколько всего баллов команда может выполнить в течение спринта.

Линк — проще, чем кажется. Ссылка, link.

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

Фронтенд — та самая красивая картинка, «лицо» вашего автомобиля. Цвета, отступы, стрелочки, всякие кнопки и другая визуальная часть, доступная глазу пользователя.

Ну, и скипануть означает пропустить, skip something.

А если хотите узнать все термины с первых рук, вам нужны курсы IT онлайн 😉

Примечание: а если вы хотите, чтобы и ваш ребенок был в IT, детские курсы программирования будут полезны!

10 IT-терминов на английском, которые стыдно не знать

Если вы работаете в IT-компании, аутсорсите разработчиков или используете диджитал-продукты /профессиональный софт / онлайн-сервисы, вам будет полезно знать эти 10 терминов.

Многие ошибочно полагают, что production — это производство. На самом деле production (по-русски “прод”) — это боевая среда. То есть та версия продукта, которая выложена онлайн / установлена клиенту.

▫️ When are you going to push it to production? — Когда собираетесь выложить это на прод?

2. Deployment (деплоймент или деплой)

Deployment — это выкатывание на прод. Иными словами — запуск.

▫️When do you plan the next deployment? — Когда планируете следующий релиз (=выкат на прод)?

▫️We should collect customer feedback in 2 weeks after deployment to production. — Нам нужно собрать обратную связь от клиентов через 2 недели после релиза.

3. Staging (стейджинг)

Стейджинг — это тестовая среда. То есть та среда, куда выкладывают версию, которая, как кажется разработчикам, готова пойти в прод. Это делается для подстраховки: прежде чем выкатывать что-то клиентам, release candidate должен быть тщательно протестирован.

▫️The feature is not released yet, but you can check it on staging. — Фича еще не выпущена в продакшн, но ты можешь протестировать ее на стейдже.

4. QA (Quality Assurance) (ку-эй)

Quality Assurance — это контроль качества. Так обозначают подразделение в компании — QA Department (или Отдел тестирования) — или сотрудника-тестировщика (QA manager).

▫️Has this feature passed QA? — Эта фича прошла тестирование QA?

▫️All tests are completed and Quality Assurance signs-off this release. — Все тесты завершены, и QA-специалисты подтвердили возможность релиза.

5. Troubleshooting (траблшутинг)

Troubleshooting — это процесс диагностирования неполадки; установка причины, из-за которой возникла проблема.

Обратите внимание, что глагол troubleshoot пишется в одно слово, а его форма прошедшего времени — troubleshot.

▫️Try to disable these features to troubleshoot the problem. — Попробуйте отключить эти фичи, чтоб диагностировать проблему.

▫️They asked me to troubleshoot the equipment. — Они попросили меня установить причину неполадки в оборудовании.

▫️I’ve successfully troubleshot the problem when it occurred. — Я успешно диагностировал проблему, когда она произошла.

6. Debugging (дебагинг)

Так называют этап разработки, в ходе которого локализуют и исправляют ошибки. Debugging происходит после troubleshooting.

▫️The team found the cause of the problem and already started debugging. — Команда нашла причину проблемы и уже начала ее исправление.

7. Refactoring (рефакторинг)

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

▫️ Why should this task take you so long? — Почему это займет столько времени? — It requires a lot of refactoring. — Тут требуется рефакторинг.

8. Endpoint (эндпойнт)

Endpoint — это точка доступа к данным. Если послать туда запрос, в ответ можно получить нужную информацию. То, как «общаться» с эндпойтом и фильтровать информацию с помощью разных параметров, описывается в API документации.

▫️We need to create an endpoint to collect this data. — Нам нужно создать отдельный эндпойт, чтобы собирать эти данные.

9. API (апи)

Аббревиатура API расшифровывается как Application Programming Interface. Так называют вид интеграции или метод общения разных компонентов системы друг с другом.

▫️Could you please send me your API documentation? — Пожалуйста, отправьте мне вашу API-документацию.

10. Backlog (бэклог)

Бэклог — это список задач, которые предстоит выполнить команде. Чаще всего это большая свалка, куда скидывают все, что не берут в работу “прямо сейчас”, в том числе и задачи, которые заводят только для того, чтобы о них не забыть.

▫️ We’ll put this task in the backlog. — Мы добавим эту задачу в бэклог.

Разбираемся в топовых IT-терминах: просто о сложном

Разбираемся в топовых IT-терминах: просто о сложном

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

Без их понимания попасть в привилегированное общество – будет очень непросто. Если вы хотите понимать IT-специалистов или планируете пополнить их ряды – этот мини-словарь специально для вас.

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

Анбандлинг – разделение целостной системы на части, каждая из которых может работать автономно. Например, у Facebook есть одно цельное приложение, но также есть Messenger – приложение относящееся к главной проге, но оформленное в отдельный продукт, для более удобного обмена сообщениями. Переводится термин с английского «разделение».

Бандл – связка – совокупность файлов или программ, которые имеют общие признаки.

Дебаг/дебажить – отлаживать – поиск ошибок в написанном коде и их дальнейшее исправление.

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

Инстанс – пример – это один экземпляр одного объекта. Грубо говоря, это копия чего-либо. Например, у нас есть один документ – инстанс, если мы сделаем копию этого же документа, получится два инстанса.

Код-ревью – перепроверка кода – это оценка правильности написания кода и его соответствия поставленной задаче и целям компании. По сути, это предотвращение перехода кода в legacy.

Код-стайл – стиль кода – единые стиль, концепт и правила написания кода, которые должны соблюдать все разработчики.

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

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

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

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

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

Прод, продакшен – производство – это означает выпустить готовый продукт на всеобщее обозрение.

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

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

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

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

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

Надеемся вам удалось узнать для себя нечто новое!

Больше интересных новостей

Улучшаем код JavaScript: топ-6 лайфхаков

Улучшаем код JavaScript: топ-6 лайфхаков

Что такое UX и UI? Описание и обзор отличий

Что такое UX и UI? Описание и обзор отличий

Дополненная реальность / Создание простого AR приложения

Дополненная реальность / Создание простого AR приложения

Подборка: Что можно купить в сети Даркнет?

Подборка: Что можно купить в сети Даркнет?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *