--- title: Tlece's Infrastructure tags: Templates, Talk description: View the slide with "Slide Mode". --- # Tlece ```graphviz //Manual //https://www.rdocumentation.org/packages/Rgraphviz/versions/2.16.0/topics/GraphvizAttributes //Node shape // https://graphviz.org/doc/info/shapes.html digraph G { //splines=ortho; //layout = fdp layout = neato //layout = twopi //(https://qiita.com/rubytomato@github/items/51779135bc4b77c8c20d) style=rounded rank="same"; //rankdir="LR";overlap = false; sep="+25,25"; //https://stackoverflow.com/questions/3967600/how-to-prevent-edges-in-graphviz-to-overlap-each-other //overlap=scalexy; overlap = false; splines = true; //nodesep=0.5; //outputMode="nodesfirst" node[ fontname="Osaka" shape = record ]; // Labels //login [rank=1 label="{ログイン|(モックなし)}" style=filled fillcolor="yellow"]; subgraph cluster_1 { label = "Microsoft Azure"; subgraph cluster_2 { label = "Tlece Server"; mainServer [label="{ Tlece\n Main Server |Azure\nApp Service}" style=filled fillcolor="#FCD975"]; paymentScheduler [label="{Payment\n Scheduler\n|Azure\nFunction}" style=filled fillcolor="white"]; futureMeScheduler [label="{FutureMe\n Scheduler\n|Azure\nFunction}" style=filled fillcolor="white"]; vidOrderingScheduler [label="{Video Ordering\n Scheduler\n|Azure\nFunction}" style=filled fillcolor="white"]; } storageServer [label="{Storage\n server|Azure\nStorage}" style=filled fillcolor="white"]; azureMediaServices [label="{Azure\nMedia server|Azure\nMedia Services}" style=filled fillcolor="white"]; dbServer [label="{DB server|Azure Database\nfor MariaDB}" style=filled fillcolor="white"]; futureMeGpuServer [label="{Face\n replacement\n server (GPU)|Azure\nVirtual Machine}" style=filled fillcolor="white"]; } subgraph cluster_3 { label = "Google Cloud Platform"; googleFirebase [label="{Deeplink\n server|Google\nFirebase}" style=filled fillcolor="white"]; googleTranslate [label="{Translation\n server|Google\nCloud Translate}" style=filled fillcolor="white"]; googleSpeech [label="{Voice\n recognition\nserver|Google\nCloud Speech}" style=filled fillcolor="white"]; googleStorage [label="{Storage\nserver\n(temporary\nfor speech)|Google\nCloud Storage}" style=filled fillcolor="white"]; } subgraph cluster_4 { label = "AmiVoice Cloud Platform"; amiVoice [label="{Voice\n recognition\nserver |AmiVoice\n Cloud Platform}" style=filled fillcolor="white"]; } subgraph cluster_5 { label = "Twilio"; twilioConferencing [label="{Conferencing\nserver|Twilio}" style=filled fillcolor="white"]; twilioMail [label="{Mail\nserver|SendGrid}" style=filled fillcolor="white"]; twilioSms [label="{SMS\nserver|Twilio Messaging}" style=filled fillcolor="white"]; } tleceUser [label="Tlece\nuser" shape=parallelogram fillcolor="white"]; cloudflare [label="{Reverse\nproxy|Cloudflare}" style=filled fillcolor="white"]; // Network mainServer->paymentScheduler //[label="マイ\nメニュー",labeldistance="0"]; mainServer->storageServer paymentScheduler->storageServer mainServer->futureMeScheduler futureMeScheduler->storageServer mainServer->vidOrderingScheduler vidOrderingScheduler->storageServer mainServer->azureMediaServices mainServer->dbServer futureMeScheduler->futureMeGpuServer paymentScheduler->dbServer futureMeScheduler->dbServer vidOrderingScheduler->dbServer azureMediaServices->storageServer mainServer->googleFirebase mainServer->amiVoice mainServer->googleTranslate mainServer->googleSpeech mainServer->googleStorage googleSpeech->googleStorage mainServer->twilioConferencing mainServer->twilioMail mainServer->twilioSms tleceUser->cloudflare [label="User\naccess" fontcolor=blue weight=1, penwidth=5, color=blue]; cloudflare->mainServer [label="User\naccess" fontcolor=blue weight=1, penwidth=5, color=blue]; tleceUser->azureMediaServices [label="User\naccess" fontcolor=blue weight=1, penwidth=5, color=blue]; tleceUser->googleFirebase twilioSms->tleceUser [label="Send\nSMS" style=dashed]; twilioMail->tleceUser [label="Send\nemail" style=dashed]; } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up