Titelaufnahme

Titel
Eine vollautomatische Build Pipeline für Erlang/OTP-Projekte: Design, Implementation und Evaluation
Weitere Titel
A Hands-Off Build Pipeline for Erlang/OTP Projects: Design, Implementation, and Evaluation
AutorInnenZak, Albert
GutachterGöschka, Karl Michael
Erschienen2018
Datum der AbgabeMärz 2018
SpracheEnglisch
DokumenttypBachelorarbeit
Schlagwörter (DE)Continuous Integration / Git / Tooling / Erlang / Elixir / Automatisierung / Dynamic Software Updating
Schlagwörter (EN)Continuous Integration / Git / Tooling / Erlang / Elixir / Automation / Dynamic Software Updating
Zugriffsbeschränkung
 _
Klassifikation
Zusammenfassung (Deutsch)

Erlang/OTP ist eine Programmiersprache und ein Laufzeitsystem, um verteilte Systeme mit hohen Anforderungen an Verfügbarkeit zu konstruieren. Jedoch kollidiert der Release-Prozess mit der Idee von Continuous Integration (CI), denn um Releases zusammenzustellen sind einige manuelle Schritte notwendig. Bisherige Arbeiten automatisieren den Kompilations- und Build-Prozess hauptsächlich auf niedriger Ebene. Verwaltung und Versionierung von Artefakten mussten weiterhin separat behandelt werden. Diese Arbeit präsentiert ein Werkzeug, um vollautomatisch OTP Releases zu erzeugen. Das Tool soll als Teil einer Continuous Integration Pipeline eingesetzt werden können. Alle Artefakte werden zentral in einem Release Store gespeichert. Enge Kopplung mit Git ermöglicht zuverlässige Identifikation von Releases, indem numerische Versionsnummern durch Commit-Hashes abgelöst werden. Evaluation einer Referenzimplementation auf sechs Continuous Integration Plattformen (CircleCI, Codeship, Semaphore, Shippable, Travis CI, und Wercker) zeigt vergleichbare Performance und geringen Einrichtungsaufwand.

Zusammenfassung (Englisch)

Erlang/OTP is a programming language and runtime system for building distributed systems with high availability requirements. The Erlang/OTP release process is at odds with the practice of Continuous Integration, as assembling a release capable of Dynamic Software Updating (DSU) requires manual interaction at many steps. Previous work on automating Erlang/OTP Release generation has addressed parts of the process by abstracting the low-level mechanics of the build step, but tasks such as versioning and handling artifacts were left to the developer. This thesis presents a release generation tool designed for hands-off operation as part of a Continuous Integration pipeline. Tight coupling with Git allows reliable identification of releases by discarding numeric versions in favor of commit hashes, and a centralized release store takes care of handling artifacts. Evaluation of a reference implementation on six hosted Continuous Integration providers CircleCI, Codeship, Semaphore, Shippable, Travis CI, and Wercker demonstrates comparable run time and ease of setup.