My biggest terminal frustration would be lack of access to Terminal. I have loved terminal windows since about 1981 or so. I was a big DOS fan and would only use Windows up until the Mac switched to OS X. I switched and never looked back.
Every day I use zsh on my Mac and bash on all the servers I use (almost all are Ubuntu).
My biggest peeve is the difficulty with formatting output in an elegant way when writing shell scripts. I have wrangled it for the most part, but all the solutions that I have found seem a bit janky.
I kinda like the way ansible does it. There is a concept of a vault. You put all the passwords in that file and they are all encrypted. You use one password when running the command or playbook and all of the keys are decrypted as needed.
I don't know if that is efficient for 30K machines though.
It isnt. I ended up building a small golang binary that ran as root and I could hit it with http calls to execute whatever I wanted. Built a message queue that would work through all the machines for eventual consistency. Worked great.
That's the whole idea of using a system based on declarative state. As soon as the system is back up, the agent can resolve state again. You also keep a central copy of the state of every agent.
You can absolutely do this by writing your own agent (or by writing a family of bash script, but they tend to grow pretty complex over time), ansible is just a framework to write that in a standardized way. It will also out of the box handle a number of common system state such as running services and sysctl triggers.
There are a number of similar systems such as puppet or salt, which are all variations of the same basic idea. 30k hosts are a lot, and will need sizing the system appropriately, but it's not an unusual configuration by any means.
That was the benefit of my system over what you are talking about, there was no dependency on a global state or centralized control surface. Each worker was autonomous and self contained and had enough intelligence to bring itself to the desired state on its own. All you had to do was one line curl|bash install my service and it would take care of the rest without any other external dependencies. No worries about having to have ansible try to connect over and over again until things were working. It would just magically fix itself.
Again, many ways to skin the cat, but at the end of the day, this solution really worked extremely well. I would do it again in a heartbeat.
I think there is a change of attitude with a shorter work week. If I am working 9-5 at the same place everyday, I basically live there. It is easier to decide to take more breaks because there is no Friday to relax or get chores done or go to appointments. I take every other Friday off and it helps me focus more at work. I schedule all my weekday appointments for Friday (as much as I can). Monday thru Thursday I can push a little harder and be a little more focused because I know I have Friday (or a week from Friday) to take my dog to the vet, me to the doctor, or whatever else I need to do. I would love a real 4 day work week.
I don't know about extreme heat. I have been to Colombia and there are very different climates. I am not sure exactly where they were, but it is probable that the temperature there was more warm with lots of rain.
reply