ksiazki24h.pl
wprowadź własne kryteria wyszukiwania książek: (jak szukać?)
Twój koszyk:   0 zł   zamówienie wysyłkowe >>>
Strona główna > opis książki

PYTHON DLA DEVOPS


GIFT N. BEHRMAN K. DEZA A. GHEORGHIU G.

wydawnictwo: HELION , rok wydania 2020, wydanie I

cena netto: 89.00 Twoja cena  84,55 zł + 5% vat - dodaj do koszyka

Python dla DevOps


Naucz się bezlitośnie skutecznej automatyzacji

Ostatnia dekada zmieniła oblicze IT. Kluczowego znaczenia nabrały big data, a chmura i automatyzacja rozpowszechniły się wszędzie tam, gdzie mowa o efektywności. Inżynierowie muszą wykorzystywać zalety systemów linuksowych w codziennej praktyce, aby zapewnić należyty poziom automatyzacji swoich zadań. Do tych celów świetnie nadaje się Python. Język ten zdobywa coraz większe uznanie z uwagi na jego wszechstronność, jak również wydajność, przenaszalność i bezpieczeństwo kodu. Warto więc wykorzystywać Pythona do administrowania systemami Linux wraz z takimi narzędziami DevOps jak Docker, Kubernetes i Terraform.

Dzięki tej książce dowiesz się, jak sobie z tym poradzić. Znalazło się w niej krótkie wprowadzenie do Pythona oraz do automatyzacji przetwarzania tekstu i obsługi systemu plików, a także do pisania własnych narzędzi wiersza poleceń. Zaprezentowano również przydatne narzędzia linuksowe, systemy zarządzania pakietami oraz systemy budowania, monitorowania i automatycznego testowania kodu. Zagadnienia te szczególnie zainteresują specjalistów DevOps. Ponadto zawarto tu podstawowe informacje o chmurze obliczeniowej, usługach IaC i systemach Kubernetes. Omówiono zasady uczenia maszynowego i inżynierii danych z perspektywy DevOps. Przedstawiono także kompletny przewodnik po procesach budowania, wdrażania oraz operacyjnego wykorzystywania modelu uczenia maszynowego z użyciem systemów Flask, sklearn, Docker i Kubernetes.

W tej książce:

  • wprowadzenie do Pythona
  • automatyczne przetwarzanie tekstu oraz automatyzacja operacji na plikach
  • automatyzacja za pomocą sprawdzonych narzędzi linuksowych
  • chmura, infrastruktura jako kod, Kubernetes i tryb bezserwerowy
  • uczenie maszynowe i inżynieria danych z perspektywy DevOps
  • tworzenie i operacjonalizacja projektu uczenia maszynowego

Przedmowa
Co DevOps oznacza dla autorów?
Jak korzystać z tej książki?
Tematy
Konwencje używane w tej książce
Korzystanie z przykładów kodu
Podziękowania
Noah
Kennedy
Alfredo
Grig

Rozdział 1. Podstawy Pythona dla DevOps
Instalowanie i uruchamianie Pythona
Powłoka Pythona
Skrypty Pythona
IPython
Jupyter Notebooks
Programowanie proceduralne
Zmienne
Podstawowe operacje arytmetyczne
Komentarze
Funkcje wbudowane
Print
Range
Sterowanie przepływem kodu
If-elif-else
Pętle for
Instrukcja continue
Pętle while
Obsługa wyjątków
Obiekty wbudowane
Czym jest obiekt?
Metody i atrybuty obiektu
Sekwencje
Operacje na sekwencjach
Listy
Ciągi znaków
Słowniki
Funkcje
Anatomia funkcji
Funkcje jako obiekty
Funkcje anonimowe
Korzystanie z wyrażeń regularnych
Wyszukiwanie
Zbiory znaków
Klasy znaków
Grupy
Grupy nazwane
Znajdź wszystko
Iterator wyszukiwania
Podstawianie
Kompilowanie
Leniwe wartościowanie
Generatory
Generatory składane
Dodatkowe funkcjonalności IPythona
Korzystanie z IPythona do uruchamiania poleceń powłoki Unix
Korzystanie z magicznych poleceń IPythona
Ćwiczenia

Rozdział 2. Automatyzacja zadań dotyczących plików i systemu plików
Odczytywanie i zapisywanie plików
Korzystanie z wyrażeń regularnych do wyszukiwania tekstu
Przetwarzanie dużych plików
Szyfrowanie tekstu
Haszowanie z wykorzystaniem pakietu hashlib
Szyfrowanie z wykorzystaniem biblioteki cryptography
Moduł os
Zarządzanie plikami i katalogami za pomocą modułu os.path
Przeglądanie drzew katalogów za pomocą funkcji os.walk
Ścieżki jako obiekty modułu pathlib

Rozdział 3. Praca w wierszu polecenia
Praca w środowisku powłoki
Komunikacja z interpreterem za pomocą modułu sys
Wykonywanie zadań w systemie operacyjnym z wykorzystaniem modułu os
Inicjowanie procesów za pomocą modułu subprocess
Tworzenie narzędzi wiersza polecenia
Atrybut sys.argv
argparse
Pakiet click
Moduł fire
Implementowanie wtyczek
Studium przypadku: Turbodoładowanie Pythona za pomocą narzędzi wiersza polecenia
Kompilator Just-in-Time (JIT) Numba
Korzystanie z GPU w Pythonie za pomocą frameworka CUDA
Uruchamianie w Pythonie kodu na wielu rdzeniach i w wielu wątkach z wykorzystaniem modułu Numba
Klasteryzacja z wykorzystaniem modułu KMeans
Ćwiczenia

Rozdział 4. Przydatne narzędzia systemu Linux
Narzędzia dyskowe
Pomiar wydajności
Dokładne testy z fio
Partycje
Odczytywanie specyficznych informacji o urządzeniu
Narzędzia sieciowe
Tunelowanie SSH
Pomiar wydajności HTTP za pomocą Apache Benchmark (ab)
Testowanie obciążenia za pomocą narzędzia molotov
Narzędzia do badania CPU
Przeglądanie procesów za pomocą htop
Korzystanie z Bash i ZSH
Personalizacja powłoki Pythona
Rekurencyjny globbing
Wyszukiwanie i zamiana z pytaniami o potwierdzenie
Usuwanie tymczasowych plików Pythona
Wyświetlanie listy procesów i jej filtrowanie
Uniksowe znaczniki czasu
Łączenie możliwości Pythona z powłoką Bash i ZSH
Generator losowych haseł
Czy mój moduł istnieje?
Zmiana katalogów na ścieżki do modułów
Konwersja pliku CSV na JSON
Jednowierszowe skrypty w Pythonie
Debugery
Jak szybko działa ten fragment kodu?
strace
Ćwiczenia
Zadanie związane ze studium przypadku

Rozdział 5. Zarządzanie pakietami
Dlaczego tworzenie pakietów jest ważne?
Kiedy tworzenie pakietu może być niepotrzebne?
Wytyczne dotyczące tworzenia pakietów
Opisowe wersjonowanie
Rejestr zmian
Wybór strategii
Sposoby tworzenia pakietów
Natywny pakiet Pythona
Dodawanie plików do pakietów
Skorowidz PyPI
Hosting wewnętrznego repozytorium PyPI
Pakiety w stylu Debiana
Dodawanie plików do pakietów
Generowanie binariów
Repozytoria Debiana
Pakiety RPM
Plik spec
Generowanie binariów
Repozytoria RPM
Zarządzanie za pomocą systemd
Procesy długotrwałe
Konfiguracja
Plik modułu systemd
Instalacja modułu
Obsługa logów
Ćwiczenia
Zadanie związane ze studium przypadku

Rozdział 6. Continuous Integration i Continuous Deployment
Studium przypadku: konwersja źle utrzymywanej witryny bazującej na WordPressie do Hugo
Konfigurowanie Hugo
Konwersja witryny WordPress na posty Hugo
Utworzenie indeksu Algolia i jego uaktualnienie
Automatyzacja za pomocą Makefile
Instalacja z wykorzystaniem AWS CodePipeline
Studium przypadku: instalacja aplikacji Python App Engine za pomocą mechanizmu Google Cloud Build
Studium przypadku: NFSOPS

Rozdział 7. Monitorowanie i logowanie
Kluczowe pojęcia dotyczące budowania niezawodnych systemów
Niezmienne zasady DevOps
Centralne logowanie
Studium przypadku: produkcyjna baza danych zabija dyski twarde
Zbudować czy kupić?
Odporność na błędy
Monitorowanie
Graphite
StatsD
Prometheus
Oprzyrządowanie
Konwencje nazewnictwa
Logowanie
Dlaczego konfigurowanie logowania jest trudne?
basicconfig
Głębsza konfiguracja
Powszechne wzorce
Stos ELK
Logstash
Elasticsearch i Kibana
Ćwiczenia
Zadanie związane ze studium przypadku

Rozdział 8. Pytest dla DevOps
Testowanie za pomocą frameworka pytest
Pierwsze kroki z pytest
Testowanie z wykorzystaniem pytest
Układ plików i obowiązujące konwencje
Różnice w stosunku do unittest
Cechy frameworka pytest
conftest.py
Niezwykła funkcja assert
Parametryzacja
Fikstury
Pierwsze kroki
Fikstury wbudowane
Testowanie infrastruktury
Co to jest walidacja systemowa?
Wprowadzenie do projektu Testinfra
Nawiązywanie połączeń ze zdalnymi węzłami
Funkcje i fikstury specjalne
Przykłady
Testowanie notatników Jupyter Notebooks z wykorzystaniem frameworka pytest
Ćwiczenia
Zadanie związane ze studium przypadku

Rozdział 9. Chmura obliczeniowa
Podstawy chmury obliczeniowej
Rodzaje chmur obliczeniowych
Rodzaje usług chmury obliczeniowej
IaaS
MaaS
PaaS
Przetwarzanie bezserwerowe
SaaS
Infrastruktura jako kod
Ciągłe dostawy
Wirtualizacja i kontenery
Wirtualizacja sprzętowa
Sieci SDN
Magazyny SDS
Kontenery
Wyzwania i możliwości przetwarzania rozproszonego
Współbieżność, wydajność i zarządzanie procesami w dobie chmury obliczeniowej
Zarządzanie procesami
Zarządzanie procesami z wykorzystaniem modułu subprocess
Unikaj instrukcji shell=True
Ustaw limity czasu i obsługuj je w razie potrzeby
Problem z wątkami w Pythonie
Korzystanie z modułu multiprocessing do rozwiązywania problemów
Rozwidlanie procesów za pomocą funkcji pool()
FaaS i tryb bezserwerowy
Wysokowydajny Python z wykorzystaniem pakietu Numba
Korzystanie z kompilatora Just in Time biblioteki Numba
Korzystanie z wysokowydajnych serwerów
Wniosek
Ćwiczenia
Studia przypadków

Rozdział 10. Infrastruktura jako kod
Klasyfikacja narzędzi automatyzacji infrastruktury
Dostarczanie ręczne
Automatyczne dostarczanie infrastruktury z wykorzystaniem systemu Terraform
Dostarczanie komory S3
Dostarczanie certyfikatu SSL z usługi AWS ACM
Dostarczanie dystrybucji Amazon CloudFront
Dostarczanie rekordu DNS Route 53
Kopiowanie statycznych plików do usługi S3
Usuwanie wszystkich zasobów AWS dostarczonych przez Terraform
Zautomatyzowane dostarczanie infrastruktury za pomocą systemu Pulumi
Tworzenie nowego projektu Pythona Pulumi dla usług AWS
Tworzenie wartości konfiguracyjnych dla stosu staging
Dostarczanie certyfikatu SSL ACM
Dostarczanie strefy Route 53 i rekordów DNS
Dostarczanie dystrybucji CloudFront
Dostarczanie rekordu DNS Route 53 dla adresu URL witryny
Tworzenie i wdrażanie nowego stosu
Ćwiczenia

Rozdział 11. Technologie kontenerowe: Docker i Docker Compose
Czym jest kontener Dockera?
Tworzenie, budowanie, uruchamianie i usuwanie obrazów i kontenerów Dockera
Publikowanie obrazów Dockera w Rejestrze Dockera
Uruchamianie kontenera Dockera z tego samego obrazu na innym hoście
Uruchamianie wielu kontenerów Dockera za pomocą systemu Docker Compose
Przenoszenie usług docker-compose do nowego hosta i systemu operacyjnego
Ćwiczenia

Rozdział 12. Orkiestracja kontenerów: Kubernetes
Przegląd pojęć związanych z systemem Kubernetes
Korzystanie z systemu Kompose do tworzenia manifestów Kubernetesa na podstawie pliku docker-compose.yaml
Instalacja manifestów Kubernetesa w lokalnym klastrze Kubernetesa z wykorzystaniem minikube
Uruchomienie klastra GKE Kubernetes w GCP za pomocą Pulumi
Instalacja przykładowej aplikacji Flask do GKE
Instalacja wykresów Helm Prometheus i Grafana
Niszczenie klastra GKE
Ćwiczenia

Rozdział 13. Technologie bezserwerowe
Wdrażanie tej samej funkcji Pythona do chmur dostawców z Wielkiej Trójki
Instalacja frameworka Serverless
Wdrażanie funkcji Pythona w usłudze AWS Lambda
Wdrażanie funkcji Pythona na platformie Google Cloud Functions
Wdrażanie funkcji Pythona w usłudze AWS Lambda
Wdrażanie funkcji Pythona do platform FaaS działających w trybie self-hosted
Wdrażanie funkcji Pythona do usługi OpenFaaS
Konfigurowanie tabeli DynamoDB, funkcji Lambda i metod API Gateway za pomocą AWS CDK
Ćwiczenia

Rozdział 14. MLOps i inżynieria uczenia maszynowego
Czym jest uczenie maszynowe?
Nadzorowane uczenie maszynowe
Pobieranie danych (ang. ingest)
Eksploracyjna analiza danych (ang. Explorative Data Analysis EDA)
Statystyki opisowe
Rozkład gęstości jądra
Modelowanie
Model regresji sklearn
Ekosystem uczenia maszynowego w Pythonie
Uczenie głębokie z wykorzystaniem frameworka PyTorch
Regresja z wykorzystaniem PyTorch
Platformy uczenia maszynowego w chmurze
Model dojrzałości uczenia maszynowego
Najważniejsza terminologia uczenia maszynowego
Poziom 1. Formułowanie, identyfikowanie zakresu i definiowanie problemu
Poziom 2. Ciągłe dostawy danych
Poziom 3. Ciągłe dostawy oczyszczonych danych
Poziom 4. Ciągłe dostawy eksploracyjnych analiz danych
Poziom 5. Ciągłe dostarczania tradycyjnych narzędzi ML i AutoML
Poziom 6. Operacyjna pętla sprzężenia zwrotnego narzędzi ML
Model Sklearn Flask z wykorzystaniem systemów Kubernetes i Docker
Sklearn Flask z wykorzystaniem Kubernetesa i Dockera
EDA
Modelowanie
Podział danych
Dostrajanie skalowanego algorytmu GBM
Dopasowywanie modelu
Ocena
adhoc_predict
Przepływ pracy JSON
Skalowanie danych wejściowych
Serializacja sklearn
Deserializacja i prognozowanie
adhoc_predict z modułu Pickle
Skalowanie danych wejściowych
Ćwiczenia
Zadanie związane ze studium przypadku
Pytania i zadania kontrolne

Rozdział 15. Inżynieria danych
Small data
Obsługa plików typu small data
Zapis do pliku
Odczyt z pliku
Potok generatora używany w celu czytania i przetwarzania wierszy
Korzystanie z formatu YAML
Big Data
Narzędzia Big Data, komponenty i platformy
Źródła danych
Systemy plików
Przechowywanie danych
Pobieranie strumieni danych w czasie rzeczywistym
Studium przypadku: budowanie własnego potoku danych
Inżynieria danych w trybie bezserwerowym
Korzystanie z usługi AWS Lambda z wykorzystaniem zdarzeń CloudWatch
Logowanie z wykorzystaniem usług Amazon CloudWatch i AWS Lambda
Wykorzystanie usługi AWS Lambda w celu zapełniania kolejki w usłudze Amazon Simple Queue Service
Konfiguracja mechanizmu wyzwalającego zdarzenie CloudWatch
Tworzenie funkcji Lambda sterowanych zdarzeniami
Odczyt zdarzeń Amazon SQS z funkcji AWS Lambda
Wnioski
Ćwiczenia
Zadanie związane ze studium przypadku

Rozdział 16. Historie wojenne DevOps i wywiady
Studio filmowe nie może produkować filmów
Studio gier nie może opublikować gry
Uruchomienie skryptów Pythona zajmuje 60 sekund
Gaszenie pożarów za pomocą pamięci podręcznej i inteligentnej instrumentacji
Automatyzacja zabierze Ci pracę!
Antywzorce DevOps
Brak zautomatyzowanego serwera budowania
Latanie po omacku
Trudności w koordynacji jako stan ciągły
Brak pracy zespołowej
Jasno sformułowany, wzniosły cel
Struktura sterowana wynikami
Kompetentni członkowie zespołu
Ogólne zaangażowanie
Klimat współpracy
Standardy doskonałości
Zewnętrzne wsparcie i uznanie
Pryncypialne zarządzanie
Wywiady
Glenn Solomon
Andrew Nguyen
Gabriella Roman
Rigoberto Roche
Jonathan LaCour
Ville Tuulos
Joseph Reis
Teijo Holzer
Matt Harrison
Michael Foord
Zalecenia
Ćwiczenia
Wyzwania
Projekt końcowy

O autorach
Kolofon

464 stron, Format: 17.0x24.0cm, oprawa miękka

Po otrzymaniu zamówienia poinformujemy,
czy wybrany tytuł polskojęzyczny lub anglojęzyczny jest aktualnie na półce księgarni.

 
Wszelkie prawa zastrzeżone PROPRESS sp. z o.o. 2012-2022