News for hackers. Stuff that matters.
Re:The “Run Less Software” philosophy by dfabulich on Monday March 26, 2018 @12:33AM (#16676629)
I don't see why AWS is alone in "Tier 1" on a list that claims to prioritize standard technology and outsourcing undifferentiated heavy lifting.

The post gives an example of switching from self-hosted MongoDB onto AWS DynamoDB. But AWS DynamoDB is proprietary technology, not standard. Amazon doesn't even claim that DynamoDB is standard; they argue that DynamoDB is the best in the world, worth the premium in price. It's not at all "undifferentiated heavy lifting."

It sounds like they made the right decision with DynamoDB, but they did it by violating the pillars of their own philosophy, adopting a differentiated proprietary solution for their scalability problems.

Re:The “Run Less Software” philosophy by curun1r on Monday March 26, 2018 @01:44AM (#16676879)
It's the "self-hosting" part that's the "heavy lifting" for MongoDB. They could've also chosen a hosted Mongo service, and that would've worked too. The idea is to spend time focusing on your own product and do as little as possible outside of that core competency. Setting up, optimizing, monitoring, upgrading and everything else that goes into running your own database, however standard, falls outside of that core. The more you can do to avoid doing work that isn't directly building features and experience for your customers, the more you'll be successful.

By undifferentiated, they mean outsource anything that doesn't differentiate their own product offering. Build things that give you a competitive advantage over other products in your space. Outsource everything else because wasting work on it won't help you get customers. Of course DynamoDB is differentiated for Amazon, but it's undifferentiated for Intercom...it's just a persistence strategy that customers should never know about.

Re:The “Run Less Software” philosophy by rich_archbold on Tuesday March 27, 2018 @11:24AM (#16689367)
Thanks for taking the time to read our blog post and for sharing your thoughts!

For us, the concept of “standard” technology is not about whether it’s proprietary or open source, more that we have a “standard way of doing things. So in this case it was moving toward saying, “hey, if you’re an engineer at Intercom, and need a scalable key-value store for the thing that you’re building, we think you should lean toward using DynamoDB, rather than any of the other technology options, because that’s the one that we’re committed to making a first developer experience for internally for the long term”.

The reason for having AWS alone as a Tier 1 option is similar. We’re already very heavily invested in making developing on top of AWS a great developer experience at Intercom, and we’re committed to doing so for the long term. Therefore we think that it makes sense for us to advocate for always exploring relevant offerings that put out.

I recognize that I could have elaborated on the philosophy a lot more, there’s always a tension between writing too much and too little. And the philosophy is just that, not dogma and not right or wrong, just trying to give insight into how we think.

Thanks again for the feedback! Rich.

Re:The “Run Less Software” philosophy by dajonker on Wednesday March 28, 2018 @03:25AM (#16696059)
Somehow the recommendations feel like you are making them to the reader, and in that regards it doesn't feel right to just recommend AWS. Other public clouds provide equivalent or sometimes even better services.
Re:The “Run Less Software” philosophy by rich_archbold on Wednesday March 28, 2018 @09:58AM (#16697644)
Hi, Rich, blog author here again.

Your feedback is super fair. That is how it comes across in the blog.

In the talk that came before the blog post, I go into a lot more detail here. I have some slides where I explain that these are "our" standard technologies, and are not intended to be "the" standard technologies that everyone should use.

I gave some other examples of perfectly good sets of "standard" technologies which other companies could choose for lots of good reasons.

The main point that I/we were advocating for was that, in our opinion (just an opinion, not dogma, not definitely right or wrong), there are some strong benefits to making deliberate decisions about what technologies you consider standard, safe, easy and fast to use, versus those that are not.

Some of those benefits we see include: 1. speed of technical decision making 2. incentivizing engineers to develop deep technical expertise in specific technologies 3. incentivizing managers to fund training in specific technologies 4. creating fungibility within your engineering team to make it easier for engineers to transfer between teams and come up to speed quickly 5. minimizing ongoing operational overhead as there's fewer technologies that need to be battle-hardened with operational tooling

Re:The “Run Less Software” philosophy by dajonker on Sunday April 01, 2018 @04:11AM (#16727304)
Hi Rich, thanks for the response. I guess I just found it a bit hard to see the lines between "here's a good strategy" and "here's our strategy". Where you are writing "we have a tiered set of recommendations for who to outsource to", you could add something like "for our developers, ..." or "at Intercom, ..." and it would be much better placed into context.

Otherwise I really enjoyed the article, it resonated well with my own thoughts and vision.

Re:The “Run Less Software” philosophy by rich_archbold on Monday April 02, 2018 @02:13PM (#16737391)
thanks again dajonker, that's more good feedback.
Re:The “Run Less Software” philosophy by scarface74 on Monday March 26, 2018 @08:35AM (#16678355)
DynamoDB is not even a good replacement for Mongo. DynamoDB only lets you index two (?) fields and everything else is a full table scan.

At least go with a hosted Mongo solution.

Re:The “Run Less Software” philosophy by ciaranlee on Monday March 26, 2018 @03:40PM (#16681798)
It’s certainly nowhere near as full featured. But in our case it is entirely appropriate. Over time we simplified our use of MongoDB to the stage where it’s effectively a k/v store. Swapping that simple pattern over to DynamoDB was easy, saves us a ton of money, and means we get to shed a ton of operational responsibility.

Also, you are incorrect about only being able to index two fields in DynamoDB. Though we luckily don’t need anything other than the primary key.

Re:The “Run Less Software” philosophy by mooreds on Monday March 26, 2018 @11:22AM (#16679549)
Actually out can have multiple indices, but they are eventually consistent:

https://docs.aws.amazon.com/amazondynamodb/latest/developerg...