TravisCI & Continuous Delivery,
czyli o tym, jak dostarczać szybciej
Maciek Papież, XSolve
Zacznijmy trochę filozoficznie...
“Programista bez wiary jest
jak podróżnik bez celu”
"Ja nie wierzę, że po tych
merdżach wszystko zadziała"
Gandalf Szary
Continuous Integration
Zasady są proste
Martin Fowler pisze...
Continous Integration ma miejsce wtedy, gdy:
1. Build jest zautomatyzowany.
2. Każdy commit z mastera jest budowany.
3. Każdy developer commituje do mastera codziennie.
Jenkins?
https://wiki.jenkins-ci.org/download/attachments/73533111/multi-branch.png?version=3
Jenkins może wszystko.
Girls plugin
https://wiki.jenkins-ci.org/download/attachments/43713848/Failure.JPG?version=1
Ale kto potrafi go skonfigurować?
3 osoby
Rosiu, Kamil Zieliński, ja.
TravisCI
Piątek z XSolve - TravisCI & Continuous Delivery
Łatwy w konfiguracji
Jest usługą świadczoną w chmurze
Jest bardzo rozpowszechniony
szczególnie wśród OSS
Jak zacząć?
1) Wybierz swoją platformę
(php / java / nodejs /
objective-c / go / python...)
2) Zaplanuj swój build
● jak ściągnąć zależności?
● jak uruchomić testy?
3) Stwórz .travis.yml w repo
Piątek z XSolve - TravisCI & Continuous Delivery
4) Podepnij repozytorium do Travisa
Piątek z XSolve - TravisCI & Continuous Delivery
5) Koniec!
Co tam można zrobić?
Budowanie Pull Requestów - out-of-box
Notyfikacje na Slacka - 2 linie
Szyfrowanie wrażliwych danych
Usługi - po 1 linii
Dostępne:
● MySQL
● PostgreSQL
● MongoDB
● Apache Cassandra
● Elasticsearch
● Redis
● RabbitMQ
● Neo4J
● SQLite3
Przykładowa konfiguracja:
(...)
services:
- mysql
- mongodb
- redis
(...)
Tyle, nic więcej ;)
Build matrix
PHP 5.5 PHP 5.6 PHP 7
MySQL 5.5 OK OK FAIL
MySQL 5.6 OK OK FAIL
MySQL 5.5 MySQL 5.6 PostgreSQL 9.3
JDK 7 OK OK OK
JDK 8 FAIL FAIL OK
Kontenery Dockera
Cache'owanie zależności
ale sprytne!
...i deployment!
Część 2. Ciekawsza ;)
Continuous delivery
Continuous delivery
vs.
Continuous deployment
Delivered
!=
Released, deployed
Build pipeline
http://dzikowski.github.io/assets/img/posts/continuous-delivery-deployment-sm.jpg
AWS CodeDeploy
● lekka usługa służąca do deploymentu
● źródło danych - S3 / Github
● inicjalizowanie instalacji
● łatwo podpiąć instancje EC2, można też on-premise
● proste i logiczne skryptowanie przebiegu instalacji
AWS CodeDeploy
Demo :)
Best practice
● artefakt (np. zip) jest generowany na samym początku
procesu i jest “nieświadomy” środowiska
● rozdzielenie konfiguracji od kodu
● wersjonowanie kodu, konfiguracji, infrastruktury,
schematów bazy danych
● zero manualnych ingerencji w środowisko TEST/PROD
Best practice
● skorzystanie z kontenerów może ułatwić zarządzanie
jednorodnością środowisk
● korzystaj z chmury i jej możliwości
● naucz się AWS CLI ;D
● database refactoring
Database refactoring
● baza danych musi zawsze wspierać wersje
N i N-1 aplikacji
● cel: zero downtime deployments
● http://databaserefactoring.com/ - gotowe przepisy
Database refactoring
Dzięki za uwagę!
Pytania?

More Related Content

PPTX
WEBINAR 3 # Pierwszy test automatyczny
PPT
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
PDF
Szybkie stawianie aplikacji z Elastic Beanstalk
PDF
Wprowadzenie do testów wydajnościowych w k6
PDF
Testowanie rozwiązań serverless z LocalStack
PDF
Ansible w praktyce
PDF
e2e frameworks - czyli kij ma dwa końce
PDF
Swoole w PHP. Czy to ma sens?
WEBINAR 3 # Pierwszy test automatyczny
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
Szybkie stawianie aplikacji z Elastic Beanstalk
Wprowadzenie do testów wydajnościowych w k6
Testowanie rozwiązań serverless z LocalStack
Ansible w praktyce
e2e frameworks - czyli kij ma dwa końce
Swoole w PHP. Czy to ma sens?

What's hot (20)

PPTX
Websites vs Cloud Services - OLMUG
PPTX
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio player
PPTX
[TestWarez 2017] Framework testowy aplikacji mobilnej dla systemu iOS - czy ...
PDF
Websockety w PHP
PDF
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
PDF
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
PDF
Hostory
PDF
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
PPTX
Jak nie zwariować z tymi pakietami
PPTX
Najczęściej popełniane błędy przy wykorzystywaniu IaaS w Microsoft Azure
PDF
Azure MXChip IoT DevKit
PDF
Wordpress i Vagrant. WordCamp Polska 2014
PDF
O Electronie słów kilka
PDF
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
PDF
PLNOG 7: Michał Jura - Linux Contextualization
PDF
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
PDF
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
PDF
Projektowanie i implementacja usług sieciowych
PDF
[TestWarez 2017] Architektura frameworka testowego
Websites vs Cloud Services - OLMUG
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio player
[TestWarez 2017] Framework testowy aplikacji mobilnej dla systemu iOS - czy ...
Websockety w PHP
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
Hostory
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
Jak nie zwariować z tymi pakietami
Najczęściej popełniane błędy przy wykorzystywaniu IaaS w Microsoft Azure
Azure MXChip IoT DevKit
Wordpress i Vagrant. WordCamp Polska 2014
O Electronie słów kilka
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
PLNOG 7: Michał Jura - Linux Contextualization
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
Projektowanie i implementacja usług sieciowych
[TestWarez 2017] Architektura frameworka testowego
Ad

Viewers also liked (7)

PDF
Xlab #1: Advantages of functional programming in Java 8
PDF
Xsolve presentation - programming, bodyleasing, e-commerce
PDF
Xlab #2: wzorce projektowe
PDF
How to be agile at Agile Hack?! - agilehack.pl
PDF
xlab #7 - ReactJS & NodeJS
PDF
xlab #8 - Architektura mikroserwisów na platformie Spring Boot
PDF
PHPCon 2016: PHP7 by Witek Adamus / XSolve
Xlab #1: Advantages of functional programming in Java 8
Xsolve presentation - programming, bodyleasing, e-commerce
Xlab #2: wzorce projektowe
How to be agile at Agile Hack?! - agilehack.pl
xlab #7 - ReactJS & NodeJS
xlab #8 - Architektura mikroserwisów na platformie Spring Boot
PHPCon 2016: PHP7 by Witek Adamus / XSolve
Ad

Similar to Piątek z XSolve - TravisCI & Continuous Delivery (20)

PPTX
Shall we play a game? PL version
PPSX
Webinar - Podstawy Node.js
PPTX
DevOps - what I have learnt so far
PDF
Slackware Linux. Ćwiczenia
PDF
university day 1
PDF
CI oraz CD w złożonym projekcie o małym budżecie
ODP
JavaEE + OSGi
PPTX
4 lata z Azure okiem Architekta
PDF
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
PPTX
Ciągłe Dostarcznie - Wprowadzenie
PPTX
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
PDF
Sekrety magicznego ogrodu Docker
PPTX
Use Azure DevOps to deploy Azure Function in Docker on Raspberry PI - dotNetC...
PDF
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
PDF
Daj się wyręczyć - Joomla Day Polska 2014
PPTX
Jak stworzyć udany system informatyczny
PPTX
Joomla Day Poland 15 - Docker
PDF
Docker reverse proxy z użyciem Traefik
PDF
Cisco. Receptury
ODP
Od Zera do Farmera
Shall we play a game? PL version
Webinar - Podstawy Node.js
DevOps - what I have learnt so far
Slackware Linux. Ćwiczenia
university day 1
CI oraz CD w złożonym projekcie o małym budżecie
JavaEE + OSGi
4 lata z Azure okiem Architekta
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Ciągłe Dostarcznie - Wprowadzenie
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
Sekrety magicznego ogrodu Docker
Use Azure DevOps to deploy Azure Function in Docker on Raspberry PI - dotNetC...
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Daj się wyręczyć - Joomla Day Polska 2014
Jak stworzyć udany system informatyczny
Joomla Day Poland 15 - Docker
Docker reverse proxy z użyciem Traefik
Cisco. Receptury
Od Zera do Farmera

More from XSolve (15)

PDF
Jak migrować kod legacy do Symfony? Tips & tricks
PPTX
How to Create an Agile Office
PDF
Xlab #10: Integracja zewnętrznych API z wykorzystaniem platformy Spring
PPTX
How to build a Tesla car for the price of a Chevrolet
PDF
Piątek z XSolve - Bezpieczne nagłówki HTTP
PDF
Grafowa baza danych i integracja z symfony
PDF
How to outsource Scrum projects - a guide
PDF
Prezentacja firmy XSolve - programowanie, e-commerce, bodyleasing
PDF
Dlaczego git to nie svn oraz dlaczego to dobrze ?
PDF
Programowanie zorientowane aspektowo
PDF
Agile estimating and planning
PDF
Tailoring of PRINCE2
PDF
Mongo db baza danych zorientowana dokumentowo
PDF
Debugowanie skryptow php za pomoca xdebug
POT
Zarządzanie projektami w XSolve
Jak migrować kod legacy do Symfony? Tips & tricks
How to Create an Agile Office
Xlab #10: Integracja zewnętrznych API z wykorzystaniem platformy Spring
How to build a Tesla car for the price of a Chevrolet
Piątek z XSolve - Bezpieczne nagłówki HTTP
Grafowa baza danych i integracja z symfony
How to outsource Scrum projects - a guide
Prezentacja firmy XSolve - programowanie, e-commerce, bodyleasing
Dlaczego git to nie svn oraz dlaczego to dobrze ?
Programowanie zorientowane aspektowo
Agile estimating and planning
Tailoring of PRINCE2
Mongo db baza danych zorientowana dokumentowo
Debugowanie skryptow php za pomoca xdebug
Zarządzanie projektami w XSolve

Piątek z XSolve - TravisCI & Continuous Delivery