I am still in the midst of building out a internal infrastructure and tools for a client that will utilize a virtual office with everyone telecommuting. I have been working to implement open source solutions for the company for one being that the company is very open source driven. But more importantly there is the cost issues involved in getting a company off the ground. So after much thought of unique ways to establish good information exchange when all the employees work from home I came up with a few ideas. The bonus for me is you have a clean sheet of paper to start the employees off on. Following this concept I wrote in my last post about using WordPress, Prologue Theme, and a few plugins to create an internal Twitter clone. So as my next step I have installed GetBoo to allow employees to bookmark internally. GetBoo has the ability much like Delicious to tag links and make links private. One additional thing GetBoo offers which is beneficial for internal use is Groups and Folders. This would allow people in a company division to separate pertinent bookmarks by internal areas of interest. In what this company does there is a lot of Internet research involved for many employees. Be it developers searching for information on libraries etc. to researching working to find new prospective clients or affiliates. GetBoo can benefit across the board and provides a Firefox Add-On to allow ease of bookmarking from browsers. This helps to encourage people to actually use it.
The only thing lacking as of now is an ability to have GetBoo authenticate to LDAP servers. I will update as I see how well this concept really works within the new company.
For the latest project I have been working on I have been building a “virtual office” intranet using Amazon Web Services. One thing I wanted to add was a simple way for people to update continuously on projects they are working on as well as having a good place to exchange ideas as a group. I came up with using WordPress with the micro-blog theme Prologue. The theme allows for people adding a post at top of main page. So this will allow us to avoid having users login to the back-end admin section. One thing I did to do this was add this hack to wp-login.php to allow people to login then be redirected back to main page of site to post micro-blogs.
To integrate the new internal micro-blog was to hook it into our LDAP infrastructure. I found the Simple LDAP Login plugin to allow users to authenticate to our Fedora Directory Servers. Another addition to make it more Twitter like was to add the Prologuer Bot being that users will be utilizing Jabber/XMPP for internal instant messaging. The bot allows people to post and read from the WP/Prologue site. Another thing to keep in mind once you setup the site is to edit the permalinks structure to be custom with /%author%/%post_id%/ structure. Another bonus to the Prologue theme is it has RSS links next to tags and authors to allow users to easily follow messages in their favorite RSS reader.
Using internal micro-blogging can be a very effective means of exchanging information and ideas. I look forward to seeing it in action and being of value to the company.
UPDATE: If any of you wish to use WordPress/Prologue for private group micro-blogging you can setup an account on WordPress.com then edit your themes to be the Prologue theme. To lock down access go to Settings > Privacy and select the “I would like my blog to be visible only to users I choose” option and add users who can access it. This may require people to also signup for a WordPress.com account of course. There is an option to signup for just a username for those who do not wish to have a blog in addition.
I came across Scalr by accident when I was browsing projects in Google Code. It appears as though Scalr has become a pay service to manage your AWS instances along similar lines to RightScale. But the main difference is that Scalr charges a scant $50 a month. From the Scalr Google Code page:
Scalr is a fully redundant, self-curing and self-scaling hosting environment utilizing Amazon’s EC2.
It allows you to create server farms through a web-based interface using prebuilt AMI’s for load balancers (pound or nginx), app servers (apache, others), databases (mysql master-slave, others), and a generic AMI to build on top of.
The health of the farm is continuously monitored and maintained. When the Load Average on a type of node goes above a configurable threshold a new node is inserted into the farm to spread the load and the cluster is reconfigured. When a node crashes a new machine of that type is inserted into the farm to replace it.
Multiple AMI’s are provided for load balancers, mysql databases, application servers, and a generic base image to customize. Scalr allows you to further customize each image, bundle the image and use that for future nodes that are inserted into the farm. You can make changes to one machine and use that for a specific type of node. New machines of this type will be brought online to meet current levels and the old machines are terminated one by one.
I would love to hear some comments from those already using the service and how it compares to RightScale.
Saw this article when looking for information on using OpenVPN with Amazon Web Services. It is not exactly what I am looking to do with my latest project. But it is some good helpful information for those with existing infrastructure looking to use AWS. There is also VPN-Cubed which is another option if looking for a supported product. I have not used it but would love to hear some comments by those who have.
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.