Zapowiedź Amazon CodeCatalyst, ujednoliconej usługi programistycznej (wersja zapoznawcza)

1 grudnia 2022

W dniu dzisiejszym twórcy AWS ogłosili wersję zapoznawczą Amazon CodeCatalyst.

Ujednolicona usługa tworzenia i dostarczania oprogramowania, Amazon CodeCatalyst, umożliwia zespołom programistycznym szybkie i łatwe planowanie, opracowywanie, współpracę, tworzenie i dostarczanie aplikacji w AWS, zmniejszając napięcia w całym cyklu rozwoju.

W czasach, w których autor tekstu pracował jako programista, największą ekscytacją – oczywiście poza dostarczaniem oprogramowania użytkownikom – było rozpoczęcie nowego projektu lub zaproszenie do dołączenia do projektu. Oba pojawiły się wraz z oczekiwaniem na zbudowanie czegoś fajnego, stworzenie nowego kodu – zobaczenie, jak pomysł ożywa. Jednak rozpoczęcie było czasem powolnym procesem. Zespół musiałby zaktualizować swoje lokalne środowiska programistyczne – lub zupełnie nowe maszyny – za pomocą narzędzi, bibliotek i platform programistycznych. Musieli stworzyć repozytoria kodu źródłowego i skonfigurować inne współdzielone narzędzia, takie jak Jira, Confluence lub Jenkins, skonfigurować potoki kompilacji i inne przepływy pracy automatyzacji, stworzyć środowiska testowe i tak dalej. Codzienna konserwacja środowisk programistycznych i konstrukcyjnych pochłaniała cenne cykle i energię zespołu. Współpraca między zespołami również wymagała wysiłku, ponieważ nie były dostępne narzędzia do wymiany informacji i posiadania jednego źródła prawdy. Przełączanie kontekstu między projektami i radzenie sobie z konfliktowymi zależnościami w tych projektach, np. Python 3.6 dla projektu X i Python 2.7 dla projektu Y, zwłaszcza gdy mieliśmy tylko jedną maszynę do pracy, dodatkowo zwiększało obciążenie.

Wygląda na to, że wcale nie było lepiej! W dzisiejszych czasach, kiedy autor rozmawia z programistami o ich doświadczeniach, często słyszy, jak mówią, że uważają, że współczesne programowanie stało się jeszcze bardziej skomplikowane. Wynika to z konieczności wybrania i skonfigurowania szerszego zbioru nowoczesnych platform i bibliotek, narzędzi, usług w chmurze, potoków ciągłej integracji i dostarczania oraz wielu innych opcji, które muszą ze sobą współpracować, aby zapewnić doświadczenie aplikacji. To, co kiedyś było zarządzane przez jednego programistę na jednej maszynie, jest teraz rozległą, dynamiczną, złożoną siecią decyzji i kompromisów, która jest jeszcze trudniejsza ze względu na konieczność skoordynowania tego wszystkiego w rozproszonych zespołach.

Zacznij pracę z Amazon CodeCatalyst

Autor spędził trochę czasu rozmawiając z zespołem odpowiedzialnym za Amazon CodeCatalyst o ich źródłach inspiracji i celach. Opierając się na opiniach zarówno nowych, jak i doświadczonych programistów i zespołów serwisowych w AWS, zbadali wyzwania, przed jakimi zwykle stają zespoły i poszczególni programiści podczas tworzenia oprogramowania dla chmury. Po zapoznaniu się z tymi opiniami postanowili wspólnie stworzyć zunifikowane narzędzie wygładzające nierówności, które niepotrzebnie spowalniają dostarczanie oprogramowania oraz dodali funkcje ułatwiające zespołom współpracę i współpracę. Funkcje w Amazon CodeCatalyst mające na celu sprostanie tym wyzwaniom obejmują:

  • Plany, które konfigurują zasoby projektu – nie tylko scaffolding dla nowych projektów, ale także zasoby potrzebne do wspierania dostarczania i wdrażania oprogramowania.
  • Oparte na chmurze środowiska programistyczne na żądanie ułatwiające replikację spójnych środowisk programistycznych dla Ciebie lub Twoich zespołów.
  • Zarządzanie problemami, umożliwiające śledzenie zmian w ramach zatwierdzeń, żądań ściągnięcia i wdrożeń.
  • Zautomatyzowane potoki budowania i wydawania (CI/CD) przy użyciu elastycznej, zarządzanej infrastruktury kompilacji.
  • Pulpity nawigacyjne do wyświetlania informacji o działaniach projektowych, takich jak zatwierdzenia, żądania ściągnięcia i raporty z testów.
  • Możliwość zapraszania innych do współpracy nad projektem za pomocą wiadomości e-mail.
  • Ujednolicone wyszukiwanie, ułatwiające znajdowanie tego, czego szukasz wśród użytkowników, problemów, kodu i innych zasobów projektu.

W Amazon CodeCatalyst jest wiele rzeczy, których autor nie zdąży omówić w tym artykule, więc pokrótce przedstawi niektóre specyficzne funkcje, takie jak plany, środowiska deweloperskie i współpraca projektowa. Kolejne zaplanowane artykuły będą dotyczyć dodatkowych funkcji.

Project Blueprints

Kiedy autor po raz pierwszy usłyszał o planach, brzmiały one jak funkcja służąca do tworzenia rusztowania dla wstępnego kodu projektu. Jednak są one czymś znacznie więcej! Sparametryzowane schematy aplikacji umożliwiają skonfigurowanie współdzielonych zasobów projektowych w celu obsługi cyklu życia aplikacji i współpracy zespołowej w ciągu kilku minut – a nie tylko początkowego kodu startowego dla aplikacji. Zasoby, które tworzone są dla projektu, obejmują repozytorium kodu źródłowego wraz z początkowym przykładowym kodem i konfiguracją usługi AWS dla popularnych wzorców aplikacji, które domyślnie są zgodne z najlepszymi praktykami AWS. Jeśli wolisz, zamiast tego można użyć zewnętrznego repozytorium Git, takiego jak GitHub. Plan może również dodać narzędzie do śledzenia problemów, ale można również użyć zewnętrznych narzędzi do śledzenia, takich jak Jira. Następnie plan dodaje potok kompilacji i wydania dla CI/CD, o którym wkrótce, a także inne zintegrowane narzędzia.

Zasoby projektowe i zintegrowane narzędzia skonfigurowane przy użyciu schematów, w tym potok CI/CD i zasoby AWS do hostowania Twojej aplikacji, sprawiają, że możesz nacisnąć „wdróż” i uruchomić przykładowy kod w ciągu kilku minut, co pozwala od razu rozpocząć prace nad swoją specyficzną logiką biznesową.

Amazon CodeCatayst

W momencie premiery klienci mogą wybierać spośród schematów z TypeScript, Python, Java, .NET, Javascript dla języków oraz frameworków React, Angular i Vue, a więcej pojawi się wkrótce. Co ważne, nie musisz zaczynać od planu. Możesz tworzyć projekty z przepływami pracy, które działają na wszystkim, co współpracuje z systemami operacyjnymi Linux i Windows.

Cloud-Based Dev Environments

Zespoły programistyczne często napotykają problem „dryfowania środowiska”, w którym jeden członek zespołu ma nieco inną wersję łańcucha narzędzi lub biblioteki niż wszyscy inni lub środowiska testowe. Może to wprowadzić subtelne błędy, które mogą pozostać niezauważone przez jakiś czas. Specyfikacje środowiska deweloperskiego i inne udostępnione zasoby, które tworzą plany, pomagają zapewnić, że nie ma niepotrzebnych rozbieżności, a wszyscy członkowie zespołu otrzymują tę samą konfigurację, aby zapewnić spójne, powtarzalne środowisko między programistami.

Amazon CodeCatalyst używa pliku dev do zdefiniowania konfiguracji działającego na żądanie, opartego na chmurze środowiska deweloperskiego, które obecnie obsługuje cztery różne rozmiary instancji z 2, 4, 8 lub 16 vCPU. Plik dev definiuje i konfiguruje wszystkie zasoby potrzebne do kodowania, testowania i debugowania dla danego projektu, minimalizując czas, jaki członkowie zespołu programistycznego muszą poświęcić na tworzenie i utrzymywanie lokalnych środowisk programistycznych. Pliki deweloperskie, które są dodawane do repozytorium kodu źródłowego przez wybrany plan, można również modyfikować w razie potrzeby. Dzięki środowiskom deweloperskim przełączanie kontekstu między projektami wiąże się z mniejszym obciążeniem – jednym kliknięciem możesz po prostu przełączyć się do innego środowiska i rozpocząć pracę. Oznacza to, że możesz z łatwością pracować jednocześnie na wielu bazach kodu bez ponownej konfiguracji. Będąc na żądanie, środowiska deweloperskie można również wstrzymywać, uruchamiać ponownie lub usuwać w razie potrzeby.

Poniżej znajduje się przykład pliku dev, który organizuje środowisko deweloperskie.

 - id: npm_install
    exec:
      component: aws-runtime
      commandLine: "npm install"
      workingDir: /projects/spa-app
events:
  postStart:
    - npm_install
components:
  - name: aws-runtime
    container:
      image: public.ecr.aws/aws-mde/universal-image:latest
      mountSources: true
      volumeMounts:
        - name: docker-store
          path: /var/lib/docker
  - name: docker-store
    volume:
      size: 16Gi

Deweloperzy pracujący w chmurowych środowiskach deweloperskich udostępnianych przez Amazon CodeCatalyst mogą używać AWS Cloud9 jako swojego IDE. Mogą jednak równie łatwo współpracować z Amazon CodeCatalyst z innych IDE na swoich lokalnych maszynach, takich jak JetBrains IntelliJ IDEA Ultimate, PyCharm Pro, GoLand i Visual Studio Code. Deweloperzy mogą również tworzyć środowiska deweloperskie z poziomu swojego środowiska IDE, takie jak Visual Studio Code lub dla JetBrains, korzystając z aplikacji JetBrains Gateway. Poniżej używany jest JetBrains IntelliJ.

Amazon CodCatalyst

Kompiluj i wydawaj potoki

Potok kompilacji i wydania utworzony przez plan działa w elastycznej, zarządzanej infrastrukturze. Potoki mogą wykorzystywać kompilacje obliczeniowe na żądanie lub wstępnie aprowizowane, w tym różne rozmiary maszyn, a także możesz korzystać z własnych środowisk kontenerowych. Możesz włączyć działania kompilacji, które są wbudowane lub dostarczane przez partnerów (np. Mend, który zapewnia akcję kompilacji analizy składu oprogramowania), a także możesz włączyć akcje GitHub, aby tworzyć w pełni zautomatyzowane potoki. Potoki można konfigurować za pomocą edytora wizualnego lub plików YAML.

Potoki budowania i wydawania umożliwiają wdrażanie w popularnych usługach AWS, w tym Amazon Elastic Container Service (Amazon ECS), AWS Lambda i Amazon Elastic Compute Cloud (Amazon EC2). Amazon CodeCatalyst sprawia, że ​​konfigurowanie środowisk testowych i produkcyjnych oraz wdrażanie za pomocą potoków do jednego lub wielu regionów, a nawet wielu kont w celu zapewnienia bezpieczeństwa, jest trywialne.

Amazon CodeCatalyst sprawia, że konfigurowanie środowisk testowych i produkcyjnych oraz wdrażanie za pomocą potoków do jednego lub wielu regionów, a nawet wielu kont w celu zapewnienia bezpieczeństwa, jest trywialne.

Współpraca projektowa

Jako ujednolicona usługa tworzenia oprogramowania, Amazon CodeCatalyst nie tylko ułatwia rozpoczęcie tworzenia i dostarczania aplikacji w AWS, ale także pomaga programistom na wszystkich poziomach współpracować nad projektami za pośrednictwem jednej wspólnej przestrzeni projektowej i źródła prawdy. Deweloperzy mogą zostać zaproszeni do współpracy za pomocą wiadomości e-mail. Przyjmując zaproszenie, programista widzi pełny kontekst projektu i może od razu rozpocząć pracę przy użyciu środowisk deweloperskich projektu – nie ma potrzeby poświęcania czasu na aktualizowanie lub rekonfigurację komputera lokalnego za pomocą wymaganych narzędzi, bibliotek lub innych wymagań wstępnych.

Obecni członkowie przestrzeni Amazon CodeCatalyst lub nowi członkowie korzystający z adresu e-mail mogą zostać zaproszeni do współpracy nad projektem:

Obecni członkowie przestrzeni Amazon CodeCatalyst lub nowi członkowie korzystający z adresu e-mail mogą zostać zaproszeni do współpracy nad projektem:

Każdy otrzyma wiadomość e-mail z zaproszeniem zawierającą łącze Zaakceptuj zaproszenie, które po kliknięciu otwiera kartę przeglądarki umożliwiającą zalogowanie się. Po zalogowaniu mogą przeglądać wszystkie projekty w przestrzeni Amazon CodeCatalyst, do której zostali zaproszeni, a także mogą szybko przełączać się do innych przestrzeni, których są właścicielami lub do których zostali zaproszeni.

Każdy otrzyma wiadomość e-mail z zaproszeniem zawierającą łącze Zaakceptuj zaproszenie, które po kliknięciu otwiera kartę przeglądarki umożliwiającą zalogowanie się. Po zalogowaniu mogą przeglądać wszystkie projekty w przestrzeni Amazon CodeCatalyst, do której zostali zaproszeni, a także mogą szybko przełączać się do innych przestrzeni, których są właścicielami lub do których zostali zaproszeni.

Stamtąd mogą wybrać projekt i uzyskać natychmiastowy przegląd stanu rzeczy, na przykład stan ostatnich przepływów pracy, wszelkie otwarte żądania ściągnięcia i dostępne środowiska deweloperskie.

Stamtąd mogą wybrać projekt i uzyskać natychmiastowy przegląd stanu rzeczy, na przykład stan ostatnich przepływów pracy, wszelkie otwarte żądania ściągnięcia i dostępne środowiska deweloperskie.

Na tablicy Problemy członkowie zespołu mogą zobaczyć, nad którymi problemami należy popracować, wybrać jeden i rozpocząć pracę.

Na tablicy Problemy członkowie zespołu mogą zobaczyć, nad którymi problemami należy popracować, wybrać jeden i rozpocząć pracę.

Możliwość natychmiastowego zobaczenia kontekstu projektu i dostęp do środowisk programistycznych opartych na chmurze na żądanie pomaga w szybszym rozpoczęciu wnoszenia wkładu, eliminując opóźnienia w konfiguracji.

Rozpocznij pracę z Amazon CodeCatalyst w darmowej wersji już dziś!

Schematy tworzenia szkieletów nie tylko kodu aplikacji, ale także współdzielonych zasobów projektowych wspierających opracowywanie i wdrażanie aplikacji, śledzenie problemów, współpracę z zaproszeniami przez e-mail, zautomatyzowane przepływy pracy i wiele innych są dostępne już dziś w nowo wydanej wersji zapoznawczej Amazon CodeCatalyst, aby przyspieszyć Twoje wysiłki w zakresie rozwoju i dostarczania chmury. Dowiedz się więcej w Podręczniku użytkownika Amazon CodeCatalyst. Jak wspomniano wcześniej, zespół planuje dodatkowe wpisy na blogach i inne treści pomocnicze, aby bardziej szczegółowo zapoznać się z zakresem funkcji, więc miej je na uwadze!

źródło: AWS

Case Studies
Referencje

Jesteśmy ogromnie zadowoleni ze współpracy z firmą Hostersi. Ich specjaliści doradzili nam rozwiązanie, które dało nam stabilną, skalowalną infrastrukturę, która umożliwia obsłużenie ciągle rosnącego ruchu związanego z COVID-19

Jakub Sperczyński
Prezes Zarządu EduNect
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.