708 karma · joined January 3, 2012
Sounds more like it wasn't made clear what was or wasn't an okay internal communication tool, which points to a lack of training and IT management.
Let's say you had a bug, and are trying to see when it was introduced.
Something like the compilation time printed in a log at startup you don't really care about, the versions of each part of your build chain and all dependencies are where your focus will be. This is easier to achieve.
Wildcard certs only work one level down, when I looked into this Firefox was the last browser to remove support for doing multiple levels.
Some are very thankful for the analysis, others don't seem to appreciate how important correctness is in this type of distributed systems. I find it's a good indicator of the maturity of the teams working on them, and how much I'm willing to trust each system.
I've tried out Aurora (and helped improve the setup docs a small bit) and found it quite nice. If you're going to try it out use vagrant, and to deploy it in production I suggest working off the Vagrant setup: https://github.com/apache/aurora/blob/master/examples/vagran...
> Instrument your jobs to identify whether they ran or not
Prometheus.io let's you alert on when the job last succeeded, which is generally what you want. http://prometheus.io/docs/instrumenting/pushing/ has a full example for Java.
Being completely risk averse creates an environment where it's very difficult to improve, for fear that your good change will happen to cause a problem and you'll get blamed for it.
https://en.wikipedia.org/wiki/Cryptographically_secure_pseud... has more detail.
http://javaeesupportpatterns.blogspot.ie/2011/03/java-dns-ca... has more detail.
I was first looking for some reference on prometheus.io and a transliteration for the Irish for "fire" looked free - but turned out to be to a derogatory term for Indians so that wasn't an option (always check Urban Dictionary). Next I looked for something with the initials AE (which means "liver" in Irish), and even after trawling through a thesaurus and /usr/share/dict/words nothing worked that was available in DNS.
Finally I had a list of ~100 words that were candidates. Single words were out as they weren't easily Googleable, and all were taken. I played with word pairs a bit, and the 3rd or 4th I really liked was free in DNS and not popular on the web. I now have robustperception.io, with the .com and plurals to be safe.
People I've talked to have liked the name "Robust Perception", and it ties into what we do, so it seems to have been worth all the hassle. Name pollution is a real problem.
I'm a fan of Ansible, but it isn't really suitable for expressing multi-dimensional and multiple-levels of exceptions, from experience it works for about 2.
How that state is actually rolled out is the job of something else (which could be Ansible or the update portion of your cluster scheduler).
The core of configuration management is a) how you express the state of the world and b) how you move from state to state safely, with potentially hundreds of changes in flight at once. For the former I'm excited about projects like https://github.com/apmasell/flabbergast, and the latter is mostly a matter of breaking rollouts into individually rollbackable changes combined with good policy.
"A foolish consistency is the hobgoblin of little minds" is the rallying cry of those who only have to deal with a small number of libraries/languages/tools/systems, and don't realise the true externalities of having to memorise hundreds to thousands of special cases. Small consistent languages are good languages.
After much debugging and reading of kernel source this was all figured out, and the provider adjusted things on their end so this wouldn't happen.
Moral of the story: You probably should set tcp_abort_on_overflow to 1.
This sort of thing is useful as a signal when deciding if a user is who they say they are, but it's not sufficient on it's own.
I've been discussing this with others in the "DevOps" space and in recruiting terms a "DevOps engineer" seems to mostly mean an "Ops engineer". True Devops (in the sense of developers who also care about and perform all of their own operations) is a culture, not a job role and one that seems quite rare in the wild.
RHEL/CentOS is still around, but you don't hear about it too often.