Introdução - getheimdall/heimdall GitHub Wiki

Heimdall é composto por seis módulos, onde três são centrais ao projeto — Config, API and Gateway —, construídos em volta certos domínios de negócios.

Config

Spring Cloud Config é um serviço centralizado, horizontalmente escalável, para configuração de sistemas distribuídos. Utiliza uma camada de repositórios que suporta armazenamento local, Git e Subversion.

Nesse projeto nós usamos native profile que carrega os arquivos de configuração para o classpath local. Você pode ver no diretório shared de Config service resources. Agora quando o Heimdall-Api requisitar a sua configuração o serviço Config responde com shared/application-api.yml.

Gateway

Nós construímos nosso algorítimo usando o Netflix Zuul como base. Nós adicionamos alguns esteroides em alguns Zuul Filters e alguns critérios para fazer o roteamento mais rígido (like the HTTP Verb on the match). Além disso, para gerenciar as requisições/resposts e o fluxo dos Zuul Filters nós utilizamos o (RabbitMQ) para comunicação com a API.

API

Para fornecer uma forma fácil de gerenciar o gateway nós implementamos uma API. Essa API facilita o cadastro de novas rotas, interceptadores, limite de requests, entre outras coisas que manipulam o gateway em tempo de execução.

Deploy no Heroku

Heimdall pode ser facilmente iniciado no Heroku utilizando esse botão:

Deploy to Heroku

Ou utilizando os seguintes comandos:

$ heroku login
$ heroku create
$ git push heroku master
$ heroku open

Estamos abertos a contribuições

O Heimdall é código aberto, e nós agradecemos qualquer ajuda. Se sinta livre para contribuir.

Antes de contribuir nesse repositório, por favor discuta a modificação que você pretende fazer numa issue, e-mail, ou qualquer outro método com os donos do repositório antes de fazer sua modificação.

Entenda que temos um código de conduta, por favor o siga em todas as interações no projeto.

Processo para Pull Request

  1. Certifique que todas as dependências de build e instalação foram removidas quando criar um build.
  2. Atualize o README.md com detalhes de modificações a interface. Incluindo novas variáveis de environment, portas expostas, localização de arquivos e parâmetros de containers.
  3. O merge do seu pull request será feito quando for aprovado por algum membro do time.

Roadmap

Só membros do time do Heimdall podem criar novos issues nesse repo. Se você acha que um projeto deve ser adicionado ao tracker, por favor deixe um comentário no no issues "pai". Além disso sinta-se livre para comentar, questionar, sugerir novas ideias, ou requisitar updates que você acha que devem ser feitos.