Добро пожаловать в мир компилируемых языков программирования и статической типизации, здесь такое не нужно, считается очень плохой практикой и достижимо только через чёрные ходы, вроде рефлексии, что снижает производительность и безопасность кода, а также усложняет его сопровождение.
А теперь возьмите не синтетический тест, а реальную задачу сложнее перекладки json'ов, например, с шифрованием, дайте серьëзную длительную нагрузку и посмотрите латентность по процентилям.
Или это просто такое количество кодовой базы на PHP накопилось, которую все дружно решили переписывать на Go
Скорее всего.
если да, то почему именно на Go?
Если компания решилась вложиться в переписывание продукта на другом языке, то у неё на это точно очень веские причины, вероятнее всего - проблемы производительности. В этом случае Go - очевидный выбор. Python, Ruby и JS не дадут никакого выигрыша относительно PHP. Хоть на языках из мира jvm и .net можно писать высокопроизводительный софт, но они скорее решают проблемы сложности огромных кодовых баз. С++ и Rust очень сложны и для прикладного софта применяются только в крайнем случае. Всякая экзотика, типа Erlang, Elixir и Haskell - это вообще редкий случай в энтерпрайзе. Go же одновременно очень прост и ориентирован на высокую производительности.
Буквально тысячами разных способов - от генерации любым шаблонизатором или даже фронтендом html-стринцы, пригодной для печати, до генерации на бэкенде pdf'ки и отправки клиенту, никаких принципиальных проблем с её формированием из произвольной формы нет.
Во-первых, ИБ - это больше бумажная работа, чем программирование. Во-вторых, если под ИБ предполагается своего рода штатный хакер, то смотреть надо в сторону C. В идеале ещё и с Ассемблером.
Go создавался для простой разработки асинхронных сетевых серверов и в этом блещет. Например написать на нём что-нибудь вроде Nginx сильно проще, чем на C.
Во-первых, язык влияет на производительность программистов, а не программ. Узким местом может стать платформа, в вашем случае виртуальная машина CPython. Но при разработке сетевого ПО в целом и web-приложений в частности главный тормоз - это ввод/вывод. Издержки на него на порядки превосходят издержки на интерпретацию, так что последняя практически не влияет на производительность. В то же время CPython хорошо справляется с вводом/выводом с помощью Asyncio и способен решать проблему c10k.
Во-вторых, это зависит от того, что именно делают ваши микросервисы с каждым запросом. Например, для обычного интернет-магазина на очень синхронном Django 300 rps - это вполне обычная нагрузка, о которой не стоит беспокоится, если в команде разработчиков нет умственно отсталых и криворуких.
Если вас интересует минимум, который нужно знать, то просто возьмите учебник и изучите его. А максимума нет, можно бесконечно наращивать совершенство, вплоть до погружения в исходный код компилятора и сборщика мусора.
Для каждого языка и рабочего окружения своя последовательность действий. В частности, чтобы запустить web-приложение на Go, надо написать на Go web-сервер, скомпилировать, положить в любое удобное место на сервере и запускать чем-нибудь вроде Supervisord.