<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Навчання on etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/</link><description>Recent content in Навчання on etcd</description><generator>Hugo</generator><language>uk</language><atom:link href="https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/index.xml" rel="self" type="application/rss+xml"/><item><title>Модель даних</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/data_model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/data_model/</guid><description>&lt;p&gt;etcd розроблений для надійного зберігання даних, які рідко оновлюються, та забезпечення надійних запитів на спостереження. etcd надає попередні версії пар ключ-значення для підтримки недорогих знімків та історії подій спостереження (“запити подорожей у часі”). Постійна, багатоверсійна, модель даних з контролем паралельності добре підходить для цих випадків використання.&lt;/p&gt;
&lt;p&gt;etcd зберігає дані у багатоверсійному &lt;a href="https://en.wikipedia.org/wiki/Persistent_data_structure"&gt;постійному&lt;/a&gt; сховищі ключ-значення. Постійне сховище ключ-значення зберігає попередню версію пари ключ-значення, коли її значення замінюється новими даними. Сховище ключ-значення фактично є незмінним; його операції не оновлюють структуру на місці, а завжди створюють нову оновлену структуру. Усі минулі версії ключів залишаються доступними та спостережуваними після модифікації. Щоб запобігти нескінченному зростанню сховища даних з часом та зберіганню старих версій, сховище може бути стиснуте для видалення найстаріших версій замінених даних.&lt;/p&gt;</description></item><item><title>Дизайн клієнта etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/design-client/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/design-client/</guid><description>&lt;h2 id="etcd-client-design"&gt;Дизайн клієнта etcd&lt;a class="td-heading-self-link" href="#etcd-client-design" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Gyuho Lee (github.com/gyuho, Amazon Web Services, Inc.), Joe Betz (github.com/jpbetz, Google Inc.)&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="introduction"&gt;Вступ&lt;a class="td-heading-self-link" href="#introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Сервер etcd довів свою надійність за роки тестування з інʼєкціями відмов. Більшість складної логіки застосунків вже обробляється сервером etcd та його сховищами даних (наприклад, членство в кластері є прозорим для клієнтів, з пересиланням пропозицій на лідера на рівні Raft). Хоча компоненти сервера є правильними, його поєднання з клієнтом вимагає іншого набору складних протоколів для забезпечення його правильності та високої доступності в умовах збоїв. Ідеально, сервер etcd надає один логічний вигляд кластера з багатьох фізичних машин, а клієнт реалізує автоматичне перемикання між репліками. Цей документ описує архітектурні рішення клієнта та деталі їх реалізації.&lt;/p&gt;</description></item><item><title>Дизайн learner etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/design-learner/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/design-learner/</guid><description>&lt;h2 id="etcd-learner"&gt;etcd Learner&lt;a class="td-heading-self-link" href="#etcd-learner" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Gyuho Lee (github.com/gyuho, Amazon Web Services, Inc.), Joe Betz (github.com/jpbetz, Google Inc.)&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Передумови&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Переналаштування членства було однією з найбільших операційних проблем. Розгляньмо поширені проблеми.&lt;/p&gt;
&lt;h3 id="1-new-cluster-member-overloads-leader"&gt;1. Новий член кластера перевантажує Лідера&lt;a class="td-heading-self-link" href="#1-new-cluster-member-overloads-leader" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Новий член etcd починає без даних, тому вимагає більше оновлень від лідера, поки не наздожене журнали лідера. Тоді мережа лідера більш ймовірно буде перевантажена, блокуючи або скидаючи такти лідера до послідовників. У такому випадку послідовник може вийти з тайм-ауту виборів і почати нові вибори лідера. Тобто кластер з новим членом більш вразливий до виборів лідера. І вибори лідера, і подальше розповсюдження оновлень новому члену схильні викликати періоди недоступності кластера (див. &lt;em&gt;Рисунок 1&lt;/em&gt;).&lt;/p&gt;</description></item><item><title>Дизайн автентифікації в etcd v3</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/design-auth-v3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/design-auth-v3/</guid><description>&lt;h2 id="why-not-reuse-the-v2-auth-system"&gt;Чому не використовувати систему автентифікації v2?&lt;a class="td-heading-self-link" href="#why-not-reuse-the-v2-auth-system" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Протокол v3 використовує gRPC як транспорт замість RESTful інтерфейсу, як у v2. Цей новий протокол надає можливість покращити дизайн v2. Наприклад, автентифікація v3 базується на зʼєднанні, а не на кожному запиті, як у v2. Крім того, семантика автентифікації v2 на практиці є незручною з погляду узгодженості, що буде описано в наступних розділах. Для v3 є чіткий опис та реалізація механізму автентифікації, який виправляє недоліки системи автентифікації v2.&lt;/p&gt;</description></item><item><title>etcd API</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api/</guid><description>&lt;p&gt;Цей документ призначений для надання огляду центрального дизайну API v3 etcd. Це не слід плутати з API v2 etcd, який був визнаний застарілим з випуском etcd v3.5. Він не є всеосяжним, але має на меті зосередитися на основних ідеях, необхідних для розуміння etcd без відволікання на менш поширені виклики API. Усі API etcd визначені в &lt;a href="https://github.com/etcd-io/etcd/blob/master/api/etcdserverpb/rpc.proto"&gt;gRPC сервісах&lt;/a&gt;, які категоризують віддалені виклики процедур (RPC), зрозумілі серверу etcd. Повний перелік усіх RPC etcd задокументований у markdown у &lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.5/dev-guide/api_reference_v3/"&gt;списку gRPC API&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Файли постійного сховища etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/persistent-storage-files/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/persistent-storage-files/</guid><description>&lt;p&gt;Цей документ пояснює формат постійного сховища etcd: іменування, вміст та інструменти, які дозволяють розробникам перевіряти їх. У майбутньому документ буде доповнюватися змінами в моделі зберігання даних. Цей документ призначений для розробників etcd, щоб допомогти їм у відновленні даних.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Передумови&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Наступні статті надають корисну інформацію для цього документа:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/data_model/"&gt;Огляд моделі даних etcd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Огляд Raft: &lt;a href="https://raft.github.io/raft.pdf"&gt;https://raft.github.io/raft.pdf&lt;/a&gt; (особливо розділ &amp;ldquo;5.3 Реплікація журналу&amp;rdquo;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="overview"&gt;Огляд&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="long-leaving-files"&gt;Довготривалі файли&lt;a class="td-heading-self-link" href="#long-leaving-files" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;tr&gt;
 &lt;th&gt;Назва файлу&lt;/th&gt;
 &lt;th&gt;Основна мета&lt;/th&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;pre&gt;./member/snap/db&lt;/pre&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;bbolt &lt;a href="https://uk.wikipedia.org/wiki/B%2B_дерево"&gt;b+tree&lt;/a&gt;&lt;/strong&gt;, що зберігає всі застосовані дані, інформацію про авторизацію членства та метадані. Воно знає, який останній застосований індекс журналу WAL (&lt;a href="https://github.com/etcd-io/etcd/blob/a1ff0d5373335665b3e5f4cb22a538ac63757cb6/server/etcdserver/cindex/cindex.go#L92"&gt;"consistent_index"&lt;/a&gt;).
 &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;pre&gt;./member/snap/0000000000000002-0000000000049425.snap
./member/snap/0000000000000002-0000000000061ace.snap&lt;/pre&gt;
 &lt;/td&gt;
 &lt;td&gt;
 &lt;p&gt;
 Періодичні &lt;strong&gt;знімки старого сховища v2&lt;/strong&gt;, що містять:
 &lt;ul&gt;
 &lt;li&gt;основну інформацію про членство&lt;/li&gt;
 &lt;li&gt;версію etcd&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/p&gt;</description></item><item><title>Гарантії API etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api_guarantees/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api_guarantees/</guid><description>&lt;p&gt;etcd — це консистентне та надійне сховище ключ-значення. Сховище ключ-значення доступне через &lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api/#grpc-services"&gt;gRPC Services&lt;/a&gt;. etcd забезпечує найсильніші гарантії консистентності та надійності для розподіленої системи. Ця специфікація перераховує гарантії API, які надає etcd.&lt;/p&gt;
&lt;h3 id="apis-to-consider"&gt;API для розгляду&lt;a class="td-heading-self-link" href="#apis-to-consider" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;KV API
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api/#range"&gt;Range&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api/#put"&gt;Put&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api/#delete-range"&gt;Delete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api/#transaction"&gt;Transaction&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Watch API
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api/#watch-api"&gt;Watch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Lease API
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api/#obtaining-leases"&gt;Grant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Revoke]&lt;/li&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/api/#keep-alives"&gt;Keep alive&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;KV API дозволяє безпосередньо читати та маніпулювати сховищем ключ-значення.
Watch API дозволяє підписуватися на зміни в сховищі ключ-значення.
Lease API дозволяє призначати час життя ключа.&lt;/p&gt;</description></item><item><title>etcd у порівнянні з іншими сховищами ключі-значення</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/why/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/why/</guid><description>&lt;p&gt;Назва &amp;ldquo;etcd&amp;rdquo; походить від двох ідей: теки unix &amp;ldquo;/etc&amp;rdquo; та &amp;ldquo;d&amp;quot;istributed систем. Тека &amp;ldquo;/etc&amp;rdquo; є місцем для зберігання конфігураційних даних для однієї системи, тоді як etcd зберігає конфігураційну інформацію для великих розподілених систем. Отже, &amp;ldquo;d&amp;quot;istributed &amp;ldquo;/etc&amp;rdquo; — це &amp;ldquo;etcd&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;etcd розроблено як загальну основу для великих розподілених систем. Це системи, які ніколи не терплять &amp;ldquo;розділення мозку&amp;rdquo;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; і готові пожертвувати доступністю для досягнення цієї мети. etcd зберігає метадані послідовно та відмовостійко. Кластер etcd призначений для забезпечення сховища ключ-значення з найкращою стабільністю, надійністю, масштабованістю та продуктивністю.&lt;/p&gt;</description></item><item><title>Глосарій</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/glossary/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.5/learning/glossary/</guid><description>&lt;p&gt;Цей документ визначає різні терміни, що використовуються в документації, командному рядку та вихідному коді etcd.&lt;/p&gt;
&lt;h2 id="alarm"&gt;Тривога (Alarm)&lt;a class="td-heading-self-link" href="#alarm" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Сервер etcd спричиняє тривогу, коли кластер потребує втручання оператора для збереження надійності.&lt;/p&gt;
&lt;h2 id="authentication"&gt;Автентифікація (Authentication)&lt;a class="td-heading-self-link" href="#authentication" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Автентифікація керує дозволами доступу користувачів до ресурсів etcd.&lt;/p&gt;
&lt;h2 id="client"&gt;Клієнт (Client)&lt;a class="td-heading-self-link" href="#client" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Клієнт підключається до кластера etcd для виконання сервісних запитів, таких як отримання пар ключ-значення, запис даних або спостереження за оновленнями.&lt;/p&gt;
&lt;h2 id="cluster"&gt;Кластер (Cluster)&lt;a class="td-heading-self-link" href="#cluster" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Кластер складається з кількох учасників.&lt;/p&gt;</description></item></channel></rss>