{"id":36484,"date":"2019-10-31T22:11:54","date_gmt":"2019-10-31T19:11:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kubernetes-priklyuchenie-dailymotion-sozdanie-infrastruktury-v-oblakah-on-premises\/"},"modified":"2019-10-31T22:11:54","modified_gmt":"2019-10-31T19:11:54","slug":"kubernetes-priklyuchenie-dailymotion-sozdanie-infrastruktury-v-oblakah-on-premises","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kubernetes-priklyuchenie-dailymotion-sozdanie-infrastruktury-v-oblakah-on-premises","title":{"rendered":"Kubernetes Success Stories in Production. Part 10: Reddit","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes Success Stories in Production. Part 10: Reddit\" src=\"\/wp-content\/uploads\/2019\/07\/a30bdada22eff611ec47864ef988e1ed.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i><b>Note: translation.<\/b>: Dailymotion \u2014 one of the largest video hosting services in the world and therefore a notable user of Kubernetes. In this article, system architect David Donchez shares the results of creating the company's production platform based on K8s, which began with a cloud installation in GKE and ended up as a hybrid solution that achieved better response times and saved on infrastructure costs.<\/i><\/p>\n<p>When making the decision to restructure the main API <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dailymotion.com\/\">Dailymotion<\/a><\/noindex> three years ago, we wanted to develop a more efficient way to deploy applications and simplify <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/dailymotion\/deploying-apps-on-multiple-kubernetes-clusters-with-helm-19ee2b06179e\">processes in development and production<\/a><\/noindex>. To achieve this goal, we decided to use a container orchestration platform and naturally chose Kubernetes.<\/p>\n<p>Why should you create your own platform based on Kubernetes?<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>API production-level in the shortest possible time using Google Cloud<\/h2>\n<p><\/p>\n<blockquote><p>Summer 2016<\/p><\/blockquote>\n<p>\nThree years ago, shortly after Dailymotion was acquired by <noindex><a rel=\"nofollow\" href=\"https:\/\/www.vivendi.com\/\">Vivendi<\/a><\/noindex>, our engineering teams focused on one global goal: to create a completely new Dailymotion product.<\/p>\n<p>As a result of analyzing containers, orchestration solutions, and our past experience, we concluded that Kubernetes was the right choice. Some developers already had an understanding of the basic concepts and knew how to use it, which was a huge advantage for the infrastructure transformation.<\/p>\n<p>From an infrastructure perspective, a powerful and flexible system was needed to host new types of cloud-native applications. We preferred to stay in the cloud at the beginning of our journey to calmly build the most reliable local platform. We decided to deploy our applications using Google Kubernetes Engine, although we knew that sooner or later we would move to our own data centers and implement a hybrid strategy.<\/p>\n<h3>Why choose GKE?<\/h3>\n<p>\nWe made this choice mainly for technical reasons. Additionally, there was a need to quickly provide infrastructure that met the company's business needs. We had some application deployment requirements, such as geographical distribution, scalability, and fault tolerance.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Success Stories in Production. Part 10: Reddit\" src=\"\/wp-content\/uploads\/2019\/07\/87b01007260066aa7814fb5dacca8707.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>GKE Clusters at Dailymotion<\/i><\/p>\n<p>Since Dailymotion is a video platform available worldwide, we really wanted to improve service quality by reducing wait times <i>(latency)<\/i>. Previously <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.dailymotion.com\/\">our API<\/a><\/noindex> was only available in Paris, which was not optimal. It was desirable to host applications not only in Europe but also in Asia and the USA.<\/p>\n<p>This sensitivity to latency meant that significant work would be needed on the platform's network architecture. While most cloud services required creating their network in each region and then linking them via VPN or some managed service, Google Cloud allowed the creation of a fully routable single network covering all of Google's regions. This is a significant advantage in terms of operations and system efficiency.<\/p>\n<p>Additionally, Google's networking services and load balancers perform excellently. They simply allow the use of arbitrary public IP addresses from each region, and the remarkable BGP protocol takes care of the rest (i.e., it redirects users to the nearest cluster). It is clear that in the event of a failure, traffic will automatically route to another region without any human intervention.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Success Stories in Production. Part 10: Reddit\" src=\"\/wp-content\/uploads\/2019\/07\/fa6a14cf56fbf16fb6ca5da837dbd915.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Load Balancing Monitoring in Google<\/i><\/p>\n<p>Our platform also actively utilizes graphics processors. Google Cloud allows for very efficient use of them directly in Kubernetes clusters.<\/p>\n<p>At that time, the infrastructure team predominantly focused on the old stack deployed on physical servers. This is why using a managed service (including Kubernetes master components) met our requirements and allowed the teams to train for working with local clusters.<\/p>\n<p>As a result, we were able to start accepting production traffic on Google Cloud infrastructure just six months after work began.<\/p>\n<p>However, despite a number of advantages, working with a cloud provider is associated with certain costs that can increase depending on the load. This is why we carefully analyzed each managed service utilized, planning to implement them on-premises in the future. In fact, the implementation of local clusters began in late 2016 and a hybrid strategy was initiated at that time.<\/p>\n<h2>Launching the Dailymotion Local Container Orchestration Platform<\/h2>\n<p><\/p>\n<blockquote><p>Fall 2016<\/p><\/blockquote>\n<p>\nIn a situation where the entire stack was ready for production and work on the API <noindex><a rel=\"nofollow\" href=\"https:\/\/tartiflette.io\/\">was ongoing<\/a><\/noindex>, there was a time to focus on regional clusters.<\/p>\n<p>At that time, users were viewing over 3 billion videos each month. Of course, we had already been operating our own extensive Content Delivery Network for several years. We wanted to take advantage of this circumstance and deploy Kubernetes clusters in existing data centers.<\/p>\n<p>Dailymotion's infrastructure comprised over 2,500 servers in six data centers. All of them are configured using Saltstack. We began preparing all the necessary recipes for creating master and worker nodes, as well as the etcd cluster.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Success Stories in Production. Part 10: Reddit\" src=\"\/wp-content\/uploads\/2019\/07\/1b9924fd95cbf729126be6ad8b5e401e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Network Component<\/h3>\n<p>\nOur network is fully routable. Each server announces its IP within the network using Exabgp. We compared several network plugins, and the only one that met all our needs (due to the L3-level approach used) was <noindex><a rel=\"nofollow\" href=\"https:\/\/www.projectcalico.org\/\">Calico<\/a><\/noindex>. It integrated perfectly into the existing network model of the infrastructure.<\/p>\n<p>Since we wanted to utilize all available infrastructure elements, we primarily needed to figure out our in-house network utility (used on all servers): to use it for announcing IP address ranges in the network with Kubernetes nodes. We allowed Calico to assign IP addresses to pods, but we did not use it and still do not use it for BGP sessions on network equipment. In fact, routing is handled by Exabgp, which announces the subnets used by Calico. This allows us to access any pod from the internal network (particularly from load balancers).<\/p>\n<h3>How we manage ingress traffic<\/h3>\n<p>\nTo redirect incoming requests to the correct service, we decided to use the Ingress Controller due to its integration with Kubernetes ingress resources.<\/p>\n<p>Three years ago, the nginx-ingress-controller was the most mature controller: Nginx had been used for a long time and was known for its stability and performance.<\/p>\n<p>In our system, we decided to place controllers on dedicated 10-gigabit blade servers. Each controller connected to the kube-apiserver endpoint of the corresponding cluster. Exabgp was also used on these servers to announce public or private IP addresses. The topology of our network allows BGP from these controllers to route all traffic directly to the pods without using a service like NodePort. This approach helps avoid horizontal traffic between nodes and increases efficiency.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Success Stories in Production. Part 10: Reddit\" src=\"\/wp-content\/uploads\/2019\/07\/5f715a395d72579a2d123520ccd6c933.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Traffic movement from the internet to the pods<\/i><\/p>\n<p>Now that we have covered our hybrid platform, we can delve into the migration process.<\/p>\n<h2>Traffic migration from Google Cloud to Dailymotion's infrastructure<\/h2>\n<p><\/p>\n<blockquote><p>Fall 2018<\/p><\/blockquote>\n<p>\nAfter nearly two years of building, testing, and configuring, we finally have a complete Kubernetes stack ready to handle some traffic.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Success Stories in Production. Part 10: Reddit\" src=\"\/wp-content\/uploads\/2019\/07\/6028f9f810c3e0e3f2a32819a1f38df5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe current routing strategy is quite simple, yet it adequately meets our needs. In addition to public IPs (in Google Cloud and Dailymotion), we use AWS Route 53 to set policies and redirect users to the cluster of our choice.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Success Stories in Production. Part 10: Reddit\" src=\"\/wp-content\/uploads\/2019\/07\/e3878f4d34deabfa872e4d20aef9376e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Example of a routing policy using Route 53<\/i><\/p>\n<p>With Google Cloud, this is straightforward since we utilize a single IP for all clusters, and the user is redirected to the nearest GKE cluster. For our clusters, the technology is different as their IPs vary.<\/p>\n<p>During the migration, we aimed to redirect regional requests to the appropriate clusters and evaluated the benefits of this approach.<\/p>\n<p>Since our GKE clusters are configured for automatic scaling using Custom Metrics, they scale up\/down based on incoming traffic.<\/p>\n<p>In normal operation, all regional traffic is directed to the local cluster, while GKE serves as a backup in case of issues (health checks are carried out by Route 53).<\/p>\n<h2>\u2026<\/h2>\n<p>\nIn the future, we aim to fully automate routing policies to achieve a self-sustaining hybrid strategy that continuously enhances user availability. As for the benefits, cloud costs have significantly decreased, and we have even managed to reduce API response times. We trust the resulting cloud platform and are ready to redirect more traffic to it if necessary.<\/p>\n<h2>P.S. from the translator<\/h2>\n<p>\nYou might also be interested in another recent Dailymotion publication about Kubernetes. It focuses on deploying applications with Helm across multiple Kubernetes clusters and <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/dailymotion\/deploying-apps-on-multiple-kubernetes-clusters-with-helm-19ee2b06179e\">was published<\/a><\/noindex> about a month ago.<\/p>\n<p>Also read in our blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/440278\/\">Tinder's transition to Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/441754\/\">Kubernetes Success Stories in Production. Part 10: <b>Reddit<\/b><\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/412571\/\">Kubernetes Success Stories in Production. Part 9: <b>CERN and 210 K8s Clusters<\/b><\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/349940\/\">Kubernetes Success Stories in Production. Part 8: <b>Huawei<\/b><\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/347098\/\">Kubernetes Success Stories in Production. Part 7: <b>BlackRock<\/b><\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/345780\/\">Kubernetes Success Stories in Production. Part 6: <b>BlaBlaCar<\/b><\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/342412\/\">Kubernetes Success Stories in Production. Part 5: <b>digital bank Monzo<\/b><\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/339724\/\">Kubernetes Success Stories in Production. Part 4: <b>SoundCloud (creators of Prometheus)<\/b><\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/335814\/\">Kubernetes Success Stories in Production. Part 3: <b>GitHub<\/b><\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/334770\/\">Kubernetes Success Stories in Production. Part 2: <b>Concur and SAP<\/b><\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/334140\/\">Kubernetes Success Stories in Production. Part 1: <b>4200 Pods and TessMaster at eBay<\/b><\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/460877\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: Dailymotion \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u0435\u0439\u0448\u0438\u0445 \u0432 \u043c\u0438\u0440\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c Kubernetes. \u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 David Donchez \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u0438\u0442\u043e\u0433\u0430\u043c\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f production-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 K8s, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0430\u0441\u044c \u0441 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \u0432 GKE \u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u0430\u043a \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u0438 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043d\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u0445. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27305,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36484","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\".\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kubernetes-priklyuchenie-dailymotion-sozdanie-infrastruktury-v-oblakah-on-premises\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Kubernetes-\u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 Dailymotion: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043e\u0431\u043b\u0430\u043a\u0430\u0445 + on-premises | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\".\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kubernetes-priklyuchenie-dailymotion-sozdanie-infrastruktury-v-oblakah-on-premises\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:11:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:11:54+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Dailymotion's Kubernetes Adventure: Building Infrastructure in the Cloud + On-Premises | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kubernetes-priklyuchenie-dailymotion-sozdanie-infrastruktury-v-oblakah-on-premises","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Kubernetes-\u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 Dailymotion: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043e\u0431\u043b\u0430\u043a\u0430\u0445 + on-premises | ProHoster","og:description":".","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kubernetes-priklyuchenie-dailymotion-sozdanie-infrastruktury-v-oblakah-on-premises","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:11:54+00:00","article:modified_time":"2019-10-31T19:11:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36484","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 03:31:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:44:22","updated":"2026-01-22 03:31:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/36484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=36484"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/36484\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/27305"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=36484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=36484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=36484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}