ݺߣ

ݺߣShare a Scribd company logo
Camunda, Postgresql, Docker
Сервіси, мікросервіси, контейнери, докери, бази даних
Розгортання середовища для Camunda
Чому Docker?
Docker — це інструментарій для управління ізольованими Linux-контейнерами.
●
Підтримка роботи на будь-якому комп'ютері на базі архітектури x86_64 з
системою на базі ядра Linux, починаючи від ноутбуків, закінчуючи серверами
та віртуальними машинами.
●
Кожен процес виконується у повністю окремій кореневій файловій системі;
●
Споживання системних ресурсів, таких як витрата пам'яті і навантаження на
CPU, можуть обмежуватися окремо для кожного контейнера
●
Кожен ізольований процес має доступ тільки до пов'язаного з контейнером
мережевого простору імен, включаючи віртуальний мережевий інтерфейс і
прив'язані до нього IP-адреси;
Архітектура системи на базі
контейнерів
Docker daemon
Головна система — Host (фізичний або віртуальний сервер)
Образи (Images)
altlinux
postgresql
php
nginx
wordpress
Контейнери
camunda
Сервіси
dev
production
camunda_1
postgresql
camunda
postgresql
postgresql_1
camunda_2
postgresql_2
Томи (Volumes) Мережі (Network)
networknetworknetwork
networknetworkvolume
Образ (Image)
Образ докера — це основна система, з якої
буде створено контейнер. Його аналогія —
компакт-диск або флешка, з якого
інсталюється програмне забезпечення на
комп’ютер або сервер.
Образ можна створити свій власний зі свого
набору файлів або використати вже готовий
з репозиторію — https://hub.docker.com
Репозиторій вже містить більшість всіх
популярних систем як у вигляді
напівфабрикатів, так і у вигляді готової під
ключ системи.
Контейнер (Container)
Контейнер — являється розгорнутою системою з образу. Але з одного
образу можна розгорнути декілька контейнерів, які будуть працювати
аналогічно. Наприклад, окремі середовища для розробки, для тестування,
для промислового використання.
Image
Container 1
Container 2
Container 3
Віртуальні мережеві адаптери
Кожен контейнер може використовувати один або декілька мережевих
адаптерів. Або кілька контейнерів можуть використовувати один і той самий
адаптер, що дозволить їм мати доступ між собою.
Image
Container 1
Container 2
Container 3
Network 1
Network 2
Томи (Volumes)
При створенні або видаленні контейнеру, всі дані в ньому видаляються.
Якщо є потреба залишити дані і оновити контейнер (наприклад, дані баз
даних), то для цього використовуються томи.
Томи (Volumes) — це окремі каталоги файлів, які не видаляються при
видаленні контейнеру і можуть використовуватися один або в декілька
одночасно. Або кілька контейнерів можуть використовувати один і той самий
том, що дозволить їм мати доступ між собою.
Image
Container 1
Container 2
Container 3
Network 1
Network 2
Volume 2
Volume 1
QA QAQA
Сервіси (Services)
Якщо запустити декілька контейнерів, де кожен контейнер буде
мікросервісом, то така система вже утворює Service.
На базі сервісів, можна розгортати всю систему однаково як на
розробницькому середовищі, як для тестувальників, так і в
промисловому використанні.
Dev
Container 1
Container 2
Container 1
Container 3
QA
Container 1
Container 2
Container 1
Container 3
Production
Container 1
Container 2
Container 1
Container 3
Просто як 1, 2, 3
1. Файл docker-compose.yml, в
якому включено том з нашим
кодом
2. Запуск...
3. Готово!
* Це - диво!
Створюємо сервіси
( https://hub.docker.com/u/camunda/ - тут є вже готові образи )
Як створюються образи і сервіси з готових образів і власноруч
База даних Postgresql з
репозиторію образів
Інсталяція docker
Інсталяція docker-compose (для керування сервісами)
Структура каталогів проекту
База даних Postgresql на базі готового образу з https://hub.docker.com
Створити файл docker-compose.yml
Дати права папці “chown 999 db/data” і запустити
командою “docker-compose up” і зупинити Ctrl+C
Docker-daemon завантажить образ postgresql версії
13.0 і на базі нього створить контейнер, після чого
запустить його
Після запуску перевірити папку Project1/db/data,
вона буде містити файли бази даних
Для наступного кроку запустити командою “docker-
compose up -d” у фоновому режимі
Ось як просто розгортається база даних на основі
репозиторію образів docker
Підготовка бази даних для
Camunda
Потрібно завантажити дистрибутив Camunda на сайті
https://downloads.camunda.cloud/release/camunda-bpm/tomcat/7.15/
Розпакувати в папку (Наприклад, я створив папку Project1 і
в ній папку source, а в ній bpm, а в ній camunda, в яку
розпакував вміст архіву з дистрибутивом.
Таким чином, на мою думку, найкраща організація файлів.)
- скопіювати файли з папки source/bpm/camunda/sql/create/postgres* -> в контейнер db
- зайти в контейнер
- створити базу даних “camundadb”
- створити користувача “camunda” з паролем чуть складніше ніж 1234
- https://www.avast.ua/random-password-generator - тут можна згенерувати собі пароль
- імпортувати дані в базу даних
- імпортувати дані postgres_engine*.sql в базу даних
- імпортувати дані postgres_identity*.sql в базу даних
- дозволити доступ користувачу camunda до бази даних
Перевірити наявність таблиць в базі даних
Вийти з бази і з контейнера
База даних готова для
використання
А тепер зробимо образ з
Camunda власноруч
Створення образу з camunda
- Перенести файли з папки Project1/source/bpm/camunda/server/apache-tomcat-9.0.24/conf ->
Project1/camunda/conf і встановити права “chown -R 1000 camunda”
- Змінити права на запуск “chmod a+x Project1/source/bpm/camunda/server/apache-tomcat-9.0.24/bin/*.sh”
- Створити файл source/bpm/Dockerfile з таким змістом:
Внести зміни в запуск camunda
Project1/source/bpm/camunda/server/apache-tomcat-9.0.24/bin/setenv.sh
export CATALINA_OPTS="-Xmx512m -XX:MaxPermSize=256m -XX:PermSize=256m -Dcamunda.db_host=$
{CAMUNDA_DB_HOST} -Dcamunda.db_port=${CAMUNDA_DB_PORT} -Dcamunda.db_name=${CAMUNDA_DB_NAME} -
Dcamunda.db_user=${CAMUNDA_DB_USER} -Dcamunda.db_pass=${CAMUNDA_DB_PASS}"
Створення образу з camunda
Виконати збірку образу camunda/bpm
Доповнити файл сервісів docker-compose.yml
Налаштувати файл Project1/camunda/conf/server.xml на використання
бази даних postgresql замість H2, яка там по замовчуванню
Повернутись в папку Project1 і запустити сервіс “docker-compose up”
Фінальний крок
Переходимо за посиланням localhost:8651 і створюємо користувача
Розгортання середовища для Camunda
Саме час зайти в camunda для
початку роботи
І перейти в dashboard
Розгортання середовища для Camunda
Все готово для створення
процесів і автоматизації бізнесу
47 / 47
Дякую за перегляд!
Надозірний Святослав 2020 (C)
Інтеграція і процеси

More Related Content

Similar to Розгортання середовища для Camunda (20)

Опис найпоширеніших сервісів хмарних технологій
Опис найпоширеніших сервісів хмарних технологійОпис найпоширеніших сервісів хмарних технологій
Опис найпоширеніших сервісів хмарних технологій
Miroslav Kussen
09342ea8835f8a19e344df721c7a304d
09342ea8835f8a19e344df721c7a304d09342ea8835f8a19e344df721c7a304d
09342ea8835f8a19e344df721c7a304d
kalanixa
Хмарні технології
Хмарні технологіїХмарні технології
Хмарні технології
Inna Gerasimenko
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳ
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳЛекція-Ҿ-репозиторій-робота-з-гілками.ٳ
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳ
ssuser78fc9e
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
QADay
Порівняння Drupal та Typo3
Порівняння Drupal та Typo3Порівняння Drupal та Typo3
Порівняння Drupal та Typo3
Drupal Camp Kyiv
порівняння Drupal та Typo3
порівняння Drupal та Typo3порівняння Drupal та Typo3
порівняння Drupal та Typo3
Inna Tuyeva
Rpc
RpcRpc
Rpc
eleksdev
5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC
Пупена Александр
System programing module 1
System programing module 1System programing module 1
System programing module 1
Andrii Hladkyi
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps_Fest
Aspnet core
Aspnet coreAspnet core
Aspnet core
eleksdev
Сетевые технологии для организации работы предприятия
Сетевые технологии для организации работы предприятияСетевые технологии для организации работы предприятия
Сетевые технологии для организации работы предприятия
Olexander Kovalenko
Patterns.pptx
Patterns.pptxPatterns.pptx
Patterns.pptx
ssuser1ce94b
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
Andrii Hladkyi
5 клас урок 8
5 клас урок 85 клас урок 8
5 клас урок 8
Марина Конколович
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
itconnect2016
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
Anatoliy Okhotnikov
Опис найпоширеніших сервісів хмарних технологій
Опис найпоширеніших сервісів хмарних технологійОпис найпоширеніших сервісів хмарних технологій
Опис найпоширеніших сервісів хмарних технологій
Miroslav Kussen
09342ea8835f8a19e344df721c7a304d
09342ea8835f8a19e344df721c7a304d09342ea8835f8a19e344df721c7a304d
09342ea8835f8a19e344df721c7a304d
kalanixa
Хмарні технології
Хмарні технологіїХмарні технології
Хмарні технології
Inna Gerasimenko
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳ
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳЛекція-Ҿ-репозиторій-робота-з-гілками.ٳ
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳ
ssuser78fc9e
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
QADay
Порівняння Drupal та Typo3
Порівняння Drupal та Typo3Порівняння Drupal та Typo3
Порівняння Drupal та Typo3
Drupal Camp Kyiv
порівняння Drupal та Typo3
порівняння Drupal та Typo3порівняння Drupal та Typo3
порівняння Drupal та Typo3
Inna Tuyeva
5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC
Пупена Александр
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps_Fest
Сетевые технологии для организации работы предприятия
Сетевые технологии для организации работы предприятияСетевые технологии для организации работы предприятия
Сетевые технологии для организации работы предприятия
Olexander Kovalenko
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
Andrii Hladkyi
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
itconnect2016
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
Anatoliy Okhotnikov

Розгортання середовища для Camunda

  • 1. Camunda, Postgresql, Docker Сервіси, мікросервіси, контейнери, докери, бази даних
  • 4. Docker — це інструментарій для управління ізольованими Linux-контейнерами. ● Підтримка роботи на будь-якому комп'ютері на базі архітектури x86_64 з системою на базі ядра Linux, починаючи від ноутбуків, закінчуючи серверами та віртуальними машинами. ● Кожен процес виконується у повністю окремій кореневій файловій системі; ● Споживання системних ресурсів, таких як витрата пам'яті і навантаження на CPU, можуть обмежуватися окремо для кожного контейнера ● Кожен ізольований процес має доступ тільки до пов'язаного з контейнером мережевого простору імен, включаючи віртуальний мережевий інтерфейс і прив'язані до нього IP-адреси;
  • 5. Архітектура системи на базі контейнерів
  • 6. Docker daemon Головна система — Host (фізичний або віртуальний сервер) Образи (Images) altlinux postgresql php nginx wordpress Контейнери camunda Сервіси dev production camunda_1 postgresql camunda postgresql postgresql_1 camunda_2 postgresql_2 Томи (Volumes) Мережі (Network) networknetworknetwork networknetworkvolume
  • 7. Образ (Image) Образ докера — це основна система, з якої буде створено контейнер. Його аналогія — компакт-диск або флешка, з якого інсталюється програмне забезпечення на комп’ютер або сервер. Образ можна створити свій власний зі свого набору файлів або використати вже готовий з репозиторію — https://hub.docker.com Репозиторій вже містить більшість всіх популярних систем як у вигляді напівфабрикатів, так і у вигляді готової під ключ системи.
  • 8. Контейнер (Container) Контейнер — являється розгорнутою системою з образу. Але з одного образу можна розгорнути декілька контейнерів, які будуть працювати аналогічно. Наприклад, окремі середовища для розробки, для тестування, для промислового використання. Image Container 1 Container 2 Container 3
  • 9. Віртуальні мережеві адаптери Кожен контейнер може використовувати один або декілька мережевих адаптерів. Або кілька контейнерів можуть використовувати один і той самий адаптер, що дозволить їм мати доступ між собою. Image Container 1 Container 2 Container 3 Network 1 Network 2
  • 10. Томи (Volumes) При створенні або видаленні контейнеру, всі дані в ньому видаляються. Якщо є потреба залишити дані і оновити контейнер (наприклад, дані баз даних), то для цього використовуються томи. Томи (Volumes) — це окремі каталоги файлів, які не видаляються при видаленні контейнеру і можуть використовуватися один або в декілька одночасно. Або кілька контейнерів можуть використовувати один і той самий том, що дозволить їм мати доступ між собою. Image Container 1 Container 2 Container 3 Network 1 Network 2 Volume 2 Volume 1
  • 11. QA QAQA Сервіси (Services) Якщо запустити декілька контейнерів, де кожен контейнер буде мікросервісом, то така система вже утворює Service. На базі сервісів, можна розгортати всю систему однаково як на розробницькому середовищі, як для тестувальників, так і в промисловому використанні. Dev Container 1 Container 2 Container 1 Container 3 QA Container 1 Container 2 Container 1 Container 3 Production Container 1 Container 2 Container 1 Container 3
  • 13. 1. Файл docker-compose.yml, в якому включено том з нашим кодом 2. Запуск... 3. Готово!
  • 14. * Це - диво!
  • 15. Створюємо сервіси ( https://hub.docker.com/u/camunda/ - тут є вже готові образи ) Як створюються образи і сервіси з готових образів і власноруч
  • 16. База даних Postgresql з репозиторію образів
  • 18. Інсталяція docker-compose (для керування сервісами)
  • 20. База даних Postgresql на базі готового образу з https://hub.docker.com Створити файл docker-compose.yml
  • 21. Дати права папці “chown 999 db/data” і запустити командою “docker-compose up” і зупинити Ctrl+C Docker-daemon завантажить образ postgresql версії 13.0 і на базі нього створить контейнер, після чого запустить його
  • 22. Після запуску перевірити папку Project1/db/data, вона буде містити файли бази даних
  • 23. Для наступного кроку запустити командою “docker- compose up -d” у фоновому режимі Ось як просто розгортається база даних на основі репозиторію образів docker
  • 25. Потрібно завантажити дистрибутив Camunda на сайті https://downloads.camunda.cloud/release/camunda-bpm/tomcat/7.15/
  • 26. Розпакувати в папку (Наприклад, я створив папку Project1 і в ній папку source, а в ній bpm, а в ній camunda, в яку розпакував вміст архіву з дистрибутивом. Таким чином, на мою думку, найкраща організація файлів.)
  • 27. - скопіювати файли з папки source/bpm/camunda/sql/create/postgres* -> в контейнер db - зайти в контейнер - створити базу даних “camundadb” - створити користувача “camunda” з паролем чуть складніше ніж 1234 - https://www.avast.ua/random-password-generator - тут можна згенерувати собі пароль - імпортувати дані в базу даних
  • 28. - імпортувати дані postgres_engine*.sql в базу даних
  • 29. - імпортувати дані postgres_identity*.sql в базу даних - дозволити доступ користувачу camunda до бази даних
  • 31. Вийти з бази і з контейнера
  • 32. База даних готова для використання
  • 33. А тепер зробимо образ з Camunda власноруч
  • 34. Створення образу з camunda - Перенести файли з папки Project1/source/bpm/camunda/server/apache-tomcat-9.0.24/conf -> Project1/camunda/conf і встановити права “chown -R 1000 camunda” - Змінити права на запуск “chmod a+x Project1/source/bpm/camunda/server/apache-tomcat-9.0.24/bin/*.sh” - Створити файл source/bpm/Dockerfile з таким змістом:
  • 35. Внести зміни в запуск camunda Project1/source/bpm/camunda/server/apache-tomcat-9.0.24/bin/setenv.sh export CATALINA_OPTS="-Xmx512m -XX:MaxPermSize=256m -XX:PermSize=256m -Dcamunda.db_host=$ {CAMUNDA_DB_HOST} -Dcamunda.db_port=${CAMUNDA_DB_PORT} -Dcamunda.db_name=${CAMUNDA_DB_NAME} - Dcamunda.db_user=${CAMUNDA_DB_USER} -Dcamunda.db_pass=${CAMUNDA_DB_PASS}"
  • 36. Створення образу з camunda Виконати збірку образу camunda/bpm
  • 38. Налаштувати файл Project1/camunda/conf/server.xml на використання бази даних postgresql замість H2, яка там по замовчуванню
  • 39. Повернутись в папку Project1 і запустити сервіс “docker-compose up”
  • 41. Переходимо за посиланням localhost:8651 і створюємо користувача
  • 43. Саме час зайти в camunda для початку роботи
  • 44. І перейти в dashboard
  • 46. Все готово для створення процесів і автоматизації бізнесу
  • 47. 47 / 47 Дякую за перегляд! Надозірний Святослав 2020 (C) Інтеграція і процеси