DevOps ChecklistDevOps Checklist

DevOps to integracja z programowaniem, gwarancjami jakości i operacjami IT w ujednoliconej kulturze i zestawie procesów do dostarczania oprogramowania.DevOps is the integration of development, quality assurance, and IT operations into a unified culture and set of processes for delivering software. Ta lista kontrolna służy jako punkt wyjścia do oceny kultury i procesu DevOps.Use this checklist as a starting point to assess your DevOps culture and process.

KulturaCulture

Upewnij się, że w organizacjach i zespołach są wyrównane firmy.Ensure business alignment across organizations and teams. Konflikty przez zasoby, cel, cele i priorytety w organizacji mogą stanowić zagrożenie dla zakończonych powodzeniem operacji.Conflicts over resources, purpose, goals, and priorities within an organization can be a risk to successful operations. Upewnij się, że zespoły biznesowe, programistyczne i operacyjne są wyrównane.Ensure that the business, development, and operations teams are all aligned.

Upewnij się, że cały zespół zrozumie cykl życia oprogramowania.Ensure the entire team understands the software lifecycle. Zespół musi zapoznać się z ogólnym cyklem życia aplikacji, a który część cyklu życia aplikacji jest obecnie dostępna.Your team needs to understand the overall lifecycle of the application, and which part of the lifecycle the application is currently in. Dzięki temu wszyscy członkowie zespołu wiedzą, co należy zrobić teraz, i czego powinny one być planowane i przygotowywane w przyszłości.This helps all team members know what they should be doing now, and what they should be planning and preparing for in the future.

Skrócenie czasu cyklu.Reduce cycle time. Staraj się zminimalizować czas potrzebny na przejście od pomysłów do przygotowanego oprogramowania.Aim to minimize the time it takes to move from ideas to usable developed software. Ogranicz rozmiar i zakres pojedynczych wersji, aby zachować obciążenie testu niskie.Limit the size and scope of individual releases to keep the test burden low. W miarę możliwości automatyzuj procesy kompilacji, testowania, konfiguracji i wdrażania.Automate the build, test, configuration, and deployment processes whenever possible. Wyczyść wszelkie przeszkody w komunikacji między deweloperami oraz między programistami i operacjami.Clear any obstacles to communication among developers, and between developers and operations.

Przejrzyj i popraw procesy.Review and improve processes. Procesy i procedury, zarówno zautomatyzowane, jak i ręczne, nigdy nie są ostateczne.Your processes and procedures, both automated and manual, are never final. Skonfiguruj regularne przeglądy bieżących przepływów pracy, procedur i dokumentacji, mając na celu ciągłe ulepszanie.Set up regular reviews of current workflows, procedures, and documentation, with a goal of continual improvement.

Wykonaj proaktywne planowanie.Do proactive planning. Zaplanuj proaktywne niepowodzenie.Proactively plan for failure. Mają procesy w miejscu, aby szybko identyfikować występujące problemy, eskalować do odpowiednich członków zespołu, aby naprawić i potwierdzić rozwiązanie.Have processes in place to quickly identify issues when they occur, escalate to the correct team members to fix, and confirm resolution.

Poznaj błędy.Learn from failures. Niepowodzenia są nieuniknione, ale ważne jest, aby poznać błędy, aby uniknąć ich powtarzania.Failures are inevitable, but it's important to learn from failures to avoid repeating them. Jeśli wystąpi awaria operacyjna, klasyfikacja problem, udokumentowanie przyczyny i rozwiązania oraz udostępnienie dowolnych lekcji, które zostały uzyskane.If an operational failure occurs, triage the issue, document the cause and solution, and share any lessons that were learned. Jeśli to możliwe, zaktualizuj procesy kompilacji, aby automatycznie wykrywać ten rodzaj awarii w przyszłości.Whenever possible, update your build processes to automatically detect that kind of failure in the future.

Optymalizuj pod kątem szybkości i Zbieraj dane.Optimize for speed and collect data. Każda planowana poprawa jest hipotezą.Every planned improvement is a hypothesis. Pracuj w najmniejszym możliwym przyrostie.Work in the smallest increments possible. Traktuj nowe pomysły jako eksperymenty.Treat new ideas as experiments. Instrumentacja eksperymentów umożliwia zbieranie danych produkcyjnych w celu oceny ich skuteczności.Instrument the experiments so that you can collect production data to assess their effectiveness. Przygotowuje się do szybkiej awarii, jeśli hipoteza jest nieprawidłowa.Be prepared to fail fast if the hypothesis is wrong.

Zezwól na czas na uczenie się.Allow time for learning. Zarówno awarie, jak i sukcesy zapewniają dobrą okazję do uczenia się.Both failures and successes provide good opportunities for learning. Przed przejściem do nowych projektów należy zapewnić wystarczającą ilość czasu na zebranie ważnych lekcji i upewnić się, że te lekcje są pochłaniane przez zespół.Before moving on to new projects, allow enough time to gather the important lessons, and make sure those lessons are absorbed by your team. Podawanie zespołu czasu na tworzenie umiejętności, eksperymentowanie i uczenie się o nowych narzędziach i technikach.Also give the team the time to build skills, experiment, and learn about new tools and techniques.

Operacje dokumentu.Document operations. Udokumentowanie wszystkich narzędzi, procesów i zautomatyzowanych zadań o takim samym poziomie jakości jak kod produktu.Document all tools, processes, and automated tasks with the same level of quality as your product code. Udokumentowanie bieżącego projektu i architektury wszelkich obsługiwanych systemów oraz procesów odzyskiwania i innych procedur konserwacji.Document the current design and architecture of any systems you support, along with recovery processes and other maintenance procedures. Skup się na aktualnie wykonywanych krokach, a nie na optymalnych procesach.Focus on the steps you actually perform, not theoretically optimal processes. Regularnie Przeglądaj i Aktualizuj dokumentację.Regularly review and update the documentation. W przypadku kodu upewnij się, że dołączono znaczące komentarze, szczególnie w publicznych interfejsach API, i użyj narzędzi do automatycznego generowania dokumentacji kodu, jeśli jest to możliwe.For code, make sure that meaningful comments are included, especially in public APIs, and use tools to automatically generate code documentation whenever possible.

Udostępnianie wiedzy.Share knowledge. Dokumentacja jest przydatna tylko wtedy, gdy ludzie wiedzą, że już istnieje i mogą ją znaleźć.Documentation is only useful if people know that it exists and can find it. Upewnij się, że dokumentacja jest zorganizowana i łatwa do odnalezienia.Ensure the documentation is organized and easily discoverable. Kreatywne: Użyj brązowych toreb (prezentacji nieformalnych), filmów wideo lub biuletynów, aby udostępnić wiedzę.Be creative: Use brown bags (informal presentations), videos, or newsletters to share knowledge.

Tworzenie oprogramowaniaDevelopment

Zapewnij deweloperom środowisko podobne do produkcji.Provide developers with production-like environments. Jeśli środowiska deweloperskie i testowe nie pasują do środowiska produkcyjnego, trudno jest testować i diagnozować problemy.If development and test environments don't match the production environment, it is hard to test and diagnose problems. W związku z tym Zachowaj środowiska deweloperskie i testowe jako blisko środowiska produkcyjnego, jak to możliwe.Therefore, keep development and test environments as close to the production environment as possible. Upewnij się, że dane testowe są zgodne z danymi używanymi w środowisku produkcyjnym, nawet jeśli są przykładowymi danymi i nieprawdziwymi danymi produkcyjnymi (ze względu na prywatność lub zgodność).Make sure that test data is consistent with the data used in production, even if it's sample data and not real production data (for privacy or compliance reasons). Zaplanuj generowanie i zachowywanie anonimowości przykładowych danych testowych.Plan to generate and anonymize sample test data.

Upewnij się, że wszyscy autoryzowani członkowie zespołu mogą zainicjować obsługę administracyjną infrastruktury i wdrożyć aplikację.Ensure that all authorized team members can provision infrastructure and deploy the application. Konfigurowanie zasobów podobne do produkcji i wdrażanie aplikacji nie powinno wiązać się z skomplikowanymi zadaniami ręcznymi ani szczegółową wiedzą techniczną dotyczącą systemu.Setting up production-like resources and deploying the application should not involve complicated manual tasks or detailed technical knowledge of the system. Każda osoba mająca odpowiednie uprawnienia powinna mieć możliwość tworzenia lub wdrażania zasobów podobnej do produkcji bez przechodzenia do zespołu operacji.Anyone with the right permissions should be able to create or deploy production-like resources without going to the operations team.

To zalecenie nie oznacza, że każda osoba może wysyłać aktualizacje na żywo do wdrożenia produkcyjnego.This recommendation doesn't imply that anyone can push live updates to the production deployment. Pozwala to zmniejszyć liczbę problemów dla zespołów deweloperskich i pytań i odpowiedzi, aby utworzyć środowiska podobne do produkcji.It's about reducing friction for the development and QA teams to create production-like environments.

Instrumentacja aplikacji do wglądu w szczegółowe dane.Instrument the application for insight. Aby zrozumieć kondycję aplikacji, musisz wiedzieć, jak działa i czy występują błędy lub problemy.To understand the health of your application, you need to know how it's performing and whether it's experiencing any errors or problems. Zawsze dołączaj instrumentację jako wymaganie projektowe i Kompiluj instrumentację do aplikacji od początku.Always include instrumentation as a design requirement, and build the instrumentation into the application from the start. Instrumentacja musi obejmować rejestrowanie zdarzeń dla analiz głównych przyczyn, ale również dane telemetryczne i metryki do monitorowania ogólnej kondycji i użycia aplikacji.Instrumentation must include event logging for root cause analysis, but also telemetry and metrics to monitor the overall health and usage of the application.

Śledź swoje zadłużenie techniczne.Track your technical debt. W wielu projektach harmonogramy wydań mogą uzyskać priorytet od jakości kodu do jednego stopnia lub innego.In many projects, release schedules can get prioritized over code quality to one degree or another. Zawsze śledź, gdy to nastąpi.Always keep track when this occurs. Udokumentowanie wszelkich skrótów lub innych nieoptymalnych implementacji oraz zaplanowanie czasu w przyszłości, aby ponownie odwiedzić te problemy.Document any shortcuts or other nonoptimal implementations, and schedule time in the future to revisit these issues.

Rozważ wypychanie aktualizacji bezpośrednio do środowiska produkcyjnego.Consider pushing updates directly to production. Aby skrócić ogólny czas cyklu, rozważ wypchnięcie prawidłowo przetestowanych zatwierdzeń kodu bezpośrednio do środowiska produkcyjnego.To reduce the overall release cycle time, consider pushing properly tested code commits directly to production. Użyj przełączników funkcji , aby kontrolować, które funkcje są włączone.Use feature toggles to control which features are enabled. Pozwala to na szybkie przejście z programowania do wersji przy użyciu przełączników do włączania lub wyłączania funkcji.This allows you to move from development to release quickly, using the toggles to enable or disable features. Przełączniki są również przydatne podczas przeprowadzania testów, takich jak wersje systemu Kanaryjskie, w przypadku których określona funkcja jest wdrażana w podzestawie środowiska produkcyjnego.Toggles are also useful when performing tests such as canary releases, where a particular feature is deployed to a subset of the production environment.

TestowanieTesting

Automatyzowanie testowania.Automate testing. Ręczne testowanie oprogramowania jest żmudnym i podatne na błędy.Manually testing software is tedious and susceptible to error. Automatyzuj typowe zadania testowania i Integruj testy w procesy kompilacji.Automate common testing tasks and integrate the tests into your build processes. Testowanie automatyczne zapewnia spójne pokrycie testów i odtwarzalność.Automated testing ensures consistent test coverage and reproducibility. Zintegrowane testy interfejsu użytkownika również powinny być wykonywane za pomocą zautomatyzowanego narzędzia.Integrated UI tests should also be performed by an automated tool. Platforma Azure oferuje zasoby deweloperskie i testowe, które mogą ułatwić konfigurowanie i wykonywanie testów.Azure offers development and test resources that can help you configure and execute testing. Aby uzyskać więcej informacji, zobacz opracowywanie i testowanie.For more information, see Development and test.

Przetestuj błędy.Test for failures. Jeśli system nie może połączyć się z usługą, jak odpowiada?If a system can't connect to a service, how does it respond? Czy można go odzyskać po ponownym udostępnieniu usługi?Can it recover once the service is available again? Wykonaj testy iniekcji błędów w standardowej części przeglądu w środowiskach testowych i przejściowych.Make fault injection testing a standard part of review on test and staging environments. Gdy proces i praktyki testowe są dojrzałe, należy rozważyć uruchomienie tych testów w środowisku produkcyjnym.When your test process and practices are mature, consider running these tests in production.

Test w środowisku produkcyjnym.Test in production. Proces wydania nie kończy się wdrożeniem w środowisku produkcyjnym.The release process doesn't end with deployment to production. Mają testy, aby upewnić się, że wdrożony kod działa zgodnie z oczekiwaniami.Have tests in place to ensure that deployed code works as expected. W przypadku wdrożeń, które są rzadko aktualizowane, należy zaplanować testowanie produkcji jako regularną część konserwacji.For deployments that are infrequently updated, schedule production testing as a regular part of maintenance.

Automatyzuj testowanie wydajności, aby szybko identyfikować problemy z wydajnością.Automate performance testing to identify performance issues early. Wpływ poważnych problemów z wydajnością może być poważny jako błąd w kodzie.The impact of a serious performance issue can be as severe as a bug in the code. Podczas gdy zautomatyzowane testy funkcjonalne mogą uniemożliwiać błędy aplikacji, mogą one nie wykrywać problemów z wydajnością.While automated functional tests can prevent application bugs, they might not detect performance problems. Zdefiniuj akceptowalny cel wydajności dla metryk, takich jak opóźnienie, czasy ładowania i użycie zasobów.Define acceptable performance goals for metrics like latency, load times, and resource usage. Uwzględnij zautomatyzowane testy wydajności w potoku wydania, aby upewnić się, że aplikacja spełnia te cele.Include automated performance tests in your release pipeline, to make sure the application meets those goals.

Wykonaj testy wydajnościowe.Perform capacity testing. Aplikacja może pracować prawidłowo w warunkach testowych, a następnie mieć problemy w środowisku produkcyjnym ze względu na ograniczenia skali lub zasobów.An application might work fine under test conditions, and then have problems in production due to scale or resource limitations. Zawsze Definiuj maksymalną oczekiwaną pojemność i limity użycia.Always define the maximum expected capacity and usage limits. Przetestuj, aby upewnić się, że aplikacja może obsłużyć te limity, ale również sprawdzić, co się dzieje po przekroczeniu tych limitów.Test to make sure the application can handle those limits, but also test what happens when those limits are exceeded. Testowanie wydajności powinno odbywać się w regularnych odstępach czasu.Capacity testing should be performed at regular intervals.

Po początkowej wersji należy uruchomić testy wydajności i pojemności przy każdej aktualizacji w kodzie produkcyjnym.After the initial release, you should run performance and capacity tests whenever updates are made to production code. Użyj danych historycznych, aby precyzyjnie dostroić testy i określić, jakie typy testów należy wykonać.Use historical data to fine-tune tests and to determine what types of tests need to be performed.

Wykonaj zautomatyzowane testowanie penetracji zabezpieczeń.Perform automated security penetration testing. Zapewnienie bezpieczeństwa aplikacji jest bardzo ważne, ponieważ testowanie wszelkich innych funkcji.Ensuring your application is secure is as important as testing any other functionality. Wykonaj automatyczne testowanie penetracji w standardowej części procesu kompilowania i wdrażania.Make automated penetration testing a standard part of the build and deployment process. Zaplanuj regularne testy zabezpieczeń i luki w zabezpieczeniach wdrożonych aplikacji, monitorowania otwartych portów, punktów końcowych i ataków.Schedule regular security tests and vulnerability scanning on deployed applications, monitoring for open ports, endpoints, and attacks. Testowanie automatyczne nie powoduje usunięcia potrzeb szczegółowych przeglądów zabezpieczeń w regularnych odstępach czasu.Automated testing does not remove the need for in-depth security reviews at regular intervals.

Wykonaj zautomatyzowane testowanie ciągłości działalności biznesowej.Perform automated business continuity testing. Opracowywanie testów w celu zapewnienia ciągłości biznesowej w dużej skali, w tym odzyskiwania kopii zapasowych i trybu failover.Develop tests for large-scale business continuity, including backup recovery and failover. Skonfiguruj zautomatyzowane procesy, aby regularnie wykonywać te testy.Set up automated processes to perform these tests regularly.

ReleaseRelease

Automatyzowanie wdrożeń.Automate deployments. Automatyzacja wdrażania aplikacji w środowiskach testowych, przejściowych i produkcyjnych.Automate deploying the application to test, staging, and production environments. Automatyzacja umożliwia szybsze i bardziej niezawodne wdrożenia oraz zapewnia spójne wdrożenia w dowolnym obsługiwanym środowisku.Automation enables faster and more reliable deployments, and ensures consistent deployments to any supported environment. Eliminuje to ryzyko wystąpienia błędu ludzkiego spowodowany przez ręczne wdrożenia.It removes the risk of human error caused by manual deployments. Ułatwia to również planowanie wydań w miarę wygody czasu, aby zminimalizować wszelkie skutki potencjalne przestoje.It also makes it easy to schedule releases for convenient times, to minimize any effects of potential downtime. Mają systemy, w których można wykrywać wszelkie problemy podczas wdrażania, i mieć zautomatyzowany sposób na przekazanie poprawek lub przywrócenie zmian.Have systems in place to detect any problems during rollout, and have an automated way to roll forward fixes or roll back changes.

Użyj ciągłej integracji.Use continuous integration. Ciągła integracja (CI) to rozwiązanie, które umożliwia scalanie całego kodu dewelopera w centralną bazę kodu zgodnie z regularnym harmonogramem, a następnie automatyczne wykonywanie standardowych procesów kompilacji i testowania.Continuous integration (CI) is the practice of merging all developer code into a central codebase on a regular schedule, and then automatically performing standard build and test processes. CI zapewnia, że cały zespół może jednocześnie korzystać z bazy kodu w tym samym czasie bez konfliktów.CI ensures that an entire team can work on a codebase at the same time without having conflicts. Zapewnia również, że wady kodu są dostępne tak szybko, jak to możliwe.It also ensures that code defects are found as early as possible. Najlepiej, gdy proces CI powinien być uruchamiany za każdym razem, gdy kod jest zatwierdzany lub zaewidencjonowany.Preferably, the CI process should run every time that code is committed or checked in. Co najmniej, powinno być uruchamiane raz dziennie.At the very least, it should run once per day.

Rozważ przyjęcie modelu programistycznego opartego na magistrali.Consider adopting a trunk based development model. W tym modelu deweloperzy zapewnią pojedyncze rozgałęzienie (magistrala).In this model, developers commit to a single branch (the trunk). Istnieje wymóg, aby zatwierdzeń nigdy nie zrywać kompilacji.There is a requirement that commits never break the build. Ten model ułatwia CI, ponieważ cała funkcja jest wykonywana na magistrali, a wszystkie konflikty scalania są rozwiązywane, gdy następuje zatwierdzenie.This model facilitates CI, because all feature work is done in the trunk, and any merge conflicts are resolved when the commit happens.

Rozważ użycie ciągłego dostarczania.Consider using continuous delivery. Ciągłe dostarczanie polega na zapewnieniu, że kod jest zawsze gotowy do wdrożenia, przez automatyczne kompilowanie, testowanie i wdrażanie kodu w środowiskach do użycia w środowisku produkcyjnym.Continuous delivery (CD) is the practice of ensuring that code is always ready to deploy, by automatically building, testing, and deploying code to production-like environments. Dodanie ciągłego dostarczania w celu utworzenia kompletnego potoku ciągłej integracji z usługą pozwala wykryć defekty kodu tak szybko, jak to możliwe, i zapewnić, że poprawne przetestowane aktualizacje mogą być wydawane w bardzo krótkim czasie.Adding continuous delivery to create a full CI/CD pipeline will help you detect code defects as soon as possible, and ensures that properly tested updates can be released in a very short time.

Ciągłe wdrażanie to dodatkowy proces, który automatycznie pobiera wszystkie aktualizacje, które przechodzą przez potok ciągłej integracji/ciągłego wdrażania, i wdraża je w środowisku produkcyjnym.Continuous deployment is an additional process that automatically takes any updates that have passed through the CI/CD pipeline and deploys them into production. Ciągłe wdrażanie wymaga niezawodnego testowania automatycznego i zaawansowanego planowania procesów i może nie być odpowiednie dla wszystkich zespołów.Continuous deployment requires robust automatic testing and advanced process planning, and may not be appropriate for all teams.

Wprowadź małe zmiany przyrostowe.Make small incremental changes. Duże zmiany kodu mają większy potencjał, aby wprowadzić błędy.Large code changes have a greater potential to introduce bugs. W miarę możliwości Zachowaj małe zmiany.Whenever possible, keep changes small. Ogranicza to potencjalne skutki każdej zmiany i ułatwia zrozumienie i debugowanie wszelkich problemów.This limits the potential effects of each change, and makes it easier to understand and debug any issues.

Kontrola ekspozycji na zmiany.Control exposure to changes. Upewnij się, że masz kontrolę nad tym, kiedy aktualizacje są widoczne dla użytkowników końcowych.Make sure you're in control of when updates are visible to your end users. Rozważ użycie przełączników funkcji do kontrolowania, kiedy funkcje są włączone dla użytkowników końcowych.Consider using feature toggles to control when features are enabled for end users.

Zaimplementuj strategie zarządzania zleceniami, aby zmniejszyć ryzyko wdrożenia.Implement release management strategies to reduce deployment risk. Wdrożenie aktualizacji aplikacji w środowisku produkcyjnym zawsze wiąże się z pewnym ryzykiem.Deploying an application update to production always entails some risk. Aby zminimalizować to ryzyko, należy używać strategii takich jak wersje systemu Kanaryjskie lub wdrożenia Blue-Green w celu wdrażania aktualizacji dla podzbioru użytkowników.To minimize this risk, use strategies such as canary releases or blue-green deployments to deploy updates to a subset of users. Upewnij się, że aktualizacja działa zgodnie z oczekiwaniami, a następnie Wycofaj aktualizację do pozostałej części systemu.Confirm the update works as expected, and then roll the update out to the rest of the system.

Dokumentuj wszystkie zmiany.Document all changes. Drobne aktualizacje i zmiany konfiguracji mogą być źródłem nieporozumień i powodujących konflikty wersji.Minor updates and configuration changes can be a source of confusion and versioning conflict. Zawsze należy zachować wyraźny zapis wszelkich zmian, niezależnie od tego, jak mały.Always keep a clear record of any changes, no matter how small. Rejestruj wszystkie zmiany, w tym poprawki zastosowane, zmiany zasad i zmiany konfiguracji.Log everything that changes, including patches applied, policy changes, and configuration changes. (Nie Uwzględniaj poufnych danych w tych dziennikach.(Don't include sensitive data in these logs. Na przykład należy rejestrować, czy poświadczenie zostało zaktualizowane i kto wprowadził zmianę, ale nie rejestruje zaktualizowanych poświadczeń. Rekord zmian powinien być widoczny dla całego zespołu.For example, log that a credential was updated, and who made the change, but don't record the updated credentials.) The record of the changes should be visible to the entire team.

Rozważ możliwość zwiększenia infrastruktury.Consider making infrastructure immutable. Niezmienna infrastruktura jest zasadą, że nie należy modyfikować infrastruktury po jej wdrożeniu w środowisku produkcyjnym.Immutable infrastructure is the principle that you shouldn’t modify infrastructure after it’s deployed to production. W przeciwnym razie można przejść do stanu, w którym zostały zastosowane zmiany w trybie ad hoc, dzięki czemu trudno jest znać dokładnie to, co uległo zmianie.Otherwise, you can get into a state where ad hoc changes have been applied, making it hard to know exactly what changed. Niezmienna infrastruktura działa przez zastąpienie całych serwerów w ramach nowego wdrożenia.Immutable infrastructure works by replacing entire servers as part of any new deployment. Dzięki temu kod i środowisko hostingu mają być testowane i wdrażane jako blok.This allows the code and the hosting environment to be tested and deployed as a block. Po wdrożeniu składniki infrastruktury nie są modyfikowane do czasu następnego cyklu kompilacji i wdrożenia.Once deployed, infrastructure components aren't modified until the next build and deploy cycle.

MonitorowanieMonitoring

Zapewnienie, że systemy są zauważalne.Make systems observable. Zespół operacyjny powinien zawsze mieć wyraźny wgląd w kondycję i stan systemu lub usługi.The operations team should always have clear visibility into the health and status of a system or service. Skonfiguruj zewnętrzne punkty końcowe kondycji, aby monitorować stan, i upewnij się, że aplikacje są kodowane do Instrumentacji operacji.Set up external health endpoints to monitor status, and ensure that applications are coded to instrument the operations metrics. Użyj wspólnego i spójnego schematu, który pomaga skorelować zdarzenia w różnych systemach.Use a common and consistent schema that helps you correlate events across systems. Diagnostyka Azure i Application Insights to standardowa metoda śledzenia kondycji i stanu zasobów platformy Azure.Azure Diagnostics and Application Insights are the standard method of tracking the health and status of Azure resources. Pakiet Microsoft Operations Management Suite zapewnia również Scentralizowane monitorowanie i zarządzanie dla rozwiązań chmurowych i hybrydowych.Microsoft Operation Management Suite also provides centralized monitoring and management for cloud or hybrid solutions.

Agregowanie i skorelowanie dzienników i metryk.Aggregate and correlate logs and metrics. Prawidłowo Instrumentacja System telemetrii zapewni znaczną ilość danych i dzienników zdarzeń dotyczących wydajności.A properly instrumented telemetry system will provide a large amount of raw performance data and event logs. Upewnij się, że dane telemetryczne i dzienniki są przetwarzane i skorelowane w krótkim czasie, dzięki czemu pracownicy operacji zawsze mają aktualny obraz kondycji systemu.Make sure that telemetry and log data is processed and correlated in a short period of time, so that operations staff always have an up-to-date picture of system health. Organizuj i wyświetlaj dane w sposób zapewniający spójny widok wszelkich problemów, tak aby zawsze, gdy będzie to możliwe, gdy zdarzenia są ze sobą powiązane.Organize and display data in ways that give a cohesive view of any issues, so that whenever possible it's clear when events are related to one another.

Zapoznaj się z zasadami przechowywania w firmie, aby uzyskać wymagania dotyczące sposobu przetwarzania danych i czasu ich przechowywania.Consult your corporate retention policy for requirements on how data is processed and how long it should be stored.

Zaimplementuj automatyczne alerty i powiadomienia.Implement automated alerts and notifications. Skonfiguruj narzędzia do monitorowania, takie jak Azure monitor , aby wykrywać wzorce lub warunki wskazujące potencjalne lub bieżące problemy oraz wysyłać alerty do członków zespołu, którzy mogą rozwiązać problemy.Set up monitoring tools like Azure Monitor to detect patterns or conditions that indicate potential or current issues, and send alerts to the team members who can address the issues. Dostosuj alerty, aby uniknąć fałszywie dodatnich.Tune the alerts to avoid false positives.

Monitoruj zasoby i zasoby dla wygasania.Monitor assets and resources for expirations. Niektóre zasoby i elementy zawartości, takie jak certyfikaty, wygasną po upływie określonego czasu.Some resources and assets, such as certificates, expire after a given amount of time. Pamiętaj, aby śledzić, które zasoby wygasną, kiedy wygasną, i jakie usługi lub funkcje są od nich zależne.Make sure to track which assets expire, when they expire, and what services or features depend on them. Użyj zautomatyzowanych procesów do monitorowania tych zasobów.Use automated processes to monitor these assets. Powiadom zespół operacyjny przed wygaśnięciem elementu zawartości i eskalację, jeśli wygaśnięcie grozi zakłóceniem aplikacji.Notify the operations team before an asset expires, and escalate if expiration threatens to disrupt the application.

ZarządzanieManagement

Automatyzowanie zadań operacyjnych.Automate operations tasks. Ręczne obsługiwanie powtarzalnych procesów operacji jest podatne na błędy.Manually handling repetitive operations processes is error-prone. Automatyzuj te zadania, gdy jest to możliwe, aby zapewnić spójne wykonywanie i jakość.Automate these tasks whenever possible to ensure consistent execution and quality. Kod, który implementuje automatyzację, powinien mieć wersję w kontroli źródła.Code that implements the automation should be versioned in source control. Podobnie jak w przypadku każdego innego kodu, należy przetestować narzędzia automatyzacji.As with any other code, automation tools must be tested.

Zapoznaj się z podejściem infrastruktury jako kodu do aprowizacji.Take an infrastructure-as-code approach to provisioning. Należy zminimalizować ilość ręcznej konfiguracji wymaganej do aprowizacji zasobów.Minimize the amount of manual configuration needed to provision resources. Zamiast tego należy użyć skryptów i szablonów Azure Resource Manager .Instead, use scripts and Azure Resource Manager templates. Zachowaj skrypty i szablony w kontroli źródła, jak każdy inny kod, który przechowujesz.Keep the scripts and templates in source control, like any other code you maintain.

Rozważ użycie kontenerów.Consider using containers. Kontenery zapewniają standardowy interfejs oparty na pakiecie na potrzeby wdrażania aplikacji.Containers provide a standard package-based interface for deploying applications. Przy użyciu kontenerów aplikacja jest wdrażana za pomocą samodzielnych pakietów, które obejmują dowolne oprogramowanie, zależności i pliki potrzebne do uruchomienia aplikacji, co znacznie upraszcza proces wdrażania.Using containers, an application is deployed using self-contained packages that include any software, dependencies, and files needed to run the application, which greatly simplifies the deployment process.

Kontenery umożliwiają również tworzenie warstwy abstrakcji między aplikacją i bazowym systemem operacyjnym, który zapewnia spójność w różnych środowiskach.Containers also create an abstraction layer between the application and the underlying operating system, which provides consistency across environments. Takie streszczenie może również izolować kontener od innych procesów lub aplikacji uruchomionych na hoście.This abstraction can also isolate a container from other processes or applications running on a host.

Implementowanie odporności i samonaprawiania.Implement resiliency and self-healing. Odporność jest zdolność aplikacji do odzyskania po awarii.Resiliency is the ability of an application to recover from failures. Strategie odporności obejmują ponowną próbę błędów przejściowych i przechodzenie w tryb failover do wystąpienia dodatkowego lub nawet innego regionu.Strategies for resiliency include retrying transient failures, and failing over to a secondary instance or even another region. Aby uzyskać więcej informacji, zobacz projektowanie niezawodnych aplikacji platformy Azure .For more information, see Designing reliable Azure applications . Instrumentacja aplikacji, dzięki czemu problemy są raportowane natychmiast i można zarządzać awariami systemu.Instrument your applications so that issues are reported immediately and you can manage outages or other system failures.

Ręczne posiadanie operacji.Have an operations manual. Ręczne operacje lub elementy Runbook dokumentują procedury i informacje dotyczące zarządzania, które są konieczne do utrzymania systemu przez pracowników operacyjnych.An operations manual or runbook documents the procedures and management information needed for operations staff to maintain a system. Należy również udokumentować wszystkie scenariusze operacji i plany zaradcze, które mogą być odtwarzane w trakcie awarii lub innych przerw w działaniu usługi.Also document any operations scenarios and mitigation plans that might come into play during a failure or other disruption to your service. Utwórz tę dokumentację w trakcie procesu tworzenia i zadbaj o jej aktualność.Create this documentation during the development process, and keep it up to date afterwards. Jest to dokument żywy i powinien być regularnie przeglądany, testowany i udoskonalany.This is a living document, and should be reviewed, tested, and improved regularly.

Dokumentacja udostępniona jest krytyczna.Shared documentation is critical. Zachęcaj członków zespołu do współtworzenia i udostępniania wiedzy.Encourage team members to contribute and share knowledge. Cały zespół powinien mieć dostęp do dokumentów.The entire team should have access to documents. Ułatwiaj innym osobom w zespole, aby ułatwić aktualizowanie dokumentów.Make it easy for anyone on the team to help keep documents updated.

Udokumentowanie procedur związanych z wywołaniem.Document on-call procedures. Upewnij się, że opłaty za połączenia, harmonogramy i procedury są udokumentowane i udostępniane wszystkim członkom zespołu.Make sure on-call duties, schedules, and procedures are documented and shared to all team members. Przechowuj te informacje w dowolnej chwili.Keep this information up-to-date at all times.

Procedury eskalacji dokumentów dla zależności innych firm.Document escalation procedures for third-party dependencies. Jeśli aplikacja zależy od zewnętrznych usług innych firm, które nie są bezpośrednio kontrolowane, musisz mieć plan, aby zająć się awarią.If your application depends on external third-party services that you don't directly control, you must have a plan to deal with outages. Utwórz dokumentację dla planowanych procesów zaradczych.Create documentation for your planned mitigation processes. Dołącz kontakty pomocy technicznej i ścieżki eskalacji.Include support contacts and escalation paths.

Użyj zarządzania konfiguracją.Use configuration management. Zmiany konfiguracji powinny być planowane, widoczne dla operacji i rejestrowane.Configuration changes should be planned, visible to operations, and recorded. Może to mieć postać bazy danych zarządzania konfiguracją lub metody konfiguracji jako kodu.This could take the form of a configuration management database, or a configuration-as-code approach. Konfiguracja powinna być regularnie poddawana inspekcji, aby upewnić się, że są one oczekiwane.Configuration should be audited regularly to ensure that what's expected is actually in place.

Zapoznaj się z planem pomocy technicznej systemu Azure i zapoznaj się z procesem.Get an Azure support plan and understand the process. Platforma Azure oferuje wiele planów pomocy technicznej.Azure offers a number of support plans. Określ odpowiedni plan dla potrzeb i upewnij się, że cały zespół wie, jak z niego korzystać.Determine the right plan for your needs, and make sure the entire team knows how to use it. Członkowie zespołu powinni zapoznać się ze szczegółami dotyczącymi planu, sposobem działania procesu pomocy technicznej oraz sposobem otwierania biletu pomocy technicznej na platformie Azure.Team members should understand the details of the plan, how the support process works, and how to open a support ticket with Azure. Jeśli przewidujesz wydarzenie o dużej skali, pomoc techniczna systemu Azure może pomóc Ci zwiększyć limity usług.If you are anticipating a high-scale event, Azure support can assist you with increasing your service limits. Aby uzyskać więcej informacji, zobacz często zadawane pytania dotyczące pomocy technicznej platformy Azure.For more information, see the Azure Support FAQs.

Przestrzegaj zasad najniższych uprawnień podczas udzielania dostępu do zasobów.Follow least-privilege principles when granting access to resources. Starannie Zarządzaj dostępem do zasobów.Carefully manage access to resources. Dostęp powinien być domyślnie zabroniony, chyba że użytkownik ma jawnie określony dostęp do zasobu.Access should be denied by default, unless a user is explicitly given access to a resource. Udziel użytkownikowi dostępu tylko do tego, czego potrzebują do ukończenia swoich zadań.Only grant a user access to what they need to complete their tasks. Śledź uprawnienia użytkowników i Wykonuj regularne inspekcje zabezpieczeń.Track user permissions and perform regular security audits.

Użyj kontroli dostępu opartej na rolach.Use role-based access control. Przypisywanie kont użytkowników i dostęp do zasobów nie powinno być procesem ręcznym.Assigning user accounts and access to resources should not be a manual process. Użycie kontroli dostępu opartej na rolach (RBAC) na podstawie tożsamości i grup Azure Active Directory .Use role-based access control (RBAC) grant access based on Azure Active Directory identities and groups.

Śledź problemy przy użyciu systemu śledzenia błędów.Use a bug tracking system to track issues. Bez dobrego sposobu śledzenia problemów, można łatwo odrzucać elementy, powielać zadania lub wprowadzać dodatkowe problemy.Without a good way to track issues, it's easy to miss items, duplicate work, or introduce additional problems. Nie należy polegać na komunikacji między osobami, aby śledzić stan błędów.Don't rely on informal person-to-person communication to track the status of bugs. Za pomocą narzędzia śledzenia usterek można rejestrować szczegółowe informacje o problemach, przypisywać zasoby do ich rozwiązywania oraz przedstawiać dziennik inspekcji postępu i stanu.Use a bug tracking tool to record details about problems, assign resources to address them, and provide an audit trail of progress and status.

Zarządzanie wszystkimi zasobami w systemie zarządzania zmianami.Manage all resources in a change management system. Wszystkie aspekty procesu DevOps powinny być zawarte w systemie zarządzania i przechowywania wersji, dzięki czemu zmiany mogą być łatwo śledzone i poddawane inspekcji.All aspects of your DevOps process should be included in a management and versioning system, so that changes can be easily tracked and audited. Obejmuje to kod, infrastrukturę, konfigurację, dokumentację i skrypty.This includes code, infrastructure, configuration, documentation, and scripts. Traktuj wszystkie te typy zasobów jako kod w trakcie procesu testowania/kompilowania/recenzowania.Treat all these types of resources as code throughout the test/build/review process.

Użyj list kontrolnych.Use checklists. Utwórz listy kontrolne operacji, aby upewnić się, że procesy są obserwowane.Create operations checklists to ensure processes are followed. Często zdarza się, że liczba trafień jest w dużym podręczniku, a Poniższa lista kontrolna może wymusić, że szczegółowe informacje mogą być niewidoczne.It’s common to miss something in a large manual, and following a checklist can force attention to details that might otherwise be overlooked. Obsługuj listy kontrolne i stale Szukaj sposobów automatyzacji zadań i usprawniania procesów.Maintain the checklists, and continually look for ways to automate tasks and streamline processes.

Aby uzyskać więcej informacji na temat DevOps, zobacz co to jest DevOps? w witrynie programu Visual Studio.For more about DevOps, see What is DevOps? on the Visual Studio site.