Migracja i budowa infrastruktury w AWS dla SimpleMining.net

12 września 2022

Migracja i budowa infrastruktury w AWS dla SimpleMining.net

SimpleMining OS to łatwa w użyciu platforma (Plug&Play Linux Mining OS) służąca do wydobywania kryptowalut przy użyciu procesorów graficznych. Oferuje użytkownikom z całego świata szeroką pulę możliwości począwszy od monitoringu, przez zarządzanie sprzętem, aż po statystyki wydobycia w czasie rzeczywistym. Wraz z bardzo szybkim wzrostem popularności kryptowalut, rosła również popularność systemu dostarczanego przez SimpleMining. Przyrastający niemal w postępie logarytmicznym ruch sprawił, że utrzymanie aplikacji w ramach wykorzystywanej dotąd infrastruktury on-premise (OVH) stało się niemożliwe. Na zlecenie Klienta rozpoczęliśmy weryfikacje dostępnych możliwości w celu znalezienia i wdrożenia najlepszego i optymalnego kosztowo rozwiązania. Efektem naszych działań była decyzja o migracji do chmury AWS i budowie zupełnie nowej infrastruktury.

 

 

Dzięki wdrożeniu rozwiązań AWS, zaproponowanych przez Hostersów, infrastruktura była w stanie podołać bardzo dużemu przyrostowi Klientów. Bez problemu możemy skalować zasoby horyzontalnie i wertykalnie. Dla określenia skali, o której mowa, powiem jedynie, że miesięcznie nasz Cloudflare otrzymuje 12 MILIARDÓW requestów.

Tytus Rogalewski

CEO SimpleMining.net

 

 

Metodologia

Dzięki długoletniej, doskonale zazębiającej się współpracy, wypracowaliśmy wspólnie wiele rozwiązań pozwalających oszczędzać pieniądze i nieustannie podążać za obecnymi chmurowymi trendami. Dzięki takiemu podejściu zarówno aplikacja jak i infrastruktura nie posiadają żadnego długu technologicznego.

Środowisko zostało stworzone zgodnie z podejściem IaC, w oparciu o architekturę ARM. Całością zarządza Terraform. Obrazy AMI instancji budowane są przy pomocy Packera, który z kolei wykorzystuje Ansible’a. Infrastruktura SimpleMinig składa się z trzech standardowych środowisk: dev, test i prod. Całość podzielona jest również pomiędzy dwa niezależne konta AWS. 

Ze względu na bardzo dużą wydajność i możliwość skalowania uznaliśmy, że najlepszym rozwiązaniem będzie wykorzystanie bazy danych Aurora MySQL, natomiast stack aplikacji składa się z: Nginx’a, PHP’a i Node.js. Na etapie optymalizacji wdrożyliśmy system websocketów, który pozwolił jeszcze bardziej zoptymalizować koszty i wydajność.

Struktura kodu

Cały kod, podzieliliśmy na trzy główne części: Terraform, Packer, Ansible.

Ansible –jest wykorzystywany do wdrożenia konfiguracji dla poszczególnych warstw infrastruktury. Każda warstwa posiada własnego playbooka.

Packer – służy do przygotowywania obrazów AMI w oparciu o playbooki Ansible’a.

Terraform – jest wykorzystywany do wdrożenia infrastruktury zapisanej w kodzie w ramach AWS, odpowiada również za provisioning komponentu MySQL.

 

Rundeck

Po przeanalizowaniu potrzeb Klienta zdecydowaliśmy, że optymalnym narzędziem służącym do obsługi całego stacka IaC po stronie Hostersów oraz Klienta będzie Rundeck.  Dzięki niemu Klient może jednym kliknięciem włączyć lub wyłączyć środowisko Developerskie w celu ograniczenia kosztów, lub na żądanie wyskalować środowisko testowe do większych rozmiarów w celu wykonania testów wydajnościowych. My natomiast, możemy sprawnie zarządzać całym stackiem z jednego miejsca.

VPC Tools

VPC Tools jest to odseparowany element infrastruktury, stanowiący miejsce dla narzędzi obsługujących infrastrukturę (Gitlab, Zabix, OpenVPN, Rundeck czy narzędzi do monitoringu) oraz wykorzystywanych przez Klienta. VPC tools znajduje się poza stackiem Terraforma.

Organizacja sieci, routing

Wszystkie usługi Klienta utworzone są w prywatnych podsieciach bez dostępu do Internetu. Dostęp z zewnątrz możliwy jest wyłącznie przez Load Balancery, a cała infrastruktura przygotowana jest w oparciu o najlepsze praktyki zalecane przez AWS. Każde środowisko znajduje się w osobnym VPC (Virtual Private Cloud), a zasoby przechowywane są w ramach prywatnych podsieci. Wszystkie elementy środowiska przygotowaliśmy w oparciu o model wdrożenia Multi-AZ. Punktem wejściowym dla infrastruktury jest Cloudflare, który wykorzystywany jest również jako ochrona przed atakami DDoS i WAF. Dostęp dla pracowników Hostersów możliwy jest jedynie w oparciu o IPsec, a dla Klienta przez serwer VPN.

 

 

Stabilność wdrożonych rozwiązań przerosła moje oczekiwania, a współpraca z Hostersami pozwoliła mi zoptymalizować kod aplikacji, poprawiając jej wydajność i znacząco obniżyć koszta infrastruktury. Dużym plusem naszej współpracy jest całodobowa opieka nad infrastrukturą, która definitywnie zaoszczędziła czas zarówno mój jak i moich deweloperów.

Tytus Rogalewski

CEO SimpleMining.net

 

 

Pozostałe wykorzystane usługi

Amazon RDS - cała Infrastruktura korzysta z klastra Aurora for MySQL w wersji 5.7.

Amazon SES -   do obsługi wysyłki e-mail

Amazon SNS - usługa powiadomień

AWS IAM - do zarządzania dostępami i użytkownikami

AWS ACM - do zarządzania certyfikatami

Amazon CloudWatch – do monitoringu pracy systemów

Zabix - na potrzeby analizy pracy oprogramowania Klienta

Atatus, Sentry - APM do znajdowania i diagnozowania błędów oraz monitorowania wydajności aplikacji

Nagios - służy do monitoringu sieci i urządzeń sieciowych

 

Podsumowanie

Dla SimpleMinig zaplanowaliśmy i zrealizowaliśmy migrację aplikacji ze środowiska OVH do AWS. Odpowiadaliśmy również za projekt i wdrożenie nowej infrastruktury opartej o podejście IaC oraz architekturę ARM. Zbudowaliśmy stabilne, odporne na ataki z zewnątrz środowisko, którego skalę obciążeń może zobrazować 12 miliardów requestów kierowanych do CloudFlare’a w każdy miesiącu. Ponad to odciążamy SimpleMining z konieczności całodobowego monitoringu infrastruktury, świadcząc całodobową opiekę administracyjną.

 

PYTANIA? SKONTAKTUJ SIĘ Z NAMI

 

Zobacz również:

Migracja bazy danych MySQL do Amazon Aurora platformy Landingi.com

Nowa infrastruktura w AWS dla Omnipack z użyciem IaC

Migracja serwisu edukacyjnego EduNect do chmury AWS

Ogólnokrajowe call center, oparte na chmurze AWS

Infrastruktura chmurowa i wsparcie DevOps dla Medonetu na czas pandemii COVID-19

Case Studies
Referencje

Hostersi zrealizowali usługi konsultingowe z zakresu doboru odpowiedniej bazy danych w Amazon Web Services oraz pomyślnie przeprowadzili migrację bazy danych MySQL do Amazon Aurora. 

Tomasz Ślązok
CTO Landingi
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.