I manage several hundred Centos, Redhat and Ubuntu servers with the vast majority being Ubuntu. Ubuntu 14.04 Trusty extensively uses Upstart scripts to manage system processes. As of this writing Gentoo Linux is the only distro that does not enable systemd by default. Canonical has finally come around and put its weight behind systemd in Ubuntu 15.04 Vivid Vervet.
Systemd can initially seem like a bit of overload but it’s information is tightly focused to the needs of administrators. Want to know what happened during the last boot? journalctl -b. Want to see the log for a particular process (e.g. ssh)? journalctl -u ssh.service. systemd has been chosen by the coreos team for their init system and fleet so there’s some big names behind it.
Both systems have dependencies although I find Systemd has easier symantics with Before and After vs. Upstarts start on other-service.
One of the big disadvantages of Upstart is the simple command, restart. If the service is not running, restart will return an error. For automation purposes it requires me to first test if the process is running then either restart or just start. Systemd on the other hand will gladly start your stopped service after running systemctl start my.service.
Upstart is likely dead in the very near future so it’s a good time to consider systemd for initializing and analyzing your system processes.