Der Fokus liegt hier vor allem auf der Bereitstellung von standardisierten Konfigurationen und Logging, Health-Check- und metrischen Endpunkten mit konfigurierbaren Strategien und Basic-Interfaces zur Definition von Service-Erwartungen und -Vokabular. Aktuell, so erklärt JP Robinson in einem Blogpost im NYT-Entwicklerblog, kommt Gizmo beim NYT-Entwicklerteam bereits für die Bearbeitung verschiedener Aufgaben – etwa dem Erstellen von JSON-APIs – zum Einsatz. Seit Dezember 2015 steht Gizmo nun auch Open Source zur Verfügung, wovon sich das Entwicklerteam vor allem eins verspricht: die Weiterentwicklung des Toolkits in Zusammenarbeit mit der Go-Community.
Das steckt in Gizmo
Bereits vor drei Jahren hat das Entwicklerteam der New York Times damit begonnen, Go als Programmiersprache zum Erstellen von besseren Backend-Diensten zu nutzen. Dabei hat man vor allem zu Beginn ohne Frameworks oder geteilte Interfaces gearbeitet, was zu unterschiedlichen API-Strukturen, Benennungs-Konventionen und Third-Party-Tools führte. Dazu erklärt JP Robinson:
As we started building more and more APIs, the pains of microservices started to become apparent.
Da man jedoch nicht auf die Vollendung von Go kit warten wollte, entschied sich das NYT-Entwicklerteam dafür, mit Gizmo ein eigenes Toolkit ins Leben zu rufen, das künftig auch das ebenfalls als Microservice-Toolkit dienende Go kit mit einigen zusätzlichen Features komplimentieren soll.
Dafür bringt Gizmo insgesamt vier verschiedene Packages mit sich, mit denen Entwicklern das Konfigurieren und Erstellen von Microservice-APIs und Pubsub-Daemons erleichtert werden soll. Dazu gehören:
- package config: stellt ein Set typischer
structs
zur Arbeit mit Technologien wie MySQL, MongoDB, Oracle, AWS oder Kafka zur Verfügung - package server: enthält den Großteil des Toolkits und stellt etwa ein Set von Interfaces zur Verfügung, mit denen sich definieren lässt, wie Server und Dienste aussehen und miteinander kommunizieren sollen
- package web: besteht aus nützlichen Funktionen, etwa zum Extrahieren von Integer und Datentypen
- package pubsub: beinhaltet zwei generische Interfaces zum Veröffentlichen von Daten in Warteschleifen und dem Aufrufen von Daten aus selbigen
Ausführlichere Informationen zu den einzelnen Packages bietet der zugehörige Blogpost im New-York-Times-Entwicklerblog sowie das GitHub-Repository. Dort steht das Microservice-Toolkit auch zum Download zur Verfügung.
Name | Gizmo |
---|---|
Hersteller | The New York Times |
GitHub | https://github.com/NYTimes/gizmo |
Efficient Transformers
Christoph Henkelmann, DIVISIO
Enhancing Page Visits by Topic Prediction
Dieter Jordens, Continuum Consulting NV
Machine Learning on Edge using TensorFlow
Håkan Silfvernagel, Miles AS
Aufmacherbild: Black toolbox with different instruments von Shutterstock / Urheberrecht: Kordik