Example #1
0
            hub = KubernetesEngine("Hub")
            proxy = KubernetesEngine("Proxy")
            notebook = KubernetesEngine("Notebook")
            proxy >> hub
            hub >> notebook
            proxy >> notebook

        with Cluster("TAP"):
            tap = KubernetesEngine("TAP")
            schema = SQL("MySQL Schema DB")
            uws = SQL("PostgreSQL UWS")

        with Cluster("Gafaelfawr"):
            gafaelfawr = KubernetesEngine("Gafaelfawr")
            redis = Memorystore("Redis")
            cloudsql = SQL("Cloud SQL")

    qserv = Datastore("qserv")

    user >> ingress >> proxy >> hub
    user >> ingress >> proxy >> notebook >> ingress
    ingress >> tap
    ingress >> Edge(label="auth subrequest") >> gafaelfawr
    tap >> Edge(label="token user-info") >> ingress
    ingress >> Edge(label="token user-info") >> gafaelfawr
    tap >> schema
    tap >> uws
    tap >> qserv
    gafaelfawr >> redis
    gafaelfawr >> cloudsql
Example #2
0
        filename="architecture",
        outformat="png",
        graph_attr=graph_attr,
        node_attr=node_attr,
):
    user = User("End User")
    frontend = React("Web UI")

    with Cluster("Kubernetes"):
        ingress = LoadBalancing("NGINX Ingress")
        kafka = KubernetesEngine("Kafka")

        with Cluster("Gafaelfawr"):
            server = KubernetesEngine("Server")
            postgresql = SQL("PostgreSQL")
            redis = Datastore("Redis")
            redis_storage = PersistentDisk("Redis Storage")

            user >> frontend >> ingress >> server >> redis >> redis_storage
            server >> postgresql

            kafka_listener = KubernetesEngine("Kafka Listener")

            server >> kafka >> kafka_listener >> postgresql

            housekeeping = KubernetesEngine("Housekeeping")

            postgresql << housekeeping
            redis << housekeeping

        app = KubernetesEngine("Application")
Example #3
0
            t2s >> Edge(color="blue", label="запись файла [HTTPS]") >> ceph
            [ocr, s2t] << Edge(color="blue",
                               label="чтение файла [HTTPS]") << ceph
            [emailmod, msgmod] << Edge(
                color="blue", label="чтение/запись файла [HTTPS]") >> ceph

            confluence << Edge(color="blue",
                               label="чтение данных [HTTPS]") << kbmod
            itsm << Edge(color="blue", label="чтение данных [HTTPS]") << kbmod
            kb << Edge(color="blue", label="актуализация БДВО [JDBC]") << kbmod

        with Cluster("Data Operations Workflow"):
            fabric = Dataflow("Data Fabric")
            etl = GKE("Online ETL")
            align = GKE("Data Aligner")
            datalake = Datastore("Log Storage")
            catalog = DataCatalog("Data Catalog")

            emailmod >> Edge(color="blue", label="logging [HTTPS]") >> datalake
            msgmod >> Edge(color="blue", label="logging [HTTPS]") >> datalake
            datalake >> Edge(color="blue", label="batching [JDBC]") >> etl
            etl >> Edge(color="blue", label="batching [JDBC]") >> catalog
            catalog >> Edge(color="blue", label="batching [JDBC]") >> align
            align >> Edge(color="blue", label="batching [JDBC]") >> fabric

        with Cluster("ML Operations Workflow"):
            textomator = GKE("Workflow Processor")
            jupyter = GKE("Jupyter Notebook")
            mlops = GKE("Task Processor")

            catalog >> Edge(color="blue",
Example #4
0
def main():
    with Diagram("sample", show=False):
        AppEngine("appengine") >> Datastore("datastore") >> BigQuery(
            "bigquery")