>Etsy’s insistence on running its own servers rather than using cloud-based services and software offered by companies such as Google and Amazon—an emphasis that was known, under Dickerson, as “code as craft”
That reminds me of the silly StackOverflow "if you are a real <hacker/programmer/developer/whatever> you must setup your own servers". There are certain benefits of cloud or not, but this kind of thinking confuses me. Why stop there? Do they build their own Ethernet cables? Racks? Make their own distros, compilers, etc.? Build their own network -- after all, your network is critical in delivering pages to your users, why outsource this to XO and Cogent and so on?
Edit: Yes, I understand the pricing differences of cloud. So just say "it's cheaper to run our own stuff", don't pretend its due to some desire for "craft".
>food scraps were packed onto a Dutch cargo bike, which an “office ecologist” would pedal several miles to a Brooklyn farm
It's like they want to parody themselves?
>Senior Engineer..."I’m just allergic to capitalism"
But presumably not allergic to using capitalists money to hire people to bike your leftovers around town.
The problem, as ever, is about filtering. For every quality piece there 50 amateurish things cobbled together from steel pipes and reclaimed wood (or worse: distressed "shabby chic" furniture made to look like something you'd find in an old B&B on the French Riviera). With all the AI being thrown around, can't someone build a "tastefulness" filter?
Especially in regards to furniture, buying online, sight unseen still isn't a great proposition. We don't expect it will ever be.
Perhaps though online could be a great first step filtering process. Find a bunch of stuff that fits the rough parameters of what you are looking for and looks good in your space then go someplace to try them out with a well kept appointment and ready to go same day follow you home delivery should you decide to buy something.
Maybe this already exists? I haven't had to buy any furniture is several years so not sure what the current state of the markets is.
I've long wanted an extension for Google Image Search, eBay, Etsy, etc. that simply filtered out all listings with images of items with pure white backgrounds. That would go a long ways toward a "tastefulness filter".
Huge indicator of handmade / vintage / used items sold by an individual seller vs. a new item being dropshipped from Amazon or China.
They talk about their curation algorithms here:
It turns out taste varies.
https://www.etsy.com/shop/PurpleHeartUK, https://www.etsy.com/shop/BigSwigDesign, https://www.etsy.com/shop/CraftyMamaGifts, etc.
Perhaps a set of AI filters could be built, and Netlix or Pandora style whichever one a person agrees with more often is selected and more results from it are presented to them.
Or perhaps a Convolution Network trained to filter per person or something equally wasteful if the allocations of Etsy's budget actually match the article. But of course those GPUs would be locally sourced and powered by renewable hamster wheels and 100% organic hamsters.
I think your criticism would make sense if the article was accurate. But I don't think this quote
> Etsy’s insistence on running its own servers rather than using cloud-based services and software offered by companies such as Google and Amazon—an emphasis that was known, under Dickerson, as “code as craft”
is accurate. AFAIK no one at Etsy has said that they run their own servers because it's more authentic, part of their "craft" in a way that using cloud servers could not be, etc.
There's some actual information on their thinking behind running their own servers at https://www.nextplatform.com/2015/04/07/etsy-shows-how-to-be... , which boils down to three points
1) Etsy has been around longer than EC2
2) Etsy does not have a spikey workload that would benefit from scaling up/down
3) Etsy thinks they can run more efficiently on bare metal
I'm not sure I would agree with that based on a recent-ish post on “code as craft” the Etsy engineering blog:
"At Etsy, the vast majority of our computing happens on physical servers that live in our own data centers. Since we don’t do much in the cloud, we’ve developed tools to automate away some of the most tedious aspects of managing physical infrastructure. This tooling helps us take new hardware from initial power on to being production-ready in a manner of minutes, saving time and energy for both data center technicians racking hardware and engineers who need to bring up new servers. It was only recently, however, that this toolset started getting the love and attention that really exemplifies the idea of code as craft."
Tangentially related to the hardware discussion - a bit of dated hardware post:
Just because someone sees the work that is done as part of a more cost effective solution as 'craft', doesn't mean it is actually done solely for that reason..
automated cloud deploy pipelines likely would also fit the bill and could be blogged about just in the same way, as one small example...
Flickr's other direct descendant, culturally, is Slack. Those are nerdy, charming, funny cultures. "Code as Craft" is a cute pun. Taking it entirely literally is a really big point-miss.
This is a good point. My company is on cloud servers, but not EC2 since EC2 didn't exist when we moved to the cloud.
Not saying EC2 is right for everyone, just that this particular point is bad.
I have setup a streaming website with 500k/d visitors, and it runs on 7 servers for 2000$ a month give or take.
That's very, very cheap compared to GAE or AWS.
At stage one, with <1000 visitors per day, I can get by on a $5/mo Digital Ocean node or $20 Linode. Just the fact that they're even numbers means I'm leaving something on the table, but just the cost per hour for talking about buying, building, and colocating my own machines is more expensive than this.
Stage two is a sweet spot where running your own 5-25 machines makes sense for stable, medium-sized, medium traffic businesses.
After that, though, stage 3 is when gets to be too much for one combination programmer/devops employee to manage in their spare time, and it makes sense to go back to the cloud and have someone else manage all of that for you. A lot of startups focused on rapid growth like to skip step 2 and go straight to this stage. When you outgrow the "do whatever's cheapest" stage of hosting, it can become untenable to explain to your investors that a few thousand in server hardware will probably be adequate for the next few years, and they'll see a nice return of a fraction of an employee per month on hosting if it's done most efficiently.
Somewhere in the stratosphere, stage 4 is when it again becomes more reasonable to hire an internal team to assemble and maintain your computing resources. Perhaps you can instead convince your investors that this is your target? After all, Facebook, Amazon, Google, and Microsoft are on their own hardware...
By this I mean that in such a business the issues surrounding servers and even software should be very minor compared to the bread and butter of helping people sell stuff so money is made. The costs of said servers and software should also be minimal vs things like sales and marketing costs.
For example: A dedicated m4.16xLarge EC2 instance in AWS is $3987/month. You could build that same server for $15,000 through Dell, lease it at $400/month (OpEx), and colo it with a 1GB/s connection for $150/month.
Yes, cost per compute measurable (memory, CPU, etc) is higher in the cloud. But what's never mentioned when people complain about the cloud being expensive:
a) ISP and CoLo costs
b) Redundancy/Multiple AZs
d) Failure recovery/cutover
f) Monitoring/Health statistics
g) The other goodies that come along with being in the cloud(Lambda, CloudFront, Route53, SQS, etc)
I feel like we're at a point where people should have to justify why they are running their own data centers vs. having to justify why they're running in the cloud. There's obviously many very good reasons to do either, or both, but if you don't already have a data center, you better have some damn good reasons for starting one up.
A) Colo is $50-150/U with blended top tier bandwidth, 99th% billing and usually includes remote hands time.
B) Even with 100% redundancy you're still ahead by $3000/month. Please understand Amazon offers absolutely no redundancy built in and nodes go down regularly. It is up to you as a developer to build redundancy around the tools they offer.
C) Amazon doesn't take backups for you. You have to pay for this either way.
D) Again Amazon doesn't handle this for you. You have to pay either way. Buying an exact replica of the hardware I've mentioned and cololocating it elsewhere still puts you ahead by $3000/month.
E) What support do you need? Dell offers same day or even 4 hour parts replacement with the appropriate warranty service. Most Colos offer remote hands for free up to a certain hourly.
F) Lots of ways to handle this. You can use IPMI, built in OS tools, etc. There isn't much exclusive to AWS you can't easily replicate elsewhere.
G) I never said not to use Amazon for anything. In fact you should be building your applications for scaleability INTO the cloud. This is part of the idea behind the whole microservices movement.
> Except then you're stuck with a $15K server, and you had to spend all 15K up front
Also, tying yourself exclusively to AWS services is not a good long term strategy because then you have vendor lock-in that's worse than being stuck with some old hardware.
If you don't need the scaling abilities of cloud, then it just doesn't justify the added expense because no matter what you say, you still need people to manage systems.
What I mean is : if you make a list of "shit that's wrong with my crafted good selling business", "how the servers are made" wouldn't be in the top 10 things to worry about. The fact that they're arguing that said servers should be sourced in a very cost-inefficient way makes it even more odd.
Consider for example this : http://www.zdnet.com/article/snapchat-spending-2-billion-ove...
which, other than here, nobody seemed to question as strange.
So you need that m4.16xlarge to handle the load, and honestly, there's no single instance available on Amazon that I've found that can come anywhere near the performance of physical hardware when it comes to handling database loads. Right now I am running ten r4.16xlarge instances to do the job of two Dell R710s, at considerably reduced performance even still.
I do run a database on my server (which isn't even a Large) for an e-commerce site. It fits handily in half a gig of ram. The hundreds of products we offer have associated images, but we just store the filenames in the database and they load from disk (or, more likely, Cloudflare cache). Honestly, it could be a static site but the database is a convenient way to edit the content and control the presentation.
You have 640 CPUs running at multiple gigahertz and trillions of bytes of RAM. What kind of workload requires that insane amount of compute power?
Part of the problem is that the network disk that EC2 provides as EBS is 100x slower than local disk, so keeping all the indexes and data in memory is the only way to replicate physical hardware performance.
If anyone knows of a better EC2 setup for PostgreSQL, I'm all ears.
> If anyone knows of a better EC2 setup for PostgreSQL, I'm all ears.
Have a proper replication & archiving setup, and use instance storage. If you have configured streaming replication to 1-2 other servers, and archive your WAL to s3 (using wal-e or such), you're already above EBS's guarantees (99.9% durability IIRC?).
Still doesn't even remotely compete with what you can get with "normal" hardware.
If this is all you see when it comes getting servers or working with Cloud servers/services, then you don't know what you are talking about.
You don't build for one massive single server, you build for a bunch of small ones that spin up and down as needed. It's micro services or you are wasting your time and money.
This seems unlikely to be true unless your software engineers love doing ops (and the needs of the business don't need those on software.)
The salaries of having Operations that can replace failed hardware 24/7 (and w/ vacations) alone is more expensive than a company like Etsy should have in ops. Then there is the cost of the pipe, power, and redundancies. Even higher up, managing all of the depreciation in accounting is going to have costs compared to a expense line item.
Hardware failures are far less common than you believe. I lost one hard drive in 10 years and because it was a RAID array it didn't even fail.
> Hardware failures are far less common than you believe.
Your experience may vary; I once rented metal from Softlayer (running ~15 shards, about 60 boxes), we had a number of drives* fail, a couple of the rack controllers, some raid controllers, and one time a power supply over a 3 year period. On the worst RAID failure, we sent one of our employees across country to manage the recovery directly.
*Some hard drive failures related to 2012 Seagate 3TB drive issue. One failed within a week of being replaced.
Softlayer had a team monitoring our servers and working through issues with us; Other than supplier issues I blame them for nothing.
In that worst scenario; we ran off our geo redundant slave for the better part of a week.
AWS is great for prototyping, for scaling into new territories (you need a Point of presence in Tokyo for your new startup? great, AWS), but not for running a boring e-commerce site (buy cheap shit in 2 DCs, run replication to keep things in sync, pay someone for BGP + DNS failover, call it a day).
Because using EC2/GCE infrastructure is an incredible waste of money if you have any reasonable-sized base-load and bandwidth utilization.
When you're starting out, hosted solutions will save you a lot of time. Running your own servers is a high cost and you need a dedicated team. But once you're pulling in that revenue and can afford it, running your own can save you some money and add a lot of flexibility.
If you're starting out, I highly recommend not tightly coupling yourself to a single service (using AMIs or any really specific AWS stuff) but write your provisioning scripts in such a way as you can plug in different services or deploy locally. Things like Terraform + a provisioner (Ansible/Puppet/etc) can make it easy to move your system to another provider or host your own and more easily measure costs.
Amazon aren't stupid, and to really realise the full value/potential of their cloud offering you kind of have to design for the proprietary features of their stack, which of course is the whole point - driving you to be locked in as much as they can. Treat them as just a bunch of generic compute boxes in the cloud and you will end up driving your costs up, not to mention often markedly increasing the complexity of your deployment.
We have a lot of clients who say they want to be multi-cloud, they say they're afraid of being locked into AWS or GCE, and in practice nobody except the supermassive companies out there ever actually do move between them. To that end, we pretty much standardized on using the platform-specific options: CloudFormation, Azure Resource Manager, and Google Cloud Deployment Manager.
(There is a small argument to some of the ancillary services that Terraform can wire up, but to be honest I rarely find a compelling reason to put up with Terraform and its lovely habit of fragging my state in order to wire those up declaratively rather than using a little imperative glue within Auster to do it.)
 - https://github.com/eropple/auster
CloudFormation isn't perfect--but it isn't a hand grenade.
People used to ask us when we started Userify (SSH Key management, https://userify.com)... what happens when AWS clones you?
Well.. that was five years ago, and they haven't cloned us yet. But even if they ever did, they have a vested interest in ensuring lock-in to AWS, so they will always choose to make things work with things that only they offer (such as IAM) instead of making it cross-cloud. That makes things a lot more challenging for large enterprises, especially when you're talking about users that may have to log in to servers hosted in multiple clouds. Having multiple sources of truth doesn't work at scale.
Most large organizations are at least on AWS, GCP, and/or Azure already, so I don't really think Userify's SSH key management (or any other cross-cloud tools like ansible/pupet/terraform/etc) are going away anytime soon.
Has that changed since?
If you have static usage, or at least a base load owning your own hardware to support it does make sense though, colo space is cheap, the biggest disadvantage from a financial perspective to owning your own gear is you have a depreciating CapEx instead of a 100% deductible OpEx.
So why then can't they build and maintain the best infrastructure? Why does it suck so?
Ehm, no. But if you outsource your servers, you’ve got an entirely different set of issues.
I’m currently renting dedicated servers, paying around 20$ a month, for something that would cost me 900$ a month with Google Cloud Platform, or around 60'000$ a month with Firebase. Outsourcing servers – unless you have highly variable load – is always literally burning money.
Remember that Google, Amazon, etc have to pay their devs Silicon Valley wages, while you can operate elsewhere, and pay half that, and save money with hardware, too.
You can check out https://gist.github.com/justjanne/205cc548148829078d4bf2fd39...
I’m personally actually paying 30€ now, for several Dediboxes from Online, running kubernetes.
The big issues of Google, AWS, etc is the cost for bandwidth and performance – I can transfer 180TB in one month on one server, and pay no extra fee, and don’t get throttled – while a startup using Firebase might end up paying 7000% more (or worse).
So many times people fail to look at problems in terms of trade-offs instead of right/wrong or fashionable/faus pax
Running your own infra vs public cloud has so many considerations beyond a simple price tag. Massive scale companies on AWS have hadoop clusters just to work out their goddamn bill. But there are considerations you have to make about the number of people to maintain something and how that affects your org on just a cultural/sustainability level, what the velocity of SaaS allows you, etc.
Running your own infra doesn't have to be full of cruft. And maybe the rolling-your-own approach to certain things is paradigmatic to the way your business works, maybe it isn't. You have to figure out the trade-offs.
Newer, fashionable tech is often decorated with tag lines of "faster, cheaper, better". That's actually not what I care about. Instead, sell me on "recoverable", "debuggable", and "sustainable".
Capitalism isn't without its bugaboos, but the wholesale rejection I hear people making can only come from a place of ignorance.
Yet I'm also aware that it dehumanizes anyone who can't produce value within that model.
Therefore I support attempts to make it inclusive of all human beings, even if that means making the model "less ideal" or "less pure". I find it strange that we somehow have come to value assets over humans. Yes, that means I will loose out on some of the value I earn and I'm ok with that.
I've got a hard time taking an "I'm allergic to capitalism" tweet seriously coming from someone who 1) lists all the ways they participate in capitalism in their profile and 2) makes this statement in the context of their job which depends completely on capitalism functioning.
>but the wholesale rejection I hear people making can only come from a place of ignorance.
You went from "complaining about capitalism" to "wholesale rejection of capitalism". We call that shifting-of-goal-posts-ism. :P
Capitalism > productivity > abundance > social welfare
The /it depends/its complicated/its a grey area/ way of thinking is an essential analysis tool, but the average person can't be motivated towards an ideology (political, economic or social) using that. To me, the most progress is made by adopting a zealous attitude at the beginning and then making major course corrections, rather than pissing about with optimizing via micro adjustments from the start. e.g. Give people unfettered capitalism, and then when you get 13 year old kids in coal mines, you give them unfettered welfare/workers comp for a bit, etc. That way both the negative and positive impact from policies is permanently etched in history.
> Yup, everytime I hear someone complain about feudalism I eyeroll because they clearly aren't "woke" enough to realize that feudalism is the reason they can remain blissfully ignorant of how feudalism supports their blissful ignorance.
> Feudalism isn't without its bugaboos, but the wholesale rejection I hear people making can only come from a place of ignorance.
> So now that we aren't avoiding that we live in and understand our feudalistic society let's be realist and figure out things in perspective.
80% of the Fortune 500 list in the 1960s is gone. Survival is not guaranteed of any of company. So why get so worried about it?
You know why they do it that way? Because the people there decided to.
What's more self-parodying? People on here grousing about the issues of our society, only to lean into more capitalism and VC/startup life?
Or people deciding to bike their food "several miles" for their own reasons?
Capitalism has issues, society has issues, the modern phenomenon of worshipping the wealthy and "self made" has issues. I think it's possible to see those issues and want to address them without decrying the idea or system as a whole as this guy does.
Yup, this is definitely something only a non-technical person would say (or more specifically: something a business analyst cut-and-pasting snippets of advice fed to him by the various tech-oriented randos he happens to know very likely would say).
or whom he has investments or partnerships with...
Someone forgot to remind this guy that Developers suck at running servers. Been a heavy line Unix admin for 16 years now and never have run across a server(s) built/operated/maintained by a developer that was not a steaming pile of garbage.
Not just Etsy, go pick any online marketplace right now, they all are filled with cheap Chinese junk.