This is a chat between Om Malik and Jonathan Heiliger VP, Technical Operations, Facebook.
Jonathan says that hardware isn’t built for the cloud, that all hardware is designed for multi-function use in enterprises. He apparently blasted the chip makers last year and is backing away from that now. He’s saying that Facebook tests performance better than the chip vendors. No kidding, everyone tests better than the chip vendors. I’m a little surprised that they’re talking about this like news. Certainly, PC Mag wasn’t reporting that for the last 20 years, right?
We should focus on massively multi-core chips. We need software written to take advantage of multi-core and the apps we develop do also. Facebook makes full use of multi-core, especially where it makes sense like analytics. They’re big on horizontal scaling and the idea is to have many multi-cores. They started writing apps in PHP because it is easy, but it’s not fast. They had options and wrote hip-hop for PHP so it’s pre-compiled on the web server.
There are apparently 400 million Facebook users.
They systems are constantly evolving. They’re building a data center in Oregon. All of the bullshit (my word) they announced at F8 requires better back end technology. And they like to open source all of their innovations. They’re very proud of building technology to solve the problems they have.
Consumer websites starting today should be built in the cloud and be running really fast. But the cloud isn’t free. You can focus on building your product and probably waste less money on staff. Let someone else worry about the infrastructure and you can focus on the business.
After the business grows, you’ll reach a point where you’re writing a considerable check each month for the cloud services. Plus you’ll have learned more about your own systems that you’ll want to customize them. Can you really customize cloud offerings? When you’re approaching 10’s of millions of customers it’s time to get off the cloud and build your own data center for control, lower costs, and increase performance.
This is a somewhat interesting discussion. The software vendors say that you absolutely need a software solution to speed applications. The hardware vendors say that you absolutely need hardware to speed applications.
App developers are apparently not very good at writing fast code. That seems to be why we need these tools. App teams blame network teams. Maybe we should all work together to provide a solid end user experience. Cisco says that this is purely hardware and network based as an issue. The application aware network can optimize itself.
Simple, transparent, no one size fits all solution.
We had a lively discussion at Structure 2010 about Scaling Databases in the Cloud.
You can view an archived stream of the panel discussion at the Structure website, but for now here are some of the cool things we discussed:
- Is your project appropriate for NoSQL? Start by looking at the data model and the workload and you’ll know what works best for your needs
- NoSQL is not necessarily any better for the cloud than SQL. That’s not a compelling reason to use it.
- Advantages of NoSQL include being designed from the ground up for parallel distributed processing and automated clustering, low latency, in memory caching and concurrency processing
- A major advantage of NoSQL databases are their ability to scale horizontally on commodity hardware
- The ability to recover transparently from hardware failure
- Developers don’t like SQL to begin with so we’re not going to have to fire them all to have them learn NoSQL solutions
- Neo4J says 70-80% of their implementation are in the enterprise and Terracotta says they’re 50-60% in the enterprise
Stay tuned for more NoSQL and Structure 2010 info.