A note on Drush, i read on some forum post that you need Drush 9 to work with Drupal 8.4, this is incorrect. I'm using Drush 8.1.3 without problems.
First of all, do a full backup or site files and DB. You can install Backup Migrate module to do this task.
In your Drupal root directory run this command:
drush up drupal
This will delete your whole drupal core files and replace it with newer version, which is Drupal 8.4
Once this is complete, copy your required modules from your old composer.json, for example:
"drupal/backup_migrate": "4.x-dev", "drupal/admin_toolbar": "^1.19", ...
and run this command to see if there are any modules that requires and update:
Once composer has finished. Update Drupal DB and clear the cache, using this command:
drush updb && drush cr
Hopefully, that is your site update.
At this point, you may need to fix your theme because Drupal 8.4 now comes shipped with jQuery 3. This broke my Bootstrap 3 theme which i needed to fix.