26
Continous delivery

Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Continous delivery

Page 2: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Kim jestem?

Jakub Westfalewskiprogramista w Grupie Allegro

[email protected]@jwestfalewski

Page 3: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Continous Integration

● częste integrowanie zmian do głównego repozytorium

● binarne metryki przepuszczające zmiany

Page 4: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Magia kolorów

Page 5: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Continous Deployment

● ciągłe wdrażanie● rozszerzenie continous integration● zautomatyzowany proces wdrażania

Page 6: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

“One click deploy”? vs.

“No click deploy”?

Page 7: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

“One click deploy”? vs.

“No click deploy”?

Page 8: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Continous Delivery

● Zawsze gotowe do wdrożenia● Nie wszystko natychmiast dostępne na

produkcji● Continous Delivery oddaje narzędzi do

uruchamiania featurów na produkcji

Page 9: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

“On demand delivery”?vs.

“Continous delivery”?

Page 10: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

“On demand delivery”?vs.

“Continous delivery”?

Page 11: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

biznes -> releaseteam -> deploy

release != deploy

Page 12: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Prod = Test

Page 13: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Prod > Test

Page 14: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Scrum?

Page 15: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Scrum!

Page 16: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Metryki

Page 17: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Feature flags

● togglz (https://github.com/togglz/togglz)● ff4j (https://github.com/clun/ff4j)

lub nawet najprościej: if (Features.NEW_USER_STATS) {

//...

}

Page 18: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Czy feature flagi są ok?

TAK / NIE ** niepotrzebne skreślić

Page 19: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Feature flags - coś więcej

● on / off● czas - od, do● user● lokalizacja● random

Page 20: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Metryki x2

Page 21: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Alternatywy

● feature braches● wersjonowanie api

zawnętrzne narzędzie:● optimizely.com● appiterate.com

Page 22: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Gdzie znajdziemy CD?

● Facebook● Google● Allegro

Page 23: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Nie tylko internet...

● ...także desktopowe aplikacje:○ Google Chrome!

● mobile○ np. Android

Page 24: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Tools

Github -> gitTravis, Bamboo -> Integration, deploymentSonarQube -> technical debt, metricsHeroku, AppFog -> cloud, easy scaling

Page 25: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Podsumowując

● mniejsze ryzyko● mniejszy stres w trakcie wdrożeń● mały koszt -> duży profit● większy fun!

Page 26: Continous delivery - Toruń JUG...Feature flags togglz ( ff4j ( lub nawet najprościej: if (Features.NEW_USER_STATS) {//...}

Dzięki!!!

[email protected]@jwestfalewski