Локална разработка с отдалечен сървър като хост на контейнери, сървъри, service-и и т.н.

Пак открих топлата вода.

Налага ми се да работя с Macbook. За преживяването ще кажа, че дори след като му сложих Debian, не мога да разбера защо някой може да го ползва доброволно. За 12-те години, в които ползвам Linux, не бях виждал да се ползва swap-а при сериозно натоварване. Тук стигнах 7 GB swap при нормална употреба. Необяснимо за мен е как толкова хвалено нещо работи толкова зле. Говоря чисто като хардуер. Откъм неудобността на интерфейса няма смисъл да коментирам. Толкова с хейта. Най-вероятно има случаи, в които си струва да дадеш близо 6K за лаптоп.

Малко преди екраните да започнат да мигат и да се изключи.

В процеса на работа се налага да пусна няколко docker-ски контейнера с различни услуги. Тъй като не мога да променям конфигурациите без да счупя работата на други хора, услугите на docker-а трябва да работят локално. Това води до повишаване на температурата на процесора от 75 градуса при idle до около 100. 

Първото ми решение беше да пусна Apache с ReverseProxy, но това беше не само неудобно заради излишно много конфигурация, но и не особено добре работещо. След това мислех да пусна squid, който да пренасочва локалните ми портове към портовете на отсрещната машина. Това също ми изглеждаше като много конфигурация.

Решението на проблема ми се оказа доста по-просто – SSH с GatewayPorts=yes и изброени портовете, които да се пренасочат. Цялата работа се свежда до това:

ssh \
	-L 3306:localhost:3306 \ # SQL
	-L 5672:localhost:5672 \ # Rabbit
	-L 6379:localhost:6379 \ # Redis
	-L xxxx:localhost:yyyy \ # Друго
	-N -o GatewayPorts=yes mgc@whatever

Така когато се обърна към localhost:3306, например, заявката се обработва от MySQL сървъра, който работи на отсрещната машина (whatever в примера по-горе).

Засега не съм срещал проблеми при този начин на работа. Използвам го както с GCP, така и с DigitalOcean без забележимо забавяне.