CI/CD - CO TO? PO CO? JAK?

Podobne dokumenty
Program szkolenia: Continuous Integration i Git

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Open Source w służbie developerom

OD MONOLITU DO MIKROUSŁUGI MICROSERVICES

Program szkolenia: Jenkins - Continuous Integration

Jak usprawnić tworzenie i zarządzanie stroną na drupalu. Maciej Łukiański

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

szkolenia pod drzewem Wybrane Techniki XP bnd 2008 Tomasz Włodarek. Materiał udostępniany na podstawie licencji Creative Commons (by-nc-nd) 1.00.

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Instrukcja laboratoryjna cz.3

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Artifactory Power Pack Pro w procesie wytwarzania oprogramowania. Artifactory Power Pack Plugins Artifactory License Control

Architektura systemów webowych wysokiej przepustowości. na przykładzie Wikia

Platformy Technologiczne

Java a średni (?) projekt informatyczny

Git, Bitbucket, IntelliJ IDEA

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Program szkolenia: REST i Microservices w PHP

Wydajne zarządzanie konfiguracją środowisk wirtualnych

Agenda. Wstęp Zmiany Co nowego dla web developerów? Nowości we front-end developingu Czego spodziewać się może końcowy użytkownik?

Frogfoot CMS.

Git, Bitbucket. Narzędzia i środowiska programistyczne. Laboratorium 2. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Continuous Testing a nowa era w jakości oprogramowania. Grzegorz Leopold, Michał Błaszak

System automatycznego rozsyłania wiadomości

Bezpieczeństwo systemów internetowych

Adam Wójs <adam[shift+2]wojs.pl> git --wprowadzenie

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Referat Pracy Dyplomowej

Program szkolenia: JavaScript Craftsmanship

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

Zmiana sposobu dostarczania aplikacji wspierających funkcje państwa

Technologie Komponentowe. Piotr Łukasik p /

Programowanie Komponentowe WebAPI

HP Service Anywhere Uproszczenie zarządzania usługami IT

Michał (plucho) Subversion Wykorzystanie i administracja repozytorium

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Systemy Rozproszone Technologia ICE

System kontroli wersji git

Paweł Rajba

Integracja komunikatora opartego o protokół XMPP z dużym portalem internetowym

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

KURIER BY CTI. Instrukcja do programu

MikroTik Serwer OpenVPN

WorkingDoc CostControl: Precyzyjna kontrola kosztów wydruku na urządzeniach Grupy Ricoh

Fragmenty są wspierane od Androida 1.6

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Dobre praktyki w doborze technologii rozwiązań informatycznych realizujących usługi publiczne

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

SIMPLE.APS optymalizacja w planowaniu produkcji

Akademia ADB Wykład I Praca w grupie i jakość kodu

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

oprogramowania F-Secure

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

CouchDB. Michał Nowikowski

GIT. System Kontroli wersji GIT. Rafał Kalinowski

Ciągła Integracja. Krystian Kaczor

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

POCZTA POLSKA. v Strona 1 z 9

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Git rozproszony system kontroli wersji

INICJATYWA STUDENCKA. Gdańsk,

INSTRUKCJA INSTALACJI DATAMOBILE. Ver. 1.3

Nowy sposób tworzenia i zarządzania systemem kolejkowym.

Programowanie zespołowe

Szczegółowy opis zamówienia:

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Programowanie komponentowe 5

Refaktoryzacja. Na podstawie

Tak. Konrad Ktoso Malawski blog.project13.pl - SFI

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Letnia Akademia SUSE. Implementacja nowych rozwiązań open source wszystko, co musisz wiedzieć!

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

MetaPack IT Academy Programista, Technologie, ecommerce. Dariusz Cebernik CTO, MetaPack Poland

Dokumentacja projektu QUAIKE Architektura oprogramowania

Jak stworzyć system oparty o mikroserwisy Karol Buler

O nas. Usługi. jpbs realizuje następujące rodzaje projektów usługowych:

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

I. INFORAMCJE UŻYTKOWE

Wzorce logiki dziedziny

Projekt warsztatów. Full Stack Developer. Autor: Kamil Wołczyk

Metody automatyzacji sprawozdawczości w systemie asist. Agnieszka Hołownia-Niedzielska

Continuous Integration i jakość kodu. Michał Prajs

JavaScript : programowanie zaawansowane / Tomasz "Comandeer" Jakut. Gliwice, cop Spis treści

PrestaShop. Sklep internetowy szyty na miarę

K-EX (Geis) v Strona 1 z 12. FUTURE-SOFT SP. Z O.O. ul. Gosławicka2/ , Opole tel NIP:

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Programowanie dla iphone projektowanie interfejsu użytkownika

DevOps w duecie. Autorzy: Cezary Krzemiński Dariusz Puchalak

Zajęcia prowadzone przez MCT, auditora wiodącego systemów bezpieczeństwa informacji.

Architektura mikroserwisów na platformie Spring IO

Firma Informatyczna ASDER. Prezentacja. Serwer danych lokalnych. Przemysław Kroczak ASDER

Warsztat: "Automatyzacja testów (JAVA) - od podstaw"

Programowanie Zespołowe

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

SignalR. Komunikacja w czasie rzeczywistym z SignalR. Mateusz Nostitz-Jackowski

Transkrypt:

CI/CD - CO TO? PO CO? JAK?

JERZY WICKOWSKI PROGRAMUJĘ 10 LAT.NET I INNE CLEAN CODE REFAKTORING DEVOPS

CI/CD - CO TO? PO CO? JAK? AGENDA WPROWADZENIE POJĘĆ SPOSOBY KONFIGURACJI CI IMPLEMENTACJA CONTINOUS DEPLOYMENT PYTANIA

WPROWADZENIE POJĘĆ

WPROWADZENIE POJĘĆ INTEGRACJA Ręczna Build Test Automatyczna Build Scripts

BAT CAKE EXE PS1 BUILD SCRIPTS

WPROWADZENIE POJĘĆ - CONTINOUS INTEGRATION CONTINOUS INTEGRATION Jak? Commit do repo Trigger server CI Run integration Po co? Automatyczne tworzenie paczki

BINARKI OBRAZKI FILMY MUZYKA + DEPLOY SCRIPT PACZKA

PRZYGOTOWUJE KOPIUJE MIGRUJE INSTALUJE DEPLOY SCRIPT

DEPLOYMENT DELIVERY CONTINOUS

WPROWADZENIE POJĘĆ - CONTINOUS DELIVERY / DEPLOYMENT ŚRODOWISKA DEV TEST STAGING PROD PACZKA

WPROWADZENIE POJĘĆ - CONTINOUS DELIVERY / DEPLOYMENT ŚRODOWISKA A DEPLOY SCRIPTS DEV TEST STAGING PROD DEPLOY SCRIPTS A PACZKA DEPLOY SCRIPTS B

WPROWADZENIE POJĘĆ - CONTINOUS DELIVERY / DEPLOYMENT RÓŻNICA POMIĘDZY CONTINOUS DELIVERY A DEPLOYMENT DEV TEST STAGING MANUAL DELIVERY AUTOMATIC DEPLOYMENT PROD

WPROWADZENIE POJĘĆ - PODSUMOWANIE PODSUMOWANIE Continous Integration Continous Delivery Dontinous Deployment Build Scripts Deploy Scripts Package

SPOSOBY KONFIGURACJI

PROBLEM I REFAKTORING

SPOSOBY KONFIGURACJI - PROBLEM I REFAKTORING REPO CI SERVER BUILD FOO.CSPROJ FOO.CSPROJ TEST TEST.DLL TEST.DLL

SPOSOBY KONFIGURACJI - PROBLEM I REFAKTORING REPO ZMIANA! BAR.CSPROJ BUILD BAR.CSPROJ TEST UNITTEST.DLL CI SERVER ZMIANA! UNITTEST.DLL

SPOSOBY KONFIGURACJI - PROBLEM I REFAKTORING ROZWIĄZANIE REPO BAR.CSPROJ CI SERVER BEZ ZMIAN! UNITTEST.DLL RUN BUILD RUN TEST BUILD SCRIPTS

SPOSOBY KONFIGURACJI - PROBLEM I BUILD SCRIPTS Nie zmieniamy konfigracji CI Lokalne buildy Wersjonowanie Budowanie starszej wersji

PROBLEM II NOWE ŚRODOWISKO

SPOSOBY KONFIGURACJI - PROBLEM II NOWE ŚRODOWISKO PACZKA CD PLIKI RUN APP-DEV DEPLOY SCRIPT APP-DEV

SPOSOBY KONFIGURACJI - PROBLEM II NOWE ŚRODOWISKO PACZKA PLIKI ZMIANA! CD ZMIANA! DEPLOY SCRIPT APP-DEV RUN APP-DEV RUN APP-TEST DEPLOY SCRIPT APP-TEST

SPOSOBY KONFIGURACJI - PROBLEM II NOWE ŚRODOWISKO PACZKA PLIKI BEZ ZMIAN! RUN APP -DBNAME DEVDB CD DEPLOY SCRIPTS DEPLOY APP + PARAMETRY RUN APP -DBNAME TESTDB

SPOSOBY KONFIGURACJI - PROBLEM II DEPLOY SCRIPTS Nie zmieniamy kodu Lokalny deploy Wersjonowanie Budowanie starszej wersji Infrastructure as a code

PROBLEM III NOWE API

SPOSOBY KONFIGURACJI - PROBLEM III NOWE API Zmiany Kod źródłowy Build skrypty Deploy skrypty Server CI Rozwiązanie CI config as a code YAML

SPOSOBY KONFIGURACJI - PROBLEM III YAML Konfiguracja CI Ograniczamy Build scripts Deploy Scripty Wersjonowanie Budowanie starszej wersji

BUILD AS A CODE DEPLOY AS A CODE INFRASTRUCTURE AS A CODE CI CONFIG AS A CODE EVERYTHING AS CODE

SPOSOBY KONFIGURACJI - PODSUMOWANIE SRP DLA CI Build Script - wie o kodzie i wie jak budować Deploy Script - wie o paczce i wie jak deplojować CI - wie kiedy CD - wie gdzie deplojować

CONTINUOUS DEPLOYMENT

CONTINUOUS DEPLOYMENT CO TO? STAGING MANUAL DELIVERY AUTOMATIC DEPLOYMENT PROD

CONTINUOUS DEPLOYMENT ZALETY Szybkie dostarczanie Stabilne release Szybki feedback Wymusza dobre praktyki

ZMIANA SPOSOBU MYŚLENIA

KTÓRY DEPLOJOWAĆ? GIT FLOW? RELEASE BRANCH? TYLKO MASTER! BRANCZE

CONTINUOUS DEPLOYMENT - BRANCZE KOD W REPO NIE MUSI DZIAŁAĆ, ALE NIE MOŻE NIC PSUĆ! Człowiek mądry

CONTINUOUS DEPLOYMENT - BRANCZE ZMIANY BEZ PSUCIA Nowa funkcjonalność Zmiana istniejącego kodu if (false) { newcode(); } else { oldcode(); } A duży refaktoring?

CONTINUOUS DEPLOYMENT - BRANCZE REFAKTORING TO ZBIÓR MAŁYCH KROKÓW POPRAWIAJĄCYCH STRUKTURĘ KODU Martin Fowler

INTERFEJS IMPLEMENTACJA STRATEGIA IOC BRANCH PER ABSTRACTION

JSON XML CSV SWITCH CONFIG

CONTINUOUS DEPLOYMENT - FEATURE SWITCH FEATURE SWITCH - CYKL ŻYCIA DODAJ SWITCH PRACUJ USUŃ SWITCH

FEATURE SWITCH BIZNESOWY

CONTINUOUS DEPLOYMENT - FEATURE SWITCH FEATURE SWITCH DASHBOARD dev test prod feature1 V V V feature2 X V V Feature3 V V X

CONTINUOUS DEPLOYMENT - FEATURE SWITCH DODATKOWE ZALETY SWITCHY Wyłączanie bugów Optymalizacja świąteczna Deploy, a release Testy A/B

V1.0 V1.0 V1.1 V1.1 Rollback ASAP as possible V1.0 V1.2 V1.2 ROLLBACK

CONTINUOUS DEPLOYMENT BRAMKI CI - Unit testy, analiza statyczna Test - Testy integracyjne, UI testy, api test Staging - wydajność, deploy

ZERO DOWNTIME

RELEASE

RELEASE GREEN BLUE DEPLOYMENT

BŁĘDY SERWERA BŁĘDY KLIENTA WYDAJNOŚĆ ZGŁOSZENIA UŻYTKOWNIKÓW MONITORING

RELEASE CANARY DEPLOYMENT

RELEASE CANARY DEPLOYMENT

RELEASE CANARY DEPLOYMENT

RELEASE CANARY DEPLOYMENT

BACKLOG RELEASE NOTES

CI/CD - CO TO? PO CO? JAK? NIE CHODZI O TO BY ZŁAPAĆ KRÓLICZKA, ALE BY GONIĆ GO! Skaldowie

PROŚBA PROSZĘ O OPINIĘ Email: kontakt@jerzywickowski.pl Blog: jerzywickowski.pl Instagram: jerzywickowski_pl YouTube, Twitter, Facebook

DZIĘKUJĘ PYTANIA?