What is most valuable?
The value is for me that it's a community product. We don't have to rely on the ECS services.
What is new right now is Fargate. Fargate has the ability to abstract from the clusters. Amazon said that using the cluster is too complicated for people. Therefore, what they do right now is they have a service that sits on top of the cluster that doesn't even know it's a cluster. It abstracts it for you. Fargate is the ability to deploy it into the cluster, which specifies what you want to deploy and it takes care of the cluster provisioning and deployment for you. The tool just abstracts you away from the cluster, so you don't even know that you're using a cluster, which is good for people that don't want to learn the technology, the infrastructure.
The solution is easy to use. You don't have to care about the servers or the cluster. You really just say, I want to deploy this application A. You just find the application, click a button, and Fargate deploys it to a cluster for you.
They really want to get away from the idea that you made your own cluster. They really want to push you a bit higher up the layer, more of an abstraction layer.
Due to Kubernetes, it's easy to move between the clouds, to move those jobs, especially in multi-cloud systems right now. So one of the disadvantages of EKS is because of the technology they use for their machine learning right now and we prefer to have options, like CPU and Google.
What needs improvement?
When we switched to EKS, historically it wasn't good. There were issues with bugs in it. They didn't have managed pools, which means small subsections of the clusters that you divided into pools like a mini-cluster in your cluster. However, now they have managed pools.
For the last several versions, the issue was with their kind of networking plug-in, the security plug-ins, and things like that. That EKS layer on top of the Kubernetes, they add themselves to each cloud, however, only with fewer standards and a little more issues. They need to work on the Amazon plugins on the Kubernetes cluster.
We just updated to a cluster 1.18, but we were on that cluster 1.13 which had many bugs and issues. Moving up to 1.19 in the middle of last year, we had some issues which they had to fix.
One thing that is probably not the greatest in Amazon is the ideology. They really want you to stick to cloud tools. They want you to use the managed version of the databases and our preference is to use the Kubernetes-managed databases. This doesn't fit well with the AWS philosophy, which is then passed on to the AWS engineers and they push that, push ideology on us as well, saying "You know what, we want you to use this database."
We're not dogmatic. If they want us to use a specific database, we use it, as the cluster is very dynamic. We don't need to deploy a database within a cluster, we can use the cloud database. To us, it's just a connection string, so it's not inefficient for us. It's just based on the client. However, you can see there's a little bit of an ideology dogma baked into the AWS philosophy just to keep you in the cloud.
For how long have I used the solution?
We've used the solution since it began. It's been a while.
What do I think about the stability of the solution?
Older versions haven't been so stable, however, they have been working on improving the latest solutions and it's getting much better.
The Kubernetes cluster is developed outside of the cloud, the core of it. The core of it has gotten much better and all the plugins that Amazon did, also have gotten better as well. One kind-of drives the other. It's a revolving, iterative process. You just have to be proactive and keep on updating your versions and manage your cluster a little bit better every time.
How are customer service and technical support?
We don't have to deal with technical support at all. We haven't used them in the last six or seven years. There's nothing fundamentally wrong that we've found over the years that we have to call support. Almost everything is self-explanatory on the website. There really isn't a need to talk to them directly.
Which solution did I use previously and why did I switch?
I also have some experience with Kubernetes and Google Cloud. Google Cloud has something called Google Cloud Run, which is very similar to Fargate. Both are trying to make your life much simpler so you don't have to look at the bare-bones infrastructure. It's easy.
What's my experience with pricing, setup cost, and licensing?
The solution offers different pricing models. They charge in different ways - either per CPU hour or usage based on a machine type. When it comes to pricing, Google may be two cents cheaper, whoever, the difference makes it a bit of a wash. It might mean an extra five dollars or 20 dollars a month. The difference isn't enough to be too noticeable. All of the main competitors charge very competitive pricing.
That said, when it comes to the CPUs, that's a Google proprietary technology. When we do machine learning, we do prefer working in Google Cloud, as we have the option to expand all the way to CPU and AWS doesn't have that option. It's a GPU-only system. Amazon's also pushing you towards their own machine learning tool, SageMaker, which we don't want to use. We want to use our own tool.
What other advice do I have?
We're not on the latest version. We are three or so versions back.
However, we're almost on the latest version, which may be 1.19. The version's no longer an issue. For us, the issue was that Amazon started with the ECS, the Elastic Container Services. Therefore, while we were using Kubernetes and then Google Cloud, for example, for a while and we had developed all the tools when a client came to us and said they wanted to cluster within the Amazon development cluster. That was the ECS. After that, Amazon added the EKS. Our first deployment in Amazon was on our own deployment of the cluster, not on any services. We didn't want to use the ECS, we wanted to use a cluster. We wanted a managed version, so we don't have to manage it ourselves, due to the fact that it's a little bit of a mess if you manage it.
I would advise new users to make sure that your cluster's secure. Make sure you're using a good networking configuration in your EKS. You need to get the NAT and the router going just on the subnet. You might have to pay for that. There are open-source tools to use, however, you can also pay for their monitoring.
When you have a development pipeline, we suggest having multiple clusters, not just one. Then you can really isolate your production cluster and make it really secure and maybe relax a little bit for your DEV and then QA, as you might want to have more things in there. You just need to make sure you remove those tools from your production box.
It's easier to have multiple clusters and really partition the cluster per environment, development, QA, testing environment, integration testing, whatever, and then you have your production environment, which is really kind of locked down so that nobody has access to it except specific people.
In general, I would rate this solution at an eight out of ten.