Rob,
User ID is simply the integral ID that Canvas assigns to each user object in its database, and the primary way Canvas identifies a user. It is guaranteed to be unique within your institution (and within all of Canvas Cloud, given certain implementation details). It is not unique among multiple Canvas installations (i.e. the first user in each install will end up with ID 1). User IDs never change, but a user can be merged into another user, effectively deleting one of the two, and updating all references of that user to the surviving user.
A SIS ID is assigned by the institution, and is optional. It has no special meaning to Canvas, so can map to whatever institutional identifier is appropriate. It is a string (though it can be the string form of an integer if the institution so chooses when assigning them). An SIS ID is unique within your institution. For SIS Imports, it is used as the primary identifier, and most parts of the API accept an SIS ID in lieu of a Canvas user ID. Via the API or the UI, it is possible to reassign an SIS ID from one user to another. It will survive through a user merge - the surviving user could be identified by either of their previous SIS IDs.
Cody Cutrer
Software Engineer
Instructure