throwaway20371
Clearly the problem isn't just having the skill or permission to change something, it's also the friction involved in figuring out how the hell to do it. How do you lower friction? Documenting things, making it easy to find things, making it easy to get access to things. If you can come up with an internal system that combines all of that, you have a one-stop shop for fixing high-friction problems.
I think Wikis are highly underrated. They seem to encapsulate all those things. Anyone can edit (or revert edits), anyone can access it, anyone can find it (eventually). Somehow we need to tie all the rest of an organization into a Wiki.
Actually, now that I think of it, that's not the problem. The problem is we keep changing the software. My laptop from 15 years ago still functions exactly the same way it used to. It hasn't disintegrated into a puddle of bits. You just can't use it to visit any "modern website" or run any "modern software". If we just stopped upgrading everything every 5 seconds we could keep using old technology.
If you don't want to repeat the steps from the beginning, you could make a completely separate checklist to be followed on a given system that includes things like "make sure X package is installed", "make sure Y configuration is applied", so that the new checklist accounts for any inconsistencies. This is pretty common anyway as checklists are broken up into discrete purposes and mixed and matched.
This brings up a very important point about checklists that I don't think gets enough attention.
The problem happens when somebody "updates" that web server in-place. If they try to record what changes they made in the middle of the checklist, eventually when someone tries the whole checklist from the beginning, they'll find it's now broken; the steps aren't working as expected. This happens to me when I try to record changes in my VirtualBox configuration after I add a new system package or something; later I try to re-deploy my vbox, and it breaks.
So checklists should be considered immutable. Once you create them, don't assume they will work again if modified. Instead, if you make any change to the checklist, you must follow all the steps from beginning to end. This way you catch the unexpected problems and confirm the checklist still works for the next person.
Soldiers also prefer trustworthiness over skill competency. Of course you want your brother-in-arms to do their job well, but it's more important that you can trust them with your life.
Technical skills are needed to work with a machine. People skills are needed to work with people.
* Documentation of the entire procedure is contained in one place. No need to go sifting through 20 different sources of documentation. This lowers the human emotional barrier to "just get it done", as people will always avoid things they aren't comfortable/familiar with, or don't have all the steps to. This central point of documentation also enables rapidly improving the process by letting people see all the steps in one place, which makes it easier to fix/collapse/remove steps.
* Automation in small pieces over time avoids the trap of "a project" where one or more engineers have to be dedicated to this one task for a long period of time. Most things shouldn't be automated unless there is demonstrably greater value in the cost of automating them than the cost of not doing so. Automating only the most valuable/costly pieces first gives immediate gains without sinking too much into the entire thing.
* One unified "method" to encapsulate any kind of process means your organization can ramp up on processes easier, reducing overall organizational cost.
* In the absence of any other similar process, you are guaranteed to save time and money.
I would say that the only potential downside is if someone decides to "engineer" this method, making it more and more and more complicated, until it loses its value. KISS is a requirement for it to be sustainable.
Cars used to be built by hand, had tons of bugs, and were expensive. Then a man came along and found a way to produce them faster, cheaper, and with less bugs. That was pretty amazing for a time, but they still had plenty of bugs. And then some people from a culture of very fastidious craftsmen obsessed with quality began producing cars a little cheaper, and with far fewer bugs, and they lasted much longer. Then the whole world realized, "shit, our machines don't actually need to be so fragile," and they followed suit.
The lessons learned by those people in that culture were promoted around the world, and evolved to shape what we now call Lean and Agile. But the people using these new processes forgot the first lesson: we don't have to accept the status quo.
One of the reasons for that constant maintenance seems to be The Web. Remember when you didn't need 4 gigs of ram to browse the web? When you didn't need a high-power 3D graphics card to look at Google Maps? (bad example but WebGL is mandatory for some simple sites, and if your graphics sucks/doesn't do hardware acceleration...)
I don't remember ever having to upgrade my car every few years just to visit a new local business. At some point we need to admit that this constant tech churn isn't improving our lives, but it is enriching some billionaires.
You don't have to support MongoDB, but you can support apps that were only written with Mongo as backend? That's awesome. I can't imagine it's production-ready yet but it's a great idea.
The hypervisor isolates guest kernel bugs from the host by nature of strictly controlling resource use from the lowest level. There are of course hypervisor bugs that allow breakouts, but they are a couple orders of magnitude rarer than the typical Linux privesc bug.
If you want security with containers, use Firecracker. It uses Micro VMs rather than just kernel-level restrictions, so even a Linux kernel security bug shouldn't be able to jump out to the host or other containers/Firecrackers.
What in the heck is that first '=' for?
You should not quit immediately, and instead job-hunt so you can get an offer while still working. Hiring companies prefer to hire someone who is still working, and you don't want to burn your bridges (even a shitty company's employees are future bridges).
A lot of people in my company were smart and pivoted to working for FAANG from here, and I think they were here less than a year. In retrospect I wish I'd followed them.
I call this the Kubernetes effect. 99% of the time, people think it's easy. Then the 1% hits and they have to completely rebuild it from the ground up. For us it was cluster certificate expiration and etcd corruption, and some other problems we couldn't ever pin down.
The other effect (which I'm sure has a name) is when they depend on it for a long time, but then a problem starts to occur, and because they can't figure out a way to solve it, they move to a completely different tech ("We had problems with updating our shards so we moved to a different database") and encounter a whole new problem and repeat the cycle.
I don't want VR. I'm sure there is some reason why I should want VR. But I'm very happy at the moment not knowing what that reason is.
Luckily I have disconnected from social media, and only use things like YouTube to learn how to build a shed. But I dread the idea that some technology I don't even want will find its way into my life just because some company will make it impossible to live without it.
"The overall age-adjusted vaccine effectiveness against infection for all New York adults declined from 91.7% to 79.8%." - https://www.cdc.gov/mmwr/volumes/70/wr/mm7034e1.htm?s_cid=mm...
"Two doses of mRNA vaccines were 74.7% effective against infection among nursing home residents early in the vaccination program (March–May 2021). During June–July 2021, when B.1.617.2 (Delta) variant circulation predominated, effectiveness declined significantly to 53.1%." - https://www.cdc.gov/mmwr/volumes/70/wr/mm7034e3.htm?s_cid=mm...
"The efficacy figure, which is based on an unspecified number of people between June 20 and July 17, is down from an earlier estimate of 64% two weeks ago and conflicts with data out of the U.K. that found the shot was 88% effective against symptomatic disease caused by the variant." - https://www.cnbc.com/2021/07/23/delta-variant-pfizer-covid-v...
"“As seen in real world data released from the Israel Ministry of Health, vaccine efficacy in preventing both infection and symptomatic disease has declined six months post-vaccination, although efficacy in preventing serious illnesses remains high,” the companies said in a written statement. “These findings are consistent with an ongoing analysis from the Companies’ Phase 3 study,” they said. “That is why we have said, and we continue to believe that it is likely, based on the totality of the data we have to date, that a third dose may be needed within 6 to 12 months after full vaccination.” ...... Executives from Pfizer and BioNtech have repeatedly said people will likely need a booster shot, or third dose, within 12 months of getting fully vaccinated because they expect vaccine-induced immunity to wane over time. They also said it’s likely people will need to get additional shots each year." - https://www.cnbc.com/2021/07/08/pfizer-says-it-is-developing...
So, while it's true that the effectiveness wanes, the same articles also point out that it is still effective at preventing severe hospitalization. If you're vaccinated, you're more likely after 6 months to get COVID anyway, but you are much less likely to be sent to the hospital or die.
It's very much unlike others of its kind. And it is novel. It is literally called a "novel coronavirus". Just to give you an idea how deadly and different this virus is:
- An outbreak of Ebola from 2014 to 2016 killed 11,310 people in West Africa.
- In 2009, the H1N1 pandemic killed approximately 12,469 people in the US.
- In 2014, during the MERS-CoV pandemic, 2 people in the US tested positive.
- As of today, COVID-19 has killed 661,000 people in the US.
COVID-19 is 53 times more deadly than the last major coronavirus pandemic in the US. Fifty. Three. Times.
> We have a vaccine for it.
We have a vaccine developed for the first variant of it, alpha. The vaccine was not developed against the delta variant. There is a drastic difference in its effectiveness against delta. Hence why there are now new mask mandates - for vaccinated people - where delta is rampaging. Are you telling me you didn't know this at all?
> I’ve done my part. My obligations to society are over.
Actually, no, society literally requires you by law to continue to wear masks in places where Delta is surging. But whatever; you want to kill people, you're gonna kill people.
I get it. You're petrified. But life will get better, and it does indeed change. "Normal" does shift. People didn't used to wear condoms, now they do (except for you). People didn't used to brush their teeth, now they do (except for you). People didn't used to wash their hands, now they do (except for you). You apparently live in 1750, where medical science and overall culture hasn't changed for hundreds of years, where everything is totally normal and will never ever ever ever Ever EVER change. Because everyone else is just insane, and you're normal.
Denial is a nicer place to live than reality.
If you have a very repeatable environment, you can have an entire pipeline that creates new infra from scratch (w/Terraform), build and deploy your new app, test it, and then point traffic at the new infra. It's like blue/green but bigger. You aren't changing the tire, you're moving from one moving vehicle to another one. That works well because there's no chance for unusual problems from trying to figure out how to re-jigger things on the fly.
The former is configuration-management-organized infrastructure, and the latter is immutable infrastructure.
The problem comes in with things like changing an S3 bucket or IAM role. Changing those things is like changing the highway... you can't replace the highway. You have to close down a lane of traffic, put up traffic cones, reduce the speed limit, make your changes carefully. Ideally test on a strip of test highway first.
These cloud-managed services cannot be made immutable, so you have to use configuration-management. So you have to have a change management system in place, and tightly manage the dependency between your app and the change.
This is literally the opposite of Shift Left. Merging in crap and talking about fixing it later. This should be renamed the "Tech debt accelerator".