Code Monkey home page Code Monkey logo

bakerstreet's People

Contributors

ark3 avatar bryant1410 avatar janicedatawire avatar jmkarin avatar rhs avatar richarddli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bakerstreet's Issues

Clarify system requirements in quickstart

Make it clear that the JDK and maven are only requirements of the sample test service. The current text "simple service" is unclear; it can easily be taken to apply to Baker Street.

Connectivity Checks

Because Watson is a sibling process to the service process it is incapable of properly checking that connectivity can be established between a remote client and the service. For example, Watson will dutifully report that a service is working but in a situation where an inbound port is closed due to misconfiguration then client traffic will be rejected regardless. Therefore, we need connectivity checking which is checking that will occur from a client to the remote service. In a situation where the remote service is unavailable from the client then traffic will not be routed to that service.

One promising solution which we should explore is to use HAProxy and it's built in health checking facilities from the client side. This is how SmartStack solves this problem.

https://github.com/airbnb/smartstack-cookbook

Add support for referencing environment variables in config

Docker (and its cousins) do cool stuff like add link information to a containers environment variables, for example, if you specify a --link mysql:db' in therun` command you will be given that information in the container such that it can be retrieved via an environment variable like $DB_PORT_3306_TCP_ADDR.

This feature would expose a configuration file syntax similar to Ruby On Rails <%= ENV[''] => configuration string that will automatically query the environment variables if present rather than rely on a hard coded value.

Defining service name without sub folder in service url?

I'm just setting this up, so forgive me if I've missed something. I've setup a test service that returns an location lookup for an ip service.

[Watson]
; service_name must uniquely identify your service
service_url: http://ips.foobar.com:8001
liveness_url: http://ips.foobar.com:8001/livecheck
period: 3  ; seconds between liveness checks
; logging level (default in datawire.conf) may be DEBUG, INFO, WARNING, ERROR, or CRITICAL
;logging: WARNING

I would normally request to this server at http://ips.foobar.com:8001/8.8.8.8 and get something like

{"country":"US","country_full":"United States","division":"California","city":"Mountain View","lat":37.386,"log":-122.0838,"tz":"America/Los_Angeles"}

I get a 503 error message with the above config, If I add a "name" to the url

http://ips.foobar.com:8001/iplookup

Then I can call it successfully like so:

http://localhost:8000/iplookup

The application returns an error because that subfolder is being passed, is that the correct understanding?

Any way to define a "name" without making it part of the micro service url? Seems like a odd limitation, perhaps I'm missing something?

Clarify how this works with containers

One query, I don't understand what the deployment architecture would look like if your services were all deployed in containers, and how you would go about releasing new versions of services alongside old ones in this model.

  • Do you bundle Sherlock and Watson inside the container, or on the container host?
  • If they are inside the container, how do you go re-deploying dependent services (e.g. you don't want to go inside each container update config files)?
  • Where would you specify the port that the new version of the service runs on (would you need to know it in advance)?

I'm having a hard time visualising how the container model works in practice and where the service and client nodes are configured - e.g. a specific example of how it works if you have two services (A -> B) in containers talking to each other and you want to canary release B.

License Issue

The LICENSE file says the project is under the Apache Public License, however files headers tell a different story:

# Copyright (C) k736, inc. All Rights Reserved.
# Unauthorized copying or redistribution of this file is strictly prohibited.

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.