Let's take it word by word:
Self: You or your organisation owns this thing. By contrast, a cloud-based offering by GitHub.com, Azure, GitLab.com, etc. (see this list on Wikipedia for a more comprehensive list) is not owned by you, but rather the service provider in question. Do not confuse ownership of the code (dictated by it's license – typically owned by ...
It depends on what you're trying to avoid.
If you are trying to avoid any service interuption of something which is a genuinely critical service (I'm thinking in terms of "people will die if my API call is not appropriately served") the you need to just budget for the huge inefficiencies that come from vastly over provisioning dedicated resources. And yes ...
One way of preventing these retry storms is by using backoff mechanisms.
From the Implement backoff on retry section of Google App Engine Designing for Scale guide:
Your code can retry on failure, whether calling a service such as
Cloud Datastore or an external service using URL Fetch or the Socket
API. In these cases, you should always implement a ...
If there are 100 messages in the queue and 5 consumers, the initial distribution will be no more than 10-10-10-10-10.
A single response can never return more than 10 messages.
This seems like a non-issue.
Race conditions related to multiple consumers should be a non-issue as well. SQS is designed for multiple simultaneous consumers.
Use long polls ...
An example will be maybe worth a thousand words:
$ sudo apt install git
$ ssh 192.168.0.110
kub@host:~$ git init --bare repo1
Initialized empty Git repository in /home/kub/repo1/
Connection to 192.168.0.110 closed.
Voila, We already posses a self-hosted version control system. Let's use it as an example client:
$ git clone 192.168.0....
Assume you have your own IT infrastructure, eg a Linux server or a good old mainframe, on which you are running (hosting) your VCS software of choice, e.g GIT or ChangeMan ZMF. In such case you have a self hosted hosted VCS. As compared to GitHub, which is a web-based hosting service for software development projects using Git.
Proxying is gonna cause you some issues when someone takes a trip to China and tries to access data in the USA, depending on what your app does they could cause you some $$$ issues when your Chinese POP is sending/receiving all of their traffic each way.
Instead I suggest:
If your API is authenticated and you're not going to replicate any of the data and ...
Good architecture in how you use SQS queues will solve your problems. If we assume there are, say, 3 minutes of processing per message, then you can almost guarantee equal distribution of the messages as this is very large compared to the time needed to poll the queue, if you delete the message from the queue only after it has been processed.
Do be aware ...
Long polling is always beneficial since it results in higher performance at reduced cost for the majority of use cases. Unfortunately, you cannot control the number of messages each worker receives from the queue due to the distributed nature of the queue. But there are some client-side workarounds that can help you in balancing the load for workers.
Have the Swarm Manager place the worker join token in a Key/Value store. We use AWS Parameter Store but I believe Consul would be another option (I don't use it).
Each node can then retrieve the token while it is bootstrapping.
You should do a comparison of commercial virtualization products on the same hardware resources, OR benchmarking commercial virtualization products individually, there are ways to do it, you can even script it.
For example, VMmark is a free tool used to measure the performance and scalability of virtualization platforms VMmark
Since your question is very ...
What is self hosted version control system
A version control system hosted in a location you control and administer yourself.
Git is designed as a "distributed version control system", this means that by default every user has a complete copy of the history. It's not strictly necessary to even have a central server at all, though it is generally very ...
From what I understood is that you want add deploy a configMap and a Deployment based on some API calls every time you need to add a new customer?
Basically you need a CD Pipeline that triggers a deployment based on new customer added. The trigger can be an API Call or a webhook from your software where you add a new customer. It should support sending an ...
As you have realised Git is decentralised by design.
Using LAN repos
If Azure DevOps goes down, or your office internet connection, you can still use LAN repos. These could be simple file shares. You can also use emails to share commits; nothing I've tried but Git has native support for it). I have however pushed and pulled commits directly from and to my ...
A "self hosted version control system" is one that is used for tracking its own source code.
When a new version control system is developed, initially no version control is used for it, or some existing version control.
Eventually, a major milestone is reached when the version control system is good enough for handling its own source code. At that point, ...
You can use Glowroot
Glowroot is Open source Java Application Monitor. Very easy to use and Very low overhead.
Steps to run:
Download and unzip glowroot-0.13.4-dist.zip
add -javaagent:path/to/glowroot.jar to your application's JVM args
Go to http://localhost:4000
and monitor all this
IMHO an absolute benchmark can be rather useless/misleading, I'd always consider the specific context of the application intended to be executed on the platforms being benchmarked and its performance requirements and use only benchmarks relevant to that application context.
A few examples:
if the application doesn't make a lot of use of the CPU and/or its ...