Capturing the technical knowledge, contextual information, and rationale surrounding the design decisions underpinning system architectures can greatly improve the software development process. If not managed, this critical knowledge is implicitly embedded in the architecture, becoming tacit knowledge which erodes as personnel on the project change. Moreover, the unavailability of architecture knowledge precludes organizations from growing their architectural capabilities. In this tutorial, we highlight the benefits and challenges in managing software architecture knowledge. We discuss various approaches to characterize architecture knowledge based on the requirements of a particular domain. We describe various concepts and approaches to manage the architecture knowledge from both management and technical perspectives. We also demonstrate the utility of captured knowledge to support software architecture activities with a case study covering the use of architecture knowledge management techniques and tools in an industrial project.