B u i l d a 1 2 F a c t o r M i c r o s e r v - - PowerPoint PPT Presentation

b u i l d a 1 2 f a c t o r m i c r o s e r v i c e i n a
SMART_READER_LITE
LIVE PREVIEW

B u i l d a 1 2 F a c t o r M i c r o s e r v - - PowerPoint PPT Presentation

B u i l d a 1 2 F a c t o r M i c r o s e r v i c e i n a n H o u r A n d r e w R o u s e : O p e n L i b e r t y D e v e l o p e r f o r M i c r o P r o f l e a n d


slide-1
SLIDE 1

B u i l d a 1 2 F a c t

  • r

M i c r

  • s

e r v i c e i n a n H

  • u

r

A n d r e w R

  • u

s e : O p e n L i b e r t y D e v e l

  • p

e r f

  • r

M i c r

  • P

r

  • f

l e a n d C D I , I B M @a z q u e l t

slide-2
SLIDE 2

C

  • n

t e n t s

B a s i c c

  • n

c e p t s

  • f

1 2 f a c t

  • r

a p p s D e mo

  • f

c r e a t i n g a 1 2 f a c t

  • r

mi c r

  • s

e r v i c e u s i n g M i c r

  • P

r

  • f

l e

slide-3
SLIDE 3

1 2 F a c t

  • r

s i n a n u t s h e l l

– A me t h

  • d
  • l
  • g

y – B e s t P r a c t i c e s – M a n i f e s t

  • h

t t p s : / / 1 2 f a c t

  • r

. n e t / b y H e r

  • k

u

slide-4
SLIDE 4

Wh y 1 2 f a c t

  • r

?

  • D

e f n e t h e c

  • n

t r a c t b e t w e e n a p p l i c a t i

  • n

s a n d i n f r a s t r u c t u r e

Application Infrastructure

slide-5
SLIDE 5

T H E F A C T O R S

1 .C

  • d

e b a s e 2 .D e p e n d e n c i e s 3 .C

  • n

f g 4 .B a c k i n g S e r v i c e s 5 .B u i l d , R e l e a s e , R u n 6 .P r

  • c

e s s e s 7 .P

  • r

t b i n d i n g 8 .C

  • n

c u r r e n c y 9 .D i s p

  • s

a b i l i t y 1 . D e v / P r

  • d

p a r i t y 1 1 . L

  • g

s 1 2 . A d mi n P r

  • c

e s s e s

slide-6
SLIDE 6

Wh y 1 2 f a c t

  • r

?

I n t h e mo d e r n e r a , s

  • f

t w a r e i s c

  • mmo

n l y d e l i v e r e d a s a s e r v i c e : c a l l e d w e b a p p s ,

  • r

s

  • f

t w a r e

  • a

s

  • a
  • s

e r v i c e . T h e t w e l v e

  • f

a c t

  • r

a p p i s a me t h

  • d
  • l
  • g

y f

  • r

b u i l d i n g s

  • f

t w a r e

  • a

s

  • a
  • s

e r v i c e a p p s t h a t : U s e d e c l a r a t i v e f

  • r

ma t s f

  • r

s e t u p a u t

  • ma

t i

  • n

, t

  • mi

n i mi z e t i me a n d c

  • s

t f

  • r

n e w d e v e l

  • p

e r s j

  • i

n i n g t h e p r

  • j

e c t ; H a v e a c l e a n c

  • n

t r a c t w i t h t h e u n d e r l y i n g

  • p

e r a t i n g s y s t e m,

  • f

f e r i n g ma x i mu m p

  • r

t a b i l i t y b e t w e e n e x e c u t i

  • n

e n v i r

  • n

me n t s ; A r e s u i t a b l e f

  • r

d e p l

  • y

me n t

  • n

mo d e r n c l

  • u

d p l a t f

  • r

ms ,

  • b

v i a t i n g t h e n e e d f

  • r

s e r v e r s a n d s y s t e ms a d mi n i s t r a t i

  • n

; M i n i mi z e d i v e r g e n c e b e t w e e n d e v e l

  • p

me n t a n d p r

  • d

u c t i

  • n

, e n a b l i n g c

  • n

t i n u

  • u

s d e p l

  • y

me n t f

  • r

ma x i mu m a g i l i t y ; A n d c a n s c a l e u p w i t h

  • u

t s i g n i f c a n t c h a n g e s t

  • t
  • l

i n g , a r c h i t e c t u r e ,

  • r

d e v e l

  • p

me n t p r a c t i c e s . T h e t w e l v e

  • f

a c t

  • r

me t h

  • d
  • l
  • g

y c a n b e a p p l i e d t

  • a

p p s w r i t t e n i n a n y p r

  • g

r a mmi n g l a n g u a g e , a n d w h i c h u s e a n y c

  • mb

i n a t i

  • n
  • f

b a c k i n g s e r v i c e s ( d a t a b a s e , q u e u e , me mo r y c a c h e , e t c ) .

F r

  • m

h t t p s : / / 1 2 f a c t

  • r

. n e t

slide-7
SLIDE 7

I . C

  • d

e b a s e

  • D

e d i c a t e s ma l l e r t e a ms t

  • i

n d i v i d u a l a p p l i c a t i

  • n

s

  • r

mi c r

  • s

e r v i c e s .

  • F
  • l

l

  • w

i n g t h e d i s c i p l i n e

  • f

s i n g l e r e p

  • s

i t

  • r

y f

  • r

a n a p p l i c a t i

  • n

f

  • r

c e s t h e t e a ms t

  • a

n a l y z e t h e s e a ms

  • f

t h e i r a p p l i c a t i

  • n

, a n d i d e n t i f y p

  • t

e n t i a l mo n

  • l

i t h s t h a t s h

  • u

l d b e s p l i t

  • f

f i n t

  • mi

c r

  • s

e r v i c e s . “ O n e c

  • d

e b a s e t r a c k e d i n r e v i s i

  • n

c

  • n

t r

  • l

, ma n y d e p l

  • y

s . ”

  • U

s e a s i n g l e s

  • u

r c e c

  • d

e r e p

  • s

i t

  • r

y f

  • r

a s i n g l e a p p l i c a t i

  • n

( 1 : 1 r e l a t i

  • n

) .

  • E

. g . u s e a c e n t r a l g i t r e p

slide-8
SLIDE 8

I I . D e p e n d e n c i e s

A c l

  • u

d

  • n

a t i v e a p p l i c a t i

  • n

d

  • e

s n

  • t

r e l y

  • n

t h e p r e

  • e

x i s t e n c e

  • f

d e p e n d e n c i e s i n a d e p l

  • y

me n t t a r g e t . D e v e l

  • p

e r T

  • l

s d e c l a r e a n d i s

  • l

a t e d e p e n d e n c i e s

  • M

a v e n a n d G r a d l e d e c l a r e J a v a l i b r a r y d e p e n d e n c i e s

  • D
  • c

k e r f l e d e c l a r e s d e p e n d e n c i e s

  • n

O S a n d

  • t

h e r t

  • l

s

  • E

a c h mi c r

  • s

e r v i c e d e c l a r e s i t s

  • w

n d e p e n d e n c i e s “ E x p l i c i t l y d e c l a r e a n d i s

  • l

a t e d e p e n d e n c i e s ”

slide-9
SLIDE 9

I I I . C

  • n

f g

“ S t

  • r

e c

  • n

f g i n t h e e n v i r

  • n

me n t ”

  • C

h a n g i n g c

  • n

f g s h

  • u

l d n

  • t

n e e d t

  • r

e p a c k a g e y

  • u

r a p p l i c a t i

  • n
  • U

s e K u b e r n e t e s c

  • n

f g ma p s a n d s e c r e t s f

  • r

c

  • n

t a i n e r s e r v i c e s , r a t h e r t h a n v a l u e s s p e c i f e d i n t h e a p p

  • r

c

  • n

t a i n e r i ma g e

  • U

s e M i c r

  • P

r

  • f

l e C

  • n

f g t

  • i

n j e c t t h e c

  • n

f g p r

  • p

e r t i e s i n t

  • t

h e mi c r

  • s

e r v i c e s

App Password=blah

slide-10
SLIDE 10

I V . B a c k i n g s e r v i c e s

“ T r e a t b a c k i n g s e r v i c e s a s a t t a c h e d r e s

  • u

r c e s ”

Application My SQL Amazon S3 Twitter

slide-11
SLIDE 11

V . B u i l d , r e l e a s e , r u n

“ S t r i c t l y s e p a r a t e b u i l d a n d r u n s t a g e s ”

  • S
  • u

r c e c

  • d

e i s u s e d i n t h e b u i l d s t a g e . C

  • n

f g u r a t i

  • n

d a t a i s a d d e d t

  • d

e f n e a r e l e a s e s t a g e t h a t c a n b e d e p l

  • y

e d . A n y c h a n g e s i n c

  • d

e

  • r

c

  • n

f g w i l l r e s u l t i n a n e w b u i l d / r e l e a s e

  • N

e e d s t

  • b

e c

  • n

s i d e r e d i n C I p i p e l i n e

I B M

  • U

r b a n C

  • d

e D e p l

  • y
  • I

B M C l

  • u

d C

  • n

t i n u

  • u

s D e l i v e r y S e r v i c e A z u r e

  • V

i s u a l S t u d i

  • T

e a m S e r v i c e s ( V S T S ) ( i n c l u d e s g i t )

  • We

b A p p f

  • r

C

  • n

t a i n e r s f e a t u r e

  • f

A z u r e A p p S e r v i c e A WS

  • A

WS C

  • d

e B u i l d

  • A

WS C

  • d

e D e p l

  • y
  • A

WS C

  • d

e P i p e l i n e ( n

  • t

y e t i n t e g r a t e d w i t h E K S )

slide-12
SLIDE 12

V I . P r

  • c

e s s e s

“ E x e c u t e t h e a p p a s

  • n

e

  • r

mo r e s t a t e l e s s p r

  • c

e s s e s ” ➢S t a t e l e s s a n d s h a r e

  • n
  • t

h i n g ➢A n y p e r s i s t e n c e u s e s a b a c k i n g s e r v i c e

D a t a b a s e

S h a r e d c a c h e

M e s s a g e q u e u e

slide-13
SLIDE 13

V I I . P

  • r

t b i n d i n g

“ E x p

  • r

t s e r v i c e s v i a p

  • r

t b i n d i n g ”

  • A

p p l i c a t i

  • n

s a r e f u l l y s e l f

  • c
  • n

t a i n e d a n d e x p

  • s

e s e r v i c e s

  • n

l y t h r

  • u

g h p

  • r

t s . P

  • r

t a s s i g n me n t i s d

  • n

e b y t h e e x e c u t i

  • n

e n v i r

  • n

me n t

  • I

n g r e s s / s e r v i c e d e f n i t i

  • n
  • f

k 8 s ma n a g e s ma p p i n g

  • f

p

  • r

t s

  • U

s e M P C

  • n

f g t

  • i

n j e c t p

  • r

t s t

  • mi

c r

  • s

e r v i c e s t

  • c
  • n

n e c t u p mi c r

  • s

e r v i c e s

P

  • r

t = 8

@I n j e c t @C

  • n

f g P r

  • p

e r t y ( n a me = ” p

  • r

t ” , d e f a u l t V a l u e = “ 9 8 ” )

slide-14
SLIDE 14

V I I I . C

  • n

c u r r e n c y

“ S c a l e

  • u

t v i a t h e p r

  • c

e s s mo d e l ”

  • A

p p l i c a t i

  • n

s u s e p r

  • c

e s s e s i n d e p e n d e n t f r

  • m

e a c h

  • t

h e r t

  • s

c a l e

  • u

t ( a l l

  • w

i n g f

  • r

l

  • a

d b a l a n c i n g )

  • T
  • b

e c

  • n

s i d e r e d i n a p p l i c a t i

  • n

d e s i g n

  • C

l

  • u

d a u t

  • s

c a l i n g s e r v i c e s : [ a u t

  • ]

s c a l i n g b u i l t i n t

  • k

8 s

  • B

u i l d mi c r

  • s

e r v i c e s

slide-15
SLIDE 15

I X . D i s p

  • s

a b i l i t y

“ M a x i mi z e r

  • b

u s t n e s s w i t h f a s t s t a r t u p a n d g r a c e f u l s h u t d

  • w

n ”

  • P

r

  • c

e s s e s s t a r t u p f a s t .

  • P

r

  • c

e s s e s s h u t d

  • w

n g r a c e f u l l y w h e n r e q u e s t e d .

  • P

r

  • c

e s s e s a r e r

  • b

u s t a g a i n s t s u d d e n d e a t h

  • E

n s u r e y

  • u

w

  • n

’ t l

  • s

e d a t a i f p a r t

  • f

y

  • u

r s y s t e m d i e s

  • U

s e M i c r

  • P

r

  • f

l e F a u l t T

  • l

e r a n c e t

  • ma

k e c a l l s t

  • t

h e r s e r v i c e s r e s i l i e n t

slide-16
SLIDE 16

X . D e v / p r

  • d

p a r i t y

“ K e e p d e v e l

  • p

me n t , s t a g i n g , a n d p r

  • d

u c t i

  • n

a s s i mi l a r a s p

  • s

s i b l e ”

  • D

e v e l

  • p

me n t a n d p r

  • d

u c t i

  • n

a r e a s c l

  • s

e a s p

  • s

s i b l e ( i n t e r ms

  • f

c

  • d

e , p e

  • p

l e , a n d e n v i r

  • n

me n t s )

  • C

a n u s e h e l m t

  • d

e p l

  • y

i n r e p e a t a b l e ma n n e r

  • U

s e ( n a me ) s p a c e s f

  • r

i s

  • l

a t i

  • n
  • f

s i mi l a r s e t u p s

slide-17
SLIDE 17

X I . L

  • g

s

“ T r e a t l

  • g

s a s e v e n t s t r e a ms ”

  • A

p p w r i t e s a l l l

  • g

s t

  • s

t d

  • u

t

  • U

s e a s t r u c t u r e d

  • u

t p u t f

  • r

me a n i n g f u l l

  • g

s s u i t a b l e f

  • r

a n a l y s i s . E x e c u t i

  • n

e n v i r

  • n

me n t h a n d l e s r

  • u

t i n g a n d a n a l y s i s i n f r a s t r u c t u r e

slide-18
SLIDE 18

X I I . A d mi n p r

  • c

e s s e s

“ R u n a d mi n / ma n a g e me n t t a s k s a s

  • n

e

  • f

f p r

  • c

e s s e s ”

  • T
  • l

i n g : s t a n d a r d k 8 s t

  • l

i n g l i k e “ k u b e c t l e x e c ”

  • r

K u b e r n e t e s J

  • b

s

  • A

l s

  • t
  • b

e c

  • n

s i d e r e d i n s

  • l

u t i

  • n

/ a p p l i c a t i

  • n

d e s i g n

  • F
  • r

e x a mp l e , i f a n a p p l i c a t i

  • n

n e e d s t

  • mi

g r a t e d a t a i n t

  • a

d a t a b a s e , p l a c e t h i s t a s k i n t

  • a

s e p a r a t e c

  • mp
  • n

e n t i n s t e a d

  • f

a d d i n g i t t

  • t

h e ma i n a p p l i c a t i

  • n

c

  • d

e a t s t a r t u p

slide-19
SLIDE 19

T H E F A C T O R S

1 .C

  • d

e b a s e 2 .D e p e n d e n c i e s 3 .C

  • n

f g 4 .B a c k i n g S e r v i c e s 5 .B u i l d , R e l e a s e , R u n 6 .P r

  • c

e s s e s 7 .P

  • r

t b i n d i n g 8 .C

  • n

c u r r e n c y 9 .D i s p

  • s

a b i l i t y 1 . D e v / P r

  • d

p a r i t y 1 1 . L

  • g

s 1 2 . A d mi n P r

  • c

e s s e s

slide-20
SLIDE 20

D E M O

1 .C r e a t e a R E S T a p p ( s t a t e l e s s , i n

  • n

e c

  • d

e b a s e ) 2 .D e c l a r e

  • u

r d e p e n d e n c i e s u s i n g M a v e n a n d D

  • c

k e r f l e

– I

n c l u d i n g O p e n L i b e r t y 3 .R e l e a s e a n d R u n b y d e p l

  • y

i n g w i t h c

  • n

f g t

  • K

u b e r n e t e s 4 .U p d a t e

  • u

r a p p t

  • c

a l l a n

  • t

h e r s e r v i c e 5 .D e p l

  • y

a g a i n w i t h s c a l i n g

1

Codebase

2

Deps

3

Config

4

Backing Service

5

Build Release Run

6

Stateless

7

Port Binding

8

Scaling

9

Disposability

10

Prod, Dev, Staging

11

Logs

12

Admin Processes

12 FACTOR BINGO 12 FACTOR BINGO

slide-21
SLIDE 21

R e f e r e n c e s

  • C
  • d

e s a mp l e t

  • d

e mo n s t r a t e 1 2

  • f

a c t

  • r

a p p

  • h

t t p s : / / g i t h u b . c

  • m/

A z q u e l t / 1 2 f a c t

  • r
  • d

e p l

  • y

me n t

  • h

t t p s : / / g i t h u b . c

  • m/

A z q u e l t / 1 2 f a c t

  • r
  • a

p p

  • a
  • h

t t p s : / / g i t h u b . c

  • m/

A z q u e l t / 1 2 f a c t

  • r
  • a

p p

  • b
  • h

t t p : / / mi c r

  • p

r

  • f

l e . i

  • h

t t p : / /

  • p

e n l i b e r t y . i

  • (

e s p e c i a l l y g u i d e s )

  • h

t t p s : / / w w w . 1 2 f a c t

  • r

. n e t /

microservice Infrastructure K8s

slide-22
SLIDE 22

1 2 f a c t

  • r

a p p

  • U

s e M i c r

  • P

r

  • f

l e a n d K 8 s t

  • b

u i l d a mi c r

  • s

e r v i c e = > 1 2 f a c t

  • r

a p p

microservice Infrastructure K8s

slide-23
SLIDE 23

M i c r

  • P

r

  • f

l e C

  • n

f g

Wh y ?

– C

  • n

f g u r e M i c r

  • s

e r v i c e w i t h

  • u

t r e p a c k i n g t h e a p p l i c a t i

  • n

H

  • w

?

– S p e c i f y t h e c

  • n

f g u r a t i

  • n

i n c

  • n

f g u r a t i

  • n

s

  • u

r c e s – A c c e s s c

  • n

f g u r a t i

  • n

v i a

  • P

r

  • g

r a mma t i c l

  • k

u p Config config = ConfigProvider.getConfig(); config.getValue(“myProp”, String.class);

  • C

D I I n j e c t i

  • n

@Inject @ConfigProperty(name="my.string.property") String myProp;

slide-24
SLIDE 24

M i c r

  • P

r

  • f

l e C

  • n

f g

S t a t i c C

  • n

f g D y n a mi c C

  • n

f g

@Inject @ConfiProperty(name="myStaticProp") private Strini staticProp; @Inject @ConfiProperty(name="myDynamicProp") private Provider<Strini> dynamicProp;

mi c r

  • p

r

  • f

l e

  • c
  • n

f g . p r

  • p

e r t i e s

my S t a t i c P r

  • p

= d e f a u l t S V a l u e my D y n a mi c P r

  • p

= d e f a u l t D V a l u e

J a v a O p t i

  • n

s

  • D

my S t a t i c P r

  • p

= c u s t

  • mS

V a l u e

  • D

my D y n a mi c P r

  • p

= c u s t

  • mD

V a l u e

  • v

e r r i d e s

slide-25
SLIDE 25

M i c r

  • P

r

  • f

l e F a u l t T

  • l

e r a n c e

A s

  • l

u t i

  • n

t

  • b

u i l d a r e s i l i e n t mi c r

  • s

e r v i c e  R e t r y

  • @Retry

 C i r c u i t B r e a k e r

  • @CircuitBreaker

 B u l k H e a d

  • @Bulkhead

 T i me

  • u

t

  • @Timeout

 F a l l b a c k

  • @Fallback
slide-26
SLIDE 26

B a c k u p : U s i n g I B M C l

  • u

d P r i v a t e

C

  • d

e b a s e S

  • u

r c e : G i t h u b E n t e r p r i s e , g i t h u b I ma g e s : a n y r e g i s t r y , I B M C l

  • u

d p r i v a t e r e g i s t r y D e p e n d e n c i e s D e p e n d e n c y ma n a g e me n t

  • f

l a n g u a g e e n v i r

  • n

me n t ; c

  • n

t a i n e r b u i l d p r

  • c

e s s f

  • r

r e p e a t a b l e i n c l u s i

  • n
  • f

d e p e n d e n c i e s C

  • n

fi g k 8 s c

  • n

f g ma p s a n d s e c r e t s B a c k i n g s e r v i c e s U s e c

  • n

f g u r a t i

  • n

( s e e p r e v i

  • u

s f a c t

  • r

) t

  • d

e f n e t a r g e t s e r v e r a s u s e d b y a p p l i c a t i

  • n

B u i l d , r e l e a s e , r u n U r b a n C

  • d

e D e p l

  • y

U r b a n C

  • d

e R e l e a s e P l u s k 8 s me c h a n i s ms w i t h C I t

  • l

i n g P r

  • c

e s s e s T

  • b

e c

  • n

s i d e r e d i n a p p l i c a t i

  • n

d e s i g n P

  • r

t b i n d i n g A p p l i c a t i

  • n

n e e d s t

  • e

x p

  • s

e p

  • r

t s . I n g r e s s / s e r v i c e d e f n i t i

  • n
  • f

k 8 s ma n a g e s ma p p i n g

  • f

p

  • r

t s C

  • n

c u r r e n c y A p p d e s i g n ( [ a u t

  • ]

s c a l i n g b u i l t i n t

  • k

8 s ) D i s p

  • s

a b i l i t y A p p d e s i g n D e v / p r

  • d

p a r i t y C a n u s e h e l m t

  • d

e p l

  • y

i n s a me w a y . N a me s p a c e s f

  • r

i s

  • l

a t i

  • n
  • f

s i mi l a r a r e a s L

  • g

s E L K a s p a r t

  • f

I C P (

  • r

R Y O ) A d mi n p r

  • c

e s s e s A p p d e s i g n ; s t a n d a r d k 8 s t

  • l

i n g l i k e “ k u b e c t l e x e c ”

  • r

K u b e r n e t e s J

  • b

s

slide-27
SLIDE 27

B u i l d a 1 2 F a c t

  • r

M i c r

  • s

e r v i c e i n a n H

  • u

r

A n d r e w R

  • u

s e : O p e n L i b e r t y D e v e l

  • p

e r f

  • r

M i c r

  • P

r

  • f

l e a n d C D I , I B M @a z q u e l t

1

slide-28
SLIDE 28

C

  • n

t e n t s

B a s i c c

  • n

c e p t s

  • f

1 2 f a c t

  • r

a p p s D e mo

  • f

c r e a t i n g a 1 2 f a c t

  • r

mi c r

  • s

e r v i c e u s i n g M i c r

  • P

r

  • f

l e

slide-29
SLIDE 29

1 2 F a c t

  • r

s i n a n u t s h e l l

– A me t h

  • d
  • l
  • g

y – B e s t P r a c t i c e s – M a n i f e s t

  • h

t t p s : / / 1 2 f a c t

  • r

. n e t / b y H e r

  • k

u

slide-30
SLIDE 30

Wh y 1 2 f a c t

  • r

?

  • D

e f n e t h e c

  • n

t r a c t b e t w e e n a p p l i c a t i

  • n

s a n d i n f r a s t r u c t u r e

Application Infrastructure
  • Application design influences the infrastructure

required (Kubernetes, Database selection, etc…)

  • Application design guides price; a cloud-native

application can be resilient without surplus infrastructure

  • Some services are provided by an application

but some are provided from the infrastructure

  • Applications depend on the features and

services of infrastructure to support agile development.

  • Infrastructure requires applications to

expose endpoints and integrations to be managed autonomously (e.g. Kubenetes asks applications to expose health endpoint)

  • Increased resource and memory consumption
  • f independently running components that

4

slide-31
SLIDE 31

T H E F A C T O R S

1 .C

  • d

e b a s e 2 .D e p e n d e n c i e s 3 .C

  • n

f g 4 .B a c k i n g S e r v i c e s 5 .B u i l d , R e l e a s e , R u n 6 .P r

  • c

e s s e s 7 .P

  • r

t b i n d i n g 8 .C

  • n

c u r r e n c y 9 .D i s p

  • s

a b i l i t y 1 . D e v / P r

  • d

p a r i t y 1 1 . L

  • g

s 1 2 . A d mi n P r

  • c

e s s e s

5

slide-32
SLIDE 32

Wh y 1 2 f a c t

  • r

?

I n t h e mo d e r n e r a , s

  • f

t w a r e i s c

  • mmo

n l y d e l i v e r e d a s a s e r v i c e : c a l l e d w e b a p p s ,

  • r

s

  • f

t w a r e

  • a

s

  • a
  • s

e r v i c e . T h e t w e l v e

  • f

a c t

  • r

a p p i s a me t h

  • d
  • l
  • g

y f

  • r

b u i l d i n g s

  • f

t w a r e

  • a

s

  • a
  • s

e r v i c e a p p s t h a t : U s e d e c l a r a t i v e f

  • r

ma t s f

  • r

s e t u p a u t

  • ma

t i

  • n

, t

  • mi

n i mi z e t i me a n d c

  • s

t f

  • r

n e w d e v e l

  • p

e r s j

  • i

n i n g t h e p r

  • j

e c t ; H a v e a c l e a n c

  • n

t r a c t w i t h t h e u n d e r l y i n g

  • p

e r a t i n g s y s t e m,

  • f

f e r i n g ma x i mu m p

  • r

t a b i l i t y b e t w e e n e x e c u t i

  • n

e n v i r

  • n

me n t s ; A r e s u i t a b l e f

  • r

d e p l

  • y

me n t

  • n

mo d e r n c l

  • u

d p l a t f

  • r

ms ,

  • b

v i a t i n g t h e n e e d f

  • r

s e r v e r s a n d s y s t e ms a d mi n i s t r a t i

  • n

; M i n i mi z e d i v e r g e n c e b e t w e e n d e v e l

  • p

me n t a n d p r

  • d

u c t i

  • n

, e n a b l i n g c

  • n

t i n u

  • u

s d e p l

  • y

me n t f

  • r

ma x i mu m a g i l i t y ; A n d c a n s c a l e u p w i t h

  • u

t s i g n i f c a n t c h a n g e s t

  • t
  • l

i n g , a r c h i t e c t u r e ,

  • r

d e v e l

  • p

me n t p r a c t i c e s . T h e t w e l v e

  • f

a c t

  • r

me t h

  • d
  • l
  • g

y c a n b e a p p l i e d t

  • a

p p s w r i t t e n i n a n y p r

  • g

r a mmi n g l a n g u a g e , a n d w h i c h u s e a n y c

  • mb

i n a t i

  • n
  • f

b a c k i n g s e r v i c e s ( d a t a b a s e , q u e u e , me mo r y c a c h e , e t c ) .

F r
  • m
h t t p s : / / 1 2 f a c t
  • r
. n e t

6

slide-33
SLIDE 33

I . C

  • d

e b a s e

  • D

e d i c a t e s ma l l e r t e a ms t

  • i

n d i v i d u a l a p p l i c a t i

  • n

s

  • r

mi c r

  • s

e r v i c e s .

  • F
  • l

l

  • w

i n g t h e d i s c i p l i n e

  • f

s i n g l e r e p

  • s

i t

  • r

y f

  • r

a n a p p l i c a t i

  • n

f

  • r

c e s t h e t e a ms t

  • a

n a l y z e t h e s e a ms

  • f

t h e i r a p p l i c a t i

  • n

, a n d i d e n t i f y p

  • t

e n t i a l mo n

  • l

i t h s t h a t s h

  • u

l d b e s p l i t

  • f

f i n t

  • mi

c r

  • s

e r v i c e s . “ O n e c

  • d

e b a s e t r a c k e d i n r e v i s i

  • n

c

  • n

t r

  • l

, ma n y d e p l

  • y

s . ”

  • U

s e a s i n g l e s

  • u

r c e c

  • d

e r e p

  • s

i t

  • r

y f

  • r

a s i n g l e a p p l i c a t i

  • n

( 1 : 1 r e l a t i

  • n

) .

  • E
. g . u s e a c e n t r a l g i t r e p
  • A codebase is any single repo (in a centralized revision control system like

Subversion), or any set of repos who share a root commit (in a decentralized system like Git where changes are committed.) Also in Git – scenario of repository per package/service.

multiple repository a d v a n t a g e s :

  • C

l e a r

  • w

n e r s h i p : t e a m t h a t

  • w

n s a s e r v i c e i s c l e a r l y r e s p

  • n

s i b l e f

  • r

i n d e p e n d e n t l y d e v e l

  • p

a n d d e p l

  • y

t h e f u l l s t a c k

  • f

t h a t s e r v i c e

  • S

ma l l e r c

  • d

e b a s e : S e p a r a t e r e p

  • s

i t

  • r

i e s f

  • r

a s e r v i c e l e a d s t

  • s

ma l l e r c

  • d

e b a s e a n d l e s s e r c

  • mp

l e x i t y d u r i n g c

  • d

e me r g e .

  • N

a r r

  • w

c l

  • n

e s : f a s t e r D e v O p s a n d a u t

  • ma

t e d b u i l d a n d r e l e a s e s a s s ma l l e r c

  • d

e b a s e me a n s l e s s c

  • d

e d

  • w

n l

  • a

d / c l

  • n

e t i me

mu l t i p l e r e p

  • s

i t

  • r

y d i s a d v a n t a g e s :

D i f fi c u l t d e v e l

  • p

me n t a n d d e b u g g i n g : d e v e l

  • p

me n t , c r

  • s

s t e a m c

  • mmu

n i c a t i

  • n

s a n d s h a r e d c

  • d

e s a r e d i f f c u l t t

  • ma

i n t a i n a n d t h u s d e v e l

  • p

me n t a n d d e b u g g i n g c a n b e a n i s s u e A b s t r a c t s t h e k n

  • w

l e d g e

  • f

t h e p l a t f

  • r

m: S i n c e e a c h t e a m i s

  • n

l y r e s p

  • n

s i b l e f

  • r

a s i n g l e s e r v i c e , i n t e g r a t i

  • n

b e c

  • me

s a n i s s u e a n d k n

  • w

l e d g e

  • f

t h e p l a t f

  • r

m c a n d e c r e a s e M u l t i p l e E v e r y t h i n g : M u l t i p l e d e p e n d e n c i e s , d u p l i c a t i

  • n

a n d i n t e g r a t i

  • n

s 7

slide-34
SLIDE 34

I I . D e p e n d e n c i e s

A c l

  • u

d

  • n

a t i v e a p p l i c a t i

  • n

d

  • e

s n

  • t

r e l y

  • n

t h e p r e

  • e

x i s t e n c e

  • f

d e p e n d e n c i e s i n a d e p l

  • y

me n t t a r g e t . D e v e l

  • p

e r T

  • l

s d e c l a r e a n d i s

  • l

a t e d e p e n d e n c i e s

  • M

a v e n a n d G r a d l e d e c l a r e J a v a l i b r a r y d e p e n d e n c i e s

  • D
  • c

k e r f l e d e c l a r e s d e p e n d e n c i e s

  • n

O S a n d

  • t

h e r t

  • l

s

  • E

a c h mi c r

  • s

e r v i c e d e c l a r e s i t s

  • w

n d e p e n d e n c i e s “ E x p l i c i t l y d e c l a r e a n d i s

  • l

a t e d e p e n d e n c i e s ”

slide-35
SLIDE 35

I I I . C

  • n

f g

“ S t

  • r

e c

  • n

f g i n t h e e n v i r

  • n

me n t ”

  • C

h a n g i n g c

  • n

f g s h

  • u

l d n

  • t

n e e d t

  • r

e p a c k a g e y

  • u

r a p p l i c a t i

  • n
  • U

s e K u b e r n e t e s c

  • n

f g ma p s a n d s e c r e t s f

  • r

c

  • n

t a i n e r s e r v i c e s , r a t h e r t h a n v a l u e s s p e c i f e d i n t h e a p p

  • r

c

  • n

t a i n e r i ma g e

  • U

s e M i c r

  • P

r

  • f

l e C

  • n

f g t

  • i

n j e c t t h e c

  • n

f g p r

  • p

e r t i e s i n t

  • t

h e mi c r

  • s

e r v i c e s

App Password=blah

D

  • t

h e s e ma k e s e n s e ? – H J ( s t r u g g l i n g h

  • w

t h e s e

  • f

f e r i n g s h e l p p u s h i n g c

  • n

fi g u r a t i

  • n

s – u b ) L e t ’ s l e a v e t h e m b e c a u s e w e h a v e t h e s p a c e . I ’ m n

  • t

r e a l l y a t t a c h e d t

  • t

h e m, s

  • w

e c a n d e l e t e …

9

slide-36
SLIDE 36

I V . B a c k i n g s e r v i c e s

“ T r e a t b a c k i n g s e r v i c e s a s a t t a c h e d r e s

  • u

r c e s ”

Application My SQL Amazon S3 Twitter
  • A backing service is any service on which an application relies (data

stores, messaging systems, caching systems, security services)

  • U

s e c

  • n

f g u r a t i

  • n

( s e e f a c t

  • r

I I I ) t

  • d

e f n e t a r g e t s e r v i c e a s u s e d b y a p p l i c a t i

  • n

. C

  • n

f g u r a t i

  • n

d e f n e s a c c e s s t

  • a

b a c k i n g s e r v i c e

  • R

e s

  • u

r c e B i n d i n g s h

  • u

l d b e d

  • n

e v i a e x t e r n a l c

  • n

f g u r a t i

  • n

.

  • A

t t a c h a n d d e t a c h b a c k i n g s e r v i c e s f r

  • m

a n a p p l i c a t i

  • n

a t w i l l , w i t h

  • u

t r e

  • d

e p l

  • y

i n g t h e a p p l i c a t i

  • n

.

  • F

a u l t T

  • l

e r a n c e p a t t e r n : a l l

  • w

c

  • d

e t

  • s

t

  • p

c

  • mmu

n i c a t i n g w i t h mi s b e h a v i n g b a c k i n g s e r v i c e s , p r

  • v

i d i n g a f a l l b a c k p a t h

10

slide-37
SLIDE 37

V . B u i l d , r e l e a s e , r u n

“ S t r i c t l y s e p a r a t e b u i l d a n d r u n s t a g e s ”

  • S
  • u

r c e c

  • d

e i s u s e d i n t h e b u i l d s t a g e . C

  • n

f g u r a t i

  • n

d a t a i s a d d e d t

  • d

e f n e a r e l e a s e s t a g e t h a t c a n b e d e p l

  • y

e d . A n y c h a n g e s i n c

  • d

e

  • r

c

  • n

f g w i l l r e s u l t i n a n e w b u i l d / r e l e a s e

  • N

e e d s t

  • b

e c

  • n

s i d e r e d i n C I p i p e l i n e

I B M

  • U

r b a n C

  • d

e D e p l

  • y
  • I

B M C l

  • u

d C

  • n

t i n u

  • u

s D e l i v e r y S e r v i c e A z u r e

  • V

i s u a l S t u d i

  • T

e a m S e r v i c e s ( V S T S ) ( i n c l u d e s g i t )

  • We

b A p p f

  • r

C

  • n

t a i n e r s f e a t u r e

  • f

A z u r e A p p S e r v i c e A WS

  • A

WS C

  • d

e B u i l d

  • A

WS C

  • d

e D e p l

  • y
  • A

WS C

  • d

e P i p e l i n e ( n

  • t

y e t i n t e g r a t e d w i t h E K S )

slide-38
SLIDE 38

V I . P r

  • c

e s s e s

“ E x e c u t e t h e a p p a s

  • n

e

  • r

mo r e s t a t e l e s s p r

  • c

e s s e s ” ➢S t a t e l e s s a n d s h a r e

  • n
  • t

h i n g ➢A n y p e r s i s t e n c e u s e s a b a c k i n g s e r v i c e

D a t a b a s e

S h a r e d c a c h e

M e s s a g e q u e u e

  • C
  • mp
  • n

e n t s a r e s t a t e l e s s a n d s h a r e d

  • n
  • t

h i n g . S t a t e c a n b e p u t i n a s t a t e f u l b a c k i n g s e r v i c e ( d a t a b a s e )

  • S

t a t e l e s s c

  • mp
  • n

e n t s c a n b e r e p l a c e d q u i c k l y i f t h e y f a i l

  • A

v

  • i

d d e p e n d e n c i e s

  • n

s t i c k y s e s s i

  • n

s a n d k e e p s e s s i

  • n

d a t a i n a p e r s i s t e n t s t

  • r

e t

  • e

n s u r e t r a f f c c a n b e r

  • u

t e d t

  • t

h e r p r

  • c

e s s e s w i t h

  • u

t s e r v i c e d i s r u p t i

  • n
  • T
  • b

e c

  • n

s i d e r e d i n a p p l i c a t i

  • n

d e s i g n b y t h e d e v e l

  • p

e r , n

  • t

i n C l

  • u

d r

  • l

l

  • u

t 12

slide-39
SLIDE 39

V I I . P

  • r

t b i n d i n g

“ E x p

  • r

t s e r v i c e s v i a p

  • r

t b i n d i n g ”

  • A

p p l i c a t i

  • n

s a r e f u l l y s e l f

  • c
  • n

t a i n e d a n d e x p

  • s

e s e r v i c e s

  • n

l y t h r

  • u

g h p

  • r

t s . P

  • r

t a s s i g n me n t i s d

  • n

e b y t h e e x e c u t i

  • n

e n v i r

  • n

me n t

  • I

n g r e s s / s e r v i c e d e f n i t i

  • n
  • f

k 8 s ma n a g e s ma p p i n g

  • f

p

  • r

t s

  • U

s e M P C

  • n

f g t

  • i

n j e c t p

  • r

t s t

  • mi

c r

  • s

e r v i c e s t

  • c
  • n

n e c t u p mi c r

  • s

e r v i c e s

P

  • r

t = 8

@I n j e c t @C
  • n
f g P r
  • p
e r t y ( n a me = ” p
  • r
t ” , d e f a u l t V a l u e = “ 9 8 ” )
slide-40
SLIDE 40

V I I I . C

  • n

c u r r e n c y

“ S c a l e

  • u

t v i a t h e p r

  • c

e s s mo d e l ”

  • A

p p l i c a t i

  • n

s u s e p r

  • c

e s s e s i n d e p e n d e n t f r

  • m

e a c h

  • t

h e r t

  • s

c a l e

  • u

t ( a l l

  • w

i n g f

  • r

l

  • a

d b a l a n c i n g )

  • T
  • b

e c

  • n

s i d e r e d i n a p p l i c a t i

  • n

d e s i g n

  • C

l

  • u

d a u t

  • s

c a l i n g s e r v i c e s : [ a u t

  • ]

s c a l i n g b u i l t i n t

  • k

8 s

  • B

u i l d mi c r

  • s

e r v i c e s

slide-41
SLIDE 41

I X . D i s p

  • s

a b i l i t y

“ M a x i mi z e r

  • b

u s t n e s s w i t h f a s t s t a r t u p a n d g r a c e f u l s h u t d

  • w

n ”

  • P

r

  • c

e s s e s s t a r t u p f a s t .

  • P

r

  • c

e s s e s s h u t d

  • w

n g r a c e f u l l y w h e n r e q u e s t e d .

  • P

r

  • c

e s s e s a r e r

  • b

u s t a g a i n s t s u d d e n d e a t h

  • E

n s u r e y

  • u

w

  • n

’ t l

  • s

e d a t a i f p a r t

  • f

y

  • u

r s y s t e m d i e s

  • U

s e M i c r

  • P

r

  • f

l e F a u l t T

  • l

e r a n c e t

  • ma

k e c a l l s t

  • t

h e r s e r v i c e s r e s i l i e n t

slide-42
SLIDE 42

X . D e v / p r

  • d

p a r i t y

“ K e e p d e v e l

  • p

me n t , s t a g i n g , a n d p r

  • d

u c t i

  • n

a s s i mi l a r a s p

  • s

s i b l e ”

  • D

e v e l

  • p

me n t a n d p r

  • d

u c t i

  • n

a r e a s c l

  • s

e a s p

  • s

s i b l e ( i n t e r ms

  • f

c

  • d

e , p e

  • p

l e , a n d e n v i r

  • n

me n t s )

  • C

a n u s e h e l m t

  • d

e p l

  • y

i n r e p e a t a b l e ma n n e r

  • U

s e ( n a me ) s p a c e s f

  • r

i s

  • l

a t i

  • n
  • f

s i mi l a r s e t u p s

slide-43
SLIDE 43

X I . L

  • g

s

“ T r e a t l

  • g

s a s e v e n t s t r e a ms ”

  • A

p p w r i t e s a l l l

  • g

s t

  • s

t d

  • u

t

  • U

s e a s t r u c t u r e d

  • u

t p u t f

  • r

me a n i n g f u l l

  • g

s s u i t a b l e f

  • r

a n a l y s i s . E x e c u t i

  • n

e n v i r

  • n

me n t h a n d l e s r

  • u

t i n g a n d a n a l y s i s i n f r a s t r u c t u r e

slide-44
SLIDE 44

X I I . A d mi n p r

  • c

e s s e s

“ R u n a d mi n / ma n a g e me n t t a s k s a s

  • n

e

  • f

f p r

  • c

e s s e s ”

  • T
  • l

i n g : s t a n d a r d k 8 s t

  • l

i n g l i k e “ k u b e c t l e x e c ”

  • r

K u b e r n e t e s J

  • b

s

  • A

l s

  • t
  • b

e c

  • n

s i d e r e d i n s

  • l

u t i

  • n

/ a p p l i c a t i

  • n

d e s i g n

  • F
  • r

e x a mp l e , i f a n a p p l i c a t i

  • n

n e e d s t

  • mi

g r a t e d a t a i n t

  • a

d a t a b a s e , p l a c e t h i s t a s k i n t

  • a

s e p a r a t e c

  • mp
  • n

e n t i n s t e a d

  • f

a d d i n g i t t

  • t

h e ma i n a p p l i c a t i

  • n

c

  • d

e a t s t a r t u p

slide-45
SLIDE 45

T H E F A C T O R S

1 .C

  • d

e b a s e 2 .D e p e n d e n c i e s 3 .C

  • n

f g 4 .B a c k i n g S e r v i c e s 5 .B u i l d , R e l e a s e , R u n 6 .P r

  • c

e s s e s 7 .P

  • r

t b i n d i n g 8 .C

  • n

c u r r e n c y 9 .D i s p

  • s

a b i l i t y 1 . D e v / P r

  • d

p a r i t y 1 1 . L

  • g

s 1 2 . A d mi n P r

  • c

e s s e s

19

slide-46
SLIDE 46

D E M O

1 .C r e a t e a R E S T a p p ( s t a t e l e s s , i n

  • n

e c

  • d

e b a s e ) 2 .D e c l a r e

  • u

r d e p e n d e n c i e s u s i n g M a v e n a n d D

  • c

k e r f l e

– I

n c l u d i n g O p e n L i b e r t y 3 .R e l e a s e a n d R u n b y d e p l

  • y

i n g w i t h c

  • n

f g t

  • K

u b e r n e t e s 4 .U p d a t e

  • u

r a p p t

  • c

a l l a n

  • t

h e r s e r v i c e 5 .D e p l

  • y

a g a i n w i t h s c a l i n g

1

Codebase

2

Deps

3

Config

4

Backing Service

5

Build Release Run

6

Stateless

7

Port Binding

8

Scaling

9

Disposability

10

Prod, Dev, Staging

11

Logs

12

Admin Processes

12 FACTOR BINGO 12 FACTOR BINGO

Not covering 10 or 12 because… We will create a REST app which is *stateless and has *one codebase Declare our *dependencies using maven and a Dockerfile Includes OpenLiberty which will take care of *binding to a port, starting up quickly and shutting down gracefully which is important for *disposability, and will *log to stdout We will then build our app before doing a *release and run by deploying the app with its config to kubernetes Then we’ll update our app to call another service which we’ll treat as an *attached backing service And finally we’ll deploy it again and demonstrate *scaling with Kubernetes Hopefully allowing us to achieve *12 Factor Bingo!

20

slide-47
SLIDE 47

R e f e r e n c e s

  • C
  • d

e s a mp l e t

  • d

e mo n s t r a t e 1 2

  • f

a c t

  • r

a p p

  • h
t t p s : / / g i t h u b . c
  • m/
A z q u e l t / 1 2 f a c t
  • r
  • d
e p l
  • y
me n t
  • h
t t p s : / / g i t h u b . c
  • m/
A z q u e l t / 1 2 f a c t
  • r
  • a
p p
  • a
  • h
t t p s : / / g i t h u b . c
  • m/
A z q u e l t / 1 2 f a c t
  • r
  • a
p p
  • b
  • h

t t p : / / mi c r

  • p

r

  • f

l e . i

  • h

t t p : / /

  • p

e n l i b e r t y . i

  • (

e s p e c i a l l y g u i d e s )

  • h

t t p s : / / w w w . 1 2 f a c t

  • r

. n e t /

microservice Infrastructure K8s
  • Application design influences the infrastructure

required (Kubernetes, Database selection, etc…)

  • Application design guides price; a cloud-native

application can be resilient without surplus infrastructure

  • Some services are provided by an application

but some are provided from the infrastructure

  • Applications depend on the features and

services of infrastructure to support agile development.

  • Infrastructure requires applications to

expose endpoints and integrations to be managed autonomously (e.g. Kubenetes asks applications to expose health endpoint)

  • Increased resource and memory consumption
  • f independently running components that

21

slide-48
SLIDE 48

1 2 f a c t

  • r

a p p

  • U

s e M i c r

  • P

r

  • f

l e a n d K 8 s t

  • b

u i l d a mi c r

  • s

e r v i c e = > 1 2 f a c t

  • r

a p p

microservice Infrastructure K8s
  • Application design influences the infrastructure

required (Kubernetes, Database selection, etc…)

  • Application design guides price; a cloud-native

application can be resilient without surplus infrastructure

  • Some services are provided by an application

but some are provided from the infrastructure

  • Applications depend on the features and

services of infrastructure to support agile development.

  • Infrastructure requires applications to

expose endpoints and integrations to be managed autonomously (e.g. Kubenetes asks applications to expose health endpoint)

  • Increased resource and memory consumption
  • f independently running components that

22

slide-49
SLIDE 49

M i c r

  • P

r

  • f

l e C

  • n

f g

Wh y ?

– C

  • n

f g u r e M i c r

  • s

e r v i c e w i t h

  • u

t r e p a c k i n g t h e a p p l i c a t i

  • n

H

  • w

?

– S p e c i f y t h e c

  • n

f g u r a t i

  • n

i n c

  • n

f g u r a t i

  • n

s

  • u

r c e s – A c c e s s c

  • n

f g u r a t i

  • n

v i a

  • P

r

  • g

r a mma t i c l

  • k

u p Config config = ConfigProvider.getConfig(); config.getValue(“myProp”, String.class);

  • C

D I I n j e c t i

  • n

@Inject @ConfigProperty(name="my.string.property") String myProp;

23

slide-50
SLIDE 50

M i c r

  • P

r

  • f

l e C

  • n

f g

S t a t i c C

  • n

f g D y n a mi c C

  • n

f g

@Inject @ConfiProperty(name="myStaticProp") private Strini staticProp; @Inject @ConfiProperty(name="myDynamicProp") private Provider<Strini> dynamicProp;

mi c r
  • p
r
  • f
l e
  • c
  • n
f g . p r
  • p
e r t i e s my S t a t i c P r
  • p
= d e f a u l t S V a l u e my D y n a mi c P r
  • p
= d e f a u l t D V a l u e J a v a O p t i
  • n
s
  • D
my S t a t i c P r
  • p
= c u s t
  • mS
V a l u e
  • D
my D y n a mi c P r
  • p
= c u s t
  • mD
V a l u e
  • v

e r r i d e s

slide-51
SLIDE 51

M i c r

  • P

r

  • f

l e F a u l t T

  • l

e r a n c e

A s

  • l

u t i

  • n

t

  • b

u i l d a r e s i l i e n t mi c r

  • s

e r v i c e  R e t r y

  • @Retry

 C i r c u i t B r e a k e r

  • @CircuitBreaker

 B u l k H e a d

  • @Bulkhead

 T i me

  • u

t

  • @Timeout

 F a l l b a c k

  • @Fallback
slide-52
SLIDE 52

B a c k u p : U s i n g I B M C l

  • u

d P r i v a t e

C
  • d
e b a s e S
  • u
r c e : G i t h u b E n t e r p r i s e , g i t h u b I ma g e s : a n y r e g i s t r y , I B M C l
  • u
d p r i v a t e r e g i s t r y D e p e n d e n c i e s D e p e n d e n c y ma n a g e me n t
  • f
l a n g u a g e e n v i r
  • n
me n t ; c
  • n
t a i n e r b u i l d p r
  • c
e s s f
  • r
r e p e a t a b l e i n c l u s i
  • n
  • f
d e p e n d e n c i e s C
  • n
fi g k 8 s c
  • n
f g ma p s a n d s e c r e t s B a c k i n g s e r v i c e s U s e c
  • n
f g u r a t i
  • n
( s e e p r e v i
  • u
s f a c t
  • r
) t
  • d
e f n e t a r g e t s e r v e r a s u s e d b y a p p l i c a t i
  • n
B u i l d , r e l e a s e , r u n U r b a n C
  • d
e D e p l
  • y
U r b a n C
  • d
e R e l e a s e P l u s k 8 s me c h a n i s ms w i t h C I t
  • l
i n g P r
  • c
e s s e s T
  • b
e c
  • n
s i d e r e d i n a p p l i c a t i
  • n
d e s i g n P
  • r
t b i n d i n g A p p l i c a t i
  • n
n e e d s t
  • e
x p
  • s
e p
  • r
t s . I n g r e s s / s e r v i c e d e f n i t i
  • n
  • f
k 8 s ma n a g e s ma p p i n g
  • f
p
  • r
t s C
  • n
c u r r e n c y A p p d e s i g n ( [ a u t
  • ]
s c a l i n g b u i l t i n t
  • k
8 s ) D i s p
  • s
a b i l i t y A p p d e s i g n D e v / p r
  • d
p a r i t y C a n u s e h e l m t
  • d
e p l
  • y
i n s a me w a y . N a me s p a c e s f
  • r
i s
  • l
a t i
  • n
  • f
s i mi l a r a r e a s L
  • g
s E L K a s p a r t
  • f
I C P (
  • r
R Y O ) A d mi n p r
  • c
e s s e s A p p d e s i g n ; s t a n d a r d k 8 s t
  • l
i n g l i k e “ k u b e c t l e x e c ”
  • r
K u b e r n e t e s J
  • b
s