Det er jo kanskje lurt å ikkje ha SSH-tilgang inn, men når eg ikkje har det så saknar eg det ofte. 🙂
På tidlegare arbeidsplass køyrte me alle tenestene i Screen (hadde sikkert vore tmux no). Me kunne nok brukt Swank (tilsvarande nrepl for Common Lisp), men eg trur idéen var at ein skulle kunne komme seg inn og sjå kva som var gale sjølv dersom sjølve runtimen fekk ein feil.
Dvs. at det ikkje var en Lisp-debugger som stod og venta, men noko som likna meir på GDB. Tilsvarande for Clojure ville vel vore om det var ein feil i sjølve JVMen.
Me hot-patcha innimellom ting i produksjon, også.
Og med Screen så kunne ein sjå om det var andre som holdt på samtidig. Veit ikkje korleis det er med nrepl, etc.
(Common Lisp har nok hakket betre støtte for slik hot-patching enn Clojure, har eg inntrykk av. Conditions, restarts, klasseoppgraderingar, etc.)
(CL er nok også hakket meir eit daudt språk enn Clojure. 😁)
Vi har ssh-tilgang (gjennom ting og inn i kubernetes-pod’en) og dermed også repl.
Mye oppsett der som jeg ikke kan så mye om, men basically ssh til en maskin og så en mystisk kubernetes kommando som ligger i history, og vipps så har jeg et repl i prod. Og som nevnt. Det er uhyre digg når man først trenger det. Brukes sjelden til å patche kode i prod, men mer for å se på data.
Lignende her. Vi kjører på AWS Fargate og bare http porten er eksponert ut via load balanceren. Men REPL port er åpen til andre maskiner i samme VPC. Prosessen er da å koble seg til en dev proxy via ssh over https://aws.amazon.com/blogs/aws/new-port-forwarding-using-aws-system-manager-sessions-manager/ (dvs. ssh port er ikke åpen) og så kjøre REPL connect over dette mot <fargate task ip>:<repl port>. Data exploration, feilsøking patches of bittesmå hot-patches har vi brukt til stor nytte 🙂
Nice. :thumbsup:
RE Clojure, CL, og conditions, restarts: såg denne på #announcements ei lita stund attende: https://github.com/IGJoshua/farolero (har ikkje testa det sjølv, ei heller særleg erfaring med CL)
Artig.
Har sånn halvveis lest meg gjennom en bok om condition systemet til CL. Mye dynamiske vars for å få det til å funke. Mulig jeg ikke er smart nok til å bli overbevist.