Professional Documents
Culture Documents
DevOps
and the
Practical Use Cases
at
http://bit.ly/spicydog-devops-cpe
Hello! My name is Gap
Education
● MS Computer Engineering (KMUTT)
● BS Applied Computer Science (KMUTT)
Work Experience
● CTO & co-founder at Credit OK
● Former R&D Manager at Insightera
● Former Android, iOS & PHP Developer at Longdo.COM
Fields of Interests
● Software Engineering
● Cloud Architecture & Distributed Computing
● Computer Security
● Machine Learning & NLP https://spicydog.me
Agenda
● What is DevOps?
○ Why DevOps is so popular?
○ What do DevOps engineers do?
○ DevOps Skill Set
● DevOps at Credit OK
○ Technology Stack
○ Cloud Technologies & DevOps Integration
https://www.pexels.com/photo/colorful-toothed-wheels-171198/
Dear
Ops What is DevOps?
mourners nu NErags
8osesoo n
mo
Ujome d
radio
Ionng
https://www.redmineup.com/pages/blog/devops-in-redmine
DevOps relationships
softwane development
https://www.smartsheet.com/devops
Why DevOps is so HOT?
improve Quality I putinto Git d others
bout automatic an automation
● Directly improve dev productivity
● Technology advancement
https://unsplash.com/photos/0VwOXfSbBNY
What do DevOps engineers do?
https://unsplash.com/photos/QBpZGqEMsKg
DevOps Skill Set
● Cloud & Server Infrastructure
● Computer Security
https://unsplash.com/photos/842ofHC6MaI
Where and How we
Deploy Web Application?
https://unsplash.com/photos/NVnU0WIhC28
How to Deploy a Web Application?
Compiled Languages
-
rrTnion8n irTs
Compile the codes to executable
non .q
- Upload executable to the server
un
Interpreted Languages mm application line by
line
- Upload (or `git pull`) source codes on the server
Physical server
gp
Bare Metal Server
● Pre-cloud era
● Groom
Expose network to the internet
● Colocation/on-premise UInnoetuerhnonodog
● VPS / Cloud
●
wyserner
SSH/FTP/Git to the server
Infra structure for you
bIaaS
SonuInnisnisadovos
Nowriormoot
Containers
● Docker / Kubernetes / KNative
● Auto deploymentmotions
● Auto scale
Platform
for
PaaS/ CaaS
mroemolisquiruvvoo Cloud
Serverless Functions
λ
● Write your code and deploy!
● Auto deploy
● Auto scale
● No infrastructure!!
FaaS
no considering infra
lercontentthe server
customer to deploy
DevOps Technologies
https://unsplash.com/photos/8KfCR12oeUM
Version Control Software
Git Workflow
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
CI/CD Pipeline
What is CI/CD?
Continuous Integration Conti hus Deline y
Note
repository girosJu
https://dev.to/markoa/continuous-integration-explained-59f9
repository
https://dev.to/markoa/continuous-integration-explained-59f9
GitLab CI/CD
Auto comunicate
https://about.gitlab.com/product/continuous-integration/
https://gitlab.com/gitlab-org/gitlab-ce/pipelines
Docker
Engine misnastasEnons r
doo Sm Wha odorsFionn
ournode server
Container Technology
Virtualization vs Containers
Benefits of using Docker
riiaoanfog.TW
● Consistent development, testing, and production environments
image undoorts
j RAM CPU
config file Iw
roometros
https://cultivatehq.com/posts/docker/
Docker Image
Metonoursuu no container
application
rinsing
1
https://subscription.packtpub.com/book/application_development/9781788992329/1/
ch01lvl1sec14/understanding-docker-images-and-layers
Docker Compose
file nouqnmesoso.no Container mournoption
is
one
oaf
o
database
https://www.kinamo.be/fr/support/faq/faire-le-setup-d-un-environnement-de-developpement-avec-docker-compose
platform toothmo Deploy A scale
gp container
mood
no
https://thenewstack.io/kubernetes-an-overview/
Warning! Kubernetes Services are Complicated
Please read and understand this link before your first deployment!
https://medium.com/@metaphorical/internal-and-external-connectivity-in-kubernetes-space-a25cba822089
Logging & Monitoring
www.mooofsoofoysenuos Cloud system
Credit Scoring Platform on Big Data Analytics
creditok.co
Our Technology Team
Data Application
Science Development
Data Engineer
&
DevOps
How Credit OK Deploys Application with
Use Container on Development Env
Dev Computer docker-compose Container Registry
mount
Source Code Source Code
volume
network
MySQL Storage
Use Container on GitLab CI
GitLab GitLab Runner Container Registry
push clone
Git Source Code
volume
Container load
DEV Result Base Image
(nginx + php)
network
MySQL Storage
the tester
buildthe
docker
image
Build Docker Image for Production
GitLab GitLab Runner Container Registry
push clone
Git Source Code
volume
DEV Container
(nginx + php)
load
Result Base Image
COPY ./ ./
Container
App Image
(nginx + php + src)
Deploy the Docker Image
Container Registry GitLab Runner Kubernetes (GKE)
Google Cloud
SDK
Google Cloud Container
SDK Image auth kubectl
Patch
New App Image
Deployment
Prev App
Container
New App
App Image
Container
Our Infrastructure is on
The Modern Software
Development Obstacles
https://unsplash.com/photos/Cd2QnIKU6dk
Warning! What to concern before going Container
● Environment variables are crucial, make your application flexible with .env
● Never use persistent storage on Container if you don't truly understand what you are doing!
○ If you can design application logic w/o cache invalidation, caching in the Pod is okay
● Please read how to make Docker Image best practice. Beware of Docker Image cache!
At least, DO NOT use latest tag , it might be a time bomb, pin the version if possible.
Warning! What to concern before using CI/CD Pipeline
● Write unit testing as much as possible, you will never sleep without it