{"id":94520,"date":"2020-09-18T07:42:20","date_gmt":"2020-09-18T05:42:20","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah"},"modified":"2020-09-18T07:42:20","modified_gmt":"2020-09-18T05:42:20","slug":"chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah","title":{"rendered":"Co pomog\u0142o nam szybko przestawi\u0107 si\u0119 na sprzeda\u017c online w nowych warunkach","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Cze\u015b\u0107!<\/p>\n<p>Nazywam si\u0119 Michai\u0142, jestem wicedyrektorem ds. IT w firmie \u00abSportmaster\u00bb. Chc\u0119 podzieli\u0107 si\u0119 histori\u0105 o tym, jak poradzili\u015bmy sobie z trudno\u015bciami, kt\u00f3re pojawi\u0142y si\u0119 podczas pandemii.<\/p>\n<p>W pierwszych dniach nowych reali\u00f3w tradycyjny format sprzeda\u017cy stacjonarnej \u00abSportmastera\u00bb zamar\u0142, a obci\u0105\u017cenie naszego kana\u0142u online, w szczeg\u00f3lno\u015bci w zakresie dostawy do klienta, wzros\u0142o dziesi\u0119ciokrotnie. W ci\u0105gu kilku tygodni przekszta\u0142cili\u015bmy ogromny, tradycyjny biznes w dzia\u0142alno\u015b\u0107 online, dostosowuj\u0105c us\u0142ugi do potrzeb naszych klient\u00f3w.<\/p>\n<p>W zasadzie to, co by\u0142o nasz\u0105 drugorz\u0119dn\u0105 operacj\u0105, sta\u0142o si\u0119 g\u0142\u00f3wnym biznesem. Znaczenie ka\u017cdego zam\u00f3wienia internetowego wzros\u0142o ekstremalnie. Musieli\u015bmy zachowa\u0107 ka\u017cdy rubel, kt\u00f3ry klient przynosi\u0142 do firmy.&nbsp;<\/p>\n<p><img decoding=\"async\" alt=\"Co pomog\u0142o nam szybko przestawi\u0107 si\u0119 na sprzeda\u017c online w nowych warunkach\" src=\"\/wp-content\/uploads\/2020\/09\/3e1dfc21636b29259fd29143e4a53f78.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Aby szybko reagowa\u0107 na pro\u015bby klient\u00f3w, otworzyli\u015bmy dodatkowe centrum kontaktowe w g\u0142\u00f3wnym biurze firmy, dzi\u0119ki czemu teraz mo\u017cemy przyjmowa\u0107 oko\u0142o 285 tysi\u0119cy po\u0142\u0105cze\u0144 tygodniowo. Jednocze\u015bnie przekszta\u0142cili\u015bmy 270 sklep\u00f3w w nowy format bezkontaktowej i bezpiecznej pracy, co pozwoli\u0142o klientom odbiera\u0107 zam\u00f3wienia, a pracownikom zachowa\u0107 miejsca pracy.<\/p>\n<p>W procesie transformacji napotkali\u015bmy dwa g\u0142\u00f3wne problemy. Po pierwsze, znacznie wzros\u0142o obci\u0105\u017cenie naszych zasob\u00f3w online (jak sobie z tym radzili\u015bmy, opowie Siergiej). Po drugie, nap\u0142yw rzadkich operacji (do COVID) wzr\u00f3s\u0142 wielokrotnie, co z kolei wymaga\u0142o du\u017cego stopnia szybkiej automatyzacji. Aby rozwi\u0105za\u0107 ten problem, musieli\u015bmy szybko przekierowa\u0107 zasoby z obszar\u00f3w, kt\u00f3re wcze\u015bniej by\u0142y g\u0142\u00f3wne. Jak sobie z tym poradzili\u015bmy \u2014 opowie Jelena.<\/p>\n<h2>Eksploatacja us\u0142ug online<\/h2>\n<p><em>Siergiej Koliesnikow, odpowiedzialny za eksploatacj\u0119 sklepu internetowego i mikrous\u0142ug<\/em><\/p>\n<p>Od momentu, gdy nasze sklepy detaliczne zacz\u0119\u0142y by\u0107 zamykane dla odwiedzaj\u0105cych, zacz\u0119li\u015bmy rejestrowa\u0107 wzrost takich wska\u017anik\u00f3w, jak liczba u\u017cytkownik\u00f3w, liczba zam\u00f3wie\u0144 sk\u0142adanych w naszej aplikacji, liczba zapyta\u0144 do aplikacji.&nbsp;<\/p>\n<p><img decoding=\"async\" alt=\"Co pomog\u0142o nam szybko przestawi\u0107 si\u0119 na sprzeda\u017c online w nowych warunkach\" src=\"\/wp-content\/uploads\/2020\/09\/5094662d75314169328e124d0ae9f5b5.jpg\" style=\"display:block;margin: 0 auto;\" \/>Liczba zam\u00f3wie\u0144 od 18 do 31 marca<img decoding=\"async\" alt=\"Co pomog\u0142o nam szybko przestawi\u0107 si\u0119 na sprzeda\u017c online w nowych warunkach\" src=\"\/wp-content\/uploads\/2020\/09\/4714a5d5595042b66b33f5f93b002734.jpg\" style=\"display:block;margin: 0 auto;\" \/>Liczba zapyta\u0144 do mikrous\u0142ug p\u0142atno\u015bci online<img decoding=\"async\" alt=\"Co pomog\u0142o nam szybko przestawi\u0107 si\u0119 na sprzeda\u017c online w nowych warunkach\" src=\"\/wp-content\/uploads\/2020\/09\/9145afe051f8d4d4da0e00a69d469b92.jpg\" style=\"display:block;margin: 0 auto;\" \/>Liczba zam\u00f3wie\u0144 z\u0142o\u017conych na stronie<\/p>\n<p>Na pierwszym wykresie widzimy, \u017ce wzrost wyni\u00f3s\u0142 oko\u0142o 14 razy, na drugim \u2014 4 razy. Uwa\u017camy, \u017ce najbardziej wymownym wska\u017anikiem jest czas odpowiedzi naszych aplikacji.&nbsp;<\/p>\n<p><img decoding=\"async\" alt=\"Co pomog\u0142o nam szybko przestawi\u0107 si\u0119 na sprzeda\u017c online w nowych warunkach\" src=\"\/wp-content\/uploads\/2020\/09\/bfe187bea02c83ce9d9e3286c486f85b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Na tym wykresie widzimy odpowiedzi front\u00f3w i aplikacji, a tak\u017ce okre\u015blili\u015bmy, \u017ce nie zauwa\u017cyli\u015bmy szczeg\u00f3lnego wzrostu.<\/p>\n<p>W pierwszej kolejno\u015bci jest to zwi\u0105zane z tym, \u017ce rozpocz\u0119li\u015bmy prace przygotowawcze pod koniec 2019 roku. Obecnie nasze us\u0142ugi s\u0105 zarezerwowane, zapewniona jest odporno\u015b\u0107 na awarie na poziomie fizycznych serwer\u00f3w, system\u00f3w wirtualizacji, kontener\u00f3w i us\u0142ug w nich. Nasze moce serwerowe pozwalaj\u0105 na przetrwanie wielokrotnego obci\u0105\u017cenia.<\/p>\n<p>Podstawowym narz\u0119dziem, kt\u00f3re pomog\u0142o nam w tej sytuacji, by\u0142 nasz system monitorowania. Jeszcze niedawno nie mieli\u015bmy jednego systemu, kt\u00f3ry pozwala\u0142by zbiera\u0107 metryki na wszystkich poziomach, od sprz\u0119tu fizycznego po metryki biznesowe.&nbsp;<\/p>\n<p>Formalnie monitoring w firmie istnia\u0142, ale zazwyczaj by\u0142 rozproszony i le\u017ca\u0142 w gestii konkretnych dzia\u0142\u00f3w. W praktyce, gdy wydarzy\u0142 si\u0119 jaki\u015b incydent, rzadko mieli\u015bmy jednolite zrozumienie, co w\u0142a\u015bciwie si\u0119 wydarzy\u0142o; brakowa\u0142o informacji, co cz\u0119sto prowadzi\u0142o do kr\u0105\u017cenia w poszukiwaniu i lokalizacji problemu do p\u00f3\u017aniejszego usuni\u0119cia.<\/p>\n<p>W pewnym momencie pomy\u015bleli\u015bmy i zdecydowali\u015bmy, \u017ce do\u015b\u0107 tego! Potrzebujemy jednego systemu, aby zobaczy\u0107 ca\u0142o\u015b\u0107. G\u0142\u00f3wne technologie, kt\u00f3re wchodz\u0105 w nasz stos, to Zabbix jako centrum alertowania i magazynowania metryk, Prometheus do zbierania i przechowywania metryk aplikacji, Stack ELK do logowania i przechowywania danych ca\u0142ego systemu monitorowania oraz Grafana do wizualizacji, Swagger, Docker i inne u\u017cyteczne rzeczy, kt\u00f3re s\u0105 Wam znane.<\/p>\n<p>Jednocze\u015bnie korzystamy nie tylko z dost\u0119pnych na rynku technologii, ale tak\u017ce opracowujemy co\u015b samodzielnie. Na przyk\u0142ad tworzymy us\u0142ugi do integracji system\u00f3w, czyli pewne API do zbierania metryk. Pracujemy r\u00f3wnie\u017c nad naszymi w\u0142asnymi systemami monitorowania \u2014 na poziomie metryk biznesowych wykorzystujemy testy UI. A tak\u017ce bot w Telegramie do powiadamiania zespo\u0142\u00f3w.<\/p>\n<p>Staramy si\u0119 r\u00f3wnie\u017c uczyni\u0107 system monitorowania dost\u0119pnym dla zespo\u0142\u00f3w, aby mog\u0142y samodzielnie przechowywa\u0107 swoje metryki i pracowa\u0107 z nimi, a tak\u017ce konfigurowa\u0107 alerting w specyficznych metrykach, kt\u00f3re maj\u0105 zastosowanie o w\u0119\u017cszym znaczeniu.&nbsp;<\/p>\n<p>W ramach ca\u0142ego systemu d\u0105\u017cymy do proaktywno\u015bci i jak najszybszej lokalizacji incydent\u00f3w. Co wi\u0119cej, liczba naszych mikrous\u0142ug i system\u00f3w znacznie wzros\u0142a w ostatnim czasie, a co za tym idzie, ro\u015bnie r\u00f3wnie\u017c liczba integracji. W ramach optymalizacji procesu diagnozowania incydent\u00f3w na poziomie integracji opracowujemy system, kt\u00f3ry umo\u017cliwia przeprowadzanie test\u00f3w mi\u0119dzy systemami i przedstawianie wynik\u00f3w, co pozwala na identyfikacj\u0119 g\u0142\u00f3wnych problem\u00f3w zwi\u0105zanych z importami i interakcj\u0105 mi\u0119dzy systemami.&nbsp;<\/p>\n<p>Oczywi\u015bcie mamy jeszcze wiele do zrobienia i rozwoju w zakresie eksploatacji system\u00f3w i aktywnie nad tym pracujemy. Szczeg\u00f3\u0142y dotycz\u0105ce naszego systemu monitorowania mo\u017cna przeczyta\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/517678\/\"><u>tutaj<\/u><\/a><\/noindex>.&nbsp;<\/p>\n<h2>Testy techniczne&nbsp;<\/h2>\n<p><em>Siergiej Or\u0142ow, kieruje centrum kompetencji w zakresie rozwoju aplikacji webowych i mobilnych<\/em><\/p>\n<p>Od momentu zamkni\u0119cia fizycznych sklep\u00f3w musieli\u015bmy stawi\u0107 czo\u0142a r\u00f3\u017cnym wyzwaniom w zakresie rozwoju. Przede wszystkim przeskok obci\u0105\u017cenia jako takiego. Jasne jest, \u017ce je\u015bli nie zostan\u0105 podj\u0119te odpowiednie \u015brodki, przy wysokim obci\u0105\u017ceniu system mo\u017ce z smutnym hukiem przemieni\u0107 si\u0119 w dyni\u0119, ca\u0142kowicie degraduj\u0105c wydajno\u015b\u0107 lub ca\u0142kowicie trac\u0105c swoj\u0105 funkcjonalno\u015b\u0107.<\/p>\n<p>Drugi aspekt, nieco mniej oczywisty, polega na tym, \u017ce system przy wysokim obci\u0105\u017ceniu musia\u0142 by\u0107 szybko zmieniany, dostosowuj\u0105c si\u0119 do zmian w procesach biznesowych. Czasami kilka razy dziennie. W wielu firmach istnieje zasada, \u017ce przy intensywnych dzia\u0142aniach marketingowych nie nale\u017cy wprowadza\u0107 \u017cadnych zmian do systemu. W og\u00f3le \u017cadnych, niech dzia\u0142a, skoro dzia\u0142a.<\/p>\n<p>A w naszym przypadku mieli\u015bmy zasadniczo niesko\u0144czony czarny pi\u0105tek, w trakcie kt\u00f3rego jednak musieli\u015bmy zmienia\u0107 system. Ka\u017cdy b\u0142\u0105d, problem czy awaria w systemie bardzo drogo kosztowa\u0142yby biznes.<\/p>\n<p>Wyprzedzaj\u0105c fakty, powiem, \u017ce uda\u0142o nam si\u0119 poradzi\u0107 sobie z tymi wyzwaniami, wszystkie systemy wytrzyma\u0142y obci\u0105\u017cenie, \u0142atwo si\u0119 skalowa\u0142y i nie mieli\u015bmy \u017cadnych globalnych awarii technicznych.<\/p>\n<p>Istniej\u0105 cztery filary, na kt\u00f3rych opiera si\u0119 zdolno\u015b\u0107 systemu do radzenia sobie z wysokim, skokowym obci\u0105\u017ceniem. Pierwszym z nich jest monitorowanie, o kt\u00f3rym pisa\u0142e\u015b nieco wcze\u015bniej. Bez zorganizowanego systemu monitorowania praktycznie niemo\u017cliwe jest zidentyfikowanie w\u0105skich garde\u0142 systemu. Dobrze zaprojektowany system monitorowania jest jak domowa odzie\u017c - powinien by\u0107 wygodny i dostosowany do Ciebie.<\/p>\n<p>Drugim aspektem jest testowanie. Do tego podchodzimy bardzo powa\u017cnie: piszemy zar\u00f3wno klasyczne testy jednostkowe, testy integracyjne, testy obci\u0105\u017ceniowe oraz wiele innych dla ka\u017cdego systemu. Pisujemy r\u00f3wnie\u017c strategi\u0119 testowania, staraj\u0105c si\u0119 doprowadzi\u0107 poziom testowania do takiego, aby r\u0119czne kontrole nie by\u0142y nam ju\u017c potrzebne.<\/p>\n<p>Trzeci filar to CI\/CD Pipeline. Procesy budowy, testowania i wdra\u017cania aplikacji musz\u0105 by\u0107 maksymalnie zautomatyzowane, nie powinno by\u0107 r\u0119cznych interwencji. Temat CI\/CD Pipeline jest do\u015b\u0107 g\u0142\u0119boki, wi\u0119c wspomn\u0119 o nim tylko pobie\u017cnie. Warto doda\u0107, \u017ce posiadamy list\u0119 kontroln\u0105 CI\/CD Pipeline, wed\u0142ug kt\u00f3rej ka\u017cda zesp\u00f3\u0142 produktowy wsp\u00f3\u0142pracuje z centrami kompetencyjnymi.<\/p>\n<p><img decoding=\"async\" alt=\"Co pomog\u0142o nam szybko przestawi\u0107 si\u0119 na sprzeda\u017c online w nowych warunkach\" src=\"\/wp-content\/uploads\/2020\/09\/fabee1de52c10790c33bb2d08935a657.jpg\" style=\"display:block;margin: 0 auto;\" \/>Oto lista kontrolna<\/p>\n<p>W ten spos\u00f3b osi\u0105ga si\u0119 wiele cel\u00f3w. Jest to wersjonowanie API, feature toggle, aby unikn\u0105\u0107 nadmiaru wydania oraz osi\u0105gni\u0119cie poziomu pokrycia r\u00f3\u017cnych test\u00f3w, tak aby testowanie by\u0142o ca\u0142kowicie zautomatyzowane, a wdro\u017cenia by\u0142y bezproblemowe i inne.<\/p>\n<p>Czwarty filar to zasady architektoniczne i rozwi\u0105zania techniczne. O architekturze mo\u017cna m\u00f3wi\u0107 du\u017co i d\u0142ugo, ale chcia\u0142bym podkre\u015bli\u0107 kilka zasad, na kt\u00f3rych chcia\u0142bym skupi\u0107 uwag\u0119.<\/p>\n<p>Po pierwsze, trzeba wybiera\u0107 specjalistyczne narz\u0119dzia do konkretnych zada\u0144. Tak, brzmi to oczywi\u015bcie, i wiadomo, \u017ce gwo\u017adzie wbijamy m\u0142otkiem, a zegarki rozbieramy specjalnymi wkr\u0119takami. Jednak w naszej epoce wiele narz\u0119dzi d\u0105\u017cy do uniwersalizacji, aby obj\u0105\u0107 jak najwi\u0119kszy segment u\u017cytkownik\u00f3w: bazy danych, cache, frameworki i inne. Na przyk\u0142ad, je\u015bli we\u017amiemy baz\u0119 danych MongoDB, dzia\u0142a ona z wielodokumentowymi transakcjami, a baza danych Oracle obs\u0142uguje json-y. Wydawa\u0142oby si\u0119, \u017ce wszystko mo\u017cna wykorzysta\u0107 do wszystkiego. Ale je\u015bli postulat wydajno\u015bci jest dla nas kluczowy, musimy jasno rozumie\u0107 mocne i s\u0142abe strony ka\u017cdego narz\u0119dzia i korzysta\u0107 z tych, kt\u00f3re s\u0105 nam potrzebne dla naszego rodzaju zada\u0144.&nbsp;<\/p>\n<p>Po drugie, przy projektowaniu system\u00f3w ka\u017cde zwi\u0119kszenie z\u0142o\u017cono\u015bci powinno by\u0107 uzasadnione. Musimy to stale mie\u0107 na uwadze, zasada low coupling jest powszechnie znana. Uwa\u017cam, \u017ce powinno si\u0119 j\u0105 stosowa\u0107 zar\u00f3wno na poziomie konkretnej us\u0142ugi, jak i ca\u0142ego systemu oraz architektonicznego krajobrazu. R\u00f3wnie\u017c wa\u017cna jest zdolno\u015b\u0107 do poziomego skalowania ka\u017cdego komponentu systemu w trakcie obci\u0105\u017cenia. Posiadaj\u0105c t\u0119 zdolno\u015b\u0107, skalowanie nie b\u0119dzie \u017cadnym problemem.<\/p>\n<p>Je\u015bli chodzi o rozwi\u0105zania techniczne, poprosili\u015bmy zespo\u0142y produktowe o przygotowanie \u015bwie\u017cego zestawu rekomendacji, pomys\u0142\u00f3w i rozwi\u0105za\u0144, kt\u00f3re wdro\u017cyli w trakcie przygotowa\u0144 do kolejnej fali obci\u0105\u017cenia.<\/p>\n<h2>Cache<\/h2>\n<p>Nale\u017cy \u015bwiadomie podchodzi\u0107 do wyboru lokalnych i rozproszonych cache. Czasami warto wykorzysta\u0107 zar\u00f3wno jedne, jak i drugie w ramach jednego systemu. Na przyk\u0142ad mamy systemy, w kt\u00f3rych cz\u0119\u015b\u0107 danych de facto jest witrynowym cache, to znaczy, \u017ce \u017ar\u00f3d\u0142o aktualizacji znajduje si\u0119 za samym systemem, a systemy tych danych nie zmieniaj\u0105. Dla takiego podej\u015bcia u\u017cywamy lokalnego cache Caffeine.&nbsp;<\/p>\n<p>S\u0105 te\u017c dane, kt\u00f3re system aktywnie zmienia w trakcie dzia\u0142ania, i tu wykorzystujemy rozproszony cache z Hazelcast. Takie podej\u015bcie pozwala nam korzysta\u0107 z zalet rozproszonego cache tam, gdzie jest to naprawd\u0119 potrzebne, i minimalizowa\u0107 koszty serwisowe zwi\u0105zane z cyrkulacj\u0105 danych w klastrze Hazelcast tam, gdzie mo\u017cemy si\u0119 bez tego obej\u015b\u0107. O cache pisali\u015bmy du\u017co. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/490912\/\"><u>tutaj <\/u><\/a><\/noindex>i <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/504400\/\"><u>tutaj<\/u><\/a><\/noindex>.<\/p>\n<p>Ponadto zmiana serializatora na Kryo w Hazelcast przynios\u0142a nam zauwa\u017calny wzrost. A przej\u015bcie z ReplicatedMap na IMap + Near Cache w Hazelcast pozwoli\u0142o nam zminimalizowa\u0107 ruch danych w klastrze.&nbsp;<\/p>\n<p>Ma\u0142a rada: przy masowej inwalidacji cache'a czasami mo\u017cna zastosowa\u0107 strategi\u0119 podgrzewania drugiego cache'a przed prze\u0142\u0105czeniem na niego. Wydaje si\u0119, \u017ce w takim podej\u015bciu powinni\u015bmy uzyska\u0107 podw\u00f3jne zu\u017cycie pami\u0119ci, ale w praktyce w systemach, gdzie praktykowano takie rozwi\u0105zania, zu\u017cycie pami\u0119ci si\u0119 zmniejsza\u0142o.<\/p>\n<h2>Stos rekatywny<\/h2>\n<p>U\u017cywamy stosu reaktywnego w ju\u017c do\u015b\u0107 du\u017cej liczbie system\u00f3w. W naszym przypadku to Webflux lub Kotlin z korutynami. Szczeg\u00f3lnie dobrze dzia\u0142a stos reaktywny tam, gdzie oczekujemy wolnych operacji wej\u015bcia-wyj\u015bcia. Na przyk\u0142ad, wywo\u0142ania wolnych us\u0142ug, praca z systemem plik\u00f3w lub systemami pami\u0119ci.<\/p>\n<p>Najwa\u017cniejsz\u0105 zasad\u0105 jest unikanie blokuj\u0105cych wywo\u0142a\u0144. Pod mask\u0105 reaktywnych framework\u00f3w dzia\u0142a niewielka liczba aktywnych w\u0105tk\u00f3w serwisowych. Je\u015bli nieostro\u017cnie pozwolimy sobie na bezpo\u015brednie blokuj\u0105ce wywo\u0142anie, takie jak wywo\u0142anie sterownika JDBC, system po prostu stanie.&nbsp;<\/p>\n<p>Staraj si\u0119 przekszta\u0142ca\u0107 b\u0142\u0119dy w w\u0142asne wyj\u0105tkowe wyj\u0105tki czasowe. Rzeczywisty strumie\u0144 wykonania programu odchodzi do reaktywnych framework\u00f3w, a wykonanie kodu staje si\u0119 nieliniowe. W konsekwencji, bardzo trudno jest diagnozowa\u0107 problemy na podstawie stack trace'\u00f3w. Rozwi\u0105zaniem b\u0119dzie stworzenie jasnych, obiektywnych wyj\u0105tk\u00f3w czasowych dla ka\u017cdego b\u0142\u0119du.<\/p>\n<h2>Elasticsearch<\/h2>\n<p>Podczas korzystania z Elasticsearch nie wybiera\u0107 nieu\u017cywanych danych. To w zasadzie bardzo prosta rada, ale najcz\u0119\u015bciej w\u0142a\u015bnie o tym si\u0119 zapomina. Je\u015bli trzeba wybra\u0107 wi\u0119cej ni\u017c 10 tysi\u0119cy rekord\u00f3w za jednym razem, nale\u017cy u\u017cy\u0107 Scroll. Mo\u017cna to por\u00f3wna\u0107 do kursora w relacyjnej bazie danych.&nbsp;<\/p>\n<p>Nie u\u017cywaj postfilter bez potrzeby. Przy du\u017cych danych w g\u0142\u00f3wnym zbiorze ta operacja bardzo obci\u0105\u017ca baz\u0119 danych.&nbsp;<\/p>\n<p>U\u017cywaj operacji hurtowych tam, gdzie to mo\u017cliwe.<\/p>\n<h2>API<\/h2>\n<p>Projektuj\u0105c API, uwzgl\u0119dnij wymagania dotycz\u0105ce minimalizacji przesy\u0142anych danych. Jest to szczeg\u00f3lnie istotne w po\u0142\u0105czeniu z frontem: to w\u0142a\u015bnie w tym miejscu wychodzimy poza kana\u0142y naszych centr\u00f3w danych i ju\u017c pracujemy na kanale, kt\u00f3ry \u0142\u0105czy nas z klientem. Je\u015bli na nim wyst\u0105pi\u0105 jakiekolwiek problemy, zbyt du\u017cy ruch powoduje negatywne do\u015bwiadczenia u\u017cytkownika.<\/p>\n<p>I w ko\u0144cu, nie wypuszczaj ca\u0142ej masy danych, starannie podchod\u017a do umowy mi\u0119dzy konsumentami a dostawcami.<\/p>\n<h2>Transformacja organizacyjna<\/h2>\n<p><em>Elena Eroshkina, zast\u0119pca dyrektora ds. IT<\/em><\/p>\n<p>W momencie, gdy mia\u0142a miejsce kwarantanna i pojawi\u0142a si\u0119 potrzeba szybkiego zwi\u0119kszenia tempa rozwoju online oraz wdra\u017cania us\u0142ug omnichannel, byli\u015bmy ju\u017c w trakcie transformacji organizacyjnej.&nbsp;<\/p>\n<p>Cz\u0119\u015b\u0107 naszej struktury zosta\u0142a przekszta\u0142cona w prac\u0119 wed\u0142ug zasad i praktyk podej\u015bcia produktowego. Utworzy\u0142y si\u0119 zespo\u0142y, kt\u00f3re teraz odpowiadaj\u0105 za dzia\u0142anie i rozw\u00f3j ka\u017cdego produktu. Pracownicy w takich zespo\u0142ach s\u0105 zaanga\u017cowani w 100% i organizuj\u0105 swoj\u0105 prac\u0119 w metodologii Scrum lub Kanban, w zale\u017cno\u015bci od tego, co jest dla nich bardziej komfortowe, konfiguruj\u0105 proces wdra\u017cania, wdra\u017caj\u0105 praktyki techniczne, praktyki zapewnienia jako\u015bci i wiele innych.<\/p>\n<p>Na szcz\u0119\u015bcie wi\u0119kszo\u015b\u0107 takich zespo\u0142\u00f3w produktowych znajdowa\u0142a si\u0119 w obszarze us\u0142ug online i omnichannel. Pozwoli\u0142o nam to w kr\u00f3tkim czasie (serio, dos\u0142ownie w ci\u0105gu dw\u00f3ch dni) przej\u015b\u0107 na tryb pracy zdalnej bez utraty efektywno\u015bci. Ustalony proces pozwoli\u0142 szybko dostosowa\u0107 si\u0119 do nowych warunk\u00f3w pracy i utrzyma\u0107 wystarczaj\u0105co wysoki tempo dostarczania nowych funkcji.<\/p>\n<p>Ponadto pojawi\u0142a si\u0119 potrzeba wzmocnienia tych zespo\u0142\u00f3w, kt\u00f3re pracuj\u0105 w obszarze online biznesu. Wtedy sta\u0142o si\u0119 jasne, \u017ce mo\u017cemy to zrobi\u0107 jedynie z wykorzystaniem zasob\u00f3w wewn\u0119trznych. Oko\u0142o 50 os\u00f3b w ci\u0105gu dw\u00f3ch tygodni zmieni\u0142o obszar, w kt\u00f3rym pracowa\u0142y wcze\u015bniej, i w\u0142\u0105czy\u0142o si\u0119 w prac\u0119 nad nowym dla nich produktem.&nbsp;<\/p>\n<p>Nie by\u0142o potrzeby podejmowania \u017cadnych specjalnych wysi\u0142k\u00f3w zarz\u0105dzaj\u0105cych, poniewa\u017c obok organizacji w\u0142asnego procesu, technicznego doskonalenia produktu oraz praktyki zapewnienia jako\u015bci, uczymy nasze zespo\u0142y samoorganizacji \u2014 zarz\u0105dzania w\u0142asnym procesem produkcyjnym bez zaanga\u017cowania zasob\u00f3w administracyjnych.<\/p>\n<p>Zasoby zarz\u0105dzaj\u0105ce skupili\u015bmy dok\u0142adnie tam, gdzie to by\u0142o w danym momencie najbardziej potrzebne \u2014 na koordynacji z biznesem: Co jest teraz wa\u017cne dla naszego klienta, jaka funkcjonalno\u015b\u0107 powinna by\u0107 zrealizowana w pierwszej kolejno\u015bci, co nale\u017cy zrobi\u0107, aby zwi\u0119kszy\u0107 nasz\u0105 przepustowo\u015b\u0107 w dostarczaniu i przetwarzaniu zam\u00f3wie\u0144. Wszystko to oraz jasny model r\u00f3l pozwoli\u0142y nam w tym okresie obci\u0105\u017cy\u0107 nasze procesy produkcyjne tworzenia warto\u015bci tym, co naprawd\u0119 jest wa\u017cne i potrzebne.&nbsp;<\/p>\n<p>Oczywi\u015bcie, \u017ce przy pracy zdalnej i szybkim tempie zmian, kiedy od udzia\u0142u ka\u017cdego zale\u017c\u0105 wyniki biznesowe, nie mo\u017cna polega\u0107 tylko na wewn\u0119trznych odczuciach, jak \u00abCzy wszystko u nas idzie dobrze? Wydaje si\u0119, \u017ce nie\u017ale\u00bb. Potrzebne s\u0105 obiektywne metryki procesu produkcyjnego. Takie mamy, s\u0105 dost\u0119pne dla ka\u017cdego, kto interesuje si\u0119 metrykami zespo\u0142\u00f3w produktowych. Przede wszystkim samego zespo\u0142u, biznesu, wsp\u00f3\u0142pracownik\u00f3w i kierownictwa.<\/p>\n<p>Co dwa tygodnie z ka\u017cd\u0105 dru\u017cyn\u0105 odbywa si\u0119 spotkanie statusowe, na kt\u00f3rym w ci\u0105gu 10 minut analizowane s\u0105 metryki, identyfikowane s\u0105 w\u0105skie gard\u0142a procesu produkcyjnego i wypracowywane jest wsp\u00f3lne rozwi\u0105zanie: co mo\u017cna zrobi\u0107, aby te w\u0105skie gard\u0142a usun\u0105\u0107. Mo\u017cna tam r\u00f3wnie\u017c od razu poprosi\u0107 o pomoc kierownictwo, je\u015bli jakie\u015b zidentyfikowane problemy wykraczaj\u0105 poza obszar wp\u0142yw\u00f3w zespo\u0142\u00f3w lub potrzebna jest wiedza koleg\u00f3w, kt\u00f3rzy ju\u017c mieli do czynienia z podobnym problemem.<\/p>\n<p>Mimo to rozumiemy, \u017ce dla wielokrotnego przyspieszenia (a w\u0142a\u015bnie taki cel sobie stawiamy) musimy jeszcze wiele si\u0119 nauczy\u0107 i wdro\u017cy\u0107 w codzienn\u0105 prac\u0119. Obecnie kontynuujemy skalowanie podej\u015bcia produktowego na inne zespo\u0142y i nowe produkty. W tym celu musieli\u015bmy opanowa\u0107 nowy dla nas format online'owej szko\u0142y metodolog\u00f3w.<\/p>\n<p>Metodolodzy, osoby kt\u00f3re pomagaj\u0105 zespo\u0142om w budowaniu proces\u00f3w, usprawnianiu komunikacji i zwi\u0119kszaniu efektywno\u015bci pracy, w istocie s\u0105 agentami zmian. W tej chwili absolwenci naszego pierwszego kursu pracuj\u0105 z zespo\u0142ami i pomagaj\u0105 im sta\u0107 si\u0119 skutecznymi.&nbsp;<\/p>\n<p>My\u015bl\u0119, \u017ce obecna sytuacja otwiera przed nami takie mo\u017cliwo\u015bci i perspektywy, kt\u00f3rych by\u0107 mo\u017ce jeszcze do ko\u0144ca nie dostrzegamy. Ale do\u015bwiadczenie i praktyka, kt\u00f3re zdobywamy w tej chwili, potwierdzaj\u0105, \u017ce wybrali\u015bmy w\u0142a\u015bciw\u0105 drog\u0119 rozwoju, nie zmarnujemy w przysz\u0142o\u015bci tych nowych mo\u017cliwo\u015bci i b\u0119dziemy w stanie r\u00f3wnie skutecznie odpowiada\u0107 na wyzwania, kt\u00f3re stan\u0105 przed 'Sportmasterem'.<\/p>\n<h3>Wnioski<\/h3>\n<p>W tym trudnym czasie sformu\u0142owali\u015bmy g\u0142\u00f3wne zasady, na kt\u00f3rych opiera si\u0119 rozw\u00f3j oprogramowania, kt\u00f3re my\u015bl\u0119, b\u0119d\u0105 istotne dla ka\u017cdej firmy, kt\u00f3ra si\u0119 tym zajmuje.<\/p>\n<p><strong>Ludzie<\/strong>. To jest fundament. Pracownicy powinni czerpa\u0107 przyjemno\u015b\u0107 z pracy, rozumie\u0107 cele firmy oraz cele produkt\u00f3w, kt\u00f3rymi si\u0119 zajmuj\u0105. I oczywi\u015bcie powinni mie\u0107 mo\u017cliwo\u015b\u0107 profesjonalnego rozwoju.&nbsp;<\/p>\n<p><strong>Technologia<\/strong>. Konieczne jest, aby firma dojrza\u0142a w swoim podej\u015bciu do pracy z technologicznym stosem i rozwija\u0142a kompetencje tam, gdzie jest to rzeczywi\u015bcie konieczne. Brzmi to bardzo prosto i oczywi\u015bcie. I jest cz\u0119sto ignorowane.<\/p>\n<p><strong>Procesy<\/strong>. Wa\u017cne jest, aby w\u0142a\u015bciwie zorganizowa\u0107 prac\u0119 zespo\u0142\u00f3w produktowych i centr\u00f3w kompetencji oraz nawi\u0105za\u0107 wsp\u00f3\u0142prac\u0119 z biznesem, aby traktowa\u0107 go jak partnera.<\/p>\n<\/p>\n<p>W skr\u00f3cie, mniej wi\u0119cej tak przetrwali\u015bmy. G\u0142\u00f3wna teza wsp\u00f3\u0142czesno\u015bci potwierdzi\u0142a si\u0119 jeszcze raz, g\u0142o\u015bno uderzaj\u0105c w czo\u0142o.<\/p>\n<p>Nawet je\u015bli jeste\u015b ogromnym offline'owym biznesem z wieloma sklepami w wielu miastach, rozwijaj swoj\u0105 obecno\u015b\u0107 online. To nie jest tylko dodatkowy kana\u0142 sprzeda\u017cy czy \u0142adna aplikacja, przez kt\u00f3r\u0105 mo\u017cna co\u015b kupi\u0107 (a tak\u017ce dlatego, \u017ce konkurencja te\u017c ma \u0142adna). To nie jest zapasowy plan na wypadek, kt\u00f3ry pomo\u017ce przetrwa\u0107 burz\u0119.<\/p>\n<p>To rzeczywi\u015bcie konieczno\u015b\u0107. Na kt\u00f3r\u0105 musz\u0105 by\u0107 gotowe nie tylko Twoje zasoby techniczne i infrastruktura, ale tak\u017ce ludzie i procesy. Szybkie dokupienie pami\u0119ci, miejsca, uruchomienie nowych instancji i innych rzeczy mo\u017cna zrealizowa\u0107 w ci\u0105gu kilku godzin. Ale ludzi i proces\u00f3w nale\u017cy przygotowa\u0107 na to wcze\u015bniej.<\/p>\n<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/519376\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0438\u0445\u0430\u0438\u043b, \u044f \u0437\u0430\u043c\u0435\u0441\u0442\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u0418\u0422 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u00bb. \u042f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0438\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0430\u043d\u0434\u0435\u043c\u0438\u0438. \u0412 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u043d\u0438 \u043d\u043e\u0432\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0439 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0444\u043b\u0430\u0439\u043d-\u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u00ab\u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0430\u00bb \u0437\u0430\u043c\u0435\u0440, \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u043d\u0430\u0448 \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u0430\u043d\u0430\u043b, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0432 \u0447\u0430\u0441\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0443, \u0432\u043e\u0437\u0440\u043e\u0441\u043b\u0430 \u0432 10 \u0440\u0430\u0437. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":94521,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-94520","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=\"\u041f\u0440\u0438\u0432\u0435\u0442!\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0438\u0445\u0430\u0438\u043b, \u044f \u0437\u0430\u043c\u0435\u0441\u0442\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u0418\u0422 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u00bb.\" \/>\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\/pl\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\udd47\u0427\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u043d\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u043d\u043b\u0430\u0439\u043d-\u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044e \u0432 \u043d\u043e\u0432\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442!\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0438\u0445\u0430\u0438\u043b, \u044f \u0437\u0430\u043c\u0435\u0441\u0442\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u0418\u0422 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah\" \/>\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=\"2020-09-18T05:42:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-18T05:42:20+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\udd47Co pomog\u0142o nam szybko przystosowa\u0107 si\u0119 do sprzeda\u017cy online w nowych warunkach | ProHoster","description":"Cze\u015b\u0107! Nazywam si\u0119 Michai\u0142, jestem zast\u0119pc\u0105 dyrektora ds. IT w firmie \u201eSportmaster\u201d.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\udd47\u0427\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u043d\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u043d\u043b\u0430\u0439\u043d-\u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044e \u0432 \u043d\u043e\u0432\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442!\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0438\u0445\u0430\u0438\u043b, \u044f \u0437\u0430\u043c\u0435\u0441\u0442\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u0418\u0422 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u00bb.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah","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":"2020-09-18T05:42:20+00:00","article:modified_time":"2020-09-18T05:42:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94520","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:25:23","updated":"2022-09-29 04:36:15","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/94520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=94520"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/94520\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/94521"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=94520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=94520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=94520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}