Wdrożenie narzędzia automatyzującego budowę kolejnych infrastruktur dla firmy Flying Bisons
Flying Bisons to lider branży Digital Consulting. Domeną tej warszawskiej firmy jest kompleksowe podejście do tworzenia produktów i doświadczeń cyfrowych, które realizują cele biznesowe jej klientów. Flying Bisons pracują w kompleksowym procesie projektowym, na który składają się m.in. Research & Strategia, UX/UI Design, Web & Mobile Development a także analityka i optymalizacja. W portfolio klientów i długoterminowych partnerów Flying Bisons znajdują się marki takie jak: Hebe, KFC, Booksy, Bank Pekao, IKEA, Kompania Piwowarska, Na:Temat i wiele innych.
Nasza współpraca rozpoczęła się od pojedynczych zleceń dotyczących budowy infrastruktur dla klientów Flying Bisons. Z upływem czasu i kolejnymi oddanymi do użytku środowiskami, a także rosnącą liczba zlecanych infrastruktur spowodowała, że wspólnie zaczęliśmy szukać rozwiązania, które pozwoli zautomatyzować proces „stawiania” kolejnych środowisk, oszczędzając przy tym czas i pieniądze. Mając już sporą wiedzę dotyczącą potrzeb klienta, po wskazaniu wszystkich najważniejszych oczekiwań stawianych wobec poszukiwanego rozwiązania (efektywność pracy, bardzo wysokie standardy bezpieczeństwa, możliwie najwyższy poziom automatyzacji) i wzięciu pod uwagę możliwości rozwoju w przyszłości, zdecydowaliśmy się na wykorzystanie narzędzia Ansible.
Jak to jest zrobione
Wybór Ansible`a pozwolił nam stworzyć rozwiązanie, które po wpisaniu zaledwie jednej komendy i kilku zmiennych, w pełni automatyzowało budowę infrastruktury. Ze względu na zróżnicowane potrzeby i oczekiwania klientów Flying Bisons, wypracowaliśmy dwa podstawowe typy infrastruktur tworzonych w zautomatyzowanym procesie. Pierwsza, opierająca się wyłącznie na jednym serwerze produkcyjnym wraz z serwerem testowym zbudowanym jako lustrzane odbicie, i druga oparta o trzy serwery z pełnym High Availability, które gwarantuje utrzymanie pełnej dostępności aplikacji, nawet w przypadku wystąpienia potencjalnej awarii któregoś z serwerów.
Najważniejsze czynności, które realizowane są w ramach automatyzacji dla obu typów infrastruktur to:
Rola System – konfiguruje system, użytkowników, aktualizuje pakiety i zabezpiecza system
Virtual Host – służy do konfiguracji strony klienta końcowego, wykorzystując rolę, która automatycznie generuje certyfikat SSH.
PHP – instalacja i konfiguracja wraz z modyfikacjami plików konfiguracyjnych pod kątem bezpieczeństwa.
Maria DB – silnik bazy danych, dla którego stworzyliśmy rolę DB Create, która automatycznie wykonuje Query do MySQL Maria DB, tworząc użytkownika i nową bazę. Rola nadaje bazie uprawnienia i za pośrednictwem local hosta tworzy dostęp oraz dodaje zabezpieczenia do silnika bazy danych. Dzięki temu Klient nie musi wykonywać żadnych ręcznych operacji. Hasło dla użytkownika generowane jest w sposób losowy (dotyczy to zarówno użytkownika systemowego i użytkownika baz danych), w oparciu o ustalone kryteria. Rozwiązanie to pozwoliło dodatkowo zabezpieczyć tworzone środowisko.
Redis - instalacja i konfiguracja.
Nginx - instalacja z repozytorium producenta, konfiguracja oraz hardening, konfiguracja VHost’a bez SSL
Dodatkowo dla infrastruktury złożonej z 3 serwerów do balansowania ruchu wykorzystywany jest, zależnie od potrzeb, Cloudflare lub OVH Load Balancer.
Z biegiem czasu, na prośbę Flying Bisons dopisaliśmy również rolę odpowiedzialną za konfigurację Postgresa, w celu umożliwienia wyboru bazy danych. Co ważne, klient wykorzystuje procesy automatyzacji wyłącznie w środowisku OVH, natomiast zostały one przez nas zaprojektowane w taki sposób, żeby ich użycie możliwe było również u innych Vendorów.
Swego rodzaju wyzwaniem było zapewnienie równoległej replikacji bazy danych na wszystkich trzech serwerach. W tym celu skorzystaliśmy z opcji group replication w MySQL, która umożliwia replikację pomiędzy serwerami niezależnie od ich ilości. To z kolei otworzyło drogę do wykorzystania ProxySQL, które ostatecznie odpowiada za prawidłową replikację danych na każdym serwerze.
Podsumowanie
Dla firmy Flying Bisons zaprojektowaliśmy proces wdrożenia i skonfigurowaliśmy narzędzie Ansible, które całościowo odpowiada za automatyczne budowanie kolejnych infrastruktur. Dzięki temu znacznie skróciliśmy czas potrzebny do stworzenia środowiska, podnieśliśmy bezpieczeństwo oraz ograniczyliśmy koszty związane z budowaniem infrastruktury.
PYTANIA? SKONTAKTUJ SIĘ Z NAMI
Zobacz również:
Migracja do Amazon Web Services aplikacji i serwisów DANONE
Wdrożenie i opieka nad infrastrukturą chmurową w AWS dla Displate
Migracja bazy danych MySQL do Amazon Aurora platformy Landingi.com