Pięć najważniejszych trendów w rozwoju oprogramowania w 2018 r. — Igor Lebedev, CTO firmy SONM
Opublikowany: 2021-08-09Jak dotąd rok 2018 był rokiem transformacji dla deweloperów. Rozwój oprogramowania przekroczył się dzięki nowym wersjom i rozwiązaniom wyższej jakości, które sprawiają, że skomputeryzowane zadania są łatwiejsze i wydajniejsze niż kiedykolwiek wcześniej. Bazy danych są teraz zdolne do ilościowego określania dużych pul informacji bez zakłóceń, serwery są sprzedawane jako serie zamiast pojedynczych jednostek, a blockchain otworzył drzwi dzięki zastosowaniu zdecentralizowanego systemu. Oto pięć najważniejszych trendów w rozwoju oprogramowania, które szturmem podbijają świat technologii w tym roku:
Big Data
Ciągły wzrost danych korporacyjnych i publicznych prowadzi do sytuacji, w której tradycyjne bazy danych i urządzenia magazynujące nie są już w stanie wykorzystywać i zarządzać wolumenem danych. Stare podejście już nie działa, ponieważ widziałem na własne oczy, że RDBMS (systemy zarządzania relacyjną bazą danych) nie są już w stanie utrzymać wszystkiego. Prowadzi to do pojawienia się nowych narzędzi i podejść, ale co ważniejsze, prowadzi do końca dominacji tradycyjnych monolitycznych baz danych. Nowe podejście polega na przechowywaniu danych współdzielonych przez wiele węzłów. Podstawowe dane są nadal przechowywane w tradycyjnych scentralizowanych bazach danych, ale większa ilość danych jest przechowywana oddzielnie, a udział monolitycznych baz danych jest zmniejszony. Wyzwanie związane z Big Data w 2018 r. polega na tym, że wymaga przepisania konwencjonalnych aplikacji w nowy sposób, tak aby obsługiwać duże pule danych.
Skalowalność pozioma
Tradycyjne rozwiązanie skalowania polegało zawsze na zakupie nowszego, większego serwera. Ten nowy serwer miałby więcej rdzeni, pamięć podręczną trybów, wyższe częstotliwości, większe banki pamięci, szybsze magistrale i więcej dysków. Jednak to rozwiązanie skalowania ma ograniczenia i te ograniczenia zostały już osiągnięte. Zwykłe obudowy serwerowe mogą mieć maksymalnie 2 lub 4 procesory i nie można dodawać procesorów bez ograniczeń, ponieważ nie można podnosić częstotliwości. W pewnym momencie skalowanie pionowe osiąga swoje granice. Następnym krokiem jest skalowanie w poziomie. Oznacza to, że zamiast kupować większy serwer w celu zastąpienia starego, kupujesz jeden lub więcej dodatkowych serwerów tego samego typu, aby dodać je do istniejącej puli. Takie podejście wydaje się bardziej elastyczne, ale wymaga innej architektury oprogramowania i ponownie wymaga przepisania oprogramowania. Jeśli to zrobisz, uzyskasz korzyści płynące z lepszego zarządzania zasobami z możliwością dzielenia się zasobami. Jako trendy postrzegamy mikrousługi, wykonywanie bezstanowe i Kubernetes.
Decentralizacja
Zmiany, które widzimy na świecie, niosą ze sobą nowe wyzwania. Mogą być związane z polityką, kosztami dostawy, zaufaniem lub sytuacjami rynkowymi, ale pozostaje trend, że firmy mają tendencję do decentralizacji swoich usług i oprogramowania. Sieci dostarczania treści wdrażają serwery u Twojego dostawcy usług internetowych, dostawcy SaaS otwierają centra dystrybucyjne w Twoim kraju, a firmy myślą o odzyskiwaniu po katastrofie. Prowadzi to do tego, że firmy nie mają już jednego głównego centrum danych, ale dwa lub więcej, jednocześnie wymagając od inżynierów zastanowienia się nad zmianą niektórych aspektów architektury aplikacji.
Przetwarzanie mgły
Korzystanie z przetwarzania danych wzrasta z każdym dniem. IoT generuje coraz więcej danych na brzegu sieci. Dane te są tradycyjnie przetwarzane w DC lub w chmurze. Jednak biorąc pod uwagę fakt, że nowoczesne linie optyczne są bardzo szybkie, a przepustowość sieci rośnie z roku na rok, ilość danych rośnie o wiele szybciej. Sieci są i zawsze były „wąskim gardłem” globalnego przetwarzania informacji. Jeśli nie technicznie (według przepustowości i opóźnień), to ekonomicznie (według ceny za transmisję). Obecnie najszybszym i najtańszym sposobem na migrację hurtowni danych do innego DC jest wezwanie pojazdu towarowego i dosłownie przetransportowanie dysków twardych do nowej lokalizacji. Nie, to nie żart.

Prowadzi to do założycielskiego pomysłu branży przetwarzania Edge and Fog – co oznacza, że jak najwięcej danych musi być przetwarzanych lokalnie. Wiodące firmy IT pracują nad rozwiązaniami do przetwarzania i obsługi danych w pobliżu urządzeń. Ten rodzaj przetwarzania to mgła. Są z tym trudności. Nie możesz po prostu skopiować kodu z chmury i mieć nadzieję, że zadziała, ponieważ w chmurze wszystkie dane są dostępne lokalnie, podczas gdy we mgle żaden pojedynczy węzeł nie ma wszystkich danych i musi pytać inne węzły o wymagane informacje. Wymaga to od twórców aplikacji dostosowania ich architektury i przepisania kodu, aby zadania mogły być rozwiązywane w sposób MPP (masywne przetwarzanie równoległe). Daje to jeszcze jeden powód do przepisania kodu i zdecentralizowanego IaaS; dopóki nie stanie się atrakcyjną platformą do obsługi aplikacji dla noworodków.
Tolerancja błędów
Żyjemy w czasach, w których trudniej jest coś sprzedać niż wyprodukować. Konkurencja na rynku rośnie, a firmy zajmujące się oprogramowaniem myślą o lepszym SLA, aby mieć przewagę i budować zaufanie użytkowników. Dzięki powyższym punktom prawdopodobieństwo awarii pojedynczego komponentu systemu wzrasta krytycznie. Nie można polegać na zdolności klastra bazy danych Oracle do obsługi po awarii, ponieważ wiele danych znajduje się na zewnątrz. Zamiast kilku super niezawodnych serwerów z podwójnym zasilaniem, teraz może być 10 lub nawet 100 serwerów, a matematyczne oczekiwanie na awarię pojedynczego węzła sięga prawie 1 (jeden, 100%). Coś prawdopodobnie zawiedzie i firmy będą musiały być na to ponownie przygotowane, patrząc na swoją architekturę aplikacji. Świat, a w szczególności IT, nieustannie się zmienia i porusza w niewiarygodnie szybkim tempie. Starsze podejścia nie działają. Firmy przerabiają swoje oprogramowanie z big data, skalowalnością poziomą, decentralizacją i przetwarzaniem mgły, a wszystko to w centrum. Inżynierowie stale pamiętają o tolerancji błędów po stronie aplikacji.
Te trendy rozwoju oprogramowania doprowadziły do pojawienia się nowych wymagań dotyczących sprzętu i jego dostępności, co jest mniej krytyczne w przypadku awarii pojedynczego węzła, a ponadto oferuje więcej opcji skalowania poziomego. Patrząc w przyszłość, przewidujemy nadwyżkę dalszego rozwoju trendów, które, miejmy nadzieję, nadążą za naszą rozwijającą się technologią i potrzebą większego wsparcia sprzętowego.
O Igorze Lebiediewie:
Igor Lebedev jest specjalistą w dziedzinie informatyki z ponad 15-letnim doświadczeniem w branży IT. Jego wiedza dotyczy klasycznych architektur systemów, klas systemów, baz danych, obliczeń mgły, zautomatyzowanych systemów transakcyjnych, inteligentnych kontraktów i mikroelektroniki. Igor obecnie pełni funkcję CTO i szefa zespołu programistycznego SONM od lipca 2017 roku. Jako CTO, Igor zapewnia wgląd i cenny wkład w wizję produktu i ogólny proces rozwoju, jednocześnie stale budując zespół programistów, którzy tworzą projekt mgły obliczeniowej, SONM .