<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Stepping back for a moment, I think the two main benefits of supporting the EC2 API are:<div><br></div><div>- Leverage existing 3rd party tools that talk to EC2 API (e.g., euca2ools, boto, Elasticfox/Hybridfox)</div><div>- Reduce the cost of switching to OpenStack for EC2 users</div><div><br></div><div>I agree with Soren that these benefits are lost if OpenStack supports the official EC2 spec but breaks compatibility with the existing tools and scripts people already have. Better to not have an EC2 API at all than to lose new users because they think OpenStack is "broken" when their EC2-based tool fails to work.</div><div><br></div><div>While the comparison with Wine is apt, I think an even more relevant comparison would be Microsoft trying to stay compatible with third party applications that worked on previous versions of Windows, even ones that broke the API but still worked (See Raymon Chen's excellent "The Old New Thing" blog for the Herculean efforts that MS developers had to put in to accomplish this <a href="http://blogs.msdn.com/b/oldnewthing/">http://blogs.msdn.com/b/oldnewthing/</a>). </div><div><br></div><div>I don't think that the OpenStack project should commit to maintaining EC2 compatibility at all costs, only as long as the benefits outweigh the development costs. In particular, if Amazon deliberately started making changes to break the API, that would be a good time to consider dropping support.</div><div><br></div><div><br></div><div>Lorin</div><div><span class="Apple-style-span" style="font-size: 12px; ">--</span></div><div><div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><span class="Apple-style-span" style="font-size: 12px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Lorin Hochstein, Computer Scientist</div><div>USC Information Sciences Institute<br></div><div>703.812.3710</div><div><a href="http://www.east.isi.edu/~lorin">http://www.east.isi.edu/~lorin</a></div></div></span></div></span></div></span></div></div>
</div>
<br><div><div>On Jul 8, 2011, at 6:59 PM, Jorge Williams wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>HTTP, SMTP, and IMAP and even ANSI C are all open standards.  The specs were developed and continue to be developed in the open -- and both clients and servers (proprietary and open source)  are very compliant to them.  I'd like to propose that our APIs take the same approach. <br><br>You are proposing something different than simply implementing HTTP or SMTP.  What you are proposing that we try to achieve with EC2 what the  Wine folks want to achieve with the Windows API.  It's a different problem. It's a much harder problem because it involves reverse engineering and it's prone to more risk.<br><br>-jOrGe W.<br><br>On Jul 8, 2011, at 3:05 PM, Soren Hansen wrote:<br><br><blockquote type="cite">One thing that keeps coming up in this discussion is the issue of<br></blockquote><blockquote type="cite">"being tied to an API we don't control".<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">People... We're *fantastically* privileged that we get to define an<br></blockquote><blockquote type="cite">API of our own. Lots and lots and lots of people and projects spend<br></blockquote><blockquote type="cite">all their time implementing existing (open, but completely static)<br></blockquote><blockquote type="cite">protocols and specifications.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Every HTTP, SMTP, and IMAP server on the planet does it. Every single<br></blockquote><blockquote type="cite">C compiler on the planet does it. All of these are things that have<br></blockquote><blockquote type="cite">been defined a long time ago. You can have all the opinions you want<br></blockquote><blockquote type="cite">about IMAP, but that doesn't mean you can just implement it<br></blockquote><blockquote type="cite">differently. At least not if you expect people to support your stuff.<br></blockquote><blockquote type="cite">When there are ambiguities in the spec, sure, you can insist on taking<br></blockquote><blockquote type="cite">one path even though everyone else has taken a different one, but<br></blockquote><blockquote type="cite">don't expect the rest of the world to change to accommodate you. If<br></blockquote><blockquote type="cite">you want to do offer something better by doing something differently,<br></blockquote><blockquote type="cite">offer it as an alternative that people can switch to once you've won<br></blockquote><blockquote type="cite">them over. Don't make it a prerequisite.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">There's a golden rule when implementing things according to an<br></blockquote><blockquote type="cite">existing specification: Be very conservative in what you deliver, and<br></blockquote><blockquote type="cite">be very liberal in what you accept. Otherwise, people. will. use.<br></blockquote><blockquote type="cite">something. else. period.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">-- <br></blockquote><blockquote type="cite">Soren Hansen        | <a href="http://linux2go.dk/">http://linux2go.dk/</a><br></blockquote><blockquote type="cite">Ubuntu Developer    | <a href="http://www.ubuntu.com/">http://www.ubuntu.com/</a><br></blockquote><blockquote type="cite">OpenStack Developer | <a href="http://www.openstack.org/">http://www.openstack.org/</a><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">Mailing list: <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br></blockquote><blockquote type="cite">Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br></blockquote><blockquote type="cite">Unsubscribe : <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br></blockquote><blockquote type="cite">More help   : <a href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a><br></blockquote><br>This email may include confidential information. If you received it in error, please delete it.<br><br><br>_______________________________________________<br>Mailing list: <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>Unsubscribe : <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>More help   : <a href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a><br></div></blockquote></div><br></div></body></html>