I blog a lot about various topics near and dear to me. So I thought I’d turn the tables a bit, and offer the microphone up to readers. Do you have questions on any of these topics? Feel free to drop a note in the comments.
Business & Consulting
Are you a freelancer or independent consultant? Struggling with some part of the business? Or are you a CTO or Director looking to hire short term talent? Glad to offer up advice and suggestions, just fire away!
The goal of every hypergrowth company, from Pinterest to Facebook, Zynga to FourSquare. How do they achieve it? What architecture decisions make those applications grow effortlessly to meet user demand? I’m sure you have some questions!
It’s on everyone’s mind, especially in the context of deploying in the cloud. How best to achieve good performance? Are you struggling with something specific?
We want our systems to be available 24x7x 3million days a year! Is it feasible? What should we aim for in the real world? Does our technology mix and hosting factor into the equation? Ask away.
I’ve worked with a lot of startups over the years. From the dot-com hey days to the more sober field we see before us today. Many struggle with similar challenges. Am glad to offer up comments and suggestions from what I’ve learned over the years.
What really works in the cloud? Is Amazon EC2 the only way to go? What are the pros and cons of going with a Rackspace type provider that also has great service and the physical data center option? How will I get good performance? These and other questions are on everyone’s lips. Feel free to comment if you have some concerns.
You’ve heard all the buzz and spiel about the cloud, and there’re good reasons to want to get there. On-demand compute power makes new levels of scalability possible. Low up front costs means moving capital expenditure to operating expenditure and saving a bundle in the process. We won’t give you anymore of the rah rah marketing hoopla. You’ve heard enough of that. We’ll gently play devil’s advocate for a moment, and give you a few things to think about when deploying applications with a cloud provider. Our focus is mainly on Amazon EC2.
You might also be interested in a wide reaching introduction to deploying on Amazon EC2.
- Funky Performance
One of the biggest hurdles we see clients struggle with on Amazon EC2 is performance. This is rooted in the nature of shared resources. Computer servers, just like desktops rely on CPUs, Memory, Network and Disk. In the virtual datacenter, you can be given more than your fair share without you even knowing it. More bandwidth, more CPU, more disk? Who would complain? Well if your application behaves erratically, while you suddenly compete for disk resources you’ll quickly feel the flip side of that coin. Stocks go up, and they can just as easily come right back down.
Variability around disk I/O seems to be the one that hits applications the hardest, especially the database tier of many web applications. If your application requires extremely high database transaction throughput, you would do well to consider physical servers and a real RAID array to host your database server. Read more about IOPs
- Uncertain Reliability – A Loaded Gun
Everybody has heard the saying, don’t hand someone a loaded gun. In the case of Amazon servers, you really do load your applications onto fickle and neurotic servers.
Imagine you open a car rental business. You could have two brand new fully reliable cars to rent out to customers. Your customers would be very happy, but you’d have a very small business. Alternatively you could have twenty used Pintos. You’d have some breaking down a lot, but as long as you keep ten of them rented at a time, your business is booming.
In the Amazon world you have all the tools to keep your Ford Pintos running, but it’s important to think long and hard about reliability, redundancy, and automation. Read more about Failures, Lessons & the Chaos Monkey
- Iffy Support
Managed hosting providers vary drastically in terms of the support you can expect. Companies like Rackspace, Servint or Datapipe have Support built into their DNA. They’ve grown up around having a support tech that your team can reach when they’re having trouble.
Amazon takes the opposite approach. They give you all the tools to do everything yourself. But in a crunch it can be great to have that service available to help troubleshoot and diagnose a problem. Although they’re now offering support contracts, it’s not how they started out.
If you have a crack operations team at your disposal, or you hire a third party provider like Heavyweight Internet Group Amazon Web Services gives you the flexibility and power to build phenomenal and scalable architectures. But if you’re a very small team without tons of technical know-how, you may well do better with a service-oriented provider like Rackspace et al.
A few more considerations…
- Will your cloud provider go out of business?
- Could a Subpoena against your provider draw you into the net?
- Since you don’t know where your sensitive data is, should you consider encryption?
- Should I keep additional backups outside of the cloud?
- Should I use multiple cloud providers?
- Should I be concerned about the lack of perimeter security?
We’ve all seen cloud computing discussed ad nauseam on blogs, on Twitter, Quora, Stack Exchange, your mom’s Facebook page… you get the idea. The tech bloggers and performance experts often pipe in with their graphs and statistics showing clearly that dollar-for-dollar, cloud hosted virtual servers can’t compete with physical servers in performance, so why is everyone pushing them? It’s just foolhardy, they say.
On the other end, management and their bean counters would simply roll their eyes saying this is why the tech guys aren’t running the business.
Seriously, why the disconnect? Open source has always involved a lot of bushwacking…
I’ll be one of two speakers at the next Seattle Web Technology Bi-Weekly Meet up on Nov 21 at the Citrus Lounge.
They’ve sexed it up a little by calling it a face-off between Windows Azure and Amazon EC2 (no prizes for guessing which side I represent) but really it’s going to be a primer on the Platform-as-a service and Infrastructure-as-a-service models. I expect some lively discussions during Q&A.
I’ll be covering questions such as what cloud computing is, what EC2 provides, what is datacenter automation and the differences between a standard datacenter liks Rackspace and Amazon EC2. Meanwhile you folks who’ve large investments in say EXCHANGE servers will be able to pose questions to Marcus Wendt of Composite C1.
It’s Amex sponsored and you’ll get a ticket good for a beer or a Citrus signature drink with which you can get cozy and warm up by the fireplace while Marcus and I are beamed through a flat screen with our respective presentations. If you’re in Seattle drop in. I hope to see you or at least, hear you there.
Saw this awesome infographic by Cloud Spectator on twitter today. A great snapshot of the expected growth in Cloud Computing. If the Cloud Computing market was stacked up against world economies it would be the 51st largest in the world with massive inequality – Amazon has half the share.
Amazon’s spot market for computing power is set up as an open market for surplus servers. The price is dynamic and depends on demand. So when demand is low, you can get computing instances for rock bottom prices. When you do that you normally set a range of prices you’re willing to pay. If it goes over your top end, your instances get killed and re-provisioned for someone else. Obviously this wouldn’t work for all applications, like a website that has to be up all the time, but for computing power, say to run some huge hedge fund analytics, it might fit perfectly. Continue reading
Oracle starts charging for MySQL Add-ons
Exciting news, Oracle just announced commercial MySQL extensions that they’ll be offering paid extensions to the core MySQL free product.
To be sure, this has raised waves of concern among the community, but on the whole I suspect it will be a good thing for MySQL. This brings more commercial addons to the table, which only increases the options for customers. Many will continue to use the core database product only, and avoid license hassles while others will surely embark on a hybrid approach if it solves their everyday business problems. Continue reading
1. Object Relational Mappers
Software development has always made use of libraries, off-the-shelf components that are shared between different projects. These allow you to stand on the shoulders of others and build bigger things. Frameworks do the same thing, they provide a context from which to build on. Ruby on Rails for example provides a great starting framework from which to build web applications, managing sessions in an elegant way. Continue reading
When migrating to the cloud consider security and resource variability, the cultural shift for operations and the new cost model. Continue reading
1. This page or area of the website is very slow, why?
There are a lot of components that make up modern internet websites, and a lot of places to get stuck in the mud. Website performance starts with the browser, what caching it is doing, their bandwidth to your server, what the webserver is doing (caching or not and how), if the webserver has sufficient memory, and then what the application code is doing and lastly how it is interacting with the backend database. Continue reading