1,505 karma · joined July 18, 2013
I saw this big shiny vault had a side door unlocked, Your Honour. This vault stores my money as well, so I wanted to see - surely they wouldn't let burglars in just like that. I didn't break any lock, I didn't pass any sign. When I saw the door indeed led to the money, I left and wrote the bank a letter.
On the other hand, I agree that for the larger teams, microservices make sense. It's much easier when you can roll back a failed deployment and block new releases just for your service, while the team tries to fix it. Also, monitoring and resource accounting is easier. All at the cost of some inefficiencies compared to a monolith.
Imagine a web server handling requests. It usually has a way to recover from a crashed request handler. On top of that, you have multiple web servers behind a load balancer. Some code paths may be failing, some may be available.
Then, you have some background workers, maybe ingesting data from third party services. They're completely different processes from your web servers, even though they still use the monolithic code base. If they're down, the web app can still work with stale data.
The partial availability can be compromised in microservices as well as in a monolith (e.g. auth as you mentioned).
The main obstacle for investment is political stability and alignment.
But that's probably something where we differ. I view this Russian attitude as "we can't live as well as we'd like to so we'll at least make other suffer too". This is completely self-inflicted.
Such attitude has downgraded Russia in the world's eyes into an "armed gas station". I. e. can buy from them when they'll behave more or less, but don't expect to do any serious partnership.
I wouldn't call this a permanent on-call, just being responsive.
But it depends on stability of your service. If it is messed up and people are woken up often, then you won't find many volunteers if they have other choice.
It stops working when the company grows and no one understands the whole system and you need on-calls from several teams. Then the company does some formal on call rotation and it's fine again. It hurts during the transition only.
I'm not sure if there are any IDEs supporting (temporary) macro expansion already. The output showing all macros expanded is usually too verbose.
Or if I want to "bring my own DB", what are the latencies to other providers? Can I somehow host a DB in the same datacenter as you are?
What do you recommend for serious usage when I want low latencies app <-> DB and I don't want to lose any data? :-)
Another question - is there something like cron?
First, the data size is growing and we didn't really know the growth rate in advance. Sharding gives you some flexibility in the infrastructure sizing. And yes, you don't want to wait until the last minute.
Second, it helps us to spread the disk I/O. Possible on a single machine if you're a little bit careful with disk types and sizes. But again, the overall load still grows.
Third, all the bulk operations take a long time on a single server. Each of the distributed servers takes about an hour to back up and 2-3 hours to restore. I'd feel uneasy if it was much longer.
For example in Czech, Валерий would be transliterated as Valerij because "j" is pronounced in Czech as English "y" in "you".
The next level is to not store PII unless there's a specific reason in the user's interest (improving site quality doesn't count, logging in does). Therefore, you can see how many people visited a page, aggregates of device types etc. Just not anything that identifies an individual.
You're right that it essentially boils down to the dietary preferences of the parents. If the parents are ok with such lunch as described in the article, there isn't much a regulation can do.