reklama - zainteresowany?

Ciągłe dostarczanie oprogramowania. Kompletny przewodnik - Helion

Ciągłe dostarczanie oprogramowania. Kompletny przewodnik
Autor: Eberhard Wolff
Tytuł oryginału: A Practical Guide to Continuous Delivery
TÅ‚umaczenie: Tomasz Walczak
ISBN: 978-83-283-3784-8
stron: 224, Format: 170x230, okładka: miękka
Data wydania: 2017-12-08
Księgarnia: Helion

Cena książki: 49,00 zł

Dodaj do koszyka Ciągłe dostarczanie oprogramowania. Kompletny przewodnik

Tagi: ZarzÄ…dzanie projektami IT

Pojęcie ciągłego dostarczania wywodzi się z metodyk zwinnego wytwarzania oprogramowania. Polega ono na sprawnej analizie i optymalizacji procesu prowadzącego do udostępnienia oprogramowania oraz na zintegrowaniu go z rozwojem produktu. Dzięki usprawnieniu tych prac proces udostępniania oprogramowania ulega automatyzacji, staje się bardziej powtarzalny i o wiele mniej ryzykowny, a to spotyka się z aprobatą klientów.

Niniejsza książka jest wartościowym przewodnikiem dla zespołów projektowych. Docenią ją zwłaszcza programiści i menedżerowie pracujący według zasad DevOps. Przedstawiono tu podstawowe procesy, wymagania, korzyści i konsekwencje techniczne. Pokazano, w jaki sposób należy implementować potoki i zarządzać nimi. Dzięki lekturze tej książki płynne integrowanie ciągłego dostarczania z architekturą oprogramowania i pracą działów informatycznych stanie się o wiele łatwiejsze. Opisano tu również przykładowe projekty, które stanowią punkt wyjścia do samodzielnych eksperymentów, a nawet do tworzenia własnych potoków ciągłego dostarczania.

Najważniejsze zagadnienia przedstawione w książce:

  • ciÄ…gÅ‚e dostarczanie: co to jest i jakie problemy rozwiÄ…zuje,
  • automatyzacja tworzenia oprogramowania,
  • testy: akceptacyjne, wydajnoÅ›ci i eksploracyjne,
  • wdrażanie metodyki ciÄ…gÅ‚ego dostarczania w organizacji,
  • wpÅ‚yw ciÄ…gÅ‚ego dostarczania na architekturÄ™ aplikacji.

Ciągłe dostarczanie oprogramowania kluczem do optymalizacji pracy z kodem.


Eberhard Wolff od przeszło 15 lat zajmuje się architekturą oprogramowania i doradztwem w obszarze styku biznesu i technologii. Wygłaszał prelekcje i przemówienia na międzynarodowych konferencjach, był członkiem komisji programowych wielu sympozjów. Napisał ponad 100 artykułów i książek. Koncentruje się na nowoczesnych architekturach, często obejmujących chmurę, ciągłe dostarczanie, DevOps, mikrousługi i bazy typu NoSQL.

Dodaj do koszyka Ciągłe dostarczanie oprogramowania. Kompletny przewodnik

 

Osoby które kupowały "Ciągłe dostarczanie oprogramowania. Kompletny przewodnik", wybierały także:

  • Przywództwo w Å›wiecie VUCA. Jak być skutecznym liderem w niepewnym Å›rodowisku
  • Wieczne opóźnienie. ZarzÄ…dzanie projektami IT
  • Szef, którego szukamy. Rzecz o odpowiedzialnoÅ›ci
  • Scrum. O zwinnym zarzÄ…dzaniu projektami. Wydanie II rozszerzone
  • Oprogramowanie szyte na miarÄ™. Jak rozmawiać z klientem, który nie wie, czego chce. Wydanie II rozszerzone

Dodaj do koszyka Ciągłe dostarczanie oprogramowania. Kompletny przewodnik

Spis treści

Ciągłe dostarczanie oprogramowania. Kompletny przewodnik -- spis treści

  • PodziÄ™kowania
  • O autorze
  • Wprowadzenie
    • W.1. PrzeglÄ…d ciÄ…gÅ‚ego dostarczania i książki
    • W.2. Po co stosować ciÄ…gÅ‚e dostarczanie?
      • W.2.1. Krótka historia
      • W.2.2. CiÄ…gÅ‚e dostarczanie jest pomocne
    • W.3. Dla kogo przeznaczona jest ta książka?
    • W.4. PrzeglÄ…d rozdziałów
    • W.5. Sposoby czytania książki
  • Część I Podstawy
  • RozdziaÅ‚ 1 CiÄ…gÅ‚e dostarczanie co i jak
    • 1.1. Wprowadzenie czym jest ciÄ…gÅ‚e dostarczanie?
    • 1.2. Dlaczego udostÄ™pnianie oprogramowania jest tak skomplikowane?
      • 1.2.1. CiÄ…gÅ‚a integracja daje nadziejÄ™
      • 1.2.2. Powolne i ryzykowne procesy
      • 1.2.3. Szybka praca jest możliwa
    • 1.3. Wartość ciÄ…gÅ‚ego dostarczania
      • 1.3.1. Regularność
      • 1.3.2. Możliwość Å›ledzenia i sprawdzalność zmian
      • 1.3.3. Regresja
    • 1.4. KorzyÅ›ci pÅ‚ynÄ…ce z ciÄ…gÅ‚ego dostarczania
      • 1.4.1. CiÄ…gÅ‚e dostarczanie w celu przyspieszenia udostÄ™pniania
      • 1.4.2. PrzykÅ‚ad
      • 1.4.3. Implementowanie funkcji i udostÄ™pnianie jej w Å›rodowisku produkcyjnym
      • 1.4.4. PrzejÅ›cie do nastÄ™pnej funkcji
      • 1.4.5. CiÄ…gÅ‚e dostarczanie zapewnia przewagÄ™ konkurencyjnÄ…
      • 1.4.6. Scenariusz bez ciÄ…gÅ‚ego dostarczania
      • 1.4.7. CiÄ…gÅ‚e dostarczanie i Lean Startup
      • 1.4.8. WpÅ‚yw na proces rozwoju produktu
      • 1.4.9. Minimalizowanie ryzyka za pomocÄ… ciÄ…gÅ‚ego dostarczania
      • 1.4.10. Szybsze informacje zwrotne i podejÅ›cie Lean
    • 1.5. Procesy generowania i struktura potoku ciÄ…gÅ‚ego dostarczania
      • 1.5.1. PrzykÅ‚ad
    • 1.6. Wnioski
  • RozdziaÅ‚ 2 Zapewnianie infrastruktury
    • 2.1. Wprowadzenie
      • 2.1.1. Automatyzowanie infrastruktury przykÅ‚ad
    • 2.2. Skrypty instalacyjne
      • 2.2.1. Problemy zwiÄ…zane ze standardowymi skryptami instalacyjnymi
    • 2.3. Chef
      • 2.3.1. Chef a Puppet
      • 2.3.2. Inne możliwoÅ›ci
      • 2.3.3. Podstawy techniczne
        • Podstawowe pojÄ™cia zwiÄ…zane z Chefem
        • Chef, ksiÄ™gi receptur i receptury
        • Role
      • 2.3.4. Chef Solo
      • 2.3.5. Chef Solo wnioski
      • 2.3.6. Knife i Chef Server
      • 2.3.7. Chef Server wnioski
    • 2.4. Vagrant
      • 2.4.1. PrzykÅ‚ad zastosowania Chefa i Vagranta
      • 2.4.2. Vagrant wnioski
    • 2.5. Docker
      • 2.5.1. RozwiÄ…zanie oparte na Dockerze
        • Kontenery Dockera a wirtualizacja
        • Cel używania Dockera
        • Komunikacja miÄ™dzy kontenerami Dockera
      • 2.5.2. Tworzenie kontenerów Dockera
        • Pliki Dockerfile
        • Tworzenie i uruchamianie obrazów Dockera
      • 2.5.3. Uruchamianie przykÅ‚adowej aplikacji za pomocÄ… Dockera
        • Dodatkowe polecenia Dockera
      • 2.5.4. Docker i Vagrant
        • Vagrant jako mechanizm dodawania oprogramowania
      • 2.5.5. Docker Machine
      • 2.5.6. Tworzenie zÅ‚ożonych konfiguracji za pomocÄ… Dockera
        • Docker Registry
        • Docker w klastrze
      • 2.5.7. Docker Compose
    • 2.6. Niemodyfikowalny serwer
      • 2.6.1. Wady idempotencji
      • 2.6.2. Serwer niemodyfikowalny i Docker
    • 2.7. Infrastruktura jako kod
      • 2.7.1. Testowanie infrastruktury w postaci kodu
        • Serverspec
        • Test Kitchen
        • ChefSpec
    • 2.8. Platforma jako usÅ‚uga
    • 2.9. ObsÅ‚uga danych i baz
      • 2.9.1. ZarzÄ…dzanie schematami
      • 2.9.2. Dane testowe i główne
    • 2.10. Wnioski
  • Część II Potok ciÄ…gÅ‚ego dostarczania
  • RozdziaÅ‚ 3 Automatyzacja procesu budowania i ciÄ…gÅ‚a integracja
    • 3.1. Wprowadzenie
      • 3.1.1. Automatyzacja procesu budowania przykÅ‚ad
    • 3.2. Automatyzowanie procesu budowania i narzÄ™dzia do budowania
      • 3.2.1. NarzÄ™dzia do budowania w Å›wiecie Javy
      • 3.2.2. Ant
      • 3.2.3. Maven
        • Kontrola wersji i snapshoty
        • UdostÄ™pnianie z użyciem Mavena
      • 3.2.4. Gradle
        • Gradle Wrapper
      • 3.2.5. Dodatkowe narzÄ™dzia do budowania
      • 3.2.6. Wybór odpowiedniego narzÄ™dzia
    • 3.3. Testy jednostkowe
      • 3.3.1. Pisanie dobrych testów jednostkowych
      • 3.3.2. Programowanie sterowane testami
      • 3.3.3. Ruchy Clean Code i Software Craftsmanship
    • 3.4. CiÄ…gÅ‚a integracja
      • 3.4.1. Jenkins
        • Rozszerzanie Jenkinsa za pomocÄ… wtyczek
        • Wtyczka SCM Sync Configuration
        • Wtyczka Environment Injector
        • Wtyczka Job Configuration History
        • Wtyczka Clone Workspace SCM
        • Wtyczka Build Pipeline
        • Wtyczka Amazon EC2
        • Wtyczka Job DSL
        • Tworzenie wÅ‚asnych wtyczek
      • 3.4.2. Infrastruktura do ciÄ…gÅ‚ej integracji
      • 3.4.3. Wnioski
    • 3.5. Pomiar jakoÅ›ci kodu
      • 3.5.1. SonarQube
        • Integrowanie z potokiem
    • 3.6. ZarzÄ…dzanie artefaktami
      • 3.6.1. Integracja z procesem budowania
      • 3.6.2. Zaawansowane funkcje repozytoriów
    • 3.7. Wnioski
  • RozdziaÅ‚ 4 Testy akceptacyjne
    • 4.1. Wprowadzenie
      • 4.1.1. Testy akceptacyjne przykÅ‚ad
    • 4.2. Piramida testów
    • 4.3. Czym sÄ… testy akceptacyjne?
      • 4.3.1. Zautomatyzowane testy akceptacyjne
      • 4.3.2. WiÄ™cej niż wzrost wydajnoÅ›ci
      • 4.3.3. Testy rÄ™czne
      • 4.3.4. A co z klientem?
      • 4.3.5. Testy akceptacyjne a testy jednostkowe
      • 4.3.6. Åšrodowiska testowe
    • 4.4. Testy akceptacyjne oparte na interfejsie GUI
      • 4.4.1. Problemy z testami z użyciem interfejsu GUI
      • 4.4.2. Stosowanie abstrakcji
      • 4.4.3. Automatyzacja z użyciem narzÄ™dzia Selenium
      • 4.4.4. Interfejs API WebDriver
      • 4.4.5. Testy bez użycia przeglÄ…darki HtmlUnit
      • 4.4.6. Interfejs API WebDriver dla Selenium
      • 4.4.7. Åšrodowisko IDE dla Selenium
      • 4.4.8. Problemy ze zautomatyzowanymi testami interfejsu GUI
      • 4.4.9. Wykonywanie testów z użyciem interfejsu GUI
      • 4.4.10. Eksportowanie testów jako kodu
      • 4.4.11. RÄ™czne modyfikowanie przypadków testowych
      • 4.4.12. Dane testowe
      • 4.4.13. Obiekty reprezentujÄ…ce strony
    • 4.5. Inne narzÄ™dzia do przeprowadzania testów z użyciem interfejsu GUI
      • 4.5.1. PhantomJS
      • 4.5.2. Windmill
    • 4.6. Tekstowe testy akceptacyjne
      • 4.6.1. PodejÅ›cie BDD
      • 4.6.2. Różne adaptery
    • 4.7. Inne platformy
    • 4.8. Strategie przeprowadzania testów akceptacyjnych
      • 4.8.1. WÅ‚aÅ›ciwe narzÄ™dzie
      • 4.8.2. BÅ‚yskawiczne informacje zwrotne
      • 4.8.3. Pokrycie testami
    • 4.9. Wnioski
  • RozdziaÅ‚ 5 Testy wydajnoÅ›ci
    • 5.1. Wprowadzenie
      • 5.1.1. Testy wydajnoÅ›ci przykÅ‚ad
    • 5.2. Testy wydajnoÅ›ci jak je przeprowadzać?
      • 5.2.1. Cele testów wydajnoÅ›ci
      • 5.2.2. Åšrodowiska i ilość danych
      • 5.2.3. Testy szybkoÅ›ci tylko po zakoÅ„czeniu implementowania kodu?
      • 5.2.4. Testy wydajnoÅ›ci = zarzÄ…dzanie ryzykiem
      • 5.2.5. Symulowanie dziaÅ‚aÅ„ użytkowników
      • 5.2.6. Dokumentowanie wymogów zwiÄ…zanych z szybkoÅ›ciÄ…
      • 5.2.7. SprzÄ™t potrzebny w testach wydajnoÅ›ci
      • 5.2.8. Chmura i wirtualizacja
      • 5.2.9. Minimalizowanie ryzyka dziÄ™ki ciÄ…gÅ‚emu testowaniu
      • 5.2.10. Testy wydajnoÅ›ci sensowne czy nie?
    • 5.3. Implementowanie testów wydajnoÅ›ci
    • 5.4. Testy wydajnoÅ›ci z użyciem narzÄ™dzia Gatling
      • 5.4.1. Wersja demonstracyjna a praktyka
    • 5.5. NarzÄ™dzia używane zamiast Gatlinga
      • 5.5.1. Grinder
      • 5.5.2. Apache JMeter
      • 5.5.3. Tsung
      • 5.5.4. RozwiÄ…zania komercyjne
    • 5.6. Wnioski
  • RozdziaÅ‚ 6 Testy eksploracyjne
    • 6.1. Wprowadzenie
      • 6.1.1. Testy eksploracyjne przykÅ‚ad
    • 6.2. Po co stosować testy eksploracyjne?
      • 6.2.1. Czasem testy rÄ™czne i tak sÄ… lepsze
      • 6.2.2. Testy z udziaÅ‚em klientów
      • 6.2.3. Testy rÄ™czne wymagaÅ„ niefunkcjonalnych
    • 6.3. Jak zabrać siÄ™ za testy eksploracyjne?
      • 6.3.1. Zadanie okreÅ›la testy
      • 6.3.2. Zautomatyzowane Å›rodowisko
      • 6.3.3. Przypadki pokazowe jako punkt wyjÅ›cia
      • 6.3.4. PrzykÅ‚ad aplikacja z obszaru handlu elektronicznego
      • 6.3.5. Testy wersji beta
      • 6.3.6. Testy oparte na sesji
    • 6.4. Wnioski
  • RozdziaÅ‚ 7 Wdrażanie udostÄ™pnianie w Å›rodowisku produkcyjnym
    • 7.1. Wprowadzenie
      • 7.1.1. Wdrażanie przykÅ‚ad
    • 7.2. UdostÄ™pnianie i wycofywanie
      • 7.2.1. KorzyÅ›ci
      • 7.2.2. Wady
    • 7.3. ZastÄ™powanie nowÄ… wersjÄ…
      • 7.3.1. KorzyÅ›ci
      • 7.3.2. Wady
    • 7.4. Wdrażanie w modelu niebieskie-zielone
      • 7.4.1. KorzyÅ›ci
      • 7.4.2. Wady
    • 7.5. UdostÄ™pnianie kanarkowe
      • 7.5.1. KorzyÅ›ci
      • 7.5.2. Wady
    • 7.6. CiÄ…gÅ‚e wdrażanie
      • 7.6.1. KorzyÅ›ci
      • 7.6.2. Wady
    • 7.7. Wirtualizacja
      • 7.7.1. Hosty fizyczne
    • 7.8. Poza aplikacje sieciowe
    • 7.9. Wnioski
  • RozdziaÅ‚ 8 Eksploatacja
    • 8.1. Wprowadzenie
      • 8.1.1. Eksploatacja przykÅ‚ad
    • 8.2. TrudnoÅ›ci z eksploatacjÄ… oprogramowania
    • 8.3. Pliki dziennika
      • 8.3.1. Co należy rejestrować?
      • 8.3.2. NarzÄ™dzia do przetwarzania plików dziennika
        • ELK: Elasticsearch, Logstash i Kibana
      • 8.3.3. Rejestrowanie danych w przykÅ‚adowej aplikacji
    • 8.4. Analizowanie dzienników przykÅ‚adowej aplikacji
      • 8.4.1. Analizowanie danych za pomocÄ… Kibany
      • 8.4.2. ELK skalowalność
    • 8.5. Inne technologie obsÅ‚ugi dzienników
    • 8.6. Zaawansowane techniki rejestrowania dzienników
      • 8.6.1. Anonimizacja
      • 8.6.2. Szybkość dziaÅ‚ania
      • 8.6.3. Czas
      • 8.6.4. Operacyjna baza danych
    • 8.7. Monitorowanie
    • 8.8. Pomiary z użyciem narzÄ™dzia Graphite
    • 8.9. Pomiary w przykÅ‚adowej aplikacji
      • 8.9.1. Struktura przykÅ‚adu
    • 8.10. Inne rozwiÄ…zania z obszaru monitorowania
    • 8.11. Inne wyzwania zwiÄ…zane z eksploatacjÄ… aplikacji
      • 8.11.1. Skrypty
      • 8.11.2. Aplikacje w centrum danych klienta
    • 8.12. Wnioski
  • Część III ZarzÄ…dzanie, kwestie organizacyjne i architektura w obszarze ciÄ…gÅ‚ego dostarczania
  • RozdziaÅ‚ 9 Wprowadzanie ciÄ…gÅ‚ego dostarczania w organizacji
    • 9.1. Wprowadzenie
    • 9.2. CiÄ…gÅ‚e dostarczanie od poczÄ…tku projektu
    • 9.3. Odwzorowywanie strumienia wartoÅ›ci
      • 9.3.1. Odwzorowywanie strumienia wartoÅ›ci pozwala opisać sekwencjÄ™ zdarzeÅ„
      • 9.3.2. Optymalizacje
    • 9.4. Dodatkowe sposoby optymalizacji
      • 9.4.1. Inwestycje wysokiej jakoÅ›ci
      • 9.4.2. Koszty
      • 9.4.3. KorzyÅ›ci
      • 9.4.4. Nie dodawaj kodu, gdy proces budowania koÅ„czy siÄ™ niepowodzeniem!
      • 9.4.5. Zatrzymywanie taÅ›my
      • 9.4.6. Pięć pytaÅ„ dlaczego
      • 9.4.7. DevOps
    • 9.5. Wnioski
  • RozdziaÅ‚ 10 CiÄ…gÅ‚e dostarczanie i DevOps
    • 10.1. Wprowadzenie
    • 10.2. Czym jest model DevOps?
      • 10.2.1. Problemy
      • 10.2.2. Perspektywa klienta
      • 10.2.3. Pionierska firma Amazon
      • 10.2.4. DevOps
    • 10.3. CiÄ…gÅ‚e dostarczanie i DevOps
      • 10.3.1. DevOps wiÄ™cej niż ciÄ…gÅ‚e dostarczanie
      • 10.3.2. PeÅ‚na odpowiedzialność i samoorganizowanie siÄ™
      • 10.3.3. Decyzje z obszaru technologii
      • 10.3.4. Mniej scentralizowanej kontroli
      • 10.3.5. Pluralizm w obszarze technologii
      • 10.3.6. Wymiana miÄ™dzy zespoÅ‚ami
      • 10.3.7. Architektura
    • 10.4. CiÄ…gÅ‚e dostarczanie bez modelu DevOps?
      • 10.4.1. KoÅ„cowa część potoku ciÄ…gÅ‚ego dostarczania
    • 10.5. Wnioski
  • RozdziaÅ‚ 11 CiÄ…gÅ‚e dostarczanie, DevOps i architektura oprogramowania
    • 11.1. Wprowadzenie
    • 11.2. Architektura oprogramowania
      • 11.2.1. Po co tworzyć architekturÄ™ oprogramowania?
    • 11.3. Optymalizowanie architektury pod kÄ…tem ciÄ…gÅ‚ego dostarczania
      • 11.3.1. Mniejsze jednostki wdrażania
    • 11.4. Interfejsy
      • 11.4.1. Prawo Postela lub zasada odpornoÅ›ci
      • 11.4.2. Projektowanie pod kÄ…tem niepowodzeÅ„
      • 11.4.3. Stan
    • 11.5. Bazy danych
      • 11.5.1. Zapewnianie stabilnoÅ›ci baz danych
      • 11.5.2. Baza danych = komponent
      • 11.5.3. Widoki i procedury skÅ‚adowane
      • 11.5.4. Baza danych dla komponentu
      • 11.5.5. Bazy typu NoSQL
    • 11.6. MikrousÅ‚ugi
      • 11.6.1. MikrousÅ‚ugi i ciÄ…gÅ‚e dostarczanie
      • 11.6.2. Wprowadzanie ciÄ…gÅ‚ego dostarczania z użyciem mikrousÅ‚ug
      • 11.6.3. MikrousÅ‚ugi wymagajÄ… ciÄ…gÅ‚ego dostarczania
      • 11.6.4. Struktura organizacyjna
    • 11.7. Radzenie sobie z nowymi funkcjami
      • 11.7.1. OdgaÅ‚Ä™zienia kodu funkcji
      • 11.7.2. PrzeÅ‚Ä…czniki funkcji
      • 11.7.3. KorzyÅ›ci
      • 11.7.4. PrzykÅ‚ady zastosowaÅ„ przeÅ‚Ä…czników funkcji
      • 11.7.5. Wady
    • 11.8. Wnioski
  • RozdziaÅ‚ 12 Wnioski jakie korzyÅ›ci wynikajÄ… z ciÄ…gÅ‚ego dostarczania?

Dodaj do koszyka Ciągłe dostarczanie oprogramowania. Kompletny przewodnik

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.