# AppDirect Case Study

LLMS index: [llms.txt](/llms.txt)

---

<h2>Задача</h2>

<p><a href="https://www.appdirect.com/">AppDirect</a> забезпечує платформу для торгівлі продуктами та послугами на базі хмари. Коли директор з розробки програмного забезпечення Пʼєр-Олександр Ласерт почав працювати в компанії у 2014 році, компанія мала монолітний застосунок, розгорнутий на "інфраструктурі tomcat, і весь процес випуску був складним для того, чим він мав бути", говорить він. "Була велика кількість ручних кроків, один інженер розробляв функцію, потім інша команда приймала зміни. Отже, у вас були вузькі місця в конвеєрі для доставки функції в операційну експлуатацію." Одночасно команда інженерів зростала, і компанія усвідомила, що їй потрібна краща інфраструктура для підтримки цього зростання та збільшення швидкості.</p>

<h2>Рішення</h2>

<p>"Моя ідея була: давайте створимо середовище, де команди зможуть швидше розгортати свої сервіси, і вони скажуть, 'Добре, я не хочу більше розробляти в моноліті. Я хочу розробляти сервіс'", говорить Ласерт. Вони розглядали і прототипували кілька різних технологій перед тим, як вирішити впровадити <a href="https://kubernetes.io/">Kubernetes</a> на початку 2016 року. Команда Ласерта також інтегрувала моніторинг <a href="https://prometheus.io/">Prometheus</a> у платформу; наступним етапом є трасування. Сьогодні AppDirect має більше 50 мікросервісів в експлуатації та 15 кластерів Kubernetes, розгорнутих на <a href="https://aws.amazon.com/">AWS</a> та локально по всьому світу.</p>

<h2>Вплив</h2>

<p>Платформа Kubernetes допомогла підтримати зростання команди інженерів у 10 разів за останні кілька років. Разом з тим, що вони постійно додавали нові функції, Ласерт каже: "Я думаю, що наша швидкість значно сповільнилася б, якби ми не мали цієї нової інфраструктури." Перехід на Kubernetes і сервіси означав, що розгортання стало набагато швидшим завдяки меншій залежності від створених вручну, крихких оболонкових скриптів із SCP-командами. Час на розгортання нової версії скоротився з 4 годин до кількох хвилин. Крім того, компанія вклала багато зусиль у те, щоб зробити все самостійним для розробників. "Впровадження нового сервісу не потребує <a href="https://www.atlassian.com/software/jira">Jira</a> тікетів або зустрічей з трьома різними командами", говорить Ласерт. Сьогодні компанія бачить 1,600 розгортань на тиждень, порівняно з 1-30 раніше. Компанія також досягла економії витрат, перемістивши свої моноліти ринку та білінгу на Kubernetes з застарілих хостів EC2, а також за рахунок використання автоскейлінгу, оскільки трафік є вищим в робочі години.</p>


<div class="quote banner">

  <div class="quote-text">
    &quot;Це був величезний культурний зсув в інженерії, але переваги є безсумнівними в плані масштабу та швидкості.&quot;
    
      <span class="quote-author">&mdash; Alexandre Gervais, Staff Software Developer, AppDirect</span>
    
  </div>
</div>


<div class="lead">
Зі своєю платформою для торгівлі продуктами та послугами на базі хмари, <a href="https://www.appdirect.com/">AppDirect</a> допомагає організаціям, таким як Comcast та GoDaddy, спростити цифровий ланцюг постачання з 2009 року.
</div>


<p>Коли директор з розробки програмного забезпечення Пʼєр-Олександр Ласерт почав працювати в компанії у 2014 році, компанія мала монолітний застосунок, розгорнутий на "інфраструктурі tomcat, і весь процес випуску був складним для того, чим він мав бути", говорить він. "Була велика кількість ручних кроків, один інженер розробляв функцію, потім створював pull request, і QA або інший інженер перевіряв функцію. Потім її зливають, і хтось інший буде займатися розгортанням. Отже, у нас були вузькі місця в конвеєрі для доставки функції в операційну діяльність."</p>

<p>Одночасно команда інженерів з 40 осіб зростала, і компанія хотіла додати все більше функцій до своїх продуктів. Як член команди платформи, Ласерт почав чути від кількох команд, які хотіли розгортати застосунки, використовуючи різні фреймворки та мови, від <a href="https://nodejs.org/">Node.js</a> до <a href="https://spring.io/projects/spring-boot">Spring Boot Java</a>. Він швидко зрозумів, що для підтримки зростання та збільшення швидкості компанії потрібна краща інфраструктура і система, в якій команди є автономними, можуть самостійно розгортати свої сервіси та нести відповідальність за них в операційній діяльності.</p>


<div class="quote banner " style="background-image: url(/images/case-studies/appdirect/banner3.jpg);">

  <div class="quote-text">
    &quot;Ми прийняли правильні рішення в правильний час. Kubernetes і технології для хмари зараз розглядаються як де-факто екосистема. Ми знаємо, на що спрямовувати наші зусилля, щоб впоратися з новою хвилею викликів, які ми стикаємося, коли розширюємося. Спільнота є такою активною і жвавою, що це є чудовим доповненням до нашої чудової внутрішньої команди.&quot;
    
      <span class="quote-author">&mdash; Alexandre Gervais, Staff Software Developer, AppDirect</span>
    
  </div>
</div>


<p>З самого початку, Ласерт каже: "Моя ідея була: давайте створимо середовище, де команди зможуть швидше розгортати свої сервіси, і вони скажуть, 'Добре, я не хочу більше розробляти в моноліті. Я хочу розробляти сервіс.'" (Ласерт залишив компанію у 2019 році.)</p>

<p>Працюючи з командою операцій, група Ласерта отримала більше контролю та доступу до <a href="https://aws.amazon.com/">AWS інфраструктури</a> компанії та почала прототипувати кілька технологій оркестрування. "Тоді Kubernetes був трохи підпільним, невідомим", говорить він. "Але ми подивилися на спільноту, кількість pull requestʼів, швидкість на GitHub, і побачили, що вона набирає популярність. І ми виявили, що вона була набагато легшою для нас в управлінні, ніж інші технології."</p>

<p>Вони розгорнули перші кілька сервісів на Kubernetes, використовуючи <a href="https://www.chef.io/">Chef</a> та <a href="https://www.terraform.io/">Terraform</a> для налаштування, і з додаванням нових сервісів автоматизація також зросла. "У нас є кластери по всьому світу — в Кореї, в Австралії, в Німеччині та в США", говорить Ласерт. "Автоматизація є критично важливою для нас." Тепер вони в основному використовують <a href="https://github.com/kubernetes/kops">Kops</a> і розглядають пропозиції використання Kubernetes від кількох хмарних постачальників.</p>

<p>Сьогодні, хоча моноліт все ще існує, кількість комітів і функцій зменшується. Всі команди розгортаються на новій інфраструктурі, і сервіси стали нормою. AppDirect тепер має більше 50 мікросервісів у виробництві та 15 кластерів Kubernetes, розгорнутих на AWS та локально по всьому світу.</p>

<p>Стратегія Ласерта врешті-решт спрацювала завдяки реальному впливу, який платформа Kubernetes мала на час розгортання. Завдяки меншій залежності від створених вручну, крихких скриптів оболонки з SCP-командами, час на розгортання нової версії скоротився з 4 годин до кількох хвилин. Крім того, компанія вклала багато зусиль, щоб зробити все самостійним для розробників. "Впровадження нового сервісу не потребує <a href="https://www.atlassian.com/software/jira">Jira</a> тікетів або зустрічей з трьома різними командами", говорить Ласерт. Сьогодні компанія бачить 1,600 розгортань на тиждень, порівняно з 1-30 раніше.</p>


<div class="quote banner " style="background-image: url(/images/case-studies/appdirect/banner4.jpg);">

  <div class="quote-text">
    &quot;Я думаю, що наша швидкість значно сповільнилася б, якби ми не мали цієї нової інфраструктури.&quot;
    
      <span class="quote-author">&mdash; Pierre-Alexandre Lacerte, Director of Software Development, AppDirect</span>
    
  </div>
</div>


<p>Крім того, платформа Kubernetes допомогла підтримати зростання команди інженерів у 10 разів за останні кілька років. "Власність, основна цінність AppDirect, відображається в нашій здатності самостійно розгортати сервіси незалежно від нашої монолітної кодової бази", говорить старший розробник програмного забезпечення Александре Жерве, який працював з Ласертом над ініціативою. "Маленькі команди тепер володіють критичними частинами нашої моделі бізнес-домену і функціонують у своїх розділених сферах експертизи, з обмеженим знанням всієї кодової бази. Це зменшує та ізолює частину складності." Разом із тим, що вони постійно додавали нові функції, Ласерт каже: "Я думаю, що наша швидкість значно сповільнилася б, якби ми не мали цієї нової інфраструктури."</p>

<p>Компанія також досягла економії витрат, перемістивши свої моноліти ринку та білінгу на Kubernetes з застарілих хостів EC2, а також за рахунок використання автоскейлінгу, оскільки трафік є вищим в робочі години.</p>

<p>Хмарний технологічний стек AppDirect також включає <a href="https://grpc.io/">gRPC</a> та <a href="https://www.fluentd.org/">Fluentd</a>, і команда наразі працює над налаштуванням <a href="https://opencensus.io/">OpenCensus</a>. Платформа вже має інтегрований <a href="https://prometheus.io/">Prometheus</a>, тому "коли команди розгортають свій сервіс, вони мають свої сповіщення, оповіщення та конфігурації", говорить Ласерт. "Наприклад, в тестовому середовищі я хочу отримати повідомлення в Slack, а в операційному середовищі я хочу отримати повідомлення в Slack і також мати дзвінок. У нас є інтеграція з pager duty. Команди мають більше відповідальності за свої сервіси."</p>


<div class="quote banner">

  <div class="quote-text">
    &quot;Ми перейшли від культури, обмеженої 'пересиланням коду в гілку', до захоплюючих нових відповідальностей поза межами коду: розгортання функцій і конфігурацій; моніторинг застосунків і бізнес-метрик; і підтримка у разі збоїв. Це був величезний культурний зсув в інженерії, але переваги є безсумнівними в плані масштабу та швидкості.&quot;
    
      <span class="quote-author">&mdash; Pierre-Alexandre Lacerte, Director of Software Development, AppDirect</span>
    
  </div>
</div>


<p>Це, звичайно, також означає більше відповідальності. "Ми попросили інженерів розширити свої горизонти," говорить Жерве. "Ми перейшли від культури, обмеженої 'пересиланням коду в гілку', до захоплюючих нових відповідальностей поза межами коду: розгортання функцій і конфігурацій; моніторинг застосунків і бізнес-метрик; і підтримка у разі збоїв. Це був величезний культурний зсув в інженерії, але переваги є безсумнівними в плані масштабу та швидкості."</p>

<p>Оскільки кількість інженерів продовжує зростати, команда платформи стикається з новим викликом — забезпеченням того, щоб платформа Kubernetes була доступною та легкою у використанні для всіх. "Як ми можемо забезпечити, щоб коли ми додаємо більше людей до нашої команди, вони були ефективними, продуктивними та знали, як швидко освоїти платформу?" говорить Ласерт. Тож у нас є евангелісти, документація, кілька прикладів проєктів. Ми проводимо демонстрації, у нас є сесії AMA. Ми пробуємо різні стратегії, щоб привернути увагу всіх."</p>

<p>Через три з половиною роки після початку свого шляху з Kubernetes, Жерве вважає, що AppDirect "прийняла правильні рішення в правильний час", говорить він. "Kubernetes і технології для хмари зараз розглядаються як де-факто екосистема. Ми знаємо, на що спрямовувати наші зусилля, щоб впоратися з новою хвилею викликів, з якими ми стикаємося, коли розширюємося. Спільнота є такою активною і жвавою, що це є чудовим доповненням до нашої чудової внутрішньої команди. Надалі наш фокус справді буде спрямований на те, щоб скористатися екосистемою, надаючи додаткову бізнес-цінність у нашій щоденній діяльності."</p>
