Skip to content

Project 3 Part 1

milanchheta edited this page Apr 11, 2020 · 11 revisions
  • Problem Statement

    Our weather forecasting system shows various shortcomings and vulnerabilities, which we intend to improve in this phase of milestone

    • Our system does not address an architecture or does not have a configuration that ensures reliable routing of requests from one service to another service. Thus, there is no guarantee of a request being processed successfully with requests being load-balanced between several instances of the services, that can avoid the extensive backlog of requests. Also, there is no way to stop requests from routing to a poorly behaving service.
    • No proper logging or tracing of requests is being implemented that can help debug the system conveniently.
    • The system is vulnerable and does not comprise any encryption methods to make the requests between services more secure nor does it authenticate services before routing the requests.
    • Improvements are needed in case of deployment strategies to have minimal or no downtime while introducing new service or updating an service and network complications while setting up the services.
  • Proposed Solution

    • We plan to introduce and integrate service mesh in our weather forecasting distributed system to address the above-mentioned problems.
    • Various features of service mesh such as handling network failures, providing end-to-end performance and reliability, efficient communication, logging, tracing, security, traffic control, monitoring, etc. makes it an ideal solution for the above problems.
    • We intend to use one of the various service mesh technologies available such as Consul connect/Envoy/Istio/Linkered based on their offered features and functionalities. Also, we would like to use monitoring tools such as Prometheus/Grafana to implement observability.
    • We also want to enhance our system with one of the deployment/release strategies such as Canary/blue-green deployment, etc.
  • Implementation Plan

    The implementation plan has been divided into phases for convenience.

    • Phase 1

      In Phase 1, we plan to integrate data plane(interconnected side-car proxies) and control plane(components to configure sidecar proxies and collect metrics) for service mesh.

    • Phase 2

      In Phase 2, we plan to implement a deployment strategy such as canary/blue-green deployment, etc that is best suited for our system.

    • Phase 3

      In Phase 3, we plan to make our system more secure by using certificates for authenticating the validity of each service, adding ingress/egress rules and using mTLS to encrypt the requests between every service.

    • Phase 4

      In Phase 4, we plan to set up the observability of our system by providing the logs(captured by control plane of service mesh) to one of the open source monitoring tools such as Prometheus/Grafana.

Clone this wiki locally