NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle...

13
MODERN APPLICATION DEPLOYMENT CYCLE WITH GOLANG, DOCKER, KUBERNETES AND GOOGLE CLOUD NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE

Transcript of NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle...

Page 1: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

MODERN APPLICATION DEPLOYMENT CYCLE WITH GOLANG, DOCKER, KUBERNETES AND GOOGLE CLOUD

NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE

Page 2: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

O MENI

▸ DevOps Engineer u litvanskoj kompaniji Mailerlite (remote)

▸ 8 godina se bavim ovim poslom u različitim firmama i projektima (Grafart, Prodyna, Passbrains, Knip, United Cloud)

▸ Više na linkovima:

https://nikola.milojevic.me

https://www.linkedin.com/in/nikola-milojevic-lnkdin/

https://twitter.com/nklmilojevic

Page 3: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

ŠTA JE I ZAŠTO GOLANG?

▸ Sličan C-u po sintaksi, ali je moderniji

▸ Brz, integrisan garbage collection

▸ Binaries za maltene svaki set instrukcija procesora

▸ Razvio ga je Google

▸ Trenutno najplaćeniji programeri u USA su GoLang programeri

▸ Odličan community koji je još uvek u razvitku

Page 4: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

HELLO WORLD U GOLANG-U

Page 5: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

DOCKERIZOVANJE GOLANG APLIKACIJE

▸ Docker

▸ Multi-stage build

▸ Docker registry

▸ Github repository

▸ Travis CI

Page 6: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

MULTI STAGE BUILD

TRAVIS-CI

Page 7: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

KUBERNETES

▸ Helm

▸ Deployment manifest

▸ Service manifest (exposure)

▸ Certificate issuer

▸ Ingress manifest

▸ Certificate manifest

Page 8: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

DEPLOYMENT MANIFEST

Page 9: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

SERVICE MANIFEST

Page 10: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

CERTIFICATION ISSUER* Pre ovoga je potrebno instalirati cert-manager preko helm-a

Page 11: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

CERTIFICATE MANIFEST* Pre ovoga je potrebno instalirati nginx-ingress preko helm-a i dodati A record javni IP adrese nginx-ingressa u DNS

Page 12: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

NGINX INGRESS

Page 13: NIKOLA MILOJEVIĆ DEVOPS ENGINEER @ MAILERLITE MODERN ... · modern application deployment cycle with golang, docker, kubernetes and google cloud nikola milojeviĆ devops engineer

LINKOVI KA REPOZITURIJUMIMA

▸ https://github.com/omniouswhooshing/mday-golang-hello-world

▸ https://github.com/omniouswhooshing/mday-kubernetes-manifests