Sprawdź nasze zespoły rekrutacyjne DevOps

RF

jest częścią organizacji Nokia Radio Frequency and Advanced Antennas. Jesteśmy odpowiedzialni za specyfikację, projektowanie, wdrażanie, testowanie i utrzymanie oprogramowania produktów radiowych dla różnych technologii dostępu radiowego, w tym WCDMA, LTE i 5G. Jako grupy dzielimy się na samoorganizujące się zespoły, pracujące w środowisku Agile. Nasze produkty są tworzone głównie w C++ i C na kilku warstwach architektury oprogramowania, w tym zbliżonych do sprzętu, a także na wyższych poziomach abstrakcji. W tej chwili mamy prawie 500 inżynierów pracujących we Wrocławiu i Krakowie. Utrzymujemy bardzo ścisłą współpracę z zakładami w USA, Finlandii, Chinach i Rumunii. Jako organizacja odpowiadamy za integrację naszych produktów w całym cyklu życia produktu, co odbywa się w zautomatyzowanym środowisku Continuous Integration.

Wspólna i jasno określona wizja, otwarta komunikacja i głęboka pasja do innowacji to cechy, które najlepiej opisują nasze środowisko pracy i jego wyjątkową atmosferę. Wierzymy, że są to wartości, które kształtują przyszłość technologii.

Zintegrowane środowisko programistyczne z użyciem technologii webowych

abstrakt w j. polskim:

Tematem pracy licencjackiej jest stworzenie Zintegrowanego środowiska programistycznego (IDE) przy użyciu technologii webowych, opierających się na języku JavaScript. Wynikiem pracy jest aplikacja desktopowa, będąca edytorem tekstowym z możliwością kolorowania składni dla wielu popularnych języków programowania.

Tworzenie i testowanie oraz metodyka DevOps dla rozwiązań PaaS - Azure Solution Ideas

Tworzenie i testowanie oraz metodyka DevOps dla rozwiązań PaaS

Pomysł na rozwiązanie Jeśli chcesz, abyśmy mogli rozwinąć ten artykuł, korzystając z dodatkowych informacji, takich jak potencjalne przypadki użycia, alternatywne usługi, uwagi dotyczące implementacji lub wskazówki dotyczące cen, poinformuj nas o GitHub opiniach!

W przypadku przetwarzania w chmurze platformy jako usługi (PaaS) dostawca usług udostępnia klientom platformę do tworzenia, uruchamiania i zarządzania aplikacjami bez konieczności tworzenia i utrzymywania infrastruktury. Programowanie rozwiązań na podstawie zasobów i usług platformy Azure eliminuje koszty związane z zarządzaniem maszynami wirtualnymi, sieciami wirtualnymi, dyskami i powiązanymi konfiguracjami.

Testowanie programistyczne (DevTest) to podejście programistyczne, które integruje testowanie na wczesnym etapie opracowywania. DevOps to zestaw rozwiązań, które łączą tworzenie oprogramowania i operacje IT, aby skrócić cykl programowania i zapewnić ciągłe dostarczanie o wysokiej jakości.

Ta architektura rozwiązania łączy mniejsze nakłady pracy i łańcuch narzędzi DevOps do obsługi szybkich cykli iteracji DevTest i szybkiego środowiska programistycznego z zasobami PaaS.

Architektura

Deweloperzy używają GitHub wstępnie skonfigurowanych środowisk programistycznych codespaces, aby uniknąć ręcznego konfigurowania środowisk deweloperskich. Deweloperzy mogą używać usługi Codespaces w przeglądarce lub za pośrednictwem Visual Studio Code. Kod źródłowy jest dostępny w repozytoriach GitHub, które bezproblemowo integrują się z Azure DevOps. Podobnie jak w przypadku Azure DevOps, GitHub Actions ustawia automatyczne kompilacje w celu wyzwalania zatwierdzeń GitHub lub żądań ściągnięcia. W bieżącym rozwiązaniu akcja kompilacji publikuje artefakty w pakiecie źródłowym pakietu GitHub na potrzeby wdrożenia. Azure Boards łączy się z GitHub Repos w celu generowania elementów roboczych na podstawie zautomatyzowanego i ręcznego testowania oraz śledzi wszystkie prace w cyklu programowania. Deweloperzy tworzą funkcje lub naprawiają gałęzie, które kojarzą elementy robocze z przebiegami lub cyklami programowania, śledząc cały kod z zadaniami i wymaganiami. Dzięki takiemu podejściu deweloperzy utrzymują aktywną szybkość pętli programowania, która ma kluczowe znaczenie dla elastycznego tworzenia oprogramowania. Azure Pipelines to rozwiązanie dla wdrożeń PaaS platformy Azure. Azure Pipelines obsługuje zadania ciągłego wdrażania i wydawania, które korzystają z wersji pakietów udostępnianych przez kompilacje GitHub Actions. Azure Pipelines używa usługi Azure Key Vault do bezpiecznego korzystania z wpisów tajnych, takich jak poświadczenia i parametry połączenia wymagane do konfiguracji wydania i wdrożenia. Azure Pipelines zadania wdrażania, w szczególności obsługują zasoby paaS platformy Azure, w tym wdrożenia aplikacji internetowych: W połączeniu z kompilacjami ciągłymi z GitHub Actions ciągłe wydanie wdraża najnowszą kompilację aplikacji w środowisku programistycznym. Potok promuje kompilację wybraną do testowania do następnego pierścienia wdrażania — środowiska testowego. Po zakończeniu kompilacji wszystkie testy zostaną awansowane i przygotowane w następnym zewnętrznym pierścieniu na potrzeby testowania akceptacyjnego użytkowników (UAT). Wszystkie trzy środowiska DevTest istnieją w ramach subskrypcji Azure DevTest z rabatem. Azure Policy można dodać dodatkowe reguły dotyczące rozmiaru i liczby baz danych usługi App Services lub PaaS, aby ograniczyć koszty. Gdy jakość rozwiązania osiągnie stan produkcyjny, Azure Pipelines wyzwala wydanie produkcyjne. Potok ogranicza wdrożenia produkcyjne do minimalnej wymaganej liczby. W przypadku App Service wydanie Pipelines może wdrożyć docelową wersję kompilacji do zasobu produkcyjnego w miejscu aplikacji przedprodukcyjnej, a następnie zamienić miejsca na produkcyjne. Jeśli coś pójdzie nie tak podczas zamiany przedprodukcyjnej na produkcyjną, App Service może wycofać zamianę w celu uzyskania dodatkowego bezpieczeństwa wdrożenia.

W tym rozwiązaniu pojedyncza Azure Active Directory (Azure AD) zarządza tożsamością zarówno dla subskrypcji DevTest, jak i Production. Kontrola dostępu oparta na rolach (RBAC) platformy Azure ogranicza dostęp do chronionych zasobów, zapobiegając nieautoryzowanej lub niezamierzonej modyfikacji zasobów produkcyjnych. Deweloperzy nie mają tych samych poziomów kontroli dostępu w środowisku produkcyjnym, co w piaskownicach DevTest.

Narzędzie Terraform aprowizuje i modyfikuje zasoby dla każdego środowiska, dostosowywanie rozmiaru, liczby wystąpień i innych właściwości. Bieżące rozwiązanie modeluje stos środowiska Azure App Service, Azure Cache for Redis i Azure SQL Database.

Usługa Azure Monitor działa w różnych subskrypcjach, aby monitorować wszystkie środowiska i zbierać dzienniki, raporty zrzutu awaryjnego i dane aplikacji.

Składniki

Alternatywy

Chociaż ta architektura używa Azure Pipelines do wdrożeń, GitHub Actions mogą również wykonywać wdrożenia PaaS.

Niektóre integracje dostępne w Azure Pipelines, takie jak połączenie z usługą lub uwierzytelnianie bezpośrednio w sieci szkieletowej platformy Azure, nie istnieją obecnie w GitHub Actions. W przypadku tych potrzeb rozważ użycie Azure Pipelines zamiast GitHub Actions w przypadku działań ciągłej integracji i kompilacji.

Chociaż terraform jest zaawansowanym narzędziem do zarządzania środowiskiem, jedną z jego głównych funkcji jest jego możliwości międzyplatformowe. W przypadku aplikacji, które istnieją wyłącznie na platformie Azure, rozważ użycie szablonów usługi ARM zamiast narzędzia Terraform na potrzeby wdrożeń zasobów. Szablony usługi ARM mają bezpośrednią pomoc techniczną firmy Microsoft, mają własne zadania w Azure Pipelines i mogą być w stanie wdrażać funkcje lub właściwości, które nie są natychmiast dostępne w programie Terraform.

Zagadnienia do rozważenia

Opracowanie projektu Azure SQL Database, który odpowiednio obsługuje aplikację internetową, jest ważnym czynnikiem. Kontrola źródła i przechowywanie wersji są równie ważne dla schematów danych, jak w przypadku kodu i kompilacji.

Narzędzia takie jak Entity Framework mogą zapewnić kontrolę źródła zmian schematu bazy danych za pośrednictwem migracji. Migracje kodują zmiany w strukturze bazy danych i zapewniają metody przechodzenia do przodu i wycofywania zmian, jeśli wystąpią problemy.

Następne kroki

Jarosław Kułak
Jarosław Kułak

Leave a Comment