0

We are looking to deploy microservices that will run on a cloud (the cloud is unknown at this point).

The microservices needs to be able to scale and so our thoughts are to implement them using a stack of containers.

I'm looking for software (preferably open source) that will run on top of the cloud and will manage these microservices, give the ability to add or remove nodes to/frome each microservice if it is required.

In addition, since each microservice will be implemented using a stack of containers, we need to be able to distribute jobs/tasks between the nodes and have an updated status of each task. We need to be able to provide the status of these tasks - whether the status is 'SUCCESSFUL' or 'ERROR'. We need some retry mechanism for tasks. We need fault tolerance - in case a node running a task has crashed the task should be picked up by another node.

Also we require a job scheduling capability, meaning that based on some schedule a task/job will be generated and be sent to one of the nodes of a microservice, But the execution of the each iteration will can be dependant on the status of the previous iteration.

I've looked at a lot of frameworks but I got lost since everything seems to fit my needs (Mesos, kubernetes, Ignite and more)

What would you recommend given all these requirements (or some of these requirements) and can the decision be made independently from the cloud that the cluster is running on, or do some clouds provide these capabilities on their own and it wouldn't make sense to seperate the decision?

  • on top of the cloud That is extremely vague. What cloud providers and/or operating systems are you talking about? – user416 Nov 24 '16 at 12:48
0

This is a short answer based on my current knowledge of the main cloud providers. I assume you are going to deploy on either AWS, GCP or Azure. I know that on Azure and GCP you have a automatic deploy for Apache Mesos. For Kubernetes, GKE (Google container engines) is actuelly a Kubernetes cluster. If your cluster is small (<= 5 nodes) there is no extra cost for the master. Azure will soon provide a quick install for K8s also. I do not know if AWS provides these easy installs but as it is one of the most used cloud providers there are plenty of examples to set up a cluster.

For the other requirement "Also we require a job scheduling capability, meaning that based on some schedule a task/job will be generated and be sent to one of the nodes of a microservice, But the execution of the each iteration will can be dependant on the status of the previous iteration." On Mesos you have Chronos to schedule tasks but it only covers the launch part. What you need will not be covered by the cluster manager but should be taken care of by a framework such as Spring Batch for example.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy