Deployment and mobility involve the placement and movement of software components on hardware hosts during runtime. Key challenges include distributing components across heterogeneous devices, continuous software evolution requiring redeployment, and mobile code that moves running stateful components. Deployment architecture allocates components to hosts and impacts qualities of service, but different architectures may optimize different quality dimensions, requiring tradeoffs. Planning, modeling, analysis, and tool support help address deployment problems.