{"id":171,"date":"2007-06-22T11:53:21","date_gmt":"2007-06-22T11:53:21","guid":{"rendered":"http:\/\/dalelane.co.uk\/blog\/?p=171"},"modified":"2007-06-22T14:43:55","modified_gmt":"2007-06-22T14:43:55","slug":"it-infrastructure-for-a-growing-charity","status":"publish","type":"post","link":"https:\/\/dalelane.co.uk\/blog\/?p=171","title":{"rendered":"I.T. infrastructure for a growing charity"},"content":{"rendered":"<p>As <a href=\"http:\/\/www.solentyouthaction.org.uk\/\">Solent Youth Action<\/a>&#8216;s resident geek, I guess it&#8217;s inevitable that I get sucked in to anything I.T.-related. <\/p>\n<p>Over the last few years, our I.T. resources have grown in an ad-hoc way &#8211; primarily driven by needing more PCs as we have grown our staff, and limited by how much money we have at the time! <\/p>\n<p>In our last trustees meeting, we decided that we&#8217;ve grown to the point where we need to be more organised about our approach to I.T. Ideally, we want a roadmap which outlines not only our current I.T. needs, but identifies what we will need to meet where we see SYA growing in the future. <\/p>\n<p>I wanted to bounce my ideas off friends, so thought rather than sending it round in an email it might be easier to put my ideas here, open it for comments and pass a link round. <\/p>\n<p>So here goes&#8230; here are my first few ideas about what I think we need to do&#8230; please feel free to point out where I&#8217;ve said something stupid! \ud83d\ude42<\/p>\n<p><!--more--><\/p>\n<hr \/>\n<h3>Where are we now?<\/h3>\n<p>We&#8217;re a small organisation &#8211; eight members of staff, currently based in three rooms we rent in ECS House in Eastleigh. <\/p>\n<p>We&#8217;ve now got <b>eight Windows XP desktop PCs<\/b>, all networked together (some with ethernet, some over Wi-Fi, using our own router). We went for Wi-Fi because one of our three rooms is separated from the other two &#8211; and I didn&#8217;t fancy running network cables through a building. <\/p>\n<p>We&#8217;ve got a <b>couple of printers<\/b>, one in one room on it&#8217;s own, one in the two rooms next to each other. Each is connected to a single PC, and shared to let the other staff send stuff to it.<\/p>\n<p>We have a <b>portable USB hard-drive<\/b>, normally connected to one PC, which shares the drive on the network. This is our &#8220;shared filespace&#8221;, and is where the staff store finished files and documents, making them accessible by all staff.<\/p>\n<p>Our records about young people are stored on a <b>MySQL database<\/b>, accessed via a bunch of custom <b>PHP forms<\/b>, hosted from one of the PCs using the <a href=\"http:\/\/www.uniformserver.com\/\">Uniform Server<\/a> bundle of the Apache\/MySQL\/PHP stack for Windows. <\/p>\n<p>Increasingly, the staff are working regularly from outside ECS House &#8211; working from local schools, colleges, Students&#8217; Unions, and other youth centres, such as <a href=\"http:\/\/www.connexions-southcentral.org\/local_connexions.htm\">Connexions<\/a> centres. When doing this, they use our <a href=\"http:\/\/order.1and1.co.uk\/xml\/order\/FeatureEmailWebmail;jsessionid=C50FBF5CA4D97715CA1769DB1E794303.TC31a?__frame=_top&amp;__lf=Static\" title=\"1and1\">ISP&#8217;s webmail<\/a> to keep in touch on email, a pay-as-you-go mobile for phone calls, and large A4 ring binders with everything else that they might need while out of the office.  <\/p>\n<hr \/>\n<h3>What are the problems with this?<\/h3>\n<p>The SYA <b>network can&#8217;t be accessed outside of ECS House<\/b>. Carrying folders of forms and paperwork and binders with our current volunteering opportunities on a regular basis is far from ideal.<\/p>\n<p>The network <b>filespace is not accessible when the computer it is connected to is switched off<\/b>. It is portable, so the staff can always physically go and get the drive and plug it in their own machine, but this feels a little clunky. And I&#8217;m not sure I like our primary store of data and documents living on a portable drive that is regularly moved around. <\/p>\n<p>Similarly, <b>printers are not accessible when the PC&#8217;s they are connected to are switched off<\/b>. <\/p>\n<p>Most of the PCs are running Windows XP Home (because it&#8217;s cheaper) which means that we&#8217;ve had many <b>problems with the number of staff who can connect to networked resources<\/b> like the filespace at any one time. This never used to be a problem when we had fewer than six computers, but as we&#8217;ve grown, we&#8217;re starting to bump into it more often. <\/p>\n<p>The MySQL <b>database of young people is not accessible when the PC it is hosted on is switched off<\/b>. And it is <b>not available outside of ECS House<\/b>, meaning that staff will often resort to printing out large sections of the database when needing to working at partner sites. I really don&#8217;t like us carrying around personal information outside of the building in printed form. <\/p>\n<p>Our <b>backups process is manual<\/b> &#8211; with an administrator responsible for dumping the MySQL database from one computer and burning it to CD with the documents from the portable USB hard-drive. <\/p>\n<hr \/>\n<h3>What should we do?<\/h3>\n<h4>Idea 1 &#8211; Central file and print server<\/h4>\n<p><b>Replace the portable USB hard-drive with a Linux fileserver. Connect all of the printers to it, and also use it as a central print server<\/b><\/p>\n<h5>Why?<\/h5>\n<p>Linux does not have the limitation of six connections that Windows XP Home has &#8211; so some of the scaling problems as we grow beyond six members of staff would go away.<\/p>\n<p>A powered file and print is always accessible &#8211; not needing any particular PC to remain on. <\/p>\n<p>Linux is free &#8211; so it saves us needing another expensive Windows license. <\/p>\n<p>Linux is better suited to supporting automated backups &#8211; we could use something like a cron job on it to kick off a backup task.<\/p>\n<h5>How?<\/h5>\n<p>I&#8217;m thinking that <a href=\"http:\/\/www.centos.org\/\">CentOS Linux<\/a> is the best option &#8211; because I like RedHat but don&#8217;t want to have to pay for it! And Fedora Core is a bit too bleeding edge for what just needs to be a solid file server.<\/p>\n<p>We&#8217;ve got a cheap, donated PC which should be adequate to run it. Although I&#8217;m thinking that we&#8217;d better start off with new hard-drives &#8211; not sure I want to rely on hard-drives in an unknown condition of an unknown age for our data. <\/p>\n<p>We don&#8217;t have massive storage needs, so I&#8217;m thinking that it might be a good idea to put our money towards two smaller drives, and use RAID to give us some fault tolerance from disk errors and single disk failure.  (<i>Is two enough? Would it be overkill to go for a parity-based approach like RAID 5?<\/i>)<\/p>\n<h4>Idea 2 &#8211; Virtual Private Network<\/h4>\n<p><b>Allow computers not in the ECS building to access the SYA network<\/b><\/p>\n<h5>Why?<\/h5>\n<p>We could allow staff to access stuff while working remotely from schools, colleges, Universities, etc. <\/p>\n<p>It would also allow me to remotely control desktops in SYA to carry out I.T. support tasks from home or work. At the moment, if something goes wrong with one of the computers or one of the staff need help doing something, I need to find time to go to the office, ideally when the staff are there. This isn&#8217;t easy and can sometimes take me several days. If I could remote-desktop in on a lunch-break, then my typical response time could become hours instead of days.<\/p>\n<p>Looking further ahead, we are working on plans to expand to office-space in other local towns in the medium term. Being restricted to working in Eastleigh was a good place to start, but is starting to become a limiting factor, and it seems likely that we will need a presence of some sort outside of Eastleigh in the coming years. <\/p>\n<h5>How?<\/h5>\n<p>Eek&#8230; this is the question. This needs to be done *very* carefully, to ensure that access remains limited to SYA staff. <\/p>\n<p>I guess there are two main options:<\/p>\n<p><b>VPN<\/b> &#8211; install a VPN solution on a Linux box in the office. I&#8217;ve heard good things said about free solutions such as <a href=\"https:\/\/secure.logmein.com\/products\/hamachi\/default.asp\">Hamachi<\/a> but I&#8217;m sure there are others out there. (Such as the ones listed on <a href=\"http:\/\/www.dailycupoftech.com\/2007\/06\/15\/foss-for-security\/#vpn\" title=\"list of free security software\">Daily Cup of Tech<\/a>&#8216;s recent post on freeware security software.)<\/p>\n<p><b>&#8216;Roll your own&#8217; security using SSH tunnelling \/ port forwarding<\/b> &#8211; As we have our own router, we can specify some specific ports to forward on to a &#8220;VPN&#8221; Linux box which can access the SYA network. <\/p>\n<p>Is one better than the other? <\/p>\n<p>I guess the software solution approach would be simpler to configure&#8230; but then the SSH tunnelling approach probably wouldn&#8217;t be all that complicated anyway. <\/p>\n<p>Do we need a dedicated machine for it? Instinctively, I&#8217;m thinking that it may be insecure to use the same box for this as for the fileserver I mentioned above. But practically, is it that much of a risk?<\/p>\n<p>For remote desktop, a friend has recommended <a href=\"http:\/\/www.nomachine.com\/products.php\">NoMachine<\/a>&#8216;s free remote access solutions as being worth a look particularly when using slower connections, and at first glance it looks quite powerful. <\/p>\n<p>Stepping back a bit, is this really necessary? Am I over-engineering things? Would a bunch of USB memory keys and some approach to syncing with the office network be simpler? <\/p>\n<p>Or maybe moving to an online approach &#8211; use WebMail for all email, Google Docs for all documents, pay for some online storage for non-Office docs like images and so on, and host our MySQL database externally&#8230; Perhaps then the need for an internal network goes away? This could make things like backups easier&#8230;. depending on how much we trust our online providers!<\/p>\n<p>This leads me on to&#8230;<\/p>\n<h4>Idea 3 &#8211; External database hosting<\/h4>\n<p><b>Transfer database of young people to an externally hosted server<\/b><\/p>\n<h5>Why?<\/h5>\n<p>Externalising database makes it easier for staff to access it when working off-site. It also opens up the opportunity for young people to access (and update) their own information. Why not let them update their own phone number when they get a new mobile? <\/p>\n<p>This could also give us a more formal rigorous approach to backups, including off-site backups, depending on the provider we go with. This gets us into the whole realm of Service Level Agreements, and needing to decide what we need &#8211; how long could we cope without access in the event of a problem? <a href=\"http:\/\/1and1.co.uk\/\">1and1<\/a>, who I&#8217;ve used in the past, offer MySQL hosting for &#163;9.99 a month with a 99.99% uptime &#8216;guarantee&#8217;. At first glance, this looks like it&#8217;d be good enough.<\/p>\n<h5>How?<\/h5>\n<p>We can&#8217;t put the current PHP front-end to the database online. To start with, they are not at all secure &#8211; as we have always relied on the fact that access to the database was physically secured in the building. In addition, they are also a little quirky and clunky. Put it this way &#8211; the staff have just about figured out how to use them, but I don&#8217;t fancy the chances for any young person trying to figure it out! <\/p>\n<p>I&#8217;m thinking of transferring the database to a <a href=\"http:\/\/drupal.org\/\">drupal<\/a>-powered system. Not only would this give us a more secure and reliable front-end to the database, but from what I&#8217;ve read about drupal it scales very well, which could become important if we open up access to our thousands of young people. The wealth of other drupal modules available would also allow us to roll out new features in the future that could foster the sort of online community that we&#8217;ve talked about wanting&#8230; content management for the website instead of the current static HTML, a blogging engine, discussion forums, and lots more. <\/p>\n<p>It shouldn&#8217;t be that hard to script something which dumps the data out of the current MySQL database, maps it, and imports it in a new drupal MySQL database. <\/p>\n<p>Not sure how much work it would be to get the basics up-and-running : port across the static HTML content, and setup the stuff needed for user profiles&#8230; and as it is gonna fall to me, whether I can block out a day or two to do it is gonna be a factor&#8230; but it feels like the right direction to go in. <\/p>\n<hr \/>\n<h3>Anything else?<\/h3>\n<p>So what do people think? Any comments on my ideas? Any suggestions or other ideas? Please feel free to comment here, or email me separately. Thanks!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As Solent Youth Action&#8216;s resident geek, I guess it&#8217;s inevitable that I get sucked in to anything I.T.-related. Over the last few years, our I.T. resources have grown in an ad-hoc way &#8211; primarily driven by needing more PCs as we have grown our staff, and limited by how much money we have at the [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3],"tags":[],"class_list":["post-171","post","type-post","status-publish","format-standard","hentry","category-charity","category-tech"],"_links":{"self":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=171"}],"version-history":[{"count":0,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/171\/revisions"}],"wp:attachment":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}