On Wednesday, April 30, 2014 5:17:40 AM UTC+1, cdemorsella wrote:
>
>  
>
>  
>
> *From:* [email protected] <javascript:> [mailto:
> [email protected] <javascript:>] *On Behalf Of *Jason Resch
> *Sent:* Tuesday, April 29, 2014 8:08 AM
> *To:* Everything List
> *Subject:* Re: anyone super-geek here?
>
>  
>
> I work at a company who's primary business is making large-scale private 
> cloud storage systems, supporting both Amazon's S3 and OpenStack 
> interfaces. While OpenStack has the advantage of being more open, Amazon's 
> S3 protocol seems to have a larger mind share, and more traction as far as 
> becoming a de facto standard. If you are developing client-side 
> applications against cloud APIs, I think you will find the S3 API more 
> powerful and better designed and thought out than the Openstack API, but 
> for simpler use cases that just involve read, write, delete, etc. there's 
> very little difference between them.
>
> I think Chris's comment below is particularly good advice. You ought to 
> build an abstraction layer that sits between your application logic and the 
> storage layer such that in the future you can more easily transition to 
> other APIs should the need or desire arise.
>
>  
>
> I would also add that doing so is a lot easier when first building a 
> system. After dependencies creep through a code base it becomes 
> increasingly difficult to retrofit an abstraction layer into a body of 
> code. Believe me I know, I have tried and seen a lot of other attempts. 
> Have worked with some code for some very large software companies that is a 
> forest of pre-processor commands that make it almost impossible to follow 
> the code through the forest of #ifdefs, #elif, #defines, #endif directives 
> AND_A_WHOLE_BUNCH_UGLY_LONG_STRINGS… in this one instance I believe they 
> still struggle with the massive bleed through of dependencies throughout a 
> very large code base. Once a body of code becomes inherently coupled by 
> dependencies it can become impossible – in practice – to achieve loose 
> coupling. On the other hand sometimes strong dependency makes perfect 
> sense, but for anything that is peripheral to the core function of the 
> software it often makes sense to emplace abstraction layers early on in the 
> life-cycle. 
>
> It is a case of do it now; or risk not being able to do it later… 
> architecting an abstraction layer is also an opportunity to reflect on 
> actual requirements and what kind of models and system topologies make 
> sense. It can lead to better design over all.
>
> Chris
>
>  
>
> Jason
>
>  
>
> On Mon, Apr 28, 2014 at 8:03 PM, 'Chris de Morsella 
> <[email protected]<javascript:>>' 
> via Everything List <[email protected] <javascript:>> wrote:
>
> I looked at it a while back and of the various open source cloud 
> initiatives it looks like the one best positioned to succeed also because 
> it is heavily backed by Rackspace -- a large hosting, col-location service 
> based out of Texas. 
>
> My advice though, whatever cloud solution you go with would be to try as 
> much as possible to abstract the specific bridge code behind an opaque 
> interface that cleanly separates it from bleeding out into other code. 
>
> This will help to isolate this layer from other layers in your code. In 
> general an extra layer of indirection is almost always worth it if it can 
> decouple responsibilities and functions. Clean separation is one of the 
> keys to managing mushrooming complexity as code grows and evolves over time.
>
 
Alberto, Chris, Jason, cde : I was grateful for your comments which were 
very helpful. I'll pass drinks back if anything changes as a result. Many 
thanks"!

-- 
You received this message because you are subscribed to the Google Groups 
"Everything List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/everything-list.
For more options, visit https://groups.google.com/d/optout.

Reply via email to