Git Product home page Git Product logo

hwx-pe-k8s-o3's Introduction

Cloud Native Risk Analytics

Cloud native risk analytics application stack leveraging

all running on K8s equipped with Prometheus for metrics and monitoring.

Architecture

app-arch app infra

Tech Stack

Tech Version
macOS Mojave v10.14.3
Minikube 1.0.0 (VirtualBox 5.2.22)
Kubernetes v1.14.0
Docker CE 18.09.2
Helm v2.13.1
Prometheus 2.6 (w/ prometheus-operator)
Skaffold v0.26.0
Apache Hadoop Ozone ozone-0.4 (rev 8d1c2184283ab292b44022c55668cba00d885181)
Apache Spark customized fork based off of 3.0.0-SNAPSHOT (rev a15f17ce277e21d4a1e6b6018a2faea1549d5506)
Apache Zeppelin customized fork based off of 0.9.0-SNAPSHOT (rev 97c845a6f39e60d93a553d9b438bb11fb38e0497)

Prerquisites (for Mac)

see scripts/setup/install-utils-mac.sh

Steps

  1. Build the following project distributions and Docker images from source:

    a. Apache Hadoop Ozone 0.4 [steps]

    [OPTIONAL]

    b. Apache Spark 3.0 [steps] | [prebuilt image - amolthacker/spark:3.0.0]

    c. Apache Zeppelin 0.9 [steps] | [prebuilt image - amolthacker/zeppelin:0.9.0-snapshot]

    d. spark-ozone image [steps] | [amolthacker/spark-ozone:3.0.0]

  2. Install the built hadoop-ozone pom and jars in local maven repo

    $ ./scripts/common/setup-ozlib-mvn.sh
    
  3. Build the compute-engine code and Docker image

    $ ./rebuild-app.sh
    
  4. Spin up a Minikube cluster (GKE soon) and deploy Hadoop Ozone and the compute-engine app in K8s

    $ ./redeploy-minikube.sh
    

    The script automates the following steps:

    a. Spins up minikube K8s cluster

    b. Deploys Helm

    c. Deploys Prometheus and Istio

    d. Deploys Hadoop Ozone and initializes Ozone S3 bucket valuations

    e. Deploys the compute-engine app

    f. Deploys Zeppelin

    As the script executes, one should see the following:

    mkube-deploy prom-deploy oz-deploy

  5. Once the K8s infrastructure is up, one can forward service ports for access through local browser

    $ sudo kubefwd svc -n default
    

    kubefwd

    One can now access the services as follows:

    Service URL
    Ozone Manager http://om-public:9874
    Ozone S3 Bucket Explorer http://s3g-public:9878/valuations?browser=true
    Zeppelin http://zeppelin-server/#/

    and K8s Dashboard

    $ minikube dashboard
    

    k8s-dashboard-1 k8s-dashboard-2

  6. One can submit risk compute jobs and have the comput-engine calculate risk metrics and persist them in Ozone

    $ ./scripts/submit-compute-batch
    Usage: ./scripts/common/submit-compute-batch 
        -t, --k8s-type    <mkube|gke|eks|aks>   : K8s Type
        -n, --num-jobs    <num_jobs>            : No.of Valuation Jobs
        -s, --compute-svc <compute_svc_address> : Compute Service DNS/PIP
        -h, --help                              : Help
    

    eg:

    $ ./scripts/common/submit-compute-batch -t mkube -n 10 -s 192.168.99.100:30309
    

    om oz-s3

  7. Launch Zeppelin in the browser and import notebook notebook/hwxpe.json

  8. Run the paragraphs for analytics on the computed risk metrics using Spark on Ozone

    zeppelin-nb-1 zeppelin-nb-2 spark-dashboard

Credits and References

hwx-pe-k8s-o3's People

Contributors

amolthacker avatar

Watchers

James Cloos 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.