Skip to content

Getting Started

Ioannis Papapanagiotou edited this page Oct 27, 2017 · 6 revisions

Dynomite Manager Configuration

Dynomite-manager leverages Guice to reduce repetition and in favor of a more readable configuration. FloridaModule is the logical place where the injectors are created and configured.

Functional Areas

Configuration Interface Description
Properties FloridaConfig system level configuration can be passed. It leverages a file, or Archaius2.
Properties AwsCommonConfig AWS configuration. Implement the same interface for other Cloud deployments.
Properties CassCommonConfig Cassandra configuration. Implement the same interface for other token databases.
Properties CommonConfig Common configuration.
Dynomite IDynomiteProcess Dynomite process interface
Application IAppsInstanceFactory create, delete, update etc. instance level operations like application name, instance ID, hostname, IP address, Rack, attached Volumes and Tokens. This information can be stored in an external location.
Storage IStorageProxy storage related functionalities like warm up, healthcheck, taking disk snapshot etc.
Environment InstanceDataRetriever receive information about Rac, public hostname, public IP, Instance ID and type. Mainly these are reported by the environment.
Fast Properties IConfigSource configuration source, internally at Netflix we use Archaius.

Default Implementation

binder().bind(IConfiguration.class).to(DynomitemanagerConfiguration.class);
binder().bind(ProcessTuner.class).to(FloridaStandardTuner.class);
binder().bind(IAppsInstanceFactory.class).to(CassandraInstanceFactory.class);
binder().bind(SchedulerFactory.class).to(StdSchedulerFactory.class).asEagerSingleton();
binder().bind(ICredential.class).to(IAMCredential.class);
binder().bind(IFloridaProcess.class).to(FloridaProcessManager.class);
binder().bind(IStorageProxy.class).to(RedisStorageProxy.class);
binder().bind(InstanceDataRetriever.class).to(AwsInstanceDataRetriever.class);

However, one can implement the interfaces based on their deployment and environment. The following implementations are provided:

Host Supplier

One can provide its own host supplier. In this case the config.isEurekaHostSupplierEnabled() must return false.

There are two exemplar host suppliers in the corresponding package. One based on Eureka and one based on a locally provided host supplier.

How to Use Configuration source:

Properties inherently use Archaius configuration.

But you can use any of the above methods to supply properties whichever way you would like. (e.g. Dynomitemanager.properties or System properties)

Another way to provide your properties is by using dynomitemanager{version}.jar in your web container and then implementing IConfiguration interface.