Arbeta på fjärrserver, lokalt

Arbeta på fjärrserver, lokalt

Memoires of a developer. Det kanske låter konstigt, men borde det inte vara så att man ska utgå från: "tänk globalt, handla lokalt": "arbeta på fjärrserver, lokalt". Många programmerare använder Mac, medan vissa andra utvecklare ser fördelar med Linux senaste tekniken (till exempel Docker). Andra är lite mer “old school”, de använder fortfarande Microsoft, och detta måste vi respektera det, om de tycker att det är vad som fungerar bäst. Efter att ha testat en hel rad in...

Memoires of a developer.

Det kanske låter konstigt, men borde det inte vara så att man ska utgå från: "tänk globalt, handla lokalt": "arbeta på fjärrserver, lokalt".

Många programmerare använder Mac, medan vissa andra utvecklare ser fördelar med Linux senaste tekniken (till exempel Docker). Andra är lite mer “old school”, de använder fortfarande Microsoft, och detta måste vi respektera det, om de tycker att det är vad som fungerar bäst.


Efter att ha testat en hel rad intressanta verktyg och idéer, som började med Virtualbox, Vagrant, Docker, på alla tillgängliga plattformar och efterbehandling med x2go-klient (från flera plattformar) till en linux-server, så var det dags att ta ett djupt andetag och ta saker långsamt. Först och främst måste man komma ihåg vad vi letade efter från början. Detta visade sig vara nyckeln till våra problem (eller åtminstone de viktigaste).


X2go fungerar riktigt bra för de här minuterna innan den fryser helt (med xrender satt till true) och det gör det svårt att bara lämna och glömma (se den här BUG-rapporten för detaljer om PHPStorm / Java-applikationer), medan å andra sidan strunta i xrender gör det stabilt men med obehagligt mycket lagg.


Om du arbetar med en dedikerad uppgift / funktion är svaret relaterat till antalet filer du behöver röra / redigera / skapa, vilket är väsentligt mycket litet i allmänhet.

Till exempel gör docker-compose på Mac det extremt långsamt när man använder volymer för att dela hela projektet mellan värd och gäst. Ett Magento 2.x-projekt utan cache, tar det år och dar att ladda en sida i en MacBook Pro 13 från början av 2015, även med Flash SSD-lagring, medan den fungerar naturligt i en Linux-maskin och där det inte finns någon skillnad mellan system och container.


För att få det att flyta på, bestämde vi oss för att separera applikationsservern och arbetsmiljön och dela endast den kod (mappar) vi arbetar med (t.ex. en enda modulkatalog). Det betyder att det finns en server någonstans som har ssh-åtkomst och xDebug konfigurerad för fjärranslutning (aka en fungerande miljö) och en maskin där IDE:n är installerad. I vår IDE så klonar vi projektet ifrån bitbucket och “mountar” sedan till exempel modulmappen där vi vill utveckla den nya funktionen( via sshfs).

Detta känns naturligt i värdmaskinen och känns också naturligt i gästsystemet. När funktionen är utvecklad kan ändringarna committas, distribueras (från vilken maskin man väljer värd eller gäst), när den delade mappen är unmountad kan projektet checkas ut  till den senaste versionen. Steget kan upprepas för någon ny framtida / buggfix.

Du har i grunden kraften på Linux-servern (som du kan stänga när den inte används) och bekvämligheten med ditt operativsystem och favorit verktyg.

Det kan inte bli mer bekvämt än så!