The Amazon Technology Platform
Don420 writes "Jim Gray has an interview with Amazon CTO Werner Vogels for ACM Queue. It is filled with a lot of details about the Amazon architecture that we have not seen before: 'If you hit the Amazon.com gateway page, the application calls more than 100 services to collect data and construct the page for you.' But also quite a strong statements about developing software at Amazon: 'Developers of our services can use any tools they see fit to build their services. [...] Whatever tools are necessary, we provide them, and then get the hell out of the way of the developers so that they can do their jobs. [...] Developers are like artists; they produce their best work if they have the freedom to do so, but they need good tools.'"
After 25 years, I finally figured out how to impress high-school girls.
We all know how intimidating it can be to talk to high-school girls. I used to be too afraid and self-conscious to even make eye contact for more than a couple of seconds with the pretty ones. No matter how hard I tried, I couldn't figure out how to impress them. But now, all that has changed. I can look at any high-school girl for as long as I want without getting nervous. I can have great conversations with them about all kinds of subjects. In fact, I feel totally comfortable around them--because after a quarter-century of racking my brain and studying them closely, I finally know exactly how high-school girls like to be treated.
Take it from me, if you want a high-school girl to like you, the most important thing you can do is listen. When a sophomore is telling me about her favorite music, I don't go on about the time I partied backstage with the Little River Band, or what a great song "Rosanna" is. I've found that if I give the girl the lead in a conversation, I learn something from her--like what she and her girlfriends are planning to do that weekend. Then I've got an opportunity to offer them a ride there, because if there's one thing high-school girls love, it's a guy with a set of wheels. Especially a convertible. Most boys their age can't afford anything nice yet, but I've got a career, and I paid cash for my '87 LeBaron. And a car like that never fails to turn a few heads around a high-school campus.
The mall is a really great place to meet a high-school girl if you don't have any classes with them. Girls really respond to confidence, so it's important that when you see one you like there, you approach her directly. Even if you're feeling shy on the inside, fake it. If you just lurk around the store where she likes to shop, it's going to make her uncomfortable. I learned that the hard way back in the '80s.
Just walk up to them and introduce yourself. It sounds silly, but it works. So much is about body language, so if you stand up straight, look them in the eyes, and take control, even the most unapproachable ones will suddenly seem innocent and vulnerable.
High-schoolers are dying for someone to compliment them on their hair, their makeup, their bodies. Remember, most girls at that age, no matter how cool they try to act, are still insecure. So a little attention goes a long way. I remember the very moment I figured that out, just before taking a redheaded 11th-grader to see Reality Bites, I knew I had really turned a corner.
Talking to girls is a lot less daunting once you let go of the fear of rejection. Sometimes it doesn't matter how nice I act or how much alcohol I buy for them and all their friends, some girls aren't into me. And that's okay: Some people just never click. Everyone will get rejected at some point--I just move on to the next one, and if she doesn't like me, it's just as well, because I want to be with that special high-school girl who likes me for me.
It's all just part of growing up.
Also, I can't stress enough how important it is to be supportive and aware of her interests and extracurricular activities. These days, when there's a girl I like, I won't just hang around across from the school waiting to catch a glimpse of her. I'll go to her volleyball team practice, or arrange to take her to her track meets, just to let her know I'm interested. And when the time is right to ask her out, trust me: She remembers all those times I was there for her when other guys weren't.
When you do finally score that date, you just have to stay cool and be yourself. If you get nervous, the girl gets nervous, and then the whole date's in trouble. Girls' interests are remarkably similar, so if you take them to the movies or ice-skating, you're fine. If I really want to impress a girl, I take her to the roof of this motel my buddy runs for a little stargazing. But sometimes it's just as romantic to sit in her parents' den. I try to get some alone time with her, but I never
Does it run Linux?
There is nothing interesting going on at my blog
You're still hitting on high school girls, even though you're 25 years older than them? That's a bit wrong....
Developers are like artists; they produce their best work if they have the freedom to do so
Kind of like Linux and collaborative OSS in general, right?
As opposed to Microsoft's approach of having a few Marketing/PR guys throwing half-assed moronic requests at a bunch of Indian slave-wage interns...
'If you hit the Amazon.com gateway page, the application calls more than 100 services to collect data and construct the page for you.'
and this a good thing ?
Having unlimited development budget is definitely THE good thing I sometimes miss myself ;)
Marcin
I wonder if the actual developers/coders see it that way themselves. Sadly, CxO's often have a warped view of how things work "on the floor".
Black holes are where God divided by zero
I've developed similar systems and I've never "invented" a thing. Put that in your one-click patented pipe and smoke it!
Mod me offtopic if you wish. My last order with Amazon (co.uk) they broke it into two orders which meant I ended up paying more delivery charges. I wrote to them about it, and despite mailing more then once all I ever got back was a form mail saying that he hadn't charged me the extra (yet my CC said otherwise). Still awaiting an answer to that.
Then I find out they no longer sell electronics to Ireland, although they will send to N.I. I sent a mail on that (twice) to ask why this was and both times I got a form mail back just pointing me to the webpage that just says they don't ship there.
Very frustrating. Soon as I find a better online bookstore I'm off to that.
Of course, Amazon can't be around for much longer at the rate they're cutting it down.
"Developers are like artists" is exactly what these primadonnas needed to hear. No, developers are nothing like artists. Creating something that didn't exist before doesn't make you an artist. Builders create something new every day. Developers are more like inventors if you give them a free hand in what they develop, but most of the time developers are very much like builders: They create what you ask them to create.
Or maybe I got you wrong and you meant that developers are like artists: Poor, starving, living for their work and only valued once they are no longer available.
Sure anybody need good tools to produces something exceptional. But what can you do if the needed tools aren't available? What can developers do if they aren't happy with their tools or their environment?
For users the answer is easy, they simply switch to something different, but for developer it's not. You usually first have to get a lot of knowledge which needs time. But one does never get more time!
So developers have to think in advance sometimes several years. This means constantly be on the edge of the available knowledge. Tools can certainly help but nothing prevents you from getting the knowledge in advance.
O. Wyss
See http://wyoguide.sf.net/papers/Cross-platform.html
You don't have to jump through Amazon's hoops to get overcharges resolved. You might want to check with your CC issuer but usually as long as you have proof (e-mail correspondance counts) that you tried to resolve the situation, you're in the right.
I was overcharged twice by Amazon and each time they insisted that there was absolutely no way to refund the difference except in store credit or a check. After I sent them one final email saying I was going to dispute the charge with my CC issuer and let them handle it, everything magically resolved itself within two days and Amazon credited my CC with the amount they had overcharged.
Really? So then the question would be: In which other areas of artistic expression would you like to be able to take out patents?
Well *Some* developers are like Artists, others are more like Naïve painters with unlimited budgets for colors and huge canvases.
839*929
While I can't confirm this by any means, I have heard from others that Haskell and Standard ML are often the languages of choice at Amazon.
Supposedly they're chosen because they're strongly typed, resulting in many errors being caught at compile-time, rather than runtime. For a production system such as that used at Amazon, it of course makes sense that the developers would choose to use tools and languages that maximize the quality of their software.
...but at the end of the day it's the developer's talent and experience that tell most of the picture. It sounds like Amazon do let their developers decide (to a large extent) how their products are going to work.
The transition from the monolithic Obidos to the current SOA makes me wonder how exactly that part of the system works. Though it's not (that I could see) explictly stated, it certainly seems that adding scalability was a long and painful process. Planning for future developments like this is something that developers tend to be much better at than managers - so I wonder whether the developers didn't think about including scalability hooks in their initial efforts, whether they decided (back in the early days) that it wasn't worth it, or whether they wanted to but were told not to bother.
All said, I do applaud the public stance that Vogels is taking in his attitude. If more CxOs shared it, we'd likely have beeter-designed systems all over the shop. You hire the developer because (s)he's good at developing - so let them go to it!
My, that was a yummy potato!
My father always said it was a poor craftsman who uses his tools as an excuse.
Actually, I'll let Wikipedia define "service" in this context.
It's not as if they're calling the Secret Service, the Internal Revenue Service, Selective Service, or the Postal Service to "collect data."
Could it be that Ireland and Northern Ireland are different countries? Being on the same land mass has nothing to do with it.
Yes.
You seriously think a web page its the pinnacle of large data access?
I work in a bank where we process terabytes of data a day, and no we
don't use 100 services everytime we need to access a load of data. We
use a few f*ck off big RDMBSs and some Big Iron.
Don't make out that serving up a web page is a big deal , compared to
real hard code data processing its mickey mouse.
application calls more than 100 services to collect data and construct the page for you.
No wonder it takes so long to load
He who knows best knows how little he knows. - Thomas Jefferson
and then get the hell out of the way of the developers so that they can do their jobs. [...] Developers are like artists; they produce their best work if they have the freedom to do so, but they need good tools
gee, i wish my boss(es) was/were like that
just so we didn't have to end up doing
half-assed jobs with half-assed resources
ending up in half-assed products...
(and maybe half-assed revenue?)
oh well...
GUI == Graphical User Interference
Developers of our services can use any tools they see fit to build their services.
I wonder how they avoid the maintenance nightmare which is having multiple application components done using various obscure technologies/tools and the person that did it leaving the company and somebody else having to maintain/extend those application components?
Do they standardize their build tools, require good documentation on the service implementations or just overwork the poor sods that have to do maintenance to death?
Wow their CTO is a lot more in touch with development than our CTO... :(
Of course they shouldn't be telling you lies, but if you say, "Ship as soon as possible," then they will do this (and charge you for it). If you say, "Ship in one shipment," then they will hold everything until its all ready and only then will they send it. Generally, at least.
You're special forces then? That's great! I just love your olympics!
I had it flagged as ship in one shipment, which was my contention. I am aware of the ship as soon as possible.
However they are all in the EU and there is no restrictions shipping electrical goods from any country in the EU.
I can even buy electrical goods from other online stores in the UK. So they have another reason for it.
In other occasion, I ordered a book by priority shipping and more than a week later I hadn't received it. I sent them an email and they answered that there had been a robbery at an airport warehouse, they sent me another book by priority shipping and, since I hadn't received the first book in time, they charged me only the price for standard shipping. The difference was reinbursed by the credit card company, it was discounted from my next CC payment.
they no longer sell electronics to Ireland, although they will send to N.I.
I don't live there, but, AFAIK the United Kingdom of Great Britain and Northern Ireland is not the same country as Ireland, although, according to what I have seen quite often in the news in the last 35 years or so, there are people who are not satisfied with that. Amazon's policy varies from country to country, the legislation in Ireland must present some difficulties for shipping electronics there.
'nuf said.
"This fast response to new ideas is enabled through the loosely coupled services model, both in technology and at the developer and operations level. From the outside, the services in our platform may appear chaotic, but chaotic in a good sense--in that we try not to impose a rigid structure on the different functional pieces, but we expect there to be order when looking at it from a different dimension. Thinking about this whole system as a big deterministic system would be unrealistic. Life is not deterministic, and a large-scale distributed system such as Amazon has many organic and emerging properties that can come to life only if you do not constrain it."
Screw Skynet. Our new overlords will come from Amazon.
" WV Different groups at Amazon interact with academia. Often a service needs to develop new revolutionary technology from scratch, and they will look at who in the research world worked on these topics before and who can help out.
As an example, at the infrastructure level we are building several systems that are a synthesis of some of the very exciting decentralized computing work that has rocked the operating systems and distributed systems world in the past few years. But we are finding that much of the academic technology is just not complete enough to be applied in real-life systems, as incomplete assumptions were often made. This may have been OK in an academic setting as it allowed for technology evaluation in isolation, but it just doesn't work in real-world engineering. The limitations of the physical world mean you have to work under certain constraints, regardless of how you would like it to be.
This requires us to do a lot of advanced development to fill in the gaps that these research technologies left behind. As a reward for this extra effort, we do end up with technologies that are extremely robust and are simple to deploy and manage."
Note two things. Academic research (public domain) usually isn't ready for real-world use. And hence isn't as useful as people think.* Note also the value-add that's not public domain even though it's based upon it.
*Except to others likewise doing work that's not ready for the real-world.
This interview, while I'm sure sincere on the part of the CTO, comes across as a recruiting pitch. Obvious fallacies:
"Developers themselves know best which tools make them most productive and which tools are right for the job."
This sort of development mishmash depends on the developers never leaving (which most do after 2-3 years). Maintenance is, at best, nightmarish and leads to a patchy (with apologies to Apache) mess. FWIW, most developers seem to jump into coding right away with no thought for architecture or design.
"Whatever tools are necessary, we provide them, and then get the hell out of the way of the developers so that they can do their jobs."
Hmm, so the developers manage themselves. What a great job being a manager must be there.
"Developers are like artists; they produce their best work if they have the freedom to do so"
In my experience, most developers are nothing like artists and more closely resemble petulant, undisciplined children. Often they ignore the most basic principles of good software development (like version control, automated build and test suites, documentation, etc.) because "those are boring".
"I think part of the chaotic nature--the emerging nature--of Amazon's platform is that there are many tools available"
Wow, CTO speak at its finest to explain the disorganized nature of the organization.
"As a result of this principle, we have many support tools that are of a self-help nature."
See my point above about documentation being boring.
Comments I've heard from people who work at Amazon:
Your mileage may vary.....
Anyone want to tell the story of how certain amazon developers insisted that TIBCO's multicast was the ultimate messaging technology and could scale to high message rates despite the fact that it was junk and the vendor a fraud?
More amusing was their pushing that "technology" after several network-wide outages.. It was also amusing to watch the company buy a certain developer's tibco-specific library (the FOOL library) which turned out to not be a library at all but an incomplete shell. What did they pay for that crap, $140K?
These CTO fluff pieces are a bunch of hype.
copy a 17 meg file duty to be a big
http caching makes most of it run fast. Only a few personalized services are non-cacheable and need to be executed on a specific user request.
What Amazon is describing is their SOA and their efforts to make it a generic, base platform for a large multitude of services. The idea of having a service grid, where services are easily developed, deployed, and work seemlessly together, has been gaining a lot of momentium in the last few years. A number of companies are posed to shift the playing field from an ASP model to a network of service.
The article is impressive in hearing how Amazon successfully migrated from their legacy platform to a SOA. They may become a real contender in this emerging market, considering that they already have the user base and are quickly maturing a powerful platform. The other major contenders are Rearden Commerce and Salesforce.
Rearden Commerce, the company I work for, has developed a very pure SOA. They are currently targetting enterprise customers in order to gain the critical mass and user adoption necessary to succeed, which can be very difficult for a startup working in the consumer market. Their goal is to provide a web-based personal assistent that you can use to book plane tickets, dinning, etc. and all coordinated with your peers and working with your calendar and notification preferences (email, SMS, voice). It looks as if Amazon is on a similar path, so it will be interesting to see what happens in the next few years.
After the critical mass and the base platform are available the next big issue is getting 3rd party developers on the platform. That's something that everyone seems to be working on, which is why we're seeing so many AJAX and other toolkits emerging from companies like Yahoo, Google, and Zimbra. Imagine another company's product integrating just as neatly with Gmail as Google Calendar, yet staying very decoupled. That's part of the promise, and is the next big hurdle for the SOA leaders even though their platforms are still quite fresh and new.
"Open Source?" - Press any key to continue
We have worked with Astaro support, and they have narrowed down the problem and sent the information to Amazon, but there has been no response yet.
In researching the issues, I have found posts all the way back to 1999 regarding incompatibilities with Squid and Amazon. Both ends have worked on the problem, but there has not been a 100% successful fix.
The issue only seems to affect far less than 5% of squid users, and even then it's sometimes inconsistent. So, it's almost impossible to fix because it's so hard to demonstrate. We can repeat the problem consistently, but it is the first case Astaro has had, and their systems are pretty much identical across the board, so it might even be a hardware compatibility issue with specific NICs. Who knows.
Problem description
Amazon employee post
If anybody has had problems in the past and was successful in resolving them, please reply!
Thanks,
Brian
Is the other half of your ass posting on slashdot, then? ;)
You better watch out, there may be dogs about . .
Developers are like artists; they produce their best work if they have the freedom to do so, but they need good tools.
if only all IT managers knew this.
"Are self-describing XML documents flowing around inside your service-oriented architecture?"
Being "different countries" (although they aren't; the two parts of Ireland are different states but not different countries) has nothing to do with it either. I've bought electronics from them in the past, before they implemented this policy. As far as I know there has been no change in the constitutional status of the North since then.