《XLP 操作手册》 第六章 重混:XLP网络平台
重混:XLP网络平台
想想你生活的世界,想象未来的教室: 在一个日益数字化的世界里, 必须尽早地教授在数字环境中导航所需的技能。那些精通技术的人和那些还不适应软件操作的人之间正在出现差距。那些站在错误一边的人, 最终将对他们的事业和生活产生不利影响。这些人将无法参与协作工作, 从而限制了他们获取丰富知识的能力。个人和机构已经缺乏创建新的数字资产或使用现有数字信息的工具, 这两者都降低了他们的总体潜力。显然, 学生们需要一个解决方案来摆脱这种情况。想象一个以教室外的现实为模型的未来教室。如果教室外的现实被数字工具所渗透, 教室也应该如此。Remix确信这种情况会发生。学生们将不再为考试而学习, 而是为未来等待他们的挑战做好准备。它帮助他们使用 phabricator 和 git 等工具来工作和管理团队, 同时允许教师使用GitLab来跟踪学生的进度和个人贡献(使用数字数据处理系统捕获),以完成各自的项目。没有这样的数字工具, 组织意识就无法引起人类的注意, 组织学习就不可能发生。 值得信赖的计算技术, 如区块链技术集成到 remix 中。这些措施确保了不可改变, 同时确保在应获得信贷的情况下给予信贷。
容器化
容器是XLP、Remix平台和XLP的数字发布工作流的基础:
- XLP创建了可复制的、容器化的学习任务,然后可以在世界任何地方部署和扩展这些任务。
- ReMix提供了以数字方式执行此操作的基础设施-即Docker和Kubernetes。
- 参与者使用XLP的数字出版工作流创建容器化的数字资产,作为他们在任务中所做工作的记录和证明。
Docker 容器技术
Docker是一个操作系统抽象层,它为用户提供了管理集体边界和体验的抽象边界。Docker container“包含”:
- 操作系统(通常是Linux/Windows/MacOS)
- 要在操作系统上运行的程序(例如WordPress/MediaWiki)
- 程序的应用程序和配置数据(例如,WordPress媒体资产、WordPress配置细节)
- 程序的数据(if WordPress,MySQL/MariaDB的数据库)
这个容器及其数据(卷)可以从Docker文件系统保存/导出并加载,以便在任何地方部署。 就像操作系统,Docker:
- 通过哈希对容器进行身份验证。
- 调度优先级,例如容器可以访问哪些资源。
- 管理输入和输出,例如它可能使用多少主机资源。
我们在Docker上运行什么?
变量空间
计算机在抽象层次上运行。否则我们将直接处理0和1。一种常见的抽象是命名空间,它组织和命名对象。一些例子包括:
- 内存寄存器:每个寄存器都有自己的唯一地址
- 文件名:系统上的每个文件都有自己独特的路径和文件名组合
- 网址:每个网站通过不同的网址到达
容器也有自己独特的名称空间,即256位哈希密码。一个示例哈希密码(以十六进制格式显示)是:
7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069
这种哈希密码作为一个数字指纹,是高度安全的,因为组合数为 25632,如果使用50台超级计算机,需要 3x1051年才能破解。
核查与安全
有了文件名或URL,你就不能保证你真的会得到你认为你会得到的东西。今天“google.com”可能会带你去搜索引擎。明天,谷歌可能会被黑客入侵,你可能会在一个“看起来”像谷歌但窃取你的登录凭证的网站上结束。 容器是不同的。因为Docker 哈希密码序列是唯一的和无法忘记的,我们可以验证一个Docker容器并将它添加到其他已验证容器的数据库中。然后,当您部署该参数时,可以检查Hash密码序列是否与我们数据库中的序列码匹配,从而确保容器将一致运行。 这可以被认为类似于警方将已知罪犯的指纹与犯罪现场的指纹进行比较。
Secure Concurrent Editing
A potential barrier with generating big data simultaneously across a distributed network is the Byzantine Generals Problem5: Reliable computer systems must handle malfunctioning components that give conflicting information to different parts of the system.
In an abstract sense, this can be expressed as a group of generals camped with their troops around an enemy city. They can only communicate by messenger to agree on a common battle plan. However, one or more of them may be traitors who will try to confuse the others. So, how can we find an algorithm to ensure that the loyal generals will reach agreement?
It is shown that, using only oral messages, this problem is solvable if and only if more than two-thirds of the generals are loyal; so a single traitor can confound two loyal generals. With unforgeable written messages, the problem is solvable for any number of generals and possible traitors. In XLP, the problem can be seen as failing to process large amounts of data at the same time. The solution is a distributed repository (like Git) allowing all participants to transparently see what content others contribute. This increases everyone's confidence in the trustworthiness of their fellow participants, thus making them more likely to contribute and share content, and that this content will be compiled into a consistent result.
XLP uses existing computing science techniques that improve the ability to process the concurrent publishing of massive amounts of distributed intellectual content. Bitcoin also ensures Byzantine fault tolerance – in other words, solves the Byzantine Generals Problem – by incorporating a distributed database that lets any participant view the entire history of transaction records. This enables the processing and compiling of massive amounts of intellectual resources on an Internet scale. Open-source version control software, like Git, Concurrent Versions System (CVS), and Apache Subversion (SVN), also enable sharing of human-contributed content – be it source code, novels, textual content, movies, or photographs – and enable the processing and compiling of data on a massive scale.
Remix 工具
remix 平台提供了大量功能强大的工具,可由任何一个人管理,并可扩展到任何大小。 这些工具将是任何现代教育机构的重要资产, 使其能够充分发挥学生和工作人员的智力潜力。以前在知名公司才能充分发挥潜力的局限,现在该平台使其变得大众化。这些服务现在被整合到一个平台中, 允许任何个人或机构进行数字化。无需持续的在线连接, 该平台可以在全球最遥远的角落,年轻一代的人们在那里即可满足他们的计算需求。总之, remix 可以将知名软件公司使用的工具带入任何教室或家庭, 使任何人都能参与数字世界的未来。 同时,参与者可以使用 jovyter 和 openmodelica 等工具创建新数据, 或者使用Elasticsearch 和 TensorFlow分析和优化现有信息。最终, 每个人都可以创建或参与数字发布工作流-从数据输入到数据管理再到数据发布的循环, 所有这些都来自他们自己的笔记本电脑的一个应用程序。这就是remix。
Remix 微服务概览
数据输入
数据输入有不同的方式输入 remix 平台。在数据发布工作流中, 数据输入位于数据发布和数据管理之间, 因为以前发布的数据可以作为数据管理的输入。 通常, 数据可以以三种类型或其组合进入系统。
数据创建
Remix还提供了可以创建新数据的微服务。例如, openmodelica 使用户能够创建复杂系统的模拟。然后可以保存这些模拟产生的数据以供以后使用。另一项服务, juyter, 允许编码, 求解方程, 并显示他们的可视化, 然后可以在不同的用户之间实时共享。同样, 创建的所有数据都可以保存以供以后使用。
线上数据
remix 还允许用户从互联网 (如数据库、维基或图片) 获取数据。同样, 为此目的整合了不同的有效的微服务。数据可以直接从互联网上访问, 也可以先下载 (例如,未接入互联网或互联网速度缓慢的地方)。例如, kiwix 提供了整个维基百科、维基导游、TED 演讲等, 可在他们的网站上免费下载。此数据也可用作数据创建的输入, 随后可表现为数据组合。
私有数据
Remix 使用户能够使用自己的私有数据作为数据管理和发布的输入。为此, 该平台配备了诸如 nuxeo 等微服务, 这是一个已经被机构、公司和个人用于管理其数字资产的数字资产库, 另外还有用于云中文件存储的 nextcloud。因此, 他们可以利用现有数据, 将其用作其他微服务的输入, 以创建新数据, 同样可表示为组合。通常, 此类私有数据可能属于个人、机构或公司, 他们可以通过建模系统,根据需要扩展其数据存储,而不用扩展其他微服务。
数据管理
Remix 的数据管理部分使用四种不同的工具来执行许多任务。在数字发布工作流中, 数据管理介于数据输入和数据发布之间。数据管理的目的是从不同的数据输入加载给定的信息, 然后对其进行优化调整, 使其可搜索并产生最佳结果, 从而可以直观地呈现给用户。这是通过使用日志收集系统(包括 logstash, Elasticsearch和 kibana),结合机器学习能力的Tensor-Flow,是可实现的。这些工具结合在一起, 允许用户对各种数据执行查询, 而这些数据又可以根据无限数量的特征进行优化。下一节将介绍每个工具以及它们如何成为 remix 框架的一个不可或缺的组成部分。
Logstash:数据提取、转换、加载
Remix 由大量数据源组成, 每个数据源以很多不同的格式生成大量数据。因此, 有必要有一个工具, 可以提取、转换和加载输入数据进行下一步工作。这时要用到 logstash。Logstash是一种基于提取、转换、加载 (etl) 过程的开源服务器端数据处理通道。 每个步骤都有不同程度的复杂性, 将在以下各节中进行说明: logstash 执行的第一个工作是从不同定义的源提取数据。从概念上讲, 提取是整个过程中最简单的任务, 也是最重要的任务。从理论上讲, 将收集来自多个源系统的数据并将其传送到系统中, 然后将其转换并最终完成加载。然而, 实际上, 提取很容易成为这一过程中最复杂的部分。该过程需要从不同的源获取数据, 每个源都有自己的数据组织格式, 同时确保提取正确进行, 以便数据保持不变。这时需要进行验证。提取过程使用验证来确认提取的数据是否具有正确的值 (根据预期)。它的工作原理是设置一组特定的规则和模式, 可以验证所有数据。所提供的数据必须通过转换加载验证步骤, 以确保后续步骤仅接收适当的可管理数据。如果验证步骤失败,那么数据要么被完全拒绝,要么被传递回源系统进行进一步分析,以识别不适当的记录(如果存在的话)。 然后, 提取的数据将进入数据转换阶段。此阶段的目的是准备所有提交的数据, 以便完成最终的加载。这是通过应用一系列规则或功能来实现的, 以确保满足所有业务和技术需求。Logstash通过多达40个不同的筛选器进行筛选。筛选完成后, 信息将转换为通用格式, 以便于更容易、更快速地进行分析。同时, logstash 标识命名字段,在之前的非结构化数据可方便地构建结构。在转换过程结束时, 系统中的所有数据都将以共同的格式进行结构化, 并为后续进程所认可。 Etl 过程的最后一部分是加载阶段。加载阶段获取提交和转换的数据, 并将其最终完成加载。系统规定的某些要求必须得到维护。这涉及更新提取数据的频率, 以及在任何给定点上应覆盖哪些现有信息。Logstash允许系统加载到多个系统, 但 remix 只允许 eEasticsearch 接收数据。
Elasticsearch: 搜索和优化
搜索和优化是任何数据管理系统的两个关键性控制程序。它允许系统过滤掉所有不需要的数据, 并根据一些给定的属性对结果进行优先排序。 搜索和优化不是仅限于基本关键字搜索的功能, 而是可用于多种可能性。从在国际象棋比赛中选择正确的策略到模拟移动车辆的轨迹, 应有尽有。在所有这些情况下, 该函数利用来自不同数据源的可用信息与机器智能学习相结合, 提供所需的结果,来实现remix 使用Elasticsearch 和TensorFlow。Elasticsearch是一种分布式的搜索和分析引擎, 通过可搜索的方式存储数据。通过 logstash 传递的所有数据最终都会在Elasticsearch中闭合。由于它的结构和分析模式, 允许用户根据他们选择的参数进行搜索。然后, 给定的参数用于筛选掉所有不需要的结果。剩下的是以这样或那样的方式链接到原始搜索条件的结果列表。这份列表又交给了TensorFlow。 tensorflow 是一个使用深层神经网络来分析数据的数学库。系统接收由Elasticsearch选择的数据, 并根据预先确定的标准对其进行排序。这将为用户提供一个特定数量的结果, 这些结果应完全适合他们定义的需求。 在搜索和优化方面, remix 与其他服务的主要区别在于, 结果纯粹基于用户。如果用户指定了他们正在研究的某个兴趣或学术领域, 则将使用该参数作为焦点创建优化。因此,有针对性研究的会呈现,其中所有基于广告的排名或不需要的结果均将被删除。
Kibana: 数据可视化
在某些情况下, 数据管理过程的结果不是以链接或文本的形式出现的。在这些情况下, 通常需要数据经过某种可视化, 以便将其转化为可管理的内容。 这是由 kibana 执行的, kibana 是数据管理过程中的最后一个工具。kibana 是一个与 elasticsearch 配合使用的数据可视化插件,其在有索引的内容上提供可视化效果。它获取用户要求的所有数据, 并在适用的情况下提供可视化效果。因此, kibana 也可以被看作是 remix 的数据创建方面的一部分。
数据发布
T任何标准研究项目的最后一个方面都涉及公布结果和结论。 因此, remix 框架的最后一部分是数据发布。这一步骤的目的是确保向广大受众分发新数据, 同时保证出版的研究和发现的合法信用和所有权。为此,该平台使用了两种主要工具,MediaWiki和Hyperledger,同时结合了TensorFlow的机器学习能力。 mediawiki 是维基媒体基金会创建的数字出版工具。它允许以结构化和导向良好的方式发布信息。remix 使用 mediawiki 允许机构或个人创建封闭或开放的维基空间, 在这些空间中可以公布他们的所有信息和研究。然后, 每个发布者为每个新发布的文章或信息创建一个独特的名称。然后如上一章所述,使用 tensorflow的深层神经网络功能单独连接给定维基空间的所有信息。tensorflow 分析每一条信息, 并将其与其他相关信息联系在一起。这最终产生了一个维基空间, 里面充满了研究文章和其他信息, 再加上现有的维基百科数据, 这些信息是完全相连的。此外, 还可以根据用户设置建立文章的连接和建议。换句话说,如果一个用户正在学习生物并且正在研究蝴蝶的飞行模式,那么Remix将开始创建更多的链接,并找到更多关于这个主题的研究文章。在这种情况下,它可能会把蝴蝶的飞行模式与飞机机翼结构的演变联系起来6。 最终, 一个人可以通过 remix 访问一个深度互联的研究网络、发表的文章和来自互联网的现有数据。 为了确保系统中的所有信息都没有被篡改,同时发布者也得到了合法的授信, remix 使用值得信赖的计算技术, 如Hyperledger。Hyperledger是一种开源协作区块链技术, 可确保系统中所有数据的透明度和不可变性。这反过来又确保了任何可能有合法授信所有者的信息都被认为是合法的。这些工具开辟了数字出版过程的一个新层面, 使机构和个人能够向更多的受众贡献自己的知识。
群组
remix 提供了 phabricator 和 gitlab 作为参与者协作的平台。gitlab 是一个开源的基于 web 的 git-存储库管理器, 具有维基和问题跟踪功能, 允许用户上传、共享代码和数字资产, 同时确保不同版本之间不会发生冲突。 phabricator 是一套基于 web 的软件开发协作工具, 包括代码审阅者、存储库浏览器、更改监视工具、bug 跟踪器和 wiki。phabricator 与 git、mercurial 和 subversion 集成。参与者可以将其用于项目管理和团队内部 (和团队之间) 之间的协调。
架构
使用 docker 平台可以实现 remix 中服务的相互关联。docker 使用容器技术来允许微服务及其他数字资产可以在易于复制的沙箱中运行, 并且不会相互干扰。与虚拟机不同, 容器不需要来宾操作系统, 这使得它们更加轻量级, 允许在服务器或单台计算机上运行更多或更大的应用。 借助 docker 容器技术, 我们可以将所有数字资产重新定义为三个主要类别: 内容数据、软件数据和配置数据。可以使用哈希代码 (类似于 git 或区块链标签) 标记这些类别, 也可以通过 "令牌" 或哈希 id 进行交易。这使得参与者可以轻松地安装不同的软件服务, 并几乎立即开始使用该资产。最终的结果是, 参与者和教师可以更好地管理学习活动, 并使用一个一致的命名空间来整理他们的所有资产。
因此, 大量的容器可以很容易地组合在一个应用中。这可以通过 docker 撰写来完成。虽然 docker 关注单个容器, 但 docker 编写脚本器----编写多个容器的脚本, 这些容器一起工作, 以创建更大的应用程序。Remix中的微服务相互通信,从创建数据到管理数据,再到发布数据进行修改和移动数据。同时, 由于微服务仍存放在各自的容器中, 任何服务都可以随时添加或删除, 而不会损坏其他容器。 remix 还使用 kubernetes 支持部署、监视和扩展微服务, 这是专门为此任务设计的工具。然后, 微服务可以根据用户的需要单独和独立地进行扩展 (由于它们的容器化)。matomo (原名 piwik) 是一个开源分析软件包 (类似于 google 分析), 用于跟踪在线访问者、分析重要信息和跟踪关键绩效指标。Remix使用此软件来跟踪参与者对平台的使用情况。 最后,中间层DC/OS作为系统的基础,在Kubernetes和Docker以及用户的底层操作系统之间添加了一层抽象层。这种数据中心操作系统特别适用于微服务,并负责资源分配,使系统具有容错能力。 总之, remix 是一个轻量级、模块化且易于安装、使用和扩展的平台, 使每个人都能利用其中的强大微服务。该平台通过三部分结构实现了这一点,微服务是最高的抽象层,其次是Kubernetes和Docker的组合,最后是由Mesosphere DC/OS搭建。