Использование утилиты Make для автоматизации бизнес-процессов - страница 4

Шрифт
Интервал


$(RAW_DATA):

python3 $(SCRIPTS) extract > $(RAW_DATA)


# Правило трансформации данных

$(TRANSFORMED_DATA): $(RAW_DATA)

python3 $(SCRIPTS) transform $(RAW_DATA) > $(TRANSFORMED_DATA)


# Правило загрузки данных

$(LOADED_DATA): $(TRANSFORMED_DATA)

python3 $(SCRIPTS) load $(TRANSFORMED_DATA) > $(LOADED_DATA)


# Очистка временных файлов

clean:

rm -f $(RAW_DATA) $(TRANSFORMED_DATA) $(LOADED_DATA)


.PHONY: all clean

```


В этом Makefile определены этапы ETL-процесса: извлечение данных из источника, их трансформация и загрузка в конечную базу данных. Make автоматически определяет зависимости между этапами и выполняет их в правильном порядке.


### Автоматизация развертывания


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


#### Пример Makefile для автоматизации развертывания


```makefile

# Переменные

DEPLOY_DIR = /var/www/myapp

SOURCES = src/ config/ scripts/

SSH_HOST = user@server.com

REPOSITORY = git@github.com:username/myapp.git


# Основная цель

deploy: build upload restart


# Правило сборки приложения

build:

cd src && make build


# Правило загрузки файлов на сервер

upload:

rsync -avz $(SOURCES) $(SSH_HOST):$(DEPLOY_DIR)/


# Правило перезапуска приложения на сервере

restart:

ssh $(SSH_HOST) 'systemctl restart myapp.service'


# Очистка локальных сборок

clean:

cd src && make clean


.PHONY: deploy build upload restart clean

```


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


## Глава 5: Расширенные возможности Make


### Параллельное выполнение задач


Make поддерживает выполнение задач параллельно, что может значительно ускорить процесс автоматизации, особенно при работе с большими проектами. Для этого используется опция `-j`.


#### Пример использования параллельного выполнения


```bash

make -j4

```


В этом примере Make будет пытаться выполнять до четырех задач одновременно.


### Использование условных операторов