I am a big fan of using Subversion for things other than just versioning code. In the past I have used SVN to manage configuration files across many servers. Making it easy to deploy and (if needed) roll back changes. It is also a big help on development servers for PHP developers to commit changes and see them live on the development server. This is easily accomplished using SVN hooks. There are plenty of HowTos on this topic if seeking that information.
Now that I am up to my eyeballs in Amazon Web Services I am looking to use SVN to help me leverage the new found power of the cloud. Now I am not saying it is a good thing to use SVN for things other than code versioning. But it has always worked for me in many other ways as well.
Some of the things I am thinking of using SVN:
- Update DEV web server using hook scripts for devs to see changes to trunk.
- Maintain Apache and other config files for AMIs.
- Maintain code repository for versioning along with take advantage of S3 for backup and processing power of EC2.
This is a work in progress so I am looking to perfect the design to my liking soon.
I have been working on some new projects since leaving my last job about 6 months ago. One is to build an entire infrastructure that is highly available and redundant. With Amazon Web Services this is a snap and almost makes my job obsolete. With EC2, S3, EBS, and CloudFront you can build a scalable solution with dependable backups with ease. My goal now is to also use AWS to create an intranet for the company. I have not found much on this topic so I ma taking the time to document it here. My ideas so far:
- Use Fedora Directory Server as main LDAP solution. This can be used with EBS (Elastic Block Storage) with striped volumes to store the LDAP data. Along with having redundant multi-master replication geographically depending on where the EC2 instance is set.
- Subversion server using EBS for storage. Using EC2 for something along the lines of SVN is a good use since it speeds up performance. Along with having the backup ability of EBS and EBS Snapshots
- Twiki as documentation for intranet.
- SugarCRM for customer relationship management which will include project management and bug tracking.
- S3 for backing up users data automatically. This is helpful since it is a telecommuting company. Using a tool like JungleDisk or similar.
- The DEV and Staging environments will also be on AWS with same Amazon Machine Images (AMIs) as the production environment.
That is all I have so far I will update as the project comes along.