I did read about this a while back when the challenges using EC2 was how not lose a database in case of a machine failure. Luckily it never happened and forgot all about EBS, the persistent disk for Amazon EC2. We went live with a new customer over the weekend and EBS came up all over again for data backup. Quite simple to use it.
Sending files through ftp is a piece of cake, or so I thought with all the commons net libraries around. I had to spend a few hours trying with apache commons net library and finally did it through sun.net.ftp.FtpClient. Below is the full code for anyone who needs it, without all the log messages.
bis = new BufferedInputStream(theFile,1000000);
byte buffer[] = new byte[1000000];
int i;
while ((i = bis.read(buffer)) != -1)
{
bos.write(buffer,0,i);
}
}
Adobe has launched hosted software toolkit (can't think of a better name) to build collaborative applications. You can check it out here at http://labs.adobe.com/technologies/afcs/. Some interesting features which are business agnostic -
An interesting trend in software development - it is becoming similar to the hardware assembly line - like the way we order a Dell computer. It will be interesting to see how easy and seamless integrating the above stuff into an application will be. Add other services from acrobat.com and it is a decent business toolset.
Interesting aspect to tackle after putting applications on EC2 in a live production environment. Our first customer has been live for over 1 year on EC2 and never been down for a single time. We didn't have to reboot the linux server though we had to restart our java processes for upgrades. Touchwood. Database incremental backups happen every minute to S3 and a daily back up at night. This is mostly an enterprise app, so not very stringent requirements on real time failover. Shortly we are going live with a new retail customer facing application - a 24 x 7 uptime requirement. Scalability is not much of an issue as our server is still operating under 65MB with response times under 50ms most of the time. Failover is a key aspect for us - passive or active, active being the preferred option.
Ant (http://ant/.apache.org) is embodies simplicity, extensibility and never in your way software. A lot of developer tasks can be automated with this tool. For quite some time we used it to just build a WAR file and deploy it Tomcat on our desktop machines. Deployment to server used to be a one hour task. Build with the server configuration files, ftp to server, extract static stuff to apache, re-deploy the database and recycle the server.
In a traditional server centric architecture UI is built on the server via php scripts, jsp or asp. So the UI is built and all that html travels back to the browser over the network. Ajax reduces this traffic by updating portions of pages on the browser. CDN benefits these architectures in 2 ways:
Had been checking out Amazon's CDN solution - CloudFront for one of our solutions. Amazingly easy to setup and run. Check out the product page at http://aws.amazon.com/cloudfront/.Very simple to get up and running: