SQL Server Service does not start automatically after system restart
One issue that can cause this is that some systems, particularly VMs with the system volume on solid state storage, is that it boots up so fast and gets to the point of starting services before some of the networking has been fully initialized.  This, then, results in a failure of the service account authentication, and the service start fails accordingly.

To address this, set the SQL Server services to Automatic (Delayed Start).  This will put a 2 minute delay on starting them.  If 2 minutes is too much or not enough, you can tweak it by changing HKLM\SYSTEM\CurrentControlSet\Control\AutoStartDelay, or you could create a Task Scheduler job that runs on Windows startup and continually attempts to start the services until they are started.