5 Каждый проект на go лежит в отдельном git репозитории, GOPATH устанавливается динамически в Makefile с основными командами сборки и т.д. Внутри проекта vendoring, пакетные менеджеры используем, но зависимости также коммитим в git. Из менеджеров пока govendor, экспериментируем с github.com/golang/dep как с будущим стандартным решением.
Да, Kubernetes и Docker.
Как для dev, так и для prod.
В случае dev это автотесты, dev-окружения для разработки, staging, внутренние ресурсы.
В случае prod — сервисы, обрабатывающие запросы пользователей и различные демоны для обработки данных.
Клиенты — другие юниты компании. Каждый юнит отвечает за заказ hardware для своих задач, естественно, мы имеем некоторый запас на всякий случай.
1 простой самодельный rpc поверх http с сериализацией в json.
2 если правильно понял вопрос — в одном поде два контейнера — один с nginx и один с php-fpm.
3 да, чаще всего для параллельного сбора данных с разных сервисов, иногда с кешированием, а также для проверки авторизации.
Тут есть два варианта — унаследованный путь развертывания монолита и путь развертывания сервисов.
Монолит развертывается набором python-скриптов на основе библиотеки fabric.
Сервисы развертываются через CI/CD сервер в Kubernetes кластер при помощи специального пакетного менеджера helm.
Для разработки backend мы используем 4 языка: php7, python3, go, java. Каждый язык нашел свою область применения. На php пишем проекты с большим количеством бизнес-логики. go используется для высоконагруженных инфраструктурных сервисов. Часто выбор языка определяется командой, в которой он используется — если вся команда пишет на питоне, то при наличии нескольких вариантов новый сервис тоже будет на нем. Также огромную роль играет наличие библиотек — например, есть сервис использует ML, то скорее всего это будет python.
Насколько я могу судить, речь идет о php, когда json_decode возвращает объект класса stdClass.
В таком случае можно использовать примерно следующий синтаксис:
Как для dev, так и для prod.
В случае dev это автотесты, dev-окружения для разработки, staging, внутренние ресурсы.
В случае prod — сервисы, обрабатывающие запросы пользователей и различные демоны для обработки данных.
Клиенты — другие юниты компании. Каждый юнит отвечает за заказ hardware для своих задач, естественно, мы имеем некоторый запас на всякий случай.
2 если правильно понял вопрос — в одном поде два контейнера — один с nginx и один с php-fpm.
3 да, чаще всего для параллельного сбора данных с разных сервисов, иногда с кешированием, а также для проверки авторизации.
Монолит развертывается набором python-скриптов на основе библиотеки fabric.
Сервисы развертываются через CI/CD сервер в Kubernetes кластер при помощи специального пакетного менеджера helm.
www.youtube.com/watch?v=1KmR_O9NMpU&t=322s
Можно с объектами:
В таком случае можно использовать примерно следующий синтаксис:
Либо вызвать json_decode со вторым параметром, равным true, получить array и работать с ним.