Wszystko o chmurze

Wszystko o chmurze
Kwestie związane z migracją i operacjami w chmurze wciąż są postrzegane jako odrobinę zawiłe. Istnieje wiele pytań związanych z nimi, które wciąż się powtarzają. W tym tekście odpowiadamy na kilka z nich, dzięki czemu być może zagadnienia związane z cloud computing staną się odrobinę bardziej przejrzyste.

Jeszcze 5-6 lat temu prognozy, że chmura stanie się popularna były postrzegane przez większość firm IT jako co najmniej wątpliwe. Dlaczego mielibyśmy powierzać wrażliwe dane klienta, albo – co gorsza – nasze zewnętrznej firmie, która może okazać się nierzetelna albo nieuczciwa? Dlaczego świadomie umieszczać dane na zewnątrz, kiedy pod ręką mamy własne solidne rozwiązania do ich przechowywania, które możemy w pełni kontrolować?

Dziś możemy zaobserwować jednak zmianę nastroju. Wraz ze wzrostem popularności rozproszonego zarządzania danymi chmura stała się trendem, a zainteresowanie związanymi z nią technologiami znacząco wzrosło. Według magazynu Forbes, wydatki na cloud computing wzrosły o 4.5 procent w stosunku do roku 2009, a prognozy mówią, że do 2020 będzie to wzrost więcej niż 6-krotny.

Zalety migracji do chmury

Koszty operacyjne. Nie płacisz za sprzęt, utrzymanie go i modernizację. Nie obchodzą cię rachunki za elektryczność. Nie musisz wynajmować powierzchni i zatrudniać ludzi. Masz za to dostęp do ogromnej ilości opcji i możliwość eksperymentowania za stosunkowo niewielkie środki.

Elastyczność i pay-per-use. Chmura to przede wszystkim środowisko elastyczne, w którym wiele zależy od celu i sposobu użytkowania. Sprawia to, że można łatwo skalować i zwiększać moc obliczeniową na życzenie i redukować ilość wykorzystywanego sprzętu, kiedy nie jest potrzebny.

Minimalizowanie ryzyka i maksymalna dostępność. A co się z tym wiąże – szybkie naprawianie błędów, odzyskiwanie danych, maksymalna odporność i wydłużony czas bezusterkowego działania.

Bezpieczeństwo. Ta kwestia budzi wątpliwość wielu, ale znaczący dostawcy usług w chmurze mogą pozwolić sobie na inwestowanie zasobów w celu zabezpieczenia danych klienta i aplikacji w większym stopniu niż większość korporacji.

Big data i zaawansowana analityka. Za pomocą chmury można przechowywać, korzystać i analizować właściwie nieograniczone ilości danych. Dla firm, które korzystają z big data, by zwiększyć swoją wydajność biznesową chmura jest jedynym słusznym rozwiązaniem (ale takie firmy mogą preferować prywatny model chmury, nie publiczny).

Na co powinniśmy uważać?

Najgorszym błędem z możliwych jest niedostateczne zwracanie uwagi na szczegóły w konkretnej sytuacji biznesowej. Wszystkie techniczne decyzje powinny być podejmowane zgodnie z przyjętą strategią biznesową i komunikowane w obrębie firmy tak szeroko, jak to możliwe. W przeciwnym razie istnieje ryzyko, że nawet w dokładnie zaprojektowanym scenariuszu, pomimo poświęconych wysiłków i zasobów, zderzymy się z czymś nieoczekiwanym.

Nieprzemyślany wybór technologii. Niektóre technologie spełniają swój cel, ale w przyszłości mogą stać się zbyt drogie. Właśnie dlatego technologie powinny być wybierane w odniesieniu do dłuższej perspektywy. Rekomendujemy przeprowadzanie krótkich, prototypowych projektów (trwających 2-4 tygodnie). Prototypy powinny być używane nie po to, by nauczyć się podstaw nowych technologii, ale by zidentyfikować potencjalne obciążenia związane z wydajnością, skalowalnością, konfiguracją, wdrożeniami, dostosowywaniem funkcjonalności, wsparciem czy kosztami.

Niewłaściwe zarządzanie danymi. Niejasne zasady zarządzania danymi mogą mieć znaczący wpływ na jakość danych, które trafiają do chmury. Duża objętość przechowywanych danych powinna skłaniać firmy do analizy ich użyteczności. Migracja do chmury daje podstawę do prawdziwej transformacji, oferując możliwość aplikacji rozwiązań analitycznych big data i przeprowadzenia pogłębionej analizy biznesowej.

Brak zaangażowania użytkowników. Ważne, by angażować użytkowników tak wcześnie jak to możliwe, by błyskawicznie zidentyfikować błędy w planowaniu, umożliwić im zaadaptowanie się do nowego modelu, rozwiąż wątpliwości i zdobyć przychylność zespołu wobec rozwiązania.

Techniczna strona chmury
pytania i odpowiedzi

1. Nasz system jest ogromny.W jaki sposób przenieść dane, by uniknąć kosztów, wydłużonego czasu oczekiwania i obaw związanych z bezpieczeństwem?

Istnieje kilka rozwiązań w takiej sytuacji. Jednym z przykładów jest Amazon Snowball. To urządzenie do przechowywania i przesyłu danych dedykowane AWS obejmujące do 50 Tb pojemności. Jest właściwie niezniszczalne, samowystarczalne i zaprojektowane tak, by łatwo było wykryć próby manipulacji. Cytując Amazon: „Wytrzyma wstrząs o mocy 6G, jest wystarczająco lekkie, by jedna osoba mogła je przenieść. Jest pogodoodporne i może funkcjonować jako swój własny pojemnik do transportu”. Amazon Snowball to pierwsze rozwiązanie tego typu na rynku, a od 2017 roku są również dostępne Azure Data Box i Google Transfer Appliance.

2. Nasz serwis przetwarza wiele transakcji na sekundę. Jak przenieść go do chmury nie ryzykując zerwania transakcji?

W przypadku obszernych oraz specjalistycznych systemów transakcyjnych (na przykład w bankowości) nigdy nie należy po prostu „przestawiać się” ze starego systemu na nowy. Zawsze najpierw powinno się stworzyć system o podwójnym modelu zapisu z jedną kopią w chmurze, a drugą przechowywaną lokalnie, by można było się wycofać, jeśli coś pójdzie źle. Migracja zawsze powinna być podzielona na fazy, by uniknąć możliwości awarii w nowym systemie. Podczas pilotażowej migracji możemy spróbować przenieść 5% transakcji albo określony ich rodzaj, czy – na przykład - transakcje należące do konkretnego klienta. Tylko po przeprowadzeniu dogłębnych testów, kiedy potwierdzone zostaje poprawne przetwarzanie wszystkich typów transakcji, możemy kontynuować migrację.

3. Czy powinniśmy przenieść cały system, czy istnieją elementy, które warto przechowywać poza chmurą?

Zgodnie z powszechnie stosowanym podejściem, warto utrzymywać infrastrukturę hybrydową i używać chmury do ulepszenia możliwości technicznych, a nie tylko jako miejsca przechowywania . Warto zaakceptować ją od razu jako jedyny możliwy model bezpowrotnie. Istnieje jeden typ danych, który często pozostawiany jest z dala od chmury – poufne dane firm zewnętrznych albo oprogramowanie tego typu. Niektóre firmy wciąż wolą przechowywać je „pod ręką” ze względów bezpieczeństwa. Innym, podobnym typem danych są specjalistyczne operacje wymagające dużej mocy obliczeniowej – naukowe obliczenia GPU, renderowanie, itp. Firmy uciekają się zazwyczaj do utrzymywania rozwiniętej infrastruktury lokalnej – chmura może posiadać niewystarczającą moc albo, po prostu, być zbyt droga.

4. Jakie technologie są szczególnie warte rekomendacji?

Nasze doświadczenie podpowiada, że wśród sugerowanych podejść znajduje się – przede wszystkim – continuous integration & delivery (CI/CD) oraz infrastructure as code (IaC), Te dwie praktyki pociągają za sobą konieczność automatyzacji infrastruktury, DevOps i zarządzania wdrożeniami.

Zalecamy szczególnie następujące implementacje:

  • IaC: Terraform by HashiCorp, AWS CloudFormation, Ansible, Puppet, Chef
  • CI/CD: Jenkins, Team Foundation Server, TeamCity, Harness
  • Konteneryzacja: Docker, Kubernetes.

Bezpieczeństwo i zgodność z regulacjami

I znów wracamy do starego, dobrego pytania: dlaczego właściwie powinniśmy zaufać zewnętrznemu – publicznemu – dostawcy, powierzając mu wrażliwe dane? Dojrzali dostawcy usług w chmurze inwestują znaczącą ilość środków w bezpieczeństwo. Wysiłek, jaki wiąże się z dorównaniem ich poziomowi może nawet być zbyt kosztowny, by zaimplementować go w infrastrukturach lokalnych większości firm.

Jak wybierać dostawcę?

Potencjalny dostawca usług w chmurze powinien być sumiennie sprawdzony, by potwierdzić się, że jest wystarczająco wykwalifikowany, rzetelny i stabilny finansowo oraz posiada dobrą reputację na rynku. Pośród najlepszych praktyk i standardów branżowych znajduje się, na przykład, certyfikat ISO 27001 albo Cyber Essentials Scheme. Warto również zajrzeć do krótkiego przewodnika dotyczącego zasad wyboru dostawców autorstwa firmy Microsoft.

Jak zapewnić bezpieczeństwo chmury i DevOps?

Z punktu widzenia bezpieczeństwa chmura właściwie nie różni się od innych usług: trzeba wprowadzić w życie dobre praktyki związane z zarządzaniem bezpieczeństwem danych, uwierzytelnianiem i kontrolą dostępu. Rozwiązania w chmurze dostarczają jednak narzędzi, które lepiej wspierają tego typu środowisko.

Uprawnienia użytkowników. Powinno się zarządzać uprawnieniami użytkowników, operatorów i developerów chmury. Nazywane jest to identity and access management (IAM). Najważniejsza dobrą praktyką jest to, by ograniczyć dostęp użytkowników do zasobów i danych na podstawie ich potrzeb, starając się przyznawać możliwie wąskie uprawnienia. Bezpieczeństwo sieci obejmuje zarządzanie topologią infrastruktury, firewallami, dostępem do Internetu. Bezpieczeństwo danych dotyczy także kontroli dostępu do przechowywanych danych, w tym plików i baz danych oraz szyfrowania danych by minimalizować ryzyko ich uszkodzenia nawet w przypadku wycieku.

Bezpieczny rozwój oprogramowania. Rozwiązania dedykowane chmurze powinny korzystać ze standardowego zestawu akceptowanych w branży dobrych praktyk takich, jak podejścia security-first w programowaniu, audyt zmian w kodzie, code reviews, audyty w zakresie bezpieczeństwa.

Zarządzanie uwierzytelnianiem. Nie pozwól na wyciek danych logowania do repozytorium kodu, by tego unikać przetrzymuj je w ukrytych narzędziach zintegrowanych z chmurą. Pozwoli to na monitorowanie dostępu do haseł, rotacji danych logowania i wygaszania dostępów, które są już niepotrzebne.

Czynnik ludzki. Tak naprawdę najistotniejszym zagrożeniem nie są ani słabe punkty systemów ani włamania. Są nim ludzie. Twoi użytkownicy mogą niewystarczająco dbać o hasła i klucze dostępu. Szkol ich, przypominaj regularnie o bezpieczeństwie danych i nie zapomnij o polityce zmiany haseł!