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
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")
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",
def main(): with Diagram("sample", show=False): AppEngine("appengine") >> Datastore("datastore") >> BigQuery( "bigquery")