Fork me on GitHub
#clojure-uk
<
2017-11-21
>
yogidevbear07:11:40

@dominicm at least you were only swabbed 😉 @paulspencerwilliams I stuck my finger somewhere I probably shouldn't have 😂 I removed the cover of the bathroom extractor fan to try sort an issue out and tried pressing on something (the light switch which the fan is connected to was off) and I got a shock. I'm pretty sure the guy who installed the fan took some shortcuts

otfrom08:11:11

@yogidevbear that sounds, uh, exciting?

yogidevbear08:11:44

Haha, it was definitely going against my better judgement

yogidevbear08:11:02

How are you doing today @otfrom?

otfrom08:11:44

good thx. Happily ensconced in my home office

yogidevbear08:11:40

All good here.

thomas08:11:10

moin moin morning

yogidevbear08:11:40

Does anyone know of a good primer for setting up a Linux / Docker / Clojure production environment?

yogidevbear08:11:46

Morning Thomas

thomas08:11:22

morning @yogidevbear how are you today?

Rachel Westmacott09:11:32

@yogidevbear iirc there are docker images for leiningen and boot if that helps

yogidevbear09:11:29

Cool, thanks Peter. Doing well Thomas. How are things in the Netherlands? (You are in the Netherlands right?)

thomas09:11:01

yup, I am in the Netherlands... very wet and dark here.

thomas09:11:19

the darkness (in the morning mainly) is due to the fact we basically have the time of Berlin here while we are a lot closer to GMT

danm09:11:13

I thought i'd get away with it, but my ride in this morning was definitely wet...

thomas09:11:57

@carr0t how long is your ride?

danm10:11:26

About 30 minutes. 25-28 actual pedalling, up to about 35 when you factor in waiting at lights etc. Pretty much bang on 7 miles

thomas10:11:58

that is long enough to get very wet! Mine is just under 2k.

mccraigmccraig10:11:21

but you have all those hills to consider @thomas :snow_capped_mountain:

thomas10:11:00

of course!!! and steep climbs as well... and only up as well, both ways :thinking_face:

danm10:11:51

Yeah, I'm in Manchester. 25m climbing one way, 40m the other

danm10:11:55

Such hills

thomas10:11:33

my worst climb is about 20 cm's 😁

mccraigmccraig10:11:21

i have 500m to 700m of climbing on my regular ride, depending on which way i go

thomas10:11:27

shocking, I know.

danm10:11:07

What distance is that over? 700m over 65km is easy, 700m over 35km would be hard (for me)

glenjamin10:11:53

my rides usually start with 250-300m over 10k 🙂

yogidevbear10:11:58

I think it's 700m over 0.3km

mccraigmccraig10:11:42

@carr0t 500m over 20k, 700m over 25k. up down and around the south downs

mccraigmccraig10:11:17

haha, using strava converted me to metric for cycling

danm10:11:33

I normally consider anything around/more than 1000 feet every 10 miles to be really hard. Most of the club rides end up about 1500-2000 ft in 35-40 miles

danm10:11:44

I have my Strava set up to tell me stuff in imperial

danm10:11:19

I did 3500 ft in 32 miles a few months back and almost died

mccraigmccraig10:11:45

that's a lot of climbing in not a lot of distance. where was that ?

glenjamin10:11:29

i had a fun ride in Gran Canaria a few weeks ago, 2000m gained in 42km 😄

glenjamin10:11:56

and then about 40km of descending, followed by 20km of flat tailwind

yogidevbear11:11:14

And here's me trying to run 10km 😆

danm11:11:08

@mccraigmccraig Peak District. I'm in south Mancs, cycle club is based out of a small town a few miles south of me, so our rides normally go either south into Cheshire or East into the Peak District

danm11:11:44

Same ride I hit my fastest so far, which was 46mph on the way down, after a long climb

glenjamin11:11:44

ah yes, i’m over in Sheffield so on the other side of the Peaks

danm11:11:46

And I've done a century once, which was about 6000-6500 ft of climbing, including the 'longest constant hill in the UK', which is steep in parts (17% IIRC), but mostly around 7% or so, for 5.5 miles / 9 km

danm11:11:58

They even have km markers across the whole width of the road as you climb

dominicm11:11:43

@yogidevbear don't develop clojure in a docker container

dominicm11:11:48

it's a pita, and not worth the effort.

yogidevbear12:11:47

Okay. How would you go about auto-scaling and load balancing, etc, for a large Clojure project?

dominicm12:11:25

We're using EC2's auto-scaling, with the ALB's load balancing.

dominicm12:11:31

Feel free to do it on docker for prod.

dominicm12:11:39

But you lose things like "jump to source" for dev if you do this.

mccraigmccraig12:11:46

@carr0t ah, my hometown - i'm from heald-green<cheadle<stockport

danm13:11:39

Yeah, EC2s with ALBs and AWS autoscaling is how we do it too

danm13:11:17

@mccraigmccraig Oh cool. Yeah, I'm just down from Parrs Wood, right on the border of Mancs as you head over the mersey out to Cheadle. I head out through Heald Green to get to the club down in Alderley Edge

mccraigmccraig13:11:19

i'm just outside brighton now... very close to the south downs, but they aren't nearly as varied as the peaks

mccraigmccraig13:11:23

@yogidevbear also EC2 / ELB / auto-scaling here

maleghast13:11:00

With everyone talking about deployment choices… IF you were going to deploy in Production on Docker, would anyone use ECS, or is the consensus to go with K8s..? Also, @yogidevbear, I agree with @dominicm wholeheartedly re development for Clojure - it’s not worth the pain working in a container… However, it might be worth your time to use containers for DBs and other infra, like Elasticsearch, PostgreSQL etc. I do that and find it useful, but YMMV. Of course if you are deploying on Docker you are going to need to have a baked-in, first class citizen process to containerise your app past Dev… I would imagine I would do that by having a dev-stable step where I’d build an überjar and containerise that, to make sure it all works, but others may see this as an unnecessary complication, I dunno… It’s what I would do 🙂

dotemacs13:11:22

> However, it might be worth your time to use containers for DBs and other infra, like Elasticsearch, PostgreSQL etc. Why would you want to spend time taking care about DBs when you’ve got the likes of RDS for it ?

maleghast13:11:48

I mean locally

maleghast13:11:01

Obviously RDS WINS in production / remotely

maleghast13:11:28

I like having containers for DBs etc locally as it means i can version match without jumping through hoops - just grab the container with the appropriate version 🙂

dotemacs14:11:27

ah, yes, that makes sense

jasonbell13:11:04

If you are deploying to the likes of Marathon/DCOS then you’ll need the app containerised. I’ve done it a few times on various tihngs.

mccraigmccraig13:11:17

@maleghast i was happy with mesos+marathon for ages... just moved everything over to dc/os (which is the evolution of mesos+marathon) and that seems cool - i've got all my persistent stuff - kafka/cassandra/elastic running under dc/os now

mccraigmccraig13:11:00

(previously the persistent stuff was deployed separately, 'cos mesos resource allocation wasn't sufficiently capable. it is now)

davesnowdon13:11:02

We've used both k8s and ECS. ECS doesn't seem to have the service abstraction that K8S has so we're currently thinking of moving back to K8S

davesnowdon13:11:13

A benefit of ECS is you can manage it via the AWS console but when we were using k8s we were happy enough with the command line utils

mccraigmccraig13:11:26

@davesnowdon being familiar with K8S do you know why someone would want to run it on top of DC/OS ? mesosphere have been shouting about that capability recently but i don't understand why

davesnowdon13:11:49

@mccraigmccraig I don't have any experience with DC/OS. Maybe if you really want to use K8S; running it on top of DC/OS makes the host management easier as K8S didn't provide any support for that back when we were using it. on the face of it though seems like more hassle than just using DC/OS to run the workloads directly

maleghast13:11:48

This is pretty interesting, but it does mean that I need to investigate DC/OS so that I can understand if it’s appropriate to my needs. I had already kinda decided that Mesos + Marathon was a lot of heavy (if very good) tech that I probably didn’t need.

maleghast13:11:19

As such I was planning to deploy a K8s cluster with Kops, but perhaps I’ll reconsider… Thanks 🙂

mccraigmccraig13:11:50

what is making you reconsider dc/os @maleghast?

maleghast13:11:15

I did not know it existed, so I’ve not considered it…

maleghast13:11:39

(I am just reading the dc/os webpage on K8s on dc/os as it happens)

mccraigmccraig14:11:29

yeah @davesnowdon, i don't know K8S but my thoughts were the same - it seems like unnecessary hassle. maybe all the noise is just for box ticking or marketing reasons

practicalli-johnny14:11:17

Opportunity to give a lightning talk at #clojurex - one of our speakers has dropped out, so if you would like to speak please get in touch (either here or john at jr0cket dot eu ). Thanks

maleghast14:11:31

@mccraigmccraig - Based on reading the dc/os page on it, I thought it was so that you can migrate K8s infrastructure to a wider dc/os environment that handles other targets than Containers and Container Orchestration, so that you can leverage DC/OS to do real machine and virtual machine clustering as well as clustering to host Container Swarms. I may be wrong about that, but I think that they are playing to capture market share.

mccraigmccraig14:11:12

uh @maleghast pretty much everything in dc/os runs in a container i think... either in a docker container or mesosphere's own container runtime - iirc you can run shell commands as a mesos job, but it will still get dynamically wrapped in a container for isolation

maleghast14:11:57

I haven’t dug deep enough to know that yet, but that does explain why you would see K8s on top as utterly irrelevant.

mccraigmccraig14:11:33

yep - DC/OS and K8S look pretty much like the same thing

dotemacs15:11:24

except one is a media darling, whereas the other one a little bit less so

mccraigmccraig15:11:30

haha, but which one is which @dotemacs ?

maleghast16:11:40

I think that the difference is that K8s is ONLY for Containers, whereas (though it uses its own container to achieve the result, thanks for explaining that @mccraigmccraig) Mesos and therefore dc/os can be used to cluster other kinds of work and indeed “real” machines. K8s can’t manage metal alongside Containers, at least not as far as I know.

maleghast16:11:13

That’s not what I am saying. Mesos can be used to manage actual__ machines as well as fleets of containers. K8s is a technology for building a cluster which can host Containers, but it can’t manage actual__ machines. Of course it can be run on actual__ machines, but you can’t use Kubernetes to administer a physical cluster of machines. You need a physical cluster to run it, but you can only deploy containers into it. DC/OS and Mesos both talk about themselves as Cluster Management Technology for workloads beyond Containers.

maleghast16:11:03

I may be barking up the wrong tree AND failing to express myself clearly - these are both things I have “form” for…

maleghast16:11:52

I was at least under the impression that Mesos DC/OS could be used, for example, to manage a group of physical machines that are being used, natively, as a Hadoop Cluster. You can run a Hadoop Cluster on K8s, but all the nodes in the Hadoop Cluster will actually be Containers, ’cos K8s can only manage Containers. Has that changed / have I always been wrong about this distinction?

mccraigmccraig16:11:49

well, given a mesos-framework for hadoop and a group of machines running dc/os then you can run hadoop on dc/os - but the machines have to be running dc/os first, and all the hadoop processes will be running in containers determined by the mesos-framework

maleghast16:11:25

Ok, but not Docker Containers, and Mesos will run a wide an varied selection of workloads, yeah?

maleghast16:11:30

K8s can only deploy Docker Containers (I guess it might be able to run other Containers, I don’t know__ that it can’t)

maleghast16:11:05

I think it’s only a semantic difference really, but my thinking was that the DC/OS people might want to allow people who are already invested in K8s as their deployment target for Docker Containers make use of DC/OS to manage their metal above and beyond K8s and complect their K8s environment into a larger DC/OS environment that is also managing non-Docker workloads..?