Documenation PDF

This commit is contained in:
Christoph Walther
2024-09-20 12:36:35 +02:00
parent d1e1f9bd7c
commit e8abeb48e8
6 changed files with 61 additions and 51 deletions

2
.gitattributes vendored Normal file
View File

@ -0,0 +1,2 @@
*.pdf filter=lfs diff=lfs merge=lfs -text
*.iso filter=lfs diff=lfs merge=lfs -text

View File

@ -1,29 +1,24 @@
@inproceedings{totschnig_openhpi_2013,
address = {Aachen, Germany},
title = {{openHPI}: {Evolution} of a {MOOC} {Platform} from {LMS} to {SOA}:},
isbn = {978-989-8565-53-2},
shorttitle = {{openHPI}},
url = {http://www.scitepress.org/DigitalLibrary/Link.aspx?doi=10.5220/0004416905930598},
doi = {10.5220/0004416905930598},
language = {en},
urldate = {2024-08-27},
booktitle = {Proceedings of the 5th {International} {Conference} on {Computer} {Supported} {Education}},
publisher = {SciTePress - Science and and Technology Publications},
author = {Totschnig, Michael and Willems, Christian and Meinel, Christoph},
year = {2013},
pages = {593--598},
file = {2013 - openHPI Evolution of a MOOC Platform from LMS to .pdf:/home/chris/Zotero/storage/UBWTRJJ7/2013 - openHPI Evolution of a MOOC Platform from LMS to .pdf:application/pdf},
@misc{noauthor_codegrade_nodate,
title = {The {CodeGrade} {Documentation}{CodeGrade} {QuietStorm}.1 documentation},
url = {https://docs.codegra.de/},
urldate = {2024-08-25},
file = {The CodeGrade Documentation — CodeGrade QuietStorm.1 documentation:/Users/chris/Zotero/storage/K79YSBN2/docs.codegra.de.html:text/html},
}
@article{serth_codeocean_2021,
title = {{CodeOcean} and {CodeHarbor}: {Auto}-{Grader} and {Code} {Repository}},
abstract = {The Hasso Plattner Institute (HPI) successfully operates a MOOC (Massive Open Online Course) platform since 2012. Since 2013, global enterprises, international organizations, governments, and research projects funded by the German ministry of education are partnering with us to operate their own instances of the platform. The focus of our platform instance is on IT topics, which includes programming courses in different programming languages. An important element of these courses are graded hands-on programming assignments. MOOCs, even more than traditional classroom situations, depend on automated solutions to assess programming exercises. Manual evaluation is not an option due to the massive amount of users that participate in these courses. The paper at hand presents two of the tools developed in this context at the HPI: CodeOcean—an auto-grader for a variety of programming languages, and CodeHarbor, a tool to share auto-gradable programming exercises between various online platforms.},
@misc{noauthor_check50_nodate,
title = {check50 {Documentation}},
url = {https://cs50.readthedocs.io/projects/check50/en/latest/},
urldate = {2024-08-25},
file = {check50 — check50 Docs:/Users/chris/Zotero/storage/FKGGRXQ8/latest.html:text/html},
}
@misc{noauthor_submit50_nodate,
title = {submit50},
url = {https://cs50.readthedocs.io/submit50/},
abstract = {submit50 is a command-line tool with which you can submit work (e.g., problem sets) to a course (e.g., CS50). Its based on git, a “distributed version control system” that allows you to save diffe...},
language = {en},
journal = {Seventh SPLICE Workshop at SIGCSE 2021 “CS Education Infrastructure for All III: From Ideas to Practice (SPLICE'21)},
author = {Serth, Sebastian and Staubitz, Thomas and Teusner, Ralf and Meinel, Christoph},
year = {2021},
file = {Serth et al. - CodeOcean and CodeHarbor Auto-Grader and Code Rep.pdf:/home/chris/Zotero/storage/ECQHYIQ8/Serth et al. - CodeOcean and CodeHarbor Auto-Grader and Code Rep.pdf:application/pdf},
urldate = {2024-08-25},
}
@inproceedings{staubitz_codeocean_2016,
@ -39,27 +34,39 @@
note = {ISSN: 2165-9567},
keywords = {Automated Assessment, Computer languages, E-Learning, Electronic learning, Hands-on Experience, Interoperability, MOOC, Online Assessment, Programming, Programming profession, Scalability},
pages = {314--323},
file = {CodeOcean_-_A_versatile_platform_for_practical_programming_excercises_in_online_environments:/home/chris/Zotero/storage/JG6WSTH2/CodeOcean_-_A_versatile_platform_for_practical_programming_excercises_in_online_environments.pdf:application/pdf;IEEE Xplore Abstract Record:/home/chris/Zotero/storage/QVILNJDL/7474573.html:text/html},
file = {CodeOcean_-_A_versatile_platform_for_practical_programming_excercises_in_online_environments:/Users/chris/Zotero/storage/JG6WSTH2/CodeOcean_-_A_versatile_platform_for_practical_programming_excercises_in_online_environments.pdf:application/pdf;IEEE Xplore Abstract Record:/Users/chris/Zotero/storage/QVILNJDL/7474573.html:text/html},
}
@misc{noauthor_submit50_nodate,
title = {submit50},
url = {https://cs50.readthedocs.io/submit50/},
abstract = {submit50 is a command-line tool with which you can submit work (e.g., problem sets) to a course (e.g., CS50). Its based on git, a “distributed version control system” that allows you to save diffe...},
@article{serth_codeocean_2021,
title = {{CodeOcean} and {CodeHarbor}: {Auto}-{Grader} and {Code} {Repository}},
abstract = {The Hasso Plattner Institute (HPI) successfully operates a MOOC (Massive Open Online Course) platform since 2012. Since 2013, global enterprises, international organizations, governments, and research projects funded by the German ministry of education are partnering with us to operate their own instances of the platform. The focus of our platform instance is on IT topics, which includes programming courses in different programming languages. An important element of these courses are graded hands-on programming assignments. MOOCs, even more than traditional classroom situations, depend on automated solutions to assess programming exercises. Manual evaluation is not an option due to the massive amount of users that participate in these courses. The paper at hand presents two of the tools developed in this context at the HPI: CodeOcean—an auto-grader for a variety of programming languages, and CodeHarbor, a tool to share auto-gradable programming exercises between various online platforms.},
language = {en},
urldate = {2024-08-25},
journal = {Seventh SPLICE Workshop at SIGCSE 2021 “CS Education Infrastructure for All III: From Ideas to Practice (SPLICE'21)},
author = {Serth, Sebastian and Staubitz, Thomas and Teusner, Ralf and Meinel, Christoph},
year = {2021},
file = {Serth et al. - CodeOcean and CodeHarbor Auto-Grader and Code Rep.pdf:/Users/chris/Zotero/storage/ECQHYIQ8/Serth et al. - CodeOcean and CodeHarbor Auto-Grader and Code Rep.pdf:application/pdf},
}
@misc{noauthor_check50_nodate,
title = {check50 {Documentation}},
url = {https://cs50.readthedocs.io/projects/check50/en/latest/},
urldate = {2024-08-25},
file = {check50 — check50 Docs:/home/chris/Zotero/storage/FKGGRXQ8/latest.html:text/html},
@inproceedings{totschnig_openhpi_2013,
address = {Aachen, Germany},
title = {{openHPI}: {Evolution} of a {MOOC} {Platform} from {LMS} to {SOA}:},
isbn = {978-989-8565-53-2},
shorttitle = {{openHPI}},
url = {http://www.scitepress.org/DigitalLibrary/Link.aspx?doi=10.5220/0004416905930598},
doi = {10.5220/0004416905930598},
language = {en},
urldate = {2024-08-27},
booktitle = {Proceedings of the 5th {International} {Conference} on {Computer} {Supported} {Education}},
publisher = {SciTePress - Science and and Technology Publications},
author = {Totschnig, Michael and Willems, Christian and Meinel, Christoph},
year = {2013},
pages = {593--598},
file = {2013 - openHPI Evolution of a MOOC Platform from LMS to .pdf:/Users/chris/Zotero/storage/UBWTRJJ7/2013 - openHPI Evolution of a MOOC Platform from LMS to .pdf:application/pdf},
}
@misc{noauthor_codegrade_nodate,
title = {The {CodeGrade} {Documentation} {CodeGrade} {QuietStorm}.1 documentation},
url = {https://docs.codegra.de/},
urldate = {2024-08-25},
file = {The CodeGrade Documentation — CodeGrade QuietStorm.1 documentation:/home/chris/Zotero/storage/K79YSBN2/docs.codegra.de.html:text/html},
@misc{noauthor_tutor_nodate,
title = {Tutor: the {Docker}-based {Open} {edX} distribution designed for peace of mind — {Tutor} documentation},
url = {https://docs.tutor.edly.io/},
urldate = {2024-09-20},
file = {Tutor\: the Docker-based Open edX distribution designed for peace of mind — Tutor documentation:/Users/chris/Zotero/storage/LDFYGRBX/docs.tutor.edly.io.html:text/html},
}

View File

@ -15,6 +15,7 @@ In particular, this project aims to provide the following benefits to Open edX o
* Scalable hosting for instances of any size. This means for example that the default configuration includes autoscaling of LMS pods to handle increased traffic.
* Flexibility: this project aims to be "batteries included" and to support setting up all the resources that you need, with useful default configurations, but it is carefully designed so that operators can configure, replace, or disable any components as needed.
cite:[noauthor_tutor_nodate]
image:edX-k8s.drawio.svg[edX-K8s Deployment,align=center]

View File

@ -1,14 +1,14 @@
Kubernetes und Nomad sind beides Plattformen für das Management und die Orchestrierung von Containern, aber sie haben unterschiedliche Konzepte und Architekturen. Um die beiden Systeme zu vergleichen, insbesondere in Bezug auf Begriffe wie Deployment, Job, Pod, und deren Umsetzung in beiden Systemen, ist es wichtig, die jeweilige Architektur und Konzepte im Detail zu verstehen.
=== 1. Grundlegende Architektur
=== Grundlegende Architektur ===
- **Kubernetes** besteht aus einem Master-Node (Control Plane) und mehreren Worker-Nodes. Der Master-Node übernimmt die Steuerung, Scheduling, und Verwaltung der Clusterressourcen. Die Worker-Nodes führen die Container (Pods) aus.
- **Nomad** hat eine zentrale Architektur, bei der ein Nomad-Cluster aus Servern und Clients besteht. Die Server verwalten den Zustand und die Planung von Jobs, während die Clients die Jobs tatsächlich ausführen. Nomad ist etwas flexibler, da es nicht nur Container, sondern auch andere Arten von Workloads (z. B. Nicht-Container-Anwendungen, Batch-Jobs) orchestrieren kann.
=== 2. **Vergleich wichtiger Konzepte**
=== Vergleich wichtiger Konzepte ===
[cols="^3a,a,a", frame="none"]
[cols="^a,2a,2a", frame="none"]
|===
| Konzept | Kubernetes | Nomad
@ -27,7 +27,7 @@ Kubernetes und Nomad sind beides Plattformen für das Management und die Orchest
| **StatefulSet**| Kubernetes verwendet StatefulSets für zustandsbehaftete Anwendungen, die individuelle, persistente Speicher benötigen und geordnete Starts und Beendigungen erfordern. | Nomad unterstützt Stateful-Anwendungen durch die Verwendung von Volumes und Persistent Data. Es gibt jedoch keine direkte Entsprechung zum StatefulSet von Kubernetes.
|===
=== 3. **Entsprechungen für eine Nomad-zu-Kubernetes-Umsetzung**
=== Entsprechungen für eine Nomad-zu-Kubernetes-Umsetzung ===
Wenn du eine **Nomad-Job-Definition** in eine Kubernetes-Umgebung umschreiben möchtest, sind folgende Konzepte besonders relevant:
@ -44,7 +44,7 @@ Wenn du eine **Nomad-Job-Definition** in eine Kubernetes-Umgebung umschreiben m
- **Task-Gruppen in Nomad -> Kubernetes Pods**
- In Nomad gibt es "Task Groups", die eine Gruppe von Tasks innerhalb eines Jobs darstellen, die zusammen bereitgestellt werden. Das ist vergleichbar mit Kubernetes Pods, die mehrere Container enthalten.
### 4. **Spezielle Deployment-Szenarien**
=== Spezielle Deployment-Szenarien ===
- **Stateful Anwendungen**:
- In Kubernetes verwendet man StatefulSets, um zustandsbehaftete Anwendungen zu deployen, während Nomad hier mit individuellen Jobs und Persistent Volumes arbeitet.
@ -52,7 +52,7 @@ Wenn du eine **Nomad-Job-Definition** in eine Kubernetes-Umgebung umschreiben m
- **Service Mesh und Service Discovery**:
- Kubernetes verwendet standardmäßig Services und optional zusätzliche Service-Mesh-Lösungen wie Istio, um Netzwerktraffic zu steuern. Nomad verwendet oft Consul für Service Discovery und kann in ein Service-Mesh integriert werden.
=== 5. **Beispiel: Nomad-Job zu Kubernetes Deployment**
=== Beispiel: Nomad-Job zu Kubernetes Deployment ===
#### Nomad Job Definition:
```hcl
@ -76,7 +76,7 @@ job "example" {
}
```
#### Entsprechendes Kubernetes Deployment:
==== Entsprechendes Kubernetes Deployment: ====
```yaml
apiVersion: apps/v1
kind: Deployment
@ -103,7 +103,7 @@ spec:
memory: "256Mi"
```
=== Wichtige Unterschiede und Gemeinsamkeiten für die Umsetzung
=== Wichtige Unterschiede und Gemeinsamkeiten für die Umsetzung ===
- **Pods in Kubernetes** entsprechen **Task Groups in Nomad**, mit jedem Task in Nomad, der einem Container in Kubernetes entspricht.
- **Nomad Jobs** sind flexibler und können sowohl Batch-Prozesse als auch Services umfassen, während in Kubernetes Batch-Jobs von Deployments (für kontinuierlich laufende Dienste) unterschieden werden.

View File

@ -3,6 +3,3 @@ bibliography::[]
[bibliography]
== References
* [[[tutor]]] https://docs.tutor.edly.io/ "Tutor Documentation" - Tutor is a platform for creating and managing online courses.

BIN
main.pdf (Stored with Git LFS) Normal file

Binary file not shown.