Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Migration Environment Survey (host profiling) HOWTO



In order to migrate a business' custom web infrastructure to a more
modern environment, I need to come up with a complete inventory of the
services and so on.

The "Migration Environment Survey" given to me by one company that
specializes in this type of work seems to actually be a bit cursory in
my estimation -- but then again they don't want to get into the hairy
details on the initial scoping.  They offer to do the assessment for
you (for $100/host), but I think everyone should know how to assess
their environment themselves.  So, here are the questions and my
comments on how to do this:

1. List the name(s) and total number of all domain name(s) being
migrated - if there are sub-domains/forwards, please list them as
separate domains ? use a separate attachment if necessary

The domains being hosted are (normally) a function of Apache's virtual
host configuration. ?Apache has tools built-in to tell you about
itself.
On our old RedHat system, that tool is apachectl  issue the command
with the -h option to get an overview of what it can tell you.
sudo /usr/sbin/apachectl -S

On newer systems, you'd find apache2ctl, which comes with the option
to show modules

A lot of people don't know about Apache's built-in tools, or prefer to
dig more precisely.  In that case, by grepping through Apache's conf
files, you come up with a list. ?Unlike most folks who use Name Based
virtual hosting, we're using IP-based hosting, so we can first come up
with a list of the configuration files and their associated IP
addresses and port assignments (ignoring Subversion control files if
you happen to keep your configuration files in Subversion) :
cd /etc/httpd/conf.d/vhosts
egrep -r "<VirtualHost ([[:digit:]\.:]*)>" ./ | grep -v .svn | sort

You can also?find all the configuration files; look for ServerName or
ServerAlias directives and disregard any that are commented out
find /etc/httpd/ -name '*.conf' -exec grep -E "\<(Server(Name|Alias)
.*)\>" {} \; | grep -v \#

If you have a bunch of configuration files and would like to look at
them all at once, you could create a new document for that
outfile=~/all.server4.vhosts.conf; for x in `ls -1 .`; do echo "### $x
###" >>$outfile; cat $x >>$outfile; done;

3. What programming languages are utilized with your current
website/applications? (Please check any/all that apply)
PHP___
ASP___
Python___
ASP.NET___
Perl___
DotNetNUKE___

I know of no better tool for this job than David Wheeler's sloccount
(http://www.dwheeler.com/sloccount/).  With sloccount, you get a
complete analysis of the source code


4. What type, number and volume of databases are utilized with your
current website/applications?
MySQL ___
MS-SQL___
MS Access___
Other (please define)__________________________________________________________________________
No. of unique databases___
No. of unique databases___
No. of unique databases___

Since we use Postgres, I can tell you how to quickly get the size of
your database:
login as the Postgres user to the db host
enter the psql client
use this query:
SELECT pg_size_pretty(pg_database_size('my-database'));

5. Type, OS and quantity of current, source server(s):

  Shared Server
  Dedicated Server
  VPS/Cloud Server
  Don?t Know/Unsure
Type, OS and quantity of new, destination server(s):
  Shared Server
  Dedicated Server
  VPS/Cloud Server
  Don?t Know/Unsure

IMPORTANT: If there are multiple servers utilized in your current
hosting environment, please indicate the number of
servers and role that each plays (web, database, email, application, etc.).


6. Is your current server(s) managed using a control panel? If so,
please indicate:
Plesk
Webmin
Hsphere
CPanel
Other
None
Don?t Know

7. Will the new destination server(s) utilize a control panel? If so,
please indicate:
Plesk
Webmin
Hsphere
CPanel
Other
None
Don?t Know

8. Has any of the existing website application software been added,
custom compiled, and/or modified since the existing
server was originally provisioned?

Again, for Apache (modern) you can have apache2ctl tell you the loaded modules
For an older Apache installation, you have to grep through the
configuratin for LoadModule directives.  Something like
grep -e ^LoadModule conf/httpd.conf | sort

I think this question needs to be more specific asking about the
packages installed to meet requirements of applications... which could
be anything from imagemagik to CPAN modules etc.  These libraries and
dependencies are often not part of the version control system, so
wouldn't just come over in a git checkout.  Of course a well managed
product does have all dependencies somehow integrated into the product
via make file, or built script etc.  Speaking of Version Control, they
surprisingly don't ask whether the existing application is managed
through a version control, packaging and deployment  or configuration
engine.

9. Are there cron jobs in place and active on a current server? If so,
please describe their function and frequency.

For the root user's cronttab, you can list it's contents with sudo crontab -l
You might also find other user's crontabs by inspecting /var/spool/cron
Finally, on any production host, I prefer to put cron jobs into the
/etc/cron.d directory and disallow user crons.  Your System
Administrator may too, so check there

10. Do any of the website(s) use an SSL certificate?

___ Please list here:


11. Will you require migration of existing email records and/or setup
of email accounts or other user-based services (i.e.
FTP accounts) at the new server?

Greg Rundlett





BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org