Code Monkey home page Code Monkey logo

22_teslamotors_kafka-helmsman's Introduction

kafka-helmsman

Build status

kafka-helmsman is a repository of tools that focus on automating a Kafka deployment. These tools were developed by data platform engineers at Tesla, they add value to the open-source Kafka ecosystem in a couple of ways:

  1. The tasks covered by these tools are infamous for adding toil on engineers, for us these tools save engineering weeks each quarter
  2. They have been battle-tested internally, high quality and user-friendly

The tools are

Follow the links for more detail.

Development

The tools are written in Java & Python. Refer to language specific section for development instructions.

Java

Dependencies

Java code uses bazel as the build tool, installation of which is managed via bazelisk. Bazelisk is a version manager for Bazel. It takes care of downloading and installing Bazel itself, so you don’t have to worry about using the correct version of Bazel.

Bazelisk can be installed in different ways, see here for details.

Test

bazel test //...:all

Build

bazel build //...:all

Note: In bazel, target spec //..:all indicates all rules in all packages beneath workspace, thus bazel build //...:all implies build everything.

Intellij

If you are using Intellij + Bazel, you can import the project directly with:

  • File -> Import Bazel Project
  • Select kafka-helmsman from where you cloned it locally
  • Select "Import project view file" and select the ij.bazelproject file
  • Select "Finish" with Infer from: Workspace (the default selection)

The newest version of Intellij does not play nicely with Bazel (and its plugins). We recommend using Intellij 2018.3.6 with Bazel plugin version v2019.04.15.0.5

Python

Dependencies

Python code uses tox to run tests. If you don't have tox installed, here is a quick primer of tox.

Tox Primer (optional, skip if you have a working tox setup)

Install pyenv
brew install pyenv
brew install pyenv-virtualenv
Install python versions
pyenv install 3.5.7
pyenv install 3.6.9
pyenv install 3.7.4
Install tox
pyenv virtualenv 3.7.4 tox
pyenv activate tox
pip install tox
pyenv deactivate
Setup python path
pyenv local 3.5.7 3.6.9 3.7.4 tox

Test

./build_python.sh

Build

./build_python.sh package

22_teslamotors_kafka-helmsman's People

Contributors

ep-infosec avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.