XS
SM
MD
LG
Державний університет телекомунікацій

Адреса:
03110, Україна
м. Київ, вул. Солом'янська, 7
Контактна інформація:
Державний університет телекомунікацій

Особливості розгортання коду на сервері (deploy)

12:02, 20-05-2020

На кафедрі Комп'ютерних наук студенти навчаються розгортанню програмного забезпечення. Це ті дії, які роблять програмну систему готовою до використання. Даний процес є частиною життєвого циклу програмного забезпечення. В цілому процес розгортання складається з декількох взаємопов'язаних дій з можливими переходами між ними.

Після написання нової програми і усунення критичних багів необхідно розгорнути її на сервері і дати доступ кінцевому користувачеві - це процес називається деплой.

Розглянемо способи деплой веб-додатків і познайомимося з актуальними технологіями:

  • вручну;
  • за допомогою bash файлів;
  • за допомогою Docker;
  • docker-compose;
  • c використанням CI / CD.

* в будь-якому з варіантів використовується git з актуальною версією сховища на сервері

 

Вручну

Найпростіший спосіб, але в той же час схильний до великої кількості помилок і проблем, в силу людського фактора.

Наприклад, запуск web-додатку можна зробити в одну команду.

У більшості випадків, Вам потрібно буде запустити web-додаток і кілька мікросервісов. Якщо реліз заплановано на пізній час або робиться на швидку руку, то дуже легко втратити щось, не врахувати і отримати негативний відгук від своїх клієнтів. Тому цей метод зараз використовується вкрай рідко і є поганою практикою.

 

За допомогою bash файлів

Спосіб актуальний для невеликих проектів, команди, які запускали руками записуються в .sh файли. Після цього їм дають доступ (через chmod) і запускають (2-я команда):

Також, ви можете поєднувати запуск декількох bash файлів в один для зручності. Такий напівавтоматичний спосіб деплоя дозволяє знизити вплив людського фактора і прискорити процес.

 

За допомогою Docker

 

Docker був розроблений для більш швидкого розгортання додатків. За допомогою docker Ви можете відокремити додаток від вашої інфраструктури і звертатися з інфраструктурою як керованим додатком.

* Установка docker та docker-compose

Найчастіше в docker користуються контейнерами (containers) і образами (images). Docker image - незмінний шаблон, наприклад PostgreSQL, яку Ви можете встановити з DockerHub командою:

Docker container створюється нами, в нього ми можемо "вкласти" всі наші залежності (як бібліотеки, так і БД), front-end частину і її запуск. Для його створення використовується Dockerfile, з яким детальніше можна ознайомитися тут.

Відповідно, ми можемо запустити наші фронт-енд і backend частини, за допомогою 1 або 2х (залежить від Вашої архітектури) docker контейнерів.

 

З допомогою docker-compose

Якщо Вам потрібно розгорнути 2 і більше сервісів, то Вам знадобитися docker-compose. Тобто docker застосовується для управління одним контейнером, docker-compose використовується для одночасного управління декількома контейнерами, що входять до складу програми.

Інструкції для запуску пишуться в файлі docker-compose.yml, з познайомитися з реальним прикладом можна тут.

 

Використання CI / CD сервісів

Картинка була взята з цієї  статті 

Безперервна інтеграція (CI, Continuous Integration) - це практика розробки ПЗ, при якій зміна коду з високою частотою інтегруються в загальний репозитарій і перевіряються за допомогою автозборки. По кроках процес використання системи виглядає наступним чином:

  •  розробники перевіряють код локально (на своїх комп'ютерах);
  •  зміни відправляються до загального репозитарію;
  •  репозитарій відправляє запит (webhook) системі CI;
  •  CI-сервер запускає завдання (тести, покриття, перевірку синтаксису і т.д.);
  •  CI-сервер зберігає артефакти і випускає реліз для тестування;
  •  у разі виникнення помилок збірки або тестування CI-сервер сповіщає команду;
  •  команда виправляє проблему.

Існує безліч CI систем: Travis CI, Circle CI, Gitlab CI і Jenkins. Більш детально можна прочитати тут.

 

Висновки

Якщо ви до цих пір деплоете руками, то як можна швидше переставайте це робити. Якщо у Вас все на bash файлах в невеликому проекті це допустимо але, в разі збільшення проекту bash файли можуть будуть ставати все більш громіздкими і їх буде складніше підтримувати. Тому варто переходити на docker-compose. І по можливості підключати будь-якої CI. Також не забувайте про 12-Factor App, а якщо не знайомі, то категорично рекомендую!

Після впровадження docker-compose і CI сервісу познайомтеся з Kubernetes, який використовується в великих проектах і дозволяє швидко масштабуватися. Для цього рекомендую цю статтю і офіційну документацію.

Михайло Шелег, студент групи КНД-21.
Кафедра Комп'ютерних наук.

детальніше

Шановний абітурієнт!

До Вас звертається член приймальної комісії кафедри Комп’ютерних наук Державного університету телекомунікацій.

Ви подали заяву для вступу на спеціальність Комп’ютерні науки за якою здійснюється підготовка на нашій кафедрі.

Дана спеціальність є однією з найбільш затребуваних та популярних спеціальностей на ринку праці.

Ми пропонуємо якісну освіту за помірною ціною. Вартість підготовки за спеціальністю Комп’ютерні науки складає 21000 грн. на рік, що значно нижче ніж у КПІ 25900 грн. на рік та НАУ 23000 грн. на рік.

Якщо Вами до приймальної комісії будуть надані оригінали документів та сплачено за навчання, Ви гарантовано станете студентом нашої кафедри.

На кафедрі зроблено все можливе для того щоб збулися мрії студента та його батьків:

Кафедра Комп’ютерних наук готує висококваліфікованих і затребуваних на ринку праці фахівців по одній із найбільш престижних спеціальностей для галузі інформаційних технологій.

Кафедрою укладено 11 договорів про співпрацю з компаніями, які є потенційними роботодавцями наших випускників.

В освітньо-професійній програмі кафедри в межах навчального процесу сплановано отримання сертифікатів компаній-партнерів CIKLUM, EPAM HEWLETT PACKARD ENTERPRISE, Київ ІТ Кластер, що надає право нашому випускнику отримати перше високооплачуване робоче місце в компанії, по якій отримано сертифікат, як в нашій країні, так і за кордоном.

Втілений на кафедрі інноваційний зміст навчання забезпечує навчання нашого студента тому, що потрібно і як потрібно, теоретично і практично, відповідно до компетенцій компаній-партнерів кафедри – потенційних роботодавців. Це дозволяє нашому студенту мати фахову перевагу на ринку праці.

Для повноцінного оволодіння теоретичними знаннями та практичними уміннями і навиками майбутньої професії, навчання по спеціальності на нашій кафедрі починається з 1-го курсу, а не з 3-го, як на аналогічних кафедрах інших університетів.

Половина навчальних занять, відповідно до вимог компаній-партнерів кафедри, проводиться практично з використанням сучасного програмного забезпечення на апаратно-програмних комплексах та обладнанні останнього покоління, які використовуються компаніями-партнерами кафедри у своїй роботі. Це дозволяє нашому студенту оволодіти сучасними практичними уміннями і навиками, які необхідні для успішної роботи в компаніях.

В компаніях ІТ галузі велика увага приділяється знанню англійської мови. Для оволодіння англійською мовою на кафедрі втілена система її поглибленого вивчення, яка забезпечує засвоєння англійської мови за час навчання на рівня міжнародного стандарту В2.

На нашій кафедрі посилено вивчається англійська мова, яка необхідна для успішної роботи за спеціальністю. На 1-му та 2-му курсах заняття по англійській мові проводяться 3 пари на тиждень з урахуванням термінології кафедри. На 3-му, 4-му, 5-му курсах по всім дисциплінам, які викладаються на кафедрі 20% занять проводяться англійською мовою, що надає конкурентну перевагу нашим випускникам.

Відповідно до вимог науково-технічного прогресу та компетенцій компаній для оволодіння практичними уміннями і навиками на кафедрі створена сучасна навчально-матеріальна база. Вона укомплектована програмним забезпеченням, апаратно-програмними комплексами та сучасним обладнанням компаній-партнерів кафедри Комп’ютерних наук. Навчально-матеріальна база кафедри визнана однією з найкращих в Україні, про це свідчить гран-прі у номінації «Інноваційний розвиток навчально-лабораторної бази», яким нагороджена кафедра у 2019 році Міністерством освіти і науки України та Президентом Національної академії педагогічних наук України.

Навчальні класи та навчальні лабораторії укомплектовані сучасним обладнанням останнього покоління, програмно-апаратними комплексами та програмним забезпеченням компаній-партнерів кафедри. Це дозволяє нашим студентам навчатися по компетенціям компаній-партнерів кафедри – потенційних роботодавців. Всі приміщення кафедри забезпечені безкоштовним доступом до швидкісної мережі Інтернет, що дозволяє нашим студентам користуватись у навчанні ресурсом електронної бібліотеки Університету, періодичними світовими виданнями у галузі інформаційних технологій, використовувати дистанційне навчання Moodle та електронний розклад занять.

Кафедрою організовуються і проводяться навчальні практики на виробничих базах в компанія-партнерах кафедри CIKLUM, EPAM HEWLETT PACKARD ENTERPRISE, Київ ІТ Кластер, на 2-му курсі – ознайомча практика, для отримання первинних знань про професію; на 3-му курсі – виробнича практика, для набуття студентом практичних умінь виконання майбутніх службових обов’язків; на 4-му курсі переддипломна практика, для практичного застосування та удосконалення набутих теоретичних знань. Це дає можливість студенту краще зрозуміти суть спеціальності, за якою він навчається, та набути практичного досвіду роботи у компаніях і показати себе з кращого боку, щоб компанія була зацікавлена взяти його на роботу. Під час практик кращим студентам пропонується працевлаштування в цих компаніях.

Навчаючись за спеціальністю кафедри, Ви за доступною ціною отримаєте якісну вищу освіту, і що особливо важливо, отриманий під час навчання сертифікат компанії-партнера кафедри, гарантує Вам перше високооплачуване робоче місце.

Увага! Шановні абітурієнти!
В нашому університеті за зверненням студента з 1 курсу дозволяється помісячна оплата за навчання!
Читайте також
20:06, 20-11-2020

Про кафедру

Кафедра Комп'ютерних наук

Отримати консультацію

Ваш запит на зворотній дзвінок отримає завідуючий кафедрою
Надіслати запит

Абітурієнту

Спеціалізація: Комп’ютерні науки

За спеціальністю 122 Комп’ютерні науки (англ. Computer Science, CS) готуються фахівці, що здатні на високому професійному рівні виконувати загальні функції розробника-програміста, спеціаліста по мережах, адміністратора баз даних, системного адміністратора, DevOps Engineer, спеціаліста по тестуванню програм, IT-архітектора. Вони володіють навичками алгоритмічного мислення, уявлення інформації, програмування і проектування інформаційних систем. Основні розділи: алгоритми і структури даних, мови програмування, архітектура комп'ютерів, операційні системи і комп'ютерні мережі, розробка програмного забезпечення, бази даних та інформаційно-пошукові системи, штучний інтелект та робототехніка, комп'ютерна графіка, взаємодія людини і комп'ютера та ін.

Спеціалізація: Комп’ютерні науки

За спеціальністю 122 Комп’ютерні науки (англ. Computer Science, CS) готуються фахівці, що здатні на високому професійному рівні виконувати загальні функції розробника-програміста, спеціаліста по мережах, адміністратора баз даних, системного адміністратора, DevOps Engineer, спеціаліста по тестуванню програм, IT-архітектора. Вони володіють навичками алгоритмічного мислення, уявлення інформації, програмування і проектування інформаційних систем. Основні розділи: алгоритми і структури даних, мови програмування, архітектура комп'ютерів, операційні системи і комп'ютерні мережі, розробка програмного забезпечення, бази даних та інформаційно-пошукові системи, штучний інтелект та робототехніка, комп'ютерна графіка, взаємодія людини і комп'ютера та ін.

Переглядів: 1 322