appengine/
This directory contains the AppEngine services needed for a LUCI infrastructure.
Every single microservice below is optional. Please mix and match based on your needs.
TL;DR
Services
- auth_service/ Authentication Server. Provides centralized group management and group database replication across services.
- config_service/ is a project configuration distribution server that supports importing from repositories.
- gce-backend/ is a Google Compute Engine backend for machine_provider.
- isolate/ Isolate Server is a Content-Addressed Cache running on AppEngine backed by Cloud Storage.
- machine_provider/ Machine provider is a service to lease VMs from a pool to users.
- swarming/ Swarming Server is a task distribution engine for highly hetegeneous fleet at high scale.
Supporting code
- components/ contains the modules shared by all services in this repository. This includes the embeddable part of auth_service to act as a client for auth_service, ereporter2, machine_provider, tooling for testing and deployment.
- third_party/ contains shared third parties. Services using these should symlink the packages inside the root server directory so it becomes available in sys.path.
- third_party_local/ constains testing or tooling related third parties that are not meant to be ever used on a AppEngine server.
Tooling
All services can be managed with ./tools/gae
, including running locally or pushing a new version. Use ./tools/gae help
for an up to date list of commands available.
External dependencies
luci-py leverages Chromium specific functionalities: CIPD (hermetic package management) and ts_mon (monitoring). Neither are strictly required for operational purpose.