Що таке програмне забезпечення простими словами

0 Comments

Програмне забезпечення

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

Усе програмне забезпечення, що використовується комп’ютерами, поділяється на три основні види:

Системне програмне забезпеченняце сукупність програм, що призначені для забезпечення роботи комп’ютера та комп’ютерних мереж, а також для організації створення взаємодії користувача з комп’ютером.

  • операційні системи;
  • оболонки операційних систем;
  • драйвери;
  • архіватори;
  • антивірусні програми;
  • програми обслуговування дисків,
  • програми обслуговування комп’ютерних мереж тощо.

Прикладне програмне забезпечення — сукупність програм, що призначені для виконання завдань за допомогою комп’ютера.

Пакет прикладних програм — це система програм, що забезпечує розв’язання задач певного типу.

  • текстові редактори і текстові процесори;
  • електронні таблиці;
  • системи управління базами дани;
  • графічні пакети;
  • програми створення презентацій;
  • комп’ютерні ігри і системи мультимедіа;
  • навчаючі програми;
  • системи штучного інтелекту та експертні системи;
  • програмне забезпечення для роботи з електронною поштою тощо.

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

Третій вид програмного забезпечення — системи програмування, які призначені для розробки інших програм.

Програмне забезпечення комп’ютерів постійно удосконалюється. Удосконалена програма може суттєво відрізнятися від свого попереднього варіанта, або, як говорять, версії. Різні версії мають однакову назву, а щоб їх розрізнити, до назви програми додається відповідний номер. Разом з тим, існують випадки, коли окремі можливості попередніх версій відсутні у наступних версіях. Через це треба чітко знати, з якою версією програми ви працюєте, оскільки різні версії мають різні можливості.

Step by step 2001–2022 р.

Що таке Docker: простими словами про контейнеризацію

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

Що таке Docker

Docker — це програмне забезпечення, яке дає можливість на певній ділянці пам’яті ізольовано встановити необхідну ОС (операційну систему), версію Java, налаштувати змінні оточення, встановити різні залежності і дати доступ тільки за певних умов. При цьому дану програму абсолютно не буде хвилювати, що відбувається навколо.

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

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

Розберемо проблематику і розглянемо більше прикладів

Сервер — комп’ютер, з якого ви зараз читаєте цю статтю, або такий, як у вас вдома або на роботі, тільки з більшою потужністю. На ньому встановлено Windows, наприклад, а для роботи вашої програми необхідний Linux. А ще цікавіше, коли навіть від версії вашої системи або додаткових програм може залежати коректність роботи. Що тоді робити? Перевстановлювати? Купувати інший комп’ютер?

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

На фото видно, як лайнер везе сотні контейнерів, в яких безліч різних вантажів. Без приміщення вантажу в окремі контейнери, транспортування була б неможливою. Ми завантажили вантаж в контейнери і впевнені, що він буде транспортуватися в цілості й безпеці.

Так і у випадку з програмами, сервер — це наш лайнер, а Docker — це можливість отримати такі контейнери, в які ми зможемо завантажити вантаж (програми). І при такому використанні будемо впевнені, що одна програма не поламає іншу, в одному контейнері буде Windows, в іншому Linux, в третьому — MacOS.

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

Чому Docker, а не ВМ?

Віртуальна машина (ВМ) — емулятор апаратного забезпечення. Простими словами на своєму комп’ютері за допомогою програми ви можете встановити собі ще якусь ОС (операційну систему), яку зможете запустити паралельно.

Є певні відмінності між ВМ і контейнеризацією, про які в даній статті я писати не буду. Але для простоти розуміння сказав би, що технологія контейнеризації дозволяє запустити дуже компактні віртуальні машини (окремі процеси). Такі контейнери займають мало місця (образ Ubuntu займає 68Mb), запускаються дуже швидко і налаштовуються дуже гнучко.

Одна з переваг технології Docker — це незалежність платформи. Тобто ви можете описати запуск програми, працюючи на Windows, а потім без проблем запустити на MacOS. Це дає можливість дуже швидко переносити і налаштовувати програму на різних серверах.

Рекомендуємо курс по темі

Загальна схема роботи Docker

Для початку необхідно встановити Docker на ваш комп’ютер, щоб можна було створювати, налаштовувати і запускати контейнери. Інструкцій зі встановлення на просторах інтернету повно, в тому числі і на офіційному сайті docker.com.

Схема створення контейнера виглядає наступним чином:

  1. Створюєте ‘Dockerfile’ — файл, в якому необхідно описати, як буде створюватися образ. Простими словами — це опис того, як буде виглядати ваша кімната;
  2. Image — це образ, на підставі якого в подальшому буде запущений контейнер. Це дизайнерський проект вашої кімнати, чітка схема того, що і де буде стояти;
  3. Container — це запущений образ, в якому працює Ваша програма з описаними залежностями відповідно до інструкції. Тобто, це вже готова кімната, в якій ви можете жити.

Необхідно розуміти, що необхідні програми і залежності беруться не з повітря, а є певне віддалене сховище, де слідуючи нашим інструкціям виходить необхідне, тобто попередньо немає необхідності заходити на окремі сайти і щось завантажувати, Docker все зробить за вас!

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

Рекомендуємо курс по темі

Основні терміни

Dockerfile — файл-інструкція по збірці образу. Дані не мають розширення (на зразок .txt).

Image — образ, який створюється на підставі Dockerfile. Також образи можна завантажувати і запускати з віддаленого сховища. Немає необхідності образ Ubuntu збирати самостійно. На підставі одного образу можна створити кілька контейнерів.

Container — контейнер, який запускається на підставі image (образа). Створений контейнер можна запускати і зупиняти. Паралельно можна запустити кілька контейнерів, незалежних і залежних один від одного.

Docker Engine — це движок Docker, власне, це сам докер.

Docker Hub — це якраз те віддалене сховище, де ви можете завантажити необхідний образ. У цьому сховищі можливо зберегти свої образи, щоб в подальшому була можливість отримати доступ до них будь-де і поділитися з ким завгодно.

Docker-compose — це інструмент, який дозволяє запустити кілька контейнерів, пов’язаних між собою. Він може мати свої налаштування і може використовувати описані раніше налаштування з Dockerfile. Це вам стане в нагоді при більш глибокому вивченні даної теми.

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

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

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