Earlier quoted context omitted.
I know about the daily snapshots, but didn't know about the archive logs. Is this something I have to enable? How do I get the logs and how do I restore using them?
It's automatic. Go ahead and launch a new instance, restoring to a point in time (that's how you do restores in RDS). Notice that it gives you a calendar day/date/time fields where you can select the recovery point down to the second. This is enabled by replaying the archive logs to get you to the exact point in time.
Postmortem of database outage of January 31
261–269 of 269 posts
Re: Postmortem of database outage of January 31
#262Does anyone have a link to the YouTube stream they's talking about? Can't seem to find it on their channel. And the link in the doc is redirecting to the live link [1] which doesn't list the stream. [1] - https://www.youtube.com/c/Gitlab/live
Re: Postmortem of database outage of January 31
#263The engineers still seem to have a physical server mindset rather than a cloud mindset. Deleting data is always extremely dangerous and there was no need for it in this situation. They should have spun up a new server to act as secondary the moment replication failed. This new server is the one you run all of these commands on, and if you make a mistake you spin up a new one. Only when the replication is back in good…
That’s a nice idea, if you’re willing to pay the massive extra cost to actually rent all those overpriced systems. For me, personally, going from cloud servers to rented dedicated servers cut my bill by 93% – more than an order of magnitude. At same performance. In fact, it’d be cheaper to run 10x as many dedicated servers than to use cloud solutions for me.
If your engineering time is free, then this calculation is complete. Otherwise it is not.
Does that 93% saving pay for a DB engineer, or enough of your developers' time to build the same quality of redundancy as you'd get with a DBaaS?
This calculus is going to be different for every DB and every company, but the OpEx impact of switching to dedicated servers is a bit more complex than you suggest above.
Re: Postmortem of database outage of January 31
#264Earlier quoted context omitted.
That’s a nice idea, if you’re willing to pay the massive extra cost to actually rent all those overpriced systems. For me, personally, going from cloud servers to rented dedicated servers cut my bill by 93% – more than an order of magnitude. At same performance. In fact, it’d be cheaper to run 10x as many dedicated servers than to use cloud solutions for me.
It cut your cloud services bill by 93%, but how much did it increase your engineering bill by? If your engineering time is free, then this calculation is complete. Otherwise it is not. Does that 93% saving pay for a DB engineer, or enough of your developers' time to build the same quality of redundancy as you'd get with a DBaaS? This calculus is going to be different for every DB and every company, but the OpEx impac…
So, for me the choice was between "use cloud tools, and get performance worse than a raspberry pi", or "run dedicated, and get more performance and storage and traffic than I need, and actually the ability to run my stuff".
For less than the price of a Netflix subscription I’m able to run services that can handle tenthousands of concurrent users, and have terabytes of storage (and enough traffic that I never have to worry about that).
And the cost of setting it up was for me a few days.
For me it was a decision between being able to run services, or not being able to run them at all.
Re: Postmortem of database outage of January 31
#265Earlier quoted context omitted.
It cut your cloud services bill by 93%, but how much did it increase your engineering bill by? If your engineering time is free, then this calculation is complete. Otherwise it is not. Does that 93% saving pay for a DB engineer, or enough of your developers' time to build the same quality of redundancy as you'd get with a DBaaS? This calculus is going to be different for every DB and every company, but the OpEx impac…
(a) I’m talking about projects I host in my free time (b) My server budget is fixed. So, for me the choice was between "use cloud tools, and get performance worse than a raspberry pi", or "run dedicated, and get more performance and storage and traffic than I need, and actually the ability to run my stuff". For less than the price of a Netflix subscription I’m able to run services that can handle tenthousands of conc…
However, that paradigm is not really applicable to GitLab's OpEx calculation; they have to pay their engineers ;)
Re: Postmortem of database outage of January 31
#266Earlier quoted context omitted.
(a) I’m talking about projects I host in my free time (b) My server budget is fixed. So, for me the choice was between "use cloud tools, and get performance worse than a raspberry pi", or "run dedicated, and get more performance and storage and traffic than I need, and actually the ability to run my stuff". For less than the price of a Netflix subscription I’m able to run services that can handle tenthousands of conc…
Sure, hobby/spare-time projects are one of the cases where it's perfectly reasonable to self-host; often it's fun to learn about the underlying tools by rolling your own db, and doing so can save you some cash (at the expense of your own time). However, that paradigm is not really applicable to GitLab's OpEx calculation; they have to pay their engineers ;)
You have to remember GitLab is a 100% remote company, so they can hire DBAs from anywhere on the planet.
The cloud obviously makes a lot more sense if you have US electricity prices and Silicon Valley wages.
Re: Postmortem of database outage of January 31
#267Earlier quoted context omitted.
Sure, hobby/spare-time projects are one of the cases where it's perfectly reasonable to self-host; often it's fun to learn about the underlying tools by rolling your own db, and doing so can save you some cash (at the expense of your own time). However, that paradigm is not really applicable to GitLab's OpEx calculation; they have to pay their engineers ;)
Even for GitLab, when you have 1-2 orders of magnitude price difference, it might be more affordable to hire a DBA. You have to remember GitLab is a 100% remote company, so they can hire DBAs from anywhere on the planet. The cloud obviously makes a lot more sense if you have US electricity prices and Silicon Valley wages.
My point is simply that your posts above didn't address the complexity of their calculation, as they didn't factor the costs of switching to self-hosted.
Re: Postmortem of database outage of January 31
#268Earlier quoted context omitted.
"Maybe it is OK as a simple data store for a single app, but not for a real database." Currently working at company number 2 with large (many terabytes) databases on RDS and can safely say this is horse shit. The amount of time and energy it allows our engineers to spend on our actual products instead of database management is worth all of the extra cost and lock in and then some. Edit: I just realized that you were…
We're in the business of PostgreSQL support, and some of our customers use RDS for various reasons. Not having to care about the deployment is one of the usual goals of using a managed environment, but considering they subsequently go and buy support from a third party might be a sign of something. Of course, my view is biased because we only hear about the issues - there might be a 100x more people using RDS without…
They're simply uninformed then. AWS database migration service makes zero downtime migrations trivial between just about any major databases (mysql, oracle, postgres, aurora, sqlserver, etc.)
Re: Postmortem of database outage of January 31
#269Earlier quoted context omitted.
"Maybe it is OK as a simple data store for a single app, but not for a real database." Currently working at company number 2 with large (many terabytes) databases on RDS and can safely say this is horse shit. The amount of time and energy it allows our engineers to spend on our actual products instead of database management is worth all of the extra cost and lock in and then some. Edit: I just realized that you were…
I'm interested in a. How many hours would you guess you are saving a month? b. What takes by a factor of 10 less time on RDS than doing it by hand? What task sees the largest time saved? Because I always wonder when reading this, what am I missing? What haven't we done? Were we lucky? We were running MySQL and Postgres for multi hundred million EUR companies with millions of users and we did not spend a lot of effort…
2. Zero effort re-deployment from backups.
3. Almost zero effort encryption at rest.
4. Zero effort hot backups, automatic fail-overs, and multiple datacenter deployments
5. Low effort migrations of massive amounts of data between DBs when someone inevitably wants to refactor something
6. Zero effort logging and log aggregation
7. Almost zero effort alerting of issues via sms/email/other
I could go on but I'm on my way to work...
When you're paying engineers north of 150K all of this adds up, and I'd much rather throw the money at Amazon to handle this and pay the engineers to focus on our actual product.