Środowiska Rozwoju Chmurowego: Wszystko, co Musisz Wiedzieć

by Matt Stamp
Środowiska Rozwoju Chmurowego: Wszystko, co Musisz Wiedzieć thumbnail

Środowiska rozwoju w chmurze (CDEs) rewolucjonizują rozwój oprogramowania.

CDEs przekształcają kluczowe procesy rozwojowe, takie jak pisanie kodu, wykonywanie kompilacji, przeprowadzanie testów i wdrażanie aplikacji w chmurę, zapewniając elastyczność, wydajność i prostotę dla inżynierów. Umożliwia to programistom lepszą współpracę i szybsze wypuszczanie oprogramowania o wyższej jakości, bez przeszkód ze strony środowiska.

Zbadajmy, czym dokładnie są CDE, jakie przynoszą korzyści, opcje warte rozważenia, proste kroki do skonfigurowania pierwszego środowiska deweloperskiego w chmurze oraz wskazówki, jak optymalizować użytkowanie na dłuższą metę.

Co to jest środowisko rozwoju w chmurze?

Środowisko rozwoju w chmurze to scentralizowana platforma dla zespołów programistów do współpracy, budowania, testowania i wdrażania aplikacji.

Ponieważ znaczny procent organizacji przeszedł na głównie oparte na chmurze środowiska programistyczne w samym tylko okresie między 2020 a 2022 rokiem, uważamy, że ważne jest, abyś miał wszystkie szczegóły na wypadek, gdybyś również rozważał przejście.

wykres słupkowy porównujący organizacje korzystające z chmury do hybrydowych między 2020 a 2022 rokiem, pokazujący, że większość organizacji korzysta z chmury, a bardzo niewiele (7% w 2022 roku) korzysta z środowisk lokalnych

CDE gromadzi cały cykl rozwoju w jednej zintegrowanej przestrzeni roboczej w chmurze, odchodząc od programistów mających fragmentaryczne zestawy narzędzi i zależności między poszczególnymi osobami i urządzeniami. Podstawowe komponenty, takie jak zintegrowane środowisko programistyczne (IDE), środowisko uruchomieniowe, konfiguracje infrastruktury, zależności, narzędzia współpracy, frameworki testowe i potoki są połączone razem i dostępne przez przeglądarki chmurowe.

Słownik DreamHost

IDE

IDE (Zintegrowane Środowisko Programistyczne) to aplikacja oprogramowania. Zapewnia programistom komputerowym wiele udogodnień w tworzeniu oprogramowania. IDE zazwyczaj składa się przynajmniej z edytora kodu źródłowego, narzędzi automatyzacji budowy oraz debugera.

Czytaj więcej

W porównaniu do tradycyjnych środowisk programistycznych, środowiska chmurowe są hostowane w chmurze i dostępne z przeglądarki internetowej lub aplikacji. Wszystkie procesy wymagające dużej mocy obliczeniowej – takie jak kompilowanie kodu, uruchamianie automatycznych testów czy budowanie kontenerów – zachodzą w chmurze. Programiści używają swoich lokalnych urządzeń tylko jako cienkich klientów do dostępu do przestrzeni roboczej w chmurze, co redukuje ogólne koszty sprzętu.

Platforma rozwoju chmurowego oferuje również gotowe szablony, aby szybko uruchamiać środowiska deweloperskie dla konkretnych stosów aplikacji lub zapewnić większą kontrolę nad zaawansowanymi konfiguracjami niestandardowymi, jeśli jest to potrzebne. Dzięki temu można mieć spójne środowiska w zespołach.

W wielu aspektach, CDEs reprezentują następny etap ewolucji rozwoju oprogramowania – jedno zdecydowanie osadzone w chmurze. Wykorzystuje podstawowe możliwości cloud computingu, jednocześnie pozwalając na kontrolowaną elastyczność środowisk lokalnych.

Zrozummy trochę więcej, jak CDE różnią się od lokalnych środowisk oraz jakie są korzyści i ograniczenia tej konfiguracji.

Jak rozwój w chmurze różni się od lokalnego?

Tworzenie aplikacji w chmurze różni się od tradycyjnych konfiguracji, w których kod znajduje się na izolowanych urządzeniach programistów.

Na wysokim poziomie, środowiska chmurowe pozwalają inżynierom współpracować w czasie rzeczywistym na zdalnie hostowanym, spójnym zestawie narzędzi.

To podejście rozwiązuje wiele problemów, z którymi zespoły borykają się podczas konfigurowania, uzyskiwania dostępu i synchronizowania środowisk deweloperskich w różnych lokalizacjach i na różnych urządzeniach.

 Rozwój LokalnyRozwój w Chmurze
Miejsce Środowiska RozwojowegoProgramiści muszą ręcznie instalować wymagane komponenty takie jak edytory i bazy danych na swoich lokalnych maszynach. Prowadzi to do skomplikowanych, rozdrobnionych łańcuchów narzędzi między urządzeniami.Platformy chmurowe zarządzają scentralizowanym konfigurowaniem i hostingowaniem środowiska rozwojowego, do którego inżynierowie mają dostęp zdalnie przez przeglądarkę.
Spójność ŚrodowiskaPowielanie środowisk na laptopach programistów jest wyzwaniem, prowadzącym do błędów “działa na moim komputerze”.Standardowe środowiska są wersjonowane razem z kodem na scentralizowanej infrastrukturze.
Dystrybucja ObliczeńBudowanie i testowanie odbywa się lokalnie, spowalniając maszyny.Chmura przydziela moc obliczeniową na żądanie, aby urządzenia programistów nie stały się wąskim gardłem produktywności.
WspółpracaKod znajduje się w izolowanych gałęziach lokalnie aż do czasu recenzji.IDE w chmurze umożliwiają edycję kodu w czasie rzeczywistym przez wielu użytkowników, komentowanie i wizualizację.
Wdrażanie i DostępKonfiguracja nowych lokalnych maszyn jest trudna i czasochłonna. Ogranicza dostęp programistów.Programiści mogą natychmiast zalogować się do predefiniowanych środowisk przez dowolne urządzenie.

Otrzymuj treści bezpośrednio do swojej skrzynki odbiorczej

Zapisz się teraz, aby otrzymywać wszystkie najnowsze aktualizacje bezpośrednio do swojej skrzynki odbiorczej.

Jakie są korzyści z rozwoju w chmurze?

Teraz, gdy rozumiesz podstawy środowisk deweloperskich w chmurze i jak różnią się one od tradycyjnych konfiguracji, przyjrzyjmy się głównym korzyściom CDE.

Poprawione Zabezpieczenia

Minimalizujesz powierzchnie ataku, konsolidując rozwój na regulowanych platformach chmurowych takich jak AWS lub Azure.

Wszystkie wrażliwe dane uwierzytelniające, własność intelektualna firmy i dane osobiste pozostają chronione w porównaniu do laptopów programistów, które mogą zostać zgubione lub naruszone.

Infrastruktury chmurowe zapewniają również funkcje bezpieczeństwa, takie jak szyfrowanie, kontrole dostępu i ramy zgodności, których koszty wdrożenia są zbyt wysokie dla pojedynczych inżynierów.

Współpraca

Lokalnie rozwijany kod znajduje się w izolowanych gałęziach i forkach aż do czasu przeglądu. Środowiska IDE w chmurze umożliwiają edycję i komentowanie kodu w czasie rzeczywistym w stylu Google Docs, ponieważ środowisko jest teraz współdzielone.

Postęp zespołu można wizualizować od samego początku, a każdy z wymaganym dostępem może zobaczyć kod nawet podczas pracy nad nim, w zależności od konfiguracji środowiska.

Poprawiona produktywność i proces wdrażania

W tradycyjnych konfiguracjach z zdecentralizowanym rozwojem na lokalnych urządzeniach, wprowadzenie nowych programistów może być trudne i czasochłonne. Musisz skonfigurować nowe maszyny od początku, zanim programista będzie mógł rozpocząć pracę.

Programiści również tracą dużo czasu na badanie z 2023 roku pokazuje, że ponad 50% czasu programistów przeznaczane jest na konserwację, konfigurację i zadania operacyjne.

Jednakże CDE radzą sobie z tymi złożonościami centralnie, pozwalając programistom skupić się na tworzeniu produktów zamiast na walce z otoczeniem. Optymalizują przepływy pracy poprzez alokację narzędzi w jednym chmurowym IDE. W połączeniu z szablonowymi środowiskami deweloperskimi, zautomatyzowanym zarządzaniem infrastrukturą i szybkim wykonaniem testów, może to znacznie zwiększyć produktywność programistów.

Skalowalność

Uruchamianie lokalnie procesów kompilacji i testowania obciążających zasoby spowolni maszyny i ograniczy możliwości równoległego wykonywania zadań.

Jednakże zespoły programistyczne korzystające z CDE mogą skalować szybciej bez konieczności pozyskiwania dodatkowego sprzętu.

Tworzenie nowych środowisk rozwojowych w chmurze zajmuje minuty, co pozwala na szybsze rozwijanie zespołu.

Na przykład, jeśli tymczasowo potrzebujesz wysokich mocy obliczeniowych do testowania wydajności aplikacji przy dużym obciążeniu, możesz zwiększyć zasoby dla swojej instancji chmurowej bez przepłacania. Wiele środowisk deweloperskich w chmurze automatycznie skaluje się w górę lub w dół w zależności od obciążenia systemu.

Zapobiega Dryfowi Konfiguracji

W lokalnych konfiguracjach, programiści muszą ręcznie instalować wszystkie wymagane komponenty takie jak edytory, pakiety językowe, frameworki i bazy danych na swoich lokalnych maszynach. Konfiguracja tych zlokalizowanych łańcuchów narzędziowych jest skomplikowana i czasochłonna.

Komponenty z czasem również ulegają fragmentacji na urządzeniach programistów. Nazywa się to dryfem konfiguracji, który zwykle prowadzi do obawianych błędów “działa na moim komputerze“.

Z drugiej strony, platformy rozwoju chmurowego obsługują konfigurację i hosting w centralnej lokalizacji. Inżynierowie uzyskują dostęp do zdalnego środowiska za pomocą przeglądarki internetowej, bez konfigurowania lokalnych narzędzi. Wszyscy członkowie zespołu używają tego samego, w pełni zapakowanego, aktualnego zestawu narzędzi w chmurze.

Mimo licznych zalet, środowiska rozwoju w chmurze mają również wady.

Jakie są wady korzystania z CDE?

Adoptowanie nowej technologii przynosi postęp jak i ryzyko. Oto kilka potencjalnych wad wykorzystania CDE:

  • Skomplikowana początkowa konfiguracja: Budowanie CDE wymaga znaczącej wiedzy z zakresu chmury i DevOps oraz złożonych integracji z licznymi usługami, takimi jak SSO, kontrole bezpieczeństwa, interfejs użytkownika, narzędzia do współpracy itp. Jeśli nie masz wymaganych zasobów, może to być doskonałym pomysłem, aby podnieść kwalifikacje lub zatrudnić nowych ludzi przed wdrożeniem CDE.
  • Zależność od dostawcy: Wybór zarządzanych rozwiązań CDE często prowadzi do blokad dostawcy. A jeśli będziesz musiał migrować platformy w przyszłości, może to sprawić trudności.
  • Stroma krzywa uczenia się: Przyjęcie przepływów pracy opartych na chmurze zmusza zespoły do nauki nowych koncepcji, praktyk i narzędzi. Początkowo może to być czasochłonne.
  • Zależność od łączności: Programiści są odłączeni, gdy dostęp do Internetu zostanie utracony. Ponadto, opóźnienia w odpowiedzi są znacznie większe w przypadku CDE niż w lokalnych środowiskach, co pogarsza doświadczenia użytkownika. Lokalne środowiska omijają te problemy.
  • Stałe koszty operacyjne: Infrastruktura chmurowa, solidne rurociągi CI/CD, możliwości automatyzacji i zabezpieczenia – wszystkie mają związane z nimi powtarzające się koszty konserwacji, takie jak koszt, modernizacje, rozwiązywanie problemów itp. Im więcej oferowanych funkcji, tym wyższe obciążenie operacyjne. Na przykład AWS jest znany z tego, że jest bardzo drogi.
Zrzut ekranu z Twittera Matthew Price mówiący "Opłaty za przepustowość AWS są skandaliczne. Ich koszt hurtowy na AWS-East wynosi prawdopodobnie mniej niż $200/Gbps/mies. Odpowiada to marży 10,000%+. #nevertrustamazon"

Jak skonfigurować środowisko programistyczne w chmurze

Jeśli jesteś przekonany, że środowiska rozwoju w chmurze są dla Twojej organizacji, przyjrzyjmy się szybkiemu przeglądowi, jak skonfigurować własne CDE.

Krok 1: Wybierz dostawcę CDE

Istnieje wiele środowisk deweloperskich w chmurze do oceny, takich jak:

  • Gitpod – Przeglądarkowe środowisko programistyczne integrujące się z repozytoriami kodu na GitHub
  • AWS Cloud9 – Całkowicie zarządzane środowisko programistyczne w chmurze, ściśle powiązane z usługami AWS
  • Microsoft Visual Studio Online – Wersja chmurowa środowiska Visual Studio, współpracująca z Azure

Poświęć czas na porównanie opcji według kryteriów takich jak wsparcie językowe, współpraca, bezpieczeństwo, integracje, ceny oraz zasoby edukacyjne. Zarejestruj się na konta próbne i skonfiguruj środowisko deweloperskie tam, gdzie jest to dostępne. Postaraj się znaleźć rozwiązania z wsparciem społeczności open-source, aby uniknąć problemów, gdy pojawią się trudności.

Krok 2: Skonfiguruj konto Chmurowe

Po wybraniu platformy, utwórz konto u odpowiedniego dostawcy chmury, jeśli jeszcze go nie posiadasz. Na przykład Gitpod opiera się na GitHubie, podczas gdy rozwiązania takie jak AWS Cloud9 wymagają konta AWS.

Podczas początkowej konfiguracji konta chmurowego, przejdź do panelu, aby zlokalizować, gdzie możesz uzyskać dostęp do różnych usług obliczeniowych, przechowywania, sieciowych i innych dostępnych na platformie. Poświęcenie czasu na to podczas prób pomoże zrozumieć, jak łatwo lub trudno będzie wprowadzić to w całej firmie.

Krok 3: Utwórz Swoją Pierwszą Maszynę Wirtualną

Po utworzeniu konta, skonfiguruj początkowe środowisko programistyczne, czyli „dev box”, w wybranej platformie CDE. Większość CDE oferuje wcześniej skonfigurowane szablony, które uruchamiają maszyny wirtualne lub kontenery programistyczne w kilka minut, z wszystkimi niezbędnymi narzędziami, takimi jak edytory kodu i terminale.

Rozpocznij od oficjalnych obrazów, które dostawca CDE zapewnia dla popularnych języków, takich jak Node.js, Python czy Java, jeśli istnieją skonfigurowane szablony. Chociaż są one niezbędne, te przygotowane środowiska pozwalają nowym użytkownikom szybko doświadczyć rozwoju w chmurze. Następnie możesz zbudować swoje własne środowiska, używając tego jako obrazu bazowego.

Krok 4: Konfiguracja Bezpieczeństwa i Networking

Przed udostępnieniem szerokiego użytkowania zespołu, rozważ zdefiniowanie zabezpieczeń i zasad Networking wokół nowej implementacji CDE. Rozważ:

  • Wymaganie uwierzytelniania wieloskładnikowego do dostępu do środowisk
  • Ograniczanie uprawnień do tworzenia/usuwania zasobów chmurowych
  • Włączanie szyfrowanego przechowywania dla wrażliwych artefaktów
  • Izolowanie rozwoju zespołu w prywatnych sieciach chmurowych
  • Rejestrowanie działań użytkowników oraz zmian w infrastrukturze

W późniejszych etapach może być konieczne wdrożenie zarządzania tajemnicami, skanowania bezpieczeństwa infrastruktury i innych elementów do łańcuchów CDE, aby poprawić bezpieczeństwo współdzielonych środowisk.

Krok 5: Zainstaluj ulubione narzędzia deweloperskie

Teraz, gdy podstawowe środowiska i zmienne środowiskowe są skonfigurowane i zabezpieczone do użytku zespołowego, dostosuj je dalej, instalując dodatkowe narzędzia programistyczne. Kolejnymi oczywistymi krokami w konfiguracji środowiska programistycznego byłoby zainstalowanie edytorów kodu, kompilatorów, baz danych, serwerów internetowych oraz innego oprogramowania, aby stworzyć zestaw narzędzi programistycznych.

Wszystkie CDE pozwalają na dostosowanie łańcuchów narzędziowych na Twoim serwerze. Użyj natywnego menedżera pakietów na Linux, aby zainstalować wszystkie narzędzia. Dla Windows, pobierz instalatory bezpośrednio z internetu na instancję w chmurze.

Podczas całego procesu pamiętaj, aby dokumentować wszystkie wykonane kroki, użyte komendy i skonfigurowane narzędzia, aby łatwo było odtworzyć środowiska w przyszłości. Chcesz, aby ta dokumentacja była jedynym źródłem prawdy (SSOT) dla twoich CDEs.

Krok 6: Buduj, Testuj i Wdrażaj

W końcu zacznij testować środowisko rozwoju w chmurze, aby kodować, budować, testować i wdrażać aplikacje z wykorzystaniem przepływów pracy opartych na chmurze. Dowiedz się, jak robić migawki trwałych stanów między maszynami dla ciągłości lub odtwarzania problemów.

Popraw produktywność zespołu, konfigurując automatyczną kontrolę wersji i uruchamiając automatyczne kompilacje oraz testy, gdy kod zostanie zatwierdzony.

W miarę dojrzewania rozwoju w chmurze, regularnie udoskonalaj i optymalizuj środowisko, balansując standardyzację z dostosowaniem. CDE powinny stać się naturalnym posunięciem dla Twoich programistów zamiast być restrykcyjnym środowiskiem, którego są zmuszeni używać.

Porady dotyczące korzystania z chmurowych środowisk programistycznych

Po początkowej konfiguracji, oto pięć wskazówek, jak czerpać dodatkowe korzyści z chmurowych środowisk programistycznych z czasem.

Połącz z innymi Usługami Chmurowymi

Platformy CDE oferują ścisłą integrację z komplementarnymi Usługami Chmurowymi zarządzanymi przez tego samego dostawcę. Na przykład, autentykacja parą kluczy AWS Cloud9 poprawia bezpieczeństwo infrastruktury Amazon EC2.

Zbadaj sposoby, w jakie usługi chmurowe, takie jak serwerless bazy danych, przechowywanie, komunikacja i API mogą usprawnić budowanie. Przejrzyj odpowiednie schematy architektury, szczegółowo pokazujące, jak poszczególne oferty się nakładają, a następnie selektywnie je włączaj. W razie wątpliwości przeprowadź ankietę wśród członków zespołu deweloperskiego i zapytaj, jakie narzędzia chcieliby dodać lub usunąć.

Przyjmij Automatyzację

Znajdź sposoby na stosowanie technik infrastructure-as-code i konfiguracji CDE jak najczęściej. Użyj Dockerfiles, Terraform, Ansible lub innych metod do tworzenia szablonów środowisk i usprawniania przygotowania dla twoich programistów, aby mogli pracować w ramach zabezpieczeń.

Im wcześniej zautomatyzujesz konfiguracje środowisk, tym szybciej będziesz mógł wdrażać nowe środowiska developerskie i tworzyć łatwo przenośne środowiska.

Monitoruj Zużycie

Model zmiennych kosztów przetwarzania w chmurze może prowadzić do szoku cenowego spowodowanego niezoptymalizowanym rozwojem. Ciągle monitoruj wykorzystanie środowiska za pomocą narzędzi takich jak AWS Cost Explorer, identyfikując marnotrawstwo zasobów w stanie bezczynności, nadmiernych uprawnień lub błędnych konfiguracji regionalnych.

Zintegruj widoczność kosztów chmurowych z istniejącymi panelami, koncentrując się na anomaliach w wydatkach, gdy środowiska się rozwijają. Określ również ścisłe budżety, które ograniczają miesięczne wydatki na infrastrukturę rozwojową, nie blokując przy tym produktywności.

Migruj tylko potrzebne dane

Przy przenoszeniu długo działających projektów do CDE, oceniaj, czy pamięci podręczne, repozytoria plików czy lokalne bazy danych wymagają migracji do chmury. Sprawdź, czy potrzeby rozwojowe mogą być zaspokojone poprzez symboliczne linki do oryginalnych lokalizacji na miejscu.

Transfery danych mogą być kosztowne i często stanowią powód, dla którego firmy płacą wysokie miesięczne opłaty dostawcom usług chmurowych. Dlatego upewnij się, że wybierasz najważniejsze dane.

Przestrzegaj Modelu Wspólnej Odpowiedzialności

Wszyscy główni dostawcy chmury stosują się do Modelu Współodpowiedzialności, który określa podział odpowiedzialności za kontrole bezpieczeństwa między klientem a dostawcą. Poświęć czas na zrozumienie granic odpowiedzialności za zabezpieczanie różnych warstw środowiska.

Na przykład, Amazon zabezpiecza infrastrukturę chmury na niższym poziomie, ale klienci muszą odpowiednio skonfigurować tożsamości, uprawnienia, szyfrowanie i warstwy bezpieczeństwa sieciowego. Analizuj, a następnie dotrzymuj swojej części umowy o współodpowiedzialności.

Odblokuj Lepszy Hosting Aplikacji z DreamHost

Więc stworzyłeś nową, wielką rzecz przy użyciu Twojego nowego, płynnego CDE. Gratulacje! Ale teraz potrzebujesz miejsca do hostowania Twojej aplikacji internetowej, aby prawdziwi użytkownicy mogli uzyskać do niej dostęp poza Twoim środowiskiem deweloperskim. Konfigurowanie i zarządzanie serwerami hostingowymi to ból, zwłaszcza na dużą skalę. Zamiast tego pozwól specjalistom z DreamHost zająć się tym za Ciebie!

Ich zoptymalizowane, zarządzane usługi hostingowe są stworzone do globalnego obsługiwania aplikacji internetowych. Mówimy o automatycznym skalowaniu dla szczytów ruchu, gwarantowanym czasie działania na poziomie 99,9% oraz jednym kliknięciem staging.

A piękno polega na tym, że doskonale współpracuje z chmurowymi procesami rozwoju. Rozwijasz się szybko w chmurze, a DreamHost sprawia, że wdrażanie jest całkowicie proste.

Więc jeśli szukasz sprawdzonego domu hostingowego dla swojej aplikacji internetowej, wypróbuj DreamHost!

Otrzymuj treści bezpośrednio do swojej skrzynki odbiorczej

Zapisz się teraz, aby otrzymywać wszystkie najnowsze aktualizacje bezpośrednio do swojej skrzynki odbiorczej.