
Show HN: Automated Pipelines to Your Kubernetes Clusters - kt9
https://www.distelli.com
======
gkop
What's the preferred workflow when continuously integrating and deploying in
containers? At what step do you run your automated tests? Do you run them in
the same image that will go into staging and then production? If using the
same image, do you ship to staging and production with test dependencies
included, or how do you strip away test dependencies first?

~~~
kt9
There are many way to do this but we (distelli) recommend the following:

1\. Run automated tests during container build (maybe in the AfterBuildSuccess
step)

2\. Have a single image that goes to both staging and production. Pass in
environment variables or configs to operate the image differently in staging
or prod

3\. Don't include test dependencies in the image so the image is smaller. So
if you're running tests etc don't add the tests and dependencies in the
Dockerfile. Instead have your CI system run the tests.

~~~
gkop
> Instead have your CI system run the tests.

Is "your CI system" typically distelli or another vendor?

~~~
kt9
We (distelli) do provide our own CI system but you don't have to use ours. You
can use your own CI system and kick off the pipeline from that.

Some of our customers use Jenkins while others use one of the many hosted CI
systems.

~~~
gkop
I like the flexibility from the point of view of minimizing the initial
configuration work when we already have a CI vendor in place.

To be precise - Can distelli work with GitHub's CI API so that the distelli
container build kicks off only after GitHub reports a CI pass?

~~~
kt9
Yes, we can kick off a kubernetes deployment based on the pipeline rules you
specify from any CI server that can make an API call to our service.

So you can use Jenkins or Gitlab CI or any other CI you like and when that
system reports a CI pass we can kick off the deploy to your k8s cluster.

~~~
gkop
Thanks for explaining!

------
arturoochoa
How is this product different from hosting your CI like Drone, which can
automatically do your CI testing, then with the help of plugins create a
Docker image for you based on conditionals if you will, and finally upload the
generated image to your public or private registry??

BTW, I can confirm your site still not loading, time again for a kubectl
scale.

~~~
kt9
Distelli offers a visual dashboard around Kubernetes that makes working with
Kubernetes extremely simple. It allows users to set rule-based visual
pipelines that make automatic updates to one's Kubernetes cluster while also
allowing one to work with the Kubernetes YAML system.

By looking at the distelli UI one can easily see who did what build or deploy
and when. One can even restrict certain actions from certain users by placing
users in permission groups.

Additionally, distelli provides a dashboard to provision and manage clusters
on multiple clouds providers.

Finally, while distelli offers a build system for CI, it also works nicely
with other CI systems so one can use Drone and Distelli together.

edit: grammar

~~~
vkjv
We do this by checking a `kubernetes.yaml` in with the source code. That way
it gets bundled with the image as part of a Jenkins build. Deployment is just
a docker pull, extract kubernetes.yaml, and kubectl patch.

------
itajaja
hi @kt9, in the kubernetes dashboard, when adding an existing cluster, under
"Select a Provider" there is AWS. that means that it also support ECS? I am
not aware of AWS supporting kubernetes directly. I have a k8s cluster running
on an aws autoscaling group, but I guess in that case I should just click
"Other". What's the AWS option for then?

~~~
kt9
Hi,

AWS doesn't support kubernetes natively. We allow you to either launch a new
kubernetes cluster on AWS by launching new VMs and installing kubernetes,
weave and etcd or we allow you to sync an existing kubernetes cluster running
on AWS by providing the k8s master endpoint.

We don't currently support ECS clusters but that is on our roadmap.

~~~
itajaja
just for curiosity, what do you use for creating a k8s cluster on aws? Do you
use any of the available open source tools like kube-up, coreOS on aws, kops,
etc? And if I decide to stop using distelly and preserve the cluster created,
will I be able to do so?

~~~
kt9
We have our own software to create k8s clusters in AWS using weave for
networking. We looked at kube-up etc but our customers wanted functionality
that didn't force them to create a brand new VPC created but instead just
launch multiple clusters in an existing VPC.

FYI we are going to release our kube laucher as open source in the next few
months. If you sign up for our mailing list or email me at rsingh@distelli.com
(or follow us on twitter / fb) i'll notify you when thats available if you're
interested.

------
kt9
Hi everyone,

We found that the site was slow because we were getting throttled by a table
in DynamoDB which explains why kubectl scale wasn't helping as much as we had
hoped. We were adding capacity, just not in the right place.

We've added read capacity to our table and things are faster now.

~~~
kanwisher
Perhaps your marketing pages should be static? Rookie mistake?

~~~
kt9
They are static pages served from the same webserver but there was a bug where
we were erroneously hitting a DynamoDB table.

~~~
Terretta
Was that bug, now another bug?

CloudFront is your friend. :-)

------
kt9
I'm the founder at Distelli. I'm happy to answer any questions.

~~~
coleca
Looks like a cool product, but the site is really slow right now. Time to
'kubectl scale' up...

~~~
stevenmays
yeah the sites not even loading for me...

~~~
stevenmays
right after i make the comment, it loads.

------
gkop
What all does distelli do to make image builds fast? For example, where do you
store cached layers so they are most rapidly pulled by the build worker?

~~~
kt9
You can use your own build servers with distelli and any images and layers
pulled down during one build will be cached and available on subsequent
builds. So even though distelli is a hosted service you don't have to run
builds on our shared build machines. You can fire up your own build servers
and connect them to our service and you'll get all the benefits of a dedicated
build server including caching.

[https://www.distelli.com/docs/kb/using-your-own-build-
server](https://www.distelli.com/docs/kb/using-your-own-build-server)

~~~
gkop
Gotcha. I am seeking a vendor that handles this for us somehow (even if that
means we must pay for dedicated resources managed by the vendor). CircleCI has
spoiled me so that I'll never maintain a Jenkins or other build server again
if I can avoid it. CircleCI has hinted that their v2 (which is in alpha) will
address layer caching.

