Resource management is a fundamental concept in cloud computing and virtualization, encompassing the allocation, release, coordination, and monitoring of cloud resources to optimize efficiency. The complexity arises from the virtualized, heterogeneous, and multi-user nature of these resources. Effective governance is challenging due to uncertainty, large-scale infrastructures, and unpredictable user states. This paper presents a comprehensive taxonomy of resource management technologies, offering a detailed analysis of design architecture, virtualization, and cloud deployment models, along with capabilities, objectives, methods, and mechanisms. In a cloud computing environment, deploying application-based resource management techniques necessitates understanding the system architecture and deployment model. This paper explores centralized and distributed resource management system architectures, providing a review of effective resource management techniques for both, accompanied by a comparative analysis. The evolution of cloud computing from a centralized to a distributed paradigm is examined, emphasizing the shift towards distributed cloud architectures to harness the computing power of smart connected devices at the network edge. These architectures address challenges like latency, energy consumption, and security, crucial for IoT-based applications. The literature proposes various methods for distributed resource management, aligning with the distributed nature of these architectures. Resource management in cloud computing involves discovery, provisioning, allocation, and monitoring functions, with sub-functions like mapping and scheduling. Integrated approaches to consolidation and resource management have been explored in numerous studies. This paper summarizes and analyzes existing research on resource management functions, focusing on identification, provisioning, allocation planning, and monitoring, based on their objectives and methods.