https://learn.koding.com/guides/upgrading-your-vm/
First you should always run apt-get update to update the repository indexes.
Then, In the description of apt-get you say that you use apt-get dist-upgrade to upgrade ubuntu files like the kernel and apt-get upgrade to upgrade packages. This is a common misunderstanding due to a badly named option for apt-get. However the man page explains it correctly:
dist-upgrade
dist-upgrade in addition to performing the function of upgrade, also intelligently handles
changing dependencies with new versions of packages; apt-get has a "smart" conflict resolution
system, and it will attempt to upgrade the most important packages at the expense of less important
ones if necessary. The dist-upgrade command may therefore remove some packages. The
/etc/apt/sources.list file contains a list of locations from which to retrieve desired package files. See
also apt_preferences(5) for a mechanism for overriding the general settings for individual packages.
IMO, you should ALWAYS use apt-get dist-upgrade or you risk not upgrading a dependency and wondering why the new version of an app is crashing.
Next, you should always reboot after updating your system.
And finally, after the reboot run apt-get autoclean to get rid of old packages that may now be orphaned (ie if the new version of some package you want is no longer dependent on a particular package that only it was using, get rid of that package)
So, in summary, my recommended sequence of updating your VM is:
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
wait for the reboot