Автор столкнулся с проблемой эффективного хранения изображений в проекте на платформе Google Cloud. Первоначально изображения, закодированные в base64, хранились в Cloud SQL, что привело к увеличению нагрузки на базу данных и потенциальному ухудшению производительности. Чтобы решить эту проблему, автор решил перенести изображения в Google Cloud Storage (GCS), который оптимизирован для хранения больших объектов. Был создан скрипт на TypeScript для управления миграцией, а на Google Kubernetes Engine (GKE) была настроена задача Kubernetes для безопасного выполнения скрипта в закрытой сети. GitHub Actions использовался для автоматизации развертывания, что снизило количество ручных ошибок и повысило безопасность. Процесс миграции включал в себя извлечение изображений из Cloud SQL, декодирование строки base64, определение типа файла изображения и загрузку изображения в GCS. После миграции код приложения был обновлен для ссылки на изображения из GCS, и была проведена тщательная проверка для обеспечения функциональности. Наконец, задача Kubernetes и связанные с ней ресурсы были удалены, а скрипт миграции был удален из кодовой базы, чтобы предотвратить непредвиденное повторное использование.
dev.to
Optimizing database performance by migrating Images to GCS
