Saturday, July 16, 2011

My Branching and Merging Strategy

Hi,
I would to share with you my way to the best practices for development version management
we always have to keep an isolated environment that is equal to the production environment because we want to keep the ability to make patches to the production environment while the other developers are working on the development iteration

my way is based on two important rules:
  1. Production environment must be equal to the main development environment for enabling production bug fixes over the iteration development

  2. The iteration development will be only in the branch development environment


I'll explain it by a simple scenario as yo can see in the chart below:

chart


legend
So, the scenario is:
1. create a branch development version from the main development version, this action occurred only once
2. in case that you have to fix a minor bug and to update the patch to the production environment, take it from the main development version
3. when the development iteration is over, we have to make merge from the main development version to the branch development version because of the production patch
4. we can update the production environment from the branch development version
5. after the version update we have to make merge from the branch development version to the main development version because we have to keep the main development version equal to the production environment

from this step we have to repeat steps 2-5 for each development iteration

one important tip:
when making the branch action, don't overwrite the configuration files, keep the target version

Monitor your system for free

Hi, I would like to introduce you a very nice system monitoring solution called
Polymon. Polymon is an easy to use software that made up of three primary components:
  • A SQL Server database to store monitor statuses, alerts and general settings.

  • A windows service (PolyMon Executive) that runs monitors on a periodic basis,
    logs results to the database and sends out email notifications.

  • A management/monitoring front-end (PolyMon Manager) that is used to manage
    general settings, monitor definitions, operators, alert rules, etc. and analyze
    historical trends (both monitor counters and statuses).

To start using this tool you have to download the latest setup file from polymon.codeplex.com setup the configuration of the software during the installation wizard and then start define the monitors that you need, then you have to set your email notifications settings, i also use one of the email to sms tools and now i get system alerts to my cell phone, i'll show here this monitors:
  • Disk Monitor - use this monitor type in case that you want to monitor the remaining free space in your system

  • File Monitor - use this monitor type in case that you want to monitor the files count on specific directory

  • MSMQ Monitor - use this monitor type in case that you want to monitor the msmq messaging service, for example, the total messages count in all the queues in the system

  • Ping Monitor - use this monitor type in case that you want to monitor the system health by a ping request

  • SQL Monitor - use this monitor type in case that you want to monitor your sql server datatbase by a structed query

  • Service Monitor - use this monitor type in case that you want to monitor your window service and check if it is still running

  • URL Monitor - use this monitor type in case that you want to monitor the a url and to make a content check on its response

Disk Monitor:

After you have selected Disk Monitor as the type of your monitor
you have to:

  1. Select the hard disk drive to monitor

  2. Set the free space remining for the warning message

  3. Set the free space remining for the failed message


polymon_diskFull





File Monitor:

After you have selected File Monitor as the type of your monitor
you have to:

  1. Select the target directory to monitor

  2. Set the search filter, probably it will be *.[file_extension]

  3. Set the file count for the warning message

  4. Set the file count for the failed message


polymon_filesNo





MSMQ Monitor:

After you have selected Performence Monitor as the type of your monitor
and select MSMQ Service as the category and select Total messages in all queues as the counter, then you have to:

  1. Set the number of messages for the warning message

  2. Set the number of messages for the failed message


polymon_MSMQ





Ping Monitor:

After you have selected Ping Monitor as the type of your monitor
you have to:

  1. Set the ip as the destination of the ping request

  2. Set the number of tries and the number of failures

  3. Set the timeout for the request


polymon_Ping





SQL Monitor:

After you have selected SQL Monitor as the type of your monitor
and wrote a stored procedure in this format you have to:

  1. Set the connection string in setting xml

  2. Set the stored procedure name in setting xml


polymon_SQL1





Service Monitor:

After you have selected Service Monitor as the type of your monitor
you have to:

  1. Set the host where the service is running

  2. Set the service name to monitor


polymon_Srv





URL Monitor:

After you have selected URL Monitor as the type of your monitor
you have to:

  1. Set url to monitor

  2. Set the request timeout

  3. Set the content to check on the response text


polymon_Url