views:

261

answers:

5

I am talking about several thousands of flash animations etc. Naturally there is lot of file management.

How do people manage these kind of assets like DAM, CMS?

Best practices for swfs, images, fonts to keep the size to minimum. Compression scheme?

What about delivery? What kind of servers are needed for this scale?

+1  A: 

Store all the files on a DAM like Artesia for managing the flash files. Next, we built all our apps to integrate into the DAM for delivery.

Thanks, but looking for a concrete process from begin to end.
CodeToGlory
A: 

Just a thought, not a complete answer:

You might want to consider hosting "in the cloud" like the solutions from Amazon (commercial) and Google (free to start). These services offer easy scalability as your resource needs grow.

Also, as far as I know, Flash SWF files are already compressed, but there are some optimizers like this one (commercial).

Cameron
A: 

SWF files are going to be fairly small unless they have extra library items that they don't need in the fla they were exported from. They are also zipped (in most cases) so I wouldn't worry about the files themselves. My company serve maybe 100k SWFs a day and do it on 3 web servers running IIS behind a load balancer. The CPU on those servers never goes very high (less than 10% for sure). We use one shared storage device to serve all the files from over SMB. It works rather well.

Jon
A: 

I always try to keep the ActionScript in a .as file and #include that file into the frame that the script is needed. This makes it easier to track the script changes in a version control system. Otherwise, if you embed the ActionScript in the .fla, you can't diff file changes between versions AFAIK. I use TortoiseSVN for version control.

zooropa
+2  A: 

Your question is quite broad and difficult to answer since we do not know any of the specifics. However, there are a number of tools available to you that could potentially make your live easier depending on what you're trying to do.

Concerning Flash/Actionscript, there is quite a plethora of tools available to make your live easier, especially in the open source space. E.g. you can have the server generate swf's on the fly depending on what the user is requesting. This way you don't have to pre-generate every swf up-front. Based on data stored in a database you can use a server-side script that will generate an XML document that is then fed to a tool called swfmill. Swfmill is basically a command-line compiler that takes a description of a swf in the form of an XML document as input and produces a swf as output. Swfmill doesn't do script (logic) though, it will however let you embed fonts, bitmaps, vector art etc.

Then there are MTASC (AS2) and Haxe. Both are command-line compilers that can produce swf files. MTASC is build around ActionScript 2 whereas Haxe is it's own language and very similar to Actionscrip. Again, based on the request to the server you can even generate Actionscript/Haxe on the server, compile it and inject it into a swf created by swfmill to then serve it to the user.

Use version control and scripted builds. On large systems it's a good idea to have scripted builds. Ideally there is one command that can rebuild the entire system. Try to avoid any manual interactions, it will go wrong during times of pressure. There are software systems that can help you with this like Cruise Control.

Again, I don't what you're trying to accomplish so I can't be more specific.

In terms of availability you will have to dive into the world Grid and Cloud Computing. This is a black art that needs its own treatment. As suggested elsewhere, you might want to ask more specific questions on ServerFault. In the meantime however, check out highscalability.com. They have some really interesting articles in their Real Live Architecture section that discusses how Digg, eBay, YouTube and many more websites have been made to scale under high pressure.

Good luck!

Luke