Kubernetes & Julia Language

Since H2O-3 is java based and scalable across a cluster, it makes sense for me to dive into it. Distributed architectures are pretty darn cool if you ask me.

Kubernetes & Julia Language

I'm coming up on my 3rd anniversary at H2O.ai and we've embarked on an interesting pivot of sorts. Our new product is based on Kubernetes. At first I thought Kubernetes is just another buzz word and a way for the Cloud providers to extract more money from users, but I've come to realize that it's not.

Of course, there are pros and cons with Kuberentes, it's new and isn't widely adopted by organizations as of yet, but it's neat from a container isolation and scalablity standpoint. You build you container, attach an instance, and your off to the races. You might ask, "doesn't Docker do that too?" That answer is sort of, both are open source but Kubernetes scales across clusters. Docker runs on a single node.

Since H2O-3 is java based and scalable across a cluster, it makes sense for me to dive into it. Distributed architectures are pretty darn cool if you ask me.

What about Julia Language? Why am I even thinking of learning that language when I have a decent grasp on Python?

Readers over here know that I've been keeping my eye on Julia for a long time but it suffers from low adoptability when compared with Python. Python is everywhere for machine learning and data science, but it's horrendously slow.

Sure there are ways to speed it up with Dask and CPython (Python is derived from C) but it requires you to build all that. Julia Language is built from the ground up for statistical and machine learning work. It's precompiled and a lot faster that Python right out of the gate. It comes with GPU and CPU batteries included, nothing for you do except load the library in.

But, as I wrote, it's not widely adopted and who knows if a new version of Python will come out that will solve all the performance issues.

That said, I can see how containerizing a Julia Language instance with a Python based rest service for inferencing can be scaled using Kubernetes. I can also see how conainerizing a Julia Language based machine learning process using GPUs can be easily scaled too.

I think I'm going to make it my goal to learn the both over next few months, when I have some free time in between meetings. I think learning Kubernetes is an important skill for me to have, I think that's the wave of the future for cloud computing. Julia Language is something I'm hoping for to make it big in the future, but you never know.