Hoʻololi ʻo Tinder iā Kubernetes

Nānā. unuhi.: Ua hōʻike koke aku nā limahana o ka lawelawe Tinder kaulana i ka honua i kekahi mau kikoʻī ʻenehana no ka neʻe ʻana i kā lākou ʻoihana i Kubernetes. ʻO ke kaʻina hana ma kahi o ʻelua mau makahiki a ua hopena i ka hoʻomaka ʻana o kahi paepae nui loa ma K8s, nona nā lawelawe 200 i mālama ʻia ma 48 tausani pahu. He aha nā pilikia hoihoi i hālāwai ai nā ʻenekinia Tinder a he aha nā hopena i loaʻa mai iā lākou? E heluhelu i kēia unuhi.

Hoʻololi ʻo Tinder iā Kubernetes

No ke aha?

Ma kahi kokoke i ʻelua makahiki i hala aku nei, ua hoʻoholo ʻo Tinder e neʻe i kāna kahua i Kubernetes. E ʻae ʻo Kubernetes i ka hui Tinder e hoʻopaʻa a neʻe i ka hana me ka liʻiliʻi o ka hoʻoikaika ʻana ma o ka hoʻoili ʻole ʻia. (ka hoʻoili ʻole ʻia). I kēia hihia, ʻo ka hui ʻana o nā noi, kā lākou hoʻolaha ʻana, a me nā ʻōnaehana ponoʻī e wehewehe ʻokoʻa ʻia e ke code.

Ua ʻimi pū mākou i kahi hoʻonā i ka pilikia o ka scalability a me ke kūpaʻa. Ke lilo ka scaling i mea koʻikoʻi, pono mākou e kali i kekahi mau minuke no nā manawa EC2 hou e wili. ʻO ka manaʻo o ka hoʻokuʻu ʻana i nā ipu a hoʻomaka i ka lawelawe ʻana i ke kaʻa i kekona ma mua o nā minuke i lilo i mea hoihoi loa iā mākou.

Ua paʻakikī ke kaʻina hana. I ko mākou neʻe ʻana i ka hoʻomaka ʻana o 2019, ua hōʻea ka pūʻulu Kubernetes i ka nui koʻikoʻi a hoʻomaka mākou e hālāwai me nā pilikia like ʻole ma muli o ka nui o ke kaʻa, ka nui o ka cluster, a me DNS. Ma ke ala, ua hoʻoponopono mākou i nā pilikia hoihoi e pili ana i ka neʻe ʻana i nā lawelawe 200 a me ka mālama ʻana i kahi pūʻulu Kubernetes me 1000 nodes, 15000 pods a me 48000 pahu holo.

Pehea?

Mai Ianuali 2018, ua hele mākou i nā pae like ʻole o ka neʻe ʻana. Hoʻomaka mākou ma ka hoʻopaʻa ʻana i kā mākou mau lawelawe āpau a kau iā lākou i nā kaiapuni ao hoʻāʻo Kubernetes. E hoʻomaka ana i ʻOkakopa, ua hoʻomaka mākou e neʻe i nā lawelawe āpau i Kubernetes. Ma Malaki o ka makahiki aʻe, ua hoʻopau mākou i ka neʻe ʻana a i kēia manawa ke holo wale nei ka platform Tinder ma Kubernetes wale nō.

Ke kūkulu nei i nā kiʻi no nā Kubernetes

Loaʻa iā mākou he 30 mau waihona kumu kumu no nā microservice e holo ana ma kahi pūʻulu Kubernetes. Ua kākau ʻia ke code i loko o kēia mau waihona i nā ʻōlelo like ʻole (no ka laʻana, Node.js, Java, Scala, Go) me nā kaiapuni runtime he nui no ka ʻōlelo like.

Hoʻolālā ʻia ka ʻōnaehana kūkulu e hāʻawi i kahi "kūkulu kūkulu" piha no kēlā me kēia microservice. Loaʻa iā ia kahi Dockerfile a me kahi papa inoa o nā kauoha shell. Hoʻonohonoho pono ʻia kā lākou ʻike, a i ka manawa like, ua kākau ʻia kēia mau ʻano kūkulu a pau e like me ke ʻano maʻamau. ʻO ka hoʻohālikelike ʻana i nā pōʻaiapili kūkulu e ʻae i hoʻokahi ʻōnaehana kūkulu hoʻokahi e mālama i nā microservice a pau.

Hoʻololi ʻo Tinder iā Kubernetes
Helu 1-1. Kaʻina hana maʻamau ma o ka pahu Builder

No ka loaʻa ʻana o ka kūlike loa ma waena o nā manawa holo (Kaiapuni holo manawa) hoʻohana ʻia ke kaʻina hana kūkulu like i ka wā hoʻomohala a hoʻāʻo. Ua loaʻa iā mākou kahi paʻakikī hoihoi loa: pono mākou e hoʻomohala i kahi ala e hōʻoia ai i ka kūlike o ka ʻenehana kūkulu ʻana ma waena o ka paepae holoʻokoʻa. No ka hoʻokō ʻana i kēia, lawe ʻia nā kaʻina hui āpau i loko o kahi pahu kūikawā. hana.

Pono kāna hoʻokō pahu i nā ʻenehana Docker kiʻekiʻe. Loaʻa ka mea hana i ka ID mea hoʻohana kūloko a me nā mea huna (e like me ke kī SSH, nā hōʻoia AWS, a me nā mea ʻē aʻe) e pono ai ke komo i nā waihona Tinder pilikino. Hoʻopili ia i nā papa kuhikuhi kūloko i loaʻa nā kumu e mālama maoli i nā mea hana. Hoʻomaikaʻi kēia ala i ka hana no ka mea e hoʻopau i ka pono e kope i nā mea hana kiʻi ma waena o ka pahu Builder a me ka mea hoʻokipa. Hiki ke hoʻohana hou ʻia nā mea hana i mālama ʻia me ka ʻole o ka hoʻonohonoho ʻana.

No kekahi mau lawelawe, pono mākou e hana i kahi pahu ʻē aʻe no ka palapala ʻana i ke kaiapuni hōʻuluʻulu ʻana i ke kaiapuni runtime (no ka laʻana, hoʻopuka ka waihona Node.js bcrypt i nā mea hana binary kikoʻī i ka platform i ka wā e hoʻokomo ai). I ka wā o ke kaʻina hana, ʻokoʻa paha nā koi ma waena o nā lawelawe, a ʻo ka Dockerfile hope loa i hui ʻia ma ka lele.

Kubernetes cluster architecture a me ka neʻe ʻana

Hoʻoponopono i ka nui o ka pūʻulu

Ua hoʻoholo mākou e hoʻohana kube-aws no ka hoʻopili ʻana i nā pūʻulu ʻakomi ma nā hihia Amazon EC2. I ka hoʻomaka ʻana, ua hana nā mea a pau i hoʻokahi pūnāwai maʻamau o nā nodes. Ua ʻike koke mākou i ka pono e hoʻokaʻawale i nā haʻahaʻa hana ma ka nui a me ke ʻano hoʻohālike e hoʻohana pono ai i nā kumuwaiwai. ʻO ka loina, ʻo ka holo ʻana i nā pods multi-threaded i hoʻouka ʻia i ʻoi aku ka wānana ma ke ʻano o ka hana ma mua o ko lākou noho pū ʻana me kahi helu nui o nā pods hoʻokahi.

I ka hopena, ua hoʻoholo mākou i:

  • m5.4x nui - no ka nānā ʻana (Prometheus);
  • c5.4x nui - no ka haawe hana Node.js (hoʻokahi-threaded workload);
  • c5.2x nui - no Java a me Go (nuithreaded workload);
  • c5.4x nui - no ka papa hoʻomalu (3 nodes).

Ka neʻe ʻana

ʻO kekahi o nā hana hoʻomākaukau no ka neʻe ʻana mai ka ʻoihana kahiko i Kubernetes, ʻo ia ka hoʻohuli ʻana i ke kamaʻilio pololei e kū nei ma waena o nā lawelawe i nā mea kaulike ukana hou (Elastic Load Balancers (ELB). Ua hana ʻia lākou ma kahi subnet kikoʻī o kahi ao pilikino virtual (VPC). Hoʻopili ʻia kēia subnet i kahi VPC Kubernetes. ʻAe kēia iā mākou e neʻe mālie i nā modula, me ka noʻonoʻo ʻole i ke ʻano kikoʻī o nā hilinaʻi lawelawe.

Ua hana ʻia kēia mau hopena me ka hoʻohana ʻana i nā pūʻulu paona o nā moʻolelo DNS i loaʻa nā CNAME e kuhikuhi ana i kēlā me kēia ELB hou. No ka hoʻololiʻana, ua hoʻohui mākou i kahi helu hou e kuhikuhi ana i ka ELB hou o ka lawelawe Kubernetes me ke kaumaha o 0. A laila hoʻonoho mākou i ka Time To Live (TTL) o ka helu i hoʻonohonohoʻia i ka 0. Ma hope o kēia, ua kauʻia nā kaumaha kahiko a me nā mea hou. Ua hoʻololi mālie ʻia, a ma hope ua hoʻouna ʻia ka 100% o ka ukana i kahi kikowaena hou. Ma hope o ka pau ʻana o ka hoʻololi ʻana, ua hoʻi ka waiwai TTL i kahi pae kūpono.

Hiki i nā modula Java iā mākou ke hoʻokō me ka TTL DNS haʻahaʻa, akā ʻaʻole hiki i nā noi Node. Ua kākau hou kekahi o nā mea ʻenekinia i kekahi ʻāpana o ke code pool connection a wahī ʻia i loko o kahi manakia nāna i hoʻonui i nā loko i kēlā me kēia 60 kekona. ʻO ke ala i koho ʻia ua hana maikaʻi loa a me ka ʻike ʻole ʻia o ka hoʻohaʻahaʻa hana.

Nā haʻawina

Nā palena o ka lole pūnaewele

I ke kakahiaka nui o Ianuali 8, 2019, ua hāʻule ʻole ka paepae Tinder. I ka pane ʻana i kahi piʻi pili ʻole o ka latency platform ma mua o kēlā kakahiaka, ua hoʻonui ʻia ka helu o nā pods a me nā nodes i ka hui. Ua hoʻopau kēia i ka cache ARP ma kā mākou mau node a pau.

ʻEkolu mau koho Linux e pili ana i ka cache ARP:

Hoʻololi ʻo Tinder iā Kubernetes
(kumu)

gc_thresh3 - he palena paʻakikī kēia. ʻO ka ʻike ʻia ʻana o nā mea hoʻokomo i loko o ka lāʻau ʻo ia ka mea ma hope o ka hōʻiliʻili ʻana i nā ʻōpala (GC), ʻaʻole lawa ka nui o ka wahi i loko o ka cache ARP e mālama ai i ke komo ʻana. I kēia hihia, ua hoʻolei wale ka kernel i ka ʻeke.

Hoʻohana mākou Flannel ma ke ʻano he ʻupena pūnaewele ma Kubernetes. Hoʻouna ʻia nā ʻeke ma luna o VXLAN. ʻO VXLAN kahi tunnel L2 i hoʻāla ʻia ma luna o kahi pūnaewele L3. Hoʻohana ka ʻenehana i ka MAC-in-UDP (MAC Address-in-User Datagram Protocol) encapsulation a hiki ke hoʻonui i nā ʻāpana pūnaewele Layer 2. ʻO ka protocol transport ma ka pūnaewele kikowaena ʻikepili kino ʻo IP me UDP.

Hoʻololi ʻo Tinder iā Kubernetes
Helu 2–1. kiʻi flannel (kumu)

Hoʻololi ʻo Tinder iā Kubernetes
Helu 2-2. pūʻolo VXLAN (kumu)

Hoʻokaʻawale kēlā me kēia node limahana Kubernetes i kahi kikowaena helu virtual me kahi mask /24 mai kahi poloka /9 nui aʻe. No kēlā me kēia node kēia ʻo ia hoʻi hoʻokahi komo ma ka papa kuhikuhi, hoʻokahi komo i ka papa ARP (ma ka flannel.1 interface), a hoʻokahi komo i ka papa hoʻololi (FDB). Hoʻohui ʻia lākou i ka manawa mua i hoʻomaka ʻia kahi node limahana a i ʻole kēlā me kēia manawa i ʻike ʻia kahi node hou.

Hoʻohui ʻia, hele hope ke kamaʻilio node-pod (a i ʻole pod-pod). eth0 (e like me ka hōʻike ʻana ma ke kiʻi Flannel ma luna). Loaʻa kēia i kahi komo hou i ka papa ARP no kēlā me kēia kumu kūpono a me ka mea hoʻokipa huakaʻi.

I ko mākou kaiapuni, he mea maʻamau kēia ʻano kamaʻilio. No nā mea lawelawe ma Kubernetes, hana ʻia kahi ELB a hoʻopaʻa inoa ʻo Kubernetes i kēlā me kēia node me ka ELB. ʻAʻole ʻike ka ELB e pili ana i nā pods a ʻo ka node i koho ʻia ʻaʻole paha ka hopena hope o ka ʻeke. ʻO ka manaʻo ke loaʻa i kahi node kahi ʻeke mai ka ELB, manaʻo ʻo ia e noʻonoʻo i nā lula ipoku no kahi lawelawe kiko'ī a koho wale i kahi pod ma kekahi node.

I ka manawa o ka hāʻule ʻana, aia he 605 nodes i ka hui. No nā kumu i ʻōlelo ʻia ma luna, ua lawa kēia e lanakila ai i ke koʻikoʻi gc_thresh3, ʻo ia ka mea paʻamau. Ke hana ʻia kēia, ʻaʻole wale ka hoʻomaka ʻana e hoʻokuʻu ʻia nā ʻeke, akā nalo ka wahi kikoʻī kikoʻī Flannel āpau me kahi mask /24 mai ka papa ARP. Hoʻopau ʻia ke kamaʻilio Node-pod a me nā nīnau DNS (Hoʻokipa ʻia ʻo DNS ma kahi hui; heluhelu ma hope o kēia ʻatikala no nā kikoʻī).

No ka hoʻoponopono i kēia pilikia, pono ʻoe e hoʻonui i nā waiwai gc_thresh1, gc_thresh2 и gc_thresh3 a hoʻomaka hou iā Flannel e hoʻopaʻa inoa hou i nā pūnaewele i nalowale.

ʻAʻole i manaʻo ʻia ka scaling DNS

I ka wā o ka neʻe ʻana, ua hoʻohana ikaika mākou i ka DNS no ka hoʻokele ʻana i nā kaʻa a hoʻololi mālie i nā lawelawe mai ka ʻoihana kahiko i Kubernetes. Hoʻonoho mākou i nā koina TTL haʻahaʻa no nā RecordSets pili ma Route53. I ka wā e holo ana ka ʻōnaehana kahiko ma nā manawa EC2, ua kuhikuhi kā mākou hoʻonohonoho hoʻonā i Amazon DNS. Ua lawe mākou i kēia no ka ʻae ʻia a me ka hopena o ka TTL haʻahaʻa i kā mākou lawelawe a me nā lawelawe Amazon (e like me DynamoDB) i ʻike ʻole ʻia.

I ko mākou neʻe ʻana i nā lawelawe i Kubernetes, ʻike mākou e hana ana ʻo DNS i 250 tausani mau noi i kēlā me kēia kekona. ʻO ka hopena, ua hoʻomaka nā noi e ʻike i ka manawa mau a koʻikoʻi no nā nīnau DNS. Ua hana ʻia kēia ma muli o nā hoʻoikaika nui e hoʻololi a hoʻololi i ka mea hāʻawi DNS i CoreDNS (ʻo ia ma ka haʻahaʻa kiʻekiʻe i hiki i 1000 pods e holo ana ma 120 cores).

ʻOiai e noiʻi ana i nā kumu a me nā hopena ʻē aʻe, ua ʻike mākou ʻO kahi mea kākau, e wehewehe ana i nā kūlana lāhui e pili ana i ke kāʻei kānana packet net kānana ma Linux. ʻO nā manawa pau a mākou i ʻike ai, i hui pū ʻia me ka helu helu hoʻonui insert_failed i ka Flannel interface i kūlike me nā ʻike o ka ʻatikala.

Aia ka pilikia ma ke kahua o Source and Destination Network Address Translation (SNAT a me DNAT) a me ke komo ʻana i ka papaʻaina. hoʻohui hou. ʻO kekahi o nā workarounds i kūkākūkā ʻia i loko a i ʻōlelo ʻia e ke kaiāulu ʻo ia ka neʻe ʻana i ka DNS i ka node hana ponoʻī. I kēia hihia:

  • ʻAʻole pono ʻo SNAT no ka mea e noho ana ke kaʻa i loko o ka node. ʻAʻole pono e hoʻokele ʻia ma o ka interface eth0.
  • ʻAʻole pono ʻo DNAT no ka mea ʻo ka IP wahi e hele ai i ka node, ʻaʻole kahi pod i koho ʻia e like me nā lula ipoku.

Ua hoʻoholo mākou e hoʻomau i kēia ala. Ua kau ʻia ʻo CoreDNS ma ke ʻano he DaemonSet ma Kubernetes a ua hoʻokō mākou i kahi kikowaena DNS node kūloko ma hoʻoholo.conf kēlā me kēia pod ma ke kau ʻana i ka hae --huihui-dns kauoha kubelet . Ua lilo kēia hopena i mea maikaʻi no nā manawa palena DNS.

Eia nō naʻe, ʻike mākou i ka nalowale ʻana o ka ʻeke a me ka piʻi ʻana o ka counter insert_failed ma ka ʻaoʻao Flannel. Ua hoʻomau ʻia kēia ma hope o ka hoʻokō ʻia ʻana o ka workaround no ka mea ua hiki iā mākou ke hoʻopau iā SNAT a / a i ʻole DNAT no ke kālepa DNS wale nō. Ua mālama ʻia nā kūlana heihei no nā ʻano kaʻa ʻē aʻe. ʻO ka mea pōmaikaʻi, ʻo ka hapa nui o kā mākou ʻeke he TCP, a inā loaʻa kahi pilikia e hoʻouna hou ʻia lākou. Ke hoʻāʻo nei mākou e ʻimi i kahi hopena kūpono no nā ʻano kaʻa āpau.

Ke hoʻohana nei i ka ʻelele no ka ʻoi aku ka maikaʻi o ka hoʻouka ʻana

I ko mākou neʻe ʻana i nā lawelawe backend i Kubernetes, hoʻomaka mākou e ʻeha i ka ukana kaulike ʻole ma waena o nā pods. Ua ʻike mākou ua hoʻokau ʻo HTTP Keepalive i nā pilina ELB e kau ma luna o nā pods mākaukau mua o kēlā me kēia deployment i ʻōwili ʻia. No laila, ua hele ka nui o ke kaʻa ma kahi hapa liʻiliʻi o nā pods i loaʻa. ʻO ka hopena mua a mākou i hoʻāʻo ai ʻo ka hoʻonohonoho ʻana iā MaxSurge i 100% ma nā hoʻolālā hou no nā hiʻohiʻona ʻino loa. Ua lilo ka hopena i mea nui ʻole a ʻaʻole hoʻohiki i nā ʻōlelo o ka hoʻolaha nui ʻana.

ʻO kekahi hoʻonā a mākou i hoʻohana ai, ʻo ia ka hoʻonui ʻana i nā noi waiwai no nā lawelawe koʻikoʻi. I kēia hihia, ʻoi aku ka nui o ka lumi o nā pods i hoʻonoho ʻia ma kahi kokoke e hoʻohālikelike ʻia me nā pods kaumaha ʻē aʻe. ʻAʻole ia e hana i ka wā lōʻihi no ka mea e lilo ana ia i mea hoʻopau waiwai. Eia kekahi, ʻo kā mākou mau noi Node he kaula hoʻokahi a, no laila, hiki ke hoʻohana i hoʻokahi kumu. ʻO ka hoʻonā maoli wale nō ka hoʻohana ʻana i ka ʻoi aku ka maikaʻi o ka load balancing.

Ua lōʻihi ko mākou makemake e mahalo piha ʻelele. ʻO ke kūlana o kēia manawa ua ʻae iā mākou e hoʻokau iā ia ma kahi ala palena loa a loaʻa nā hopena koke. ʻO Envoy kahi hana kiʻekiʻe, open-source, layer-XNUMX proxy i hoʻolālā ʻia no nā noi SOA nui. Hiki iā ia ke hoʻokō i nā ʻenehana hoʻohālikelike ukana holomua, me ka hoʻāʻo hou ʻana, nā mea hoʻokaʻawale kaapuni, a me ka palena palena honua. (Nānā. unuhi.: Hiki iā ʻoe ke heluhelu hou aʻe e pili ana i kēia ma kēiaʻatikala e pili ana iā Istio, kahi i hoʻokumu ʻia ma luna o Envoy.)

Ua hele mai mākou me kēia hoʻonohonoho: loaʻa kahi kaʻa kaʻa ʻElele no kēlā me kēia pod a me kahi ala hoʻokahi, a hoʻohui i ka pūʻulu i ka ipu kūloko ma o ke awa. No ka hōʻemi ʻana i ka hoʻokuʻu ʻana a mālama i kahi radius pā liʻiliʻi, ua hoʻohana mākou i nā ʻauwaʻa o Envoy front-proxy pods, hoʻokahi no Availability Zone (AZ) no kēlā me kēia lawelawe. Ua hilinaʻi lākou i kahi ʻenekini ʻike lawelawe maʻalahi i kākau ʻia e kekahi o kā mākou ʻenekinia i hoʻihoʻi wale i kahi papa inoa o nā pods i kēlā me kēia AZ no kahi lawelawe i hāʻawi ʻia.

A laila hoʻohana ʻo Service Front-Envoys i kēia ʻenehana ʻike lawelawe me hoʻokahi puʻupuʻu a me ke ala. Hoʻonoho mākou i nā manawa kūpono, hoʻonui i nā hoʻonohonoho hoʻonohonoho kaapuni āpau, a hoʻohui i ka hoʻonohonoho hoʻāʻo hou liʻiliʻi e kōkua i nā hemahema hoʻokahi a e hōʻoia i ka hoʻonohonoho ʻana. Ua kau mākou i kahi TCP ELB i mua o kēlā me kēia o kēia mau ʻelele lawelawe mua. ʻOiai inā paʻa ka keepalive mai kā mākou papa proxy nui ma luna o kekahi poʻe Envoy, ua hiki nō iā lākou ke mālama i ka ukana ʻoi aku ka maikaʻi a ua hoʻonohonoho ʻia e kaulike ma o least_request ma ka hope.

No ka hoʻouka ʻana, ua hoʻohana mākou i ka makau preStop ma nā pahu noi a me nā pods sidecar. Ua hoʻomaka ka makau i ka hewa i ka nānā ʻana i ke kūlana o ka admin endpoint aia ma ka pahu kaʻa ʻaoʻao a hele i ka hiamoe no kekahi manawa e ʻae i nā pilina ikaika e hoʻopau.

ʻO kekahi o nā kumu i hiki ai iā mākou ke neʻe wikiwiki ma muli o nā kikoʻī kikoʻī i hiki iā mākou ke hoʻohui maʻalahi i kahi hoʻonohonoho Prometheus maʻamau. Ua ʻae kēia iā mākou e ʻike pono i ka mea e hana nei ʻoiai mākou i hoʻoponopono i nā ʻāpana hoʻonohonoho a hoʻohele hou i nā kaʻa.

Ua ʻike koke ʻia nā hopena. Ua hoʻomaka mākou me nā lawelawe kaulikeʻole, a i kēia manawa ke hana nei i mua o nā lawelawe koʻikoʻi o 12 i ka hui. I kēia makahiki ke hoʻolālā nei mākou i ka hoʻololi ʻana i kahi mīkini lawelawe piha me ka ʻike ʻoihana ʻoi aku ka holomua, ka haʻihaʻi kaapuni, ka ʻike o waho, ka palena palena a me ka huli ʻana.

Hoʻololi ʻo Tinder iā Kubernetes
Helu 3–1. ʻO ka hui ʻana o ka CPU o kahi lawelawe i ka wā o ka hoʻololi ʻana i Envoy

Hoʻololi ʻo Tinder iā Kubernetes

Hoʻololi ʻo Tinder iā Kubernetes

Ka hopena hope loa

Ma o kēia ʻike a me nā noiʻi hou aʻe, ua kūkulu mākou i kahi hui ʻoihana ikaika me nā mākau ikaika i ka hoʻolālā ʻana, hoʻolālā, a me ka hana ʻana i nā pūʻulu Kubernetes nui. Loaʻa i nā ʻenekinia Tinder ka ʻike a me ka ʻike e hoʻopaʻa i nā ipu a kau i nā noi iā Kubernetes.

Ke piʻi aʻe ka pono o ka mana hou ma ka ʻōnaehana kahiko, pono mākou e kali i kekahi mau minuke no ka hoʻomaka ʻana o nā manawa EC2 hou. I kēia manawa, hoʻomaka nā pahu e holo a hoʻomaka i ka hoʻoili ʻana i ke kaʻa i loko o kekona ma mua o nā minuke. ʻO ka hoʻonohonoho ʻana i nā pahu he nui ma kahi laʻana EC2 hoʻokahi e hāʻawi i ka hoʻonui ʻana i ka ʻike ākea. ʻO ka hopena, wānana mākou i kahi hōʻemi nui o nā kumukūʻai EC2019 ma 2 i hoʻohālikelike ʻia i ka makahiki i hala.

Ua aneane ʻelua makahiki ka neʻe ʻana, akā ua hoʻopau mākou iā Malaki 2019. I kēia manawa, holo wale ka paepae Tinder ma kahi pūʻulu Kubernetes nona nā lawelawe 200, 1000 nodes, 15 pods a me 000 mau pahu holo. ʻAʻole ʻo Infrastructure ke kahua hoʻokahi o nā hui hana. Kaʻana like kā mākou poʻe ʻenekinia āpau i kēia kuleana a mālama i ke kaʻina hana o ke kūkulu ʻana a me ka hoʻohana ʻana i kā lākou mau noi me ka hoʻohana ʻana i ke code wale nō.

PS mai ka unuhi

E heluhelu pū i nā ʻatikala ma kā mākou blog:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka