{"id":18355893,"url":"https://github.com/anduin2017/sombra","last_synced_at":"2025-06-23T05:36:39.445Z","repository":{"id":37926184,"uuid":"85605581","full_name":"Anduin2017/Sombra","owner":"Anduin2017","description":"Sombra is a powerful server remote management tool ","archived":false,"fork":false,"pushed_at":"2023-05-10T15:33:43.000Z","size":192,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-20T21:09:28.997Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Anduin2017.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-20T17:22:11.000Z","updated_at":"2024-10-08T09:51:07.000Z","dependencies_parsed_at":"2025-04-10T01:46:21.162Z","dependency_job_id":"78f8d8f4-c9e3-4447-bc70-71210e95c383","html_url":"https://github.com/Anduin2017/Sombra","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Anduin2017/Sombra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anduin2017%2FSombra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anduin2017%2FSombra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anduin2017%2FSombra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anduin2017%2FSombra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Anduin2017","download_url":"https://codeload.github.com/Anduin2017/Sombra/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anduin2017%2FSombra/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261422765,"owners_count":23156035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T22:08:17.264Z","updated_at":"2025-06-23T05:36:34.436Z","avatar_url":"https://github.com/Anduin2017.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sombra综合服务层管理调度系统 （笑死。这是我的一门课程作业……\n\n### 摘要\n\n\u0026emsp;\u0026emsp;在科学技术发展日新月异的今天，企业要想在大的竞争环境下一直维持永不失败的地位，支撑这些的是可靠的信息服务。在数据爆发的时代，数据就是财富，维持企业计算资源的持久、可靠、稳定，唯有通过建立一个安全、稳定、可快速检索、诊断的综合服务层控制系统，才能实现最佳的企业计算资源搭配。\n\n\u0026emsp;\u0026emsp;本文分析了服务器控制系统的研究背景和国内外的发展现状，简述了此系统所需要使用的核心技术，详细介绍了服务器控制系统的需求，设计符合国际体系要求的系统。该系统主要完成六大核心模块的功能，系统管理模块是所有业务的核心、系统统计模块是诊断的基础、系统调度模块是工作的基础、系统保持模块是主打功能、系统移植模块是变革性的功能创新、工作服务模块则是为了直接让服务器能够提供服务输出。本系统在实现过程中，主要使用.Net开发框架、Windows开发平台、MVC设计模式等开发平台和技术。本系统的最终目标是为了解决传统服务器管理中维护难、调度难、移植难、统计难、保持难的问题。\n\n\u0026emsp;\u0026emsp;本文实现了管理与服务的整合，为系统维护赋予了清晰的战略导向，使各模块围绕统一目标而规划计算资源。通过对服务器管理的需求研究，完成了系统的分析；提出系统的总体设计方案，根据设计蓝图实现系统；最终经过系统的测试确保质量。以保证本系统可以很好的实现服务层控制管理系统的核心功能，为企业服务设备的高效运行提供了很好的保障。\n\n## 第一章 - 引言\n\n### 研究背景\n\n\u0026emsp;\u0026emsp;进入新世纪以来，随着全球政治与经济形势的变化，给中国的企业带来了很多机会和挑战。高科技时代的迅速发展，信息技术改变着人们的生活与工作方式，改善着企业的管理模式，云计算、大数据、移动技术等都在促成管理方式的变革。跨国企业看准中国市场的发展前景，正加大在中国市场的投入力度，势必加剧中国各行各业的竞争程度。经济不确定性比以往任何时期都强，也带来企业经营的动荡和适应力的巨大挑战。发达国家经济发展已进入长期低增长期，全球经济复苏乏力，依靠出口拉动经济、依靠出口实现企业增长越来越困难。中国经济告别高增长时代，进入到转变经济增长方式、调结构、依内需拉动经济，越来越多的企业需要扩大对外经营，走出国门就必须学习借鉴其他国家企业的信息化，及时转变管理模式，以创新为主体，以安全为原则。同时中国企业面临着严重的资源分配不均衡、资源滥用，必须提高增长的质量，优化计算资源的分配，保证计算资源的安全。更多的安全风险、病毒风险、黑客威胁也威胁着我们的计算设施。提高安全工作的管理效率、资源的分配效率、设备的维护的压力与日俱增，要求必须提高服务层的管理效率。\n\n\u0026emsp;\u0026emsp;企业规模越来越大，业务越来越复杂、经营地域分布越来越广，导致计算设备数量众多、用途混杂，各操作系统、用途的服务设备并存，管理的复杂性增加，安全问题更加严峻，势必比以往任何时候都需要建设组织能力，以提升安全性、稳定性、性能。总之业务变革、技术的快速进步、设备的变化、组织的建设、安全的压力，都需要企业服务设备管理必须告别传统模式。\n\n\u0026emsp;\u0026emsp;中国的软件基础设施已经建立完成，在未来十年的技术发展重点计划中，已将注意力转移到安全性、集群、大数据、人工智能等聚焦的重点领域，服务层管理将成为我国信息化发展的新趋势。随着越来越多的中国本土企业逐步认识到计算资源利用价值和安全发展的战略意义，无论是本土企业还是外资企业，都在做着积极的努力和尝试，也取得了良好的效果。中国本土能够提供服务层管理解决方案的供应商很少，并且仅能提供部分备份管理组件、防火墙组件等，因而对于提供完整服务管理，本系统开发正是一个契机。\n\n### 国内外发展现状\n\n\u0026emsp;\u0026emsp;根据研究，全球范围内，虚拟化技术在2005年左右进入高速发展阶段。云计算市场从2008年开始进入高速发展阶段，截至现在，全球范围内已经有了以微软、亚马逊、谷歌为代表的数百家云计算提供商，它们提供的服务大多是虚拟化模型下的虚拟操作系统。而在全球范围内，容器技术在2016年进入高速发展阶段，目前以Docker为代表的容器服务已经高度繁荣。\n\n\u0026emsp;\u0026emsp;相比国际范围，我国的虚拟化技术大约发展落后了三年之久，直到现在以阿里、腾讯、百度为代表的三大企业提供了大部分的计算服务。而这些企业的解决方案往往都停留在虚拟机和管理终端的结合上。\n\n\u0026emsp;\u0026emsp;在面向如此多的终端时，无论国内还是国际，往往使用的更多的是RDP和SSH进行远程管理。为了对服务器进行调度往往依赖硬件设备或专业的DevOps工程师。面对集群化的服务器管理，国际上比较出色的已经有了很多著名的程序，例如：Ansible。但使用第三方的服务，也意味着宝贵的数据、权限的泄露。面对虚拟化技术、分布式技术和容器技术的高速发展和服务的复杂化、多样化，服务管理调度系统将会成为我国服务器集群中高端市场的主流需求。\n\n## 第二章 - 系统需求分析\n\n### 系统总体需求分析\n\n\u0026emsp;\u0026emsp;通过对服务层管理调度系统的分析，将管理理念与实践经验运用到实际中，将发挥对服务管理的最大效用，同时以帮助企业合理调度计算资源，降低管理成本，提高计算性能，快速增长企业信息化服务的可靠性，结合系统的实际需求，通过调研使用者的主流需求和当前核心的技术水平，最终确定可以实现的目标，界定系统的功能范围。本服务管理调度系统分为六大部分：系统管理模块、系统统计模块、系统调度模块、系统保持模块、系统移植模块、工作服务模块。\n\n其中，系统管理模块分为：终端调控、终端角色控制、终端功能控制、终端网络位置控制等。\n\n系统统计模块分为：计算统计、应用统计、存储统计、资源使用评估等。\n\n系统调度模块分为：内容调度、文件调度、命令调度、终端系统调度等。\n\n系统保持模块分为：双机热备、一致性保持、可用性保持等。\n\n系统移植模块分为：数据移植、环境移植、应用程序移植等。\n\n工作服务模块分为：HTTP服务器、负载均衡、反向代理、文件服务器、对象存储等。\n\n### 系统管理模块的分析\n\n\u0026emsp;\u0026emsp;系统管理模块能够进行终端调控、终端角色控制、终端功能控制、终端网络位置控制等。终端调控能够实现使用者对自己所管理的终端进行动态增加、删除、修改密码、修改集群位置等。终端角色控制能实现使用者动态指派终端的角色，例如：Web服务器、数据库服务器、对象存储服务器、备用服务器等。终端功能控制能够实现使用者动态调整终端的行使功能，例如：虚拟化功能、桌面体验、DNS功能等。终端网络位置控制能够实现系统对网络的分析结合使用者的干预，动态决定终端所处的网络环境。\n\n对于终端的操作不限于物理机。虚拟机，甚至容器都可以作为一个终端加入系统。这里的“终端”，更多意义的是一个“服务”单位。\n\n### 系统统计模块的分析\n\n\u0026emsp;\u0026emsp;系统统计模块能够进行计算统计、应用统计、存储统计、资源使用评估。计算统计允许使用者能快速统计、排列、筛选各个服务终端的计算资源使用情况，这些计算资源包含了：处理器、寄存器、内存、虚拟内存等。应用统计能够允许使用者快速查询特定终端的应用运行情况。应用不限于系统应用和用户应用。运行情况包含了：占用的资源、使用权限、运行环境等。存储统计能允许使用者快速查询特定终端的存储内容分布和类型分布，以及存储设备的使用状态。资源使用评估能够结合使用者指配的角色和功能，动态分析当前系统是否工作于理想状态，并给出调整建议。\n\n### 系统调度模块的分析\n\n\u0026emsp;\u0026emsp;系统调度模块能进行内容调度、文件调度、命令调度、终端系统调度等。内容调度允许使用者直接访问数据库的内容或应用程序状态，并将其转移到自己的设备或其它机器上。文件调度能够允许使用者直接在集群内调整特定文件的位置，进行跨终端的文件复制和移动。命令调度允许远程执行系统命令或批处理，这同时能够允许使用者整体性在全部终端广播命令，或将特定批处理分块分发给不同终端。终端系统调度能够允许使用者直接将系统状态转移到另一台机器上。\n\n系统调度支持使用者干预的手动操作，或者是根据时间的自动执行，或者是根据策略的动态调度。\n\n### 系统保持模块的分析\n\n\u0026emsp;\u0026emsp;系统保持模块能进行双机热备、一致性保持、可用性保持等。双机热备启用后，系统会分析两台终端的服务运行状态，在主机发生故障后直接切换备机代替主机工作，并发出警告。一致性保持技术启用后，使用者应当指派保持源和目标机器。系统会保证目标机器的特定文件夹或数据库始终与保持源保持一致。可用性保持技术启用后，使用者应当将特定终端组成组，系统会将会保证这个终端组中任意一台机器都是可用的，并保持所有终端的状态更新到最近发生变化的终端。\n\n总之，系统保持模块的意义就在于保证即使单一终端的角色或功能发生错误时不会影响到业务的运行。\n\n### 系统移植模块的分析\n\n\u0026emsp;\u0026emsp;系统移植模块能够进行数据移植、环境移植、应用程序移植等快速移植。数据移植允许使用者快速把存储设备上的大量数据，例如文件或数据库，从一个终端转移到另一个终端。环境移植能够允许使用者快速把应用程序状态从一台终端移植到另一台终端，并将终端的网络状态信息、计算机名、IP地址等移植。应用程序移植则能直接挪动应用程序从一个终端移植到另一个终端。\n\n例如，我们需要转移数据库所在的机器，只需先进行应用程序移植，转移数据库程序的位置，再进行数据移植，把数据库内容移植到另一台机器上，最后进行环境移植，把日志、IP地址等完成移植。\n\n### 工作服务模块的分析\n\n\u0026emsp;\u0026emsp;工作服务模块能够允许使用者不对操作系统进行任何操作，就使特定终端具有特定服务功能。这些服务功能包含：Web服务器、FTP服务器、负载均衡、反向代理、对象存储等。\n\n例如，我们需要在业务维护期间，将我们的Web服务器反向代理到我们的备用服务器上，只需要先进行系统移植，在备用服务器上准备应用程序，再在主服务器上开启反向代理即可。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanduin2017%2Fsombra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanduin2017%2Fsombra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanduin2017%2Fsombra/lists"}