Presented by Kriangkrai Chaonithi @spicydog
13/03/2019 | KMUTT | Applied Computer Science | Operating System
Introduction to
Modern DevOps
Technologies
Hello! My name is Gap
Education
● BS Applied Computer Science (KMUTT)
● MS Computer Engineering (KMUTT)
Work Experience
● Former Android, iOS & PHP Developer at Longdo.COM
● Former R&D Manager at Insightera
● CTO & co-founder at Credit OK
Fields of Interests
● Software Engineering
● Computer Security
● Servers & Cloud & Distributed Computing
● Machine Learning & NLP https://spicydog.me
Agenda
● DevOps
● Source Code Management
● How to deploy programs?
● Where to deploy programs?
○ Bare metal
○ Virtualization
○ Container
○ Cloud Functions
● Docker / Kubernetes
● CI/CD
● Workshop: Docker HTTP Server
What is DevOps?
https://www.pexels.com/photo/colorful-toothed-wheels-171198/
What is DevOps?
https://www.redmineup.com/pages/blog/devops-in-redmine
DevOps are related to..
https://www.smartsheet.com/devops
Linux Kernel consists of
How would you manage the project?
> 25 MLines of codes
https://www.phoronix.com/scan.php?page=news_item&px=Linux-September-2018-Stats
> 61 Kof Files
> 3 Kof Authors
a must know tool before you code!
- Distributed revision control system
- Focus on speed, data integrity, and data distribution
- Initial designed and developed by Linus Torvalds
- Initial release in 2005
- Git maintains by Junio Hamano
Linus Torvalds
Junio Hamano
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
Git Workflow
Popular Git Service Providers
How to Deploy?
https://unsplash.com/photos/NVnU0WIhC28
How to deploy a program?
Compiled Languages
- Compile
- Upload executable to server
Interpreted Languages
- Upload (or `git pull`) source codes to the server
Bare Metal Server
● Pre-cloud era
● Install OS and dependencies on a machine
● One machine - one server
● Expose the network to the internet
● Colocation/on-premise
● SSH/FTP/Git to the server
Virtualization
● One machine - many servers
● One machine multiple customers
● VPS / Cloud
● SSH/FTP/Git to the server
IaaS
Containers
● Docker / Kubernetes
● Auto deployment
● Auto scale (automatically spawn new workers)
● Pay on number of nodes
● Infrastructure as code! (IaC)
PaaS/ CaaS
Cloud Functions
● Write your code and deploy!
● Auto deploy
● Auto scale
● Pay per request
● No infrastructure work!!
FaaS
Virtualization vs Containers
Benefits of using Docker
● Consistent development, testing, and production environments
● Docker Engine can run on Linux, MacOS, and Windows
● Language and application dependencies are pre-install
from docker images
● Run different versions of same programming language
on the same machine
Docker Basic Concepts
https://hackernoon.com/hello-docker-56e0bc8deede
https://www.docker.com/products/docker-engine
Docker Image
https://subscription.packtpub.com/book/application_development/9781788992329/1/ch01l
vl1sec14/understanding-docker-images-and-layers
Docker Container
https://cultivatehq.com/posts/docker/
Docker Compose
https://www.kinamo.be/fr/support/faq/faire-le-setup-d-un-environnement-de-developpement-avec-docker-compose
What is Kubernetes?
https://blog.risingstack.com/what-is-kubernetes-how-to-get-started/
Make a whole server
farm as one large
computer server
Key Design Principles
- Workload Scalability
- High Availability
- Security
- Portability
https://thenewstack.io/kubernetes-an-overview/
Continuous Integration
Continuous Delivery
http://www.incoreinsightlytics.com/gas-pipeline-launched-by-algeria-to-boost-supply-to-major-southern-city/
What is CI/CD?
https://about.gitlab.com/product/continuous-integration/
https://gitlab.com/gitlab-org/gitlab-ce/pipelines
GitLab CI/CD
https://about.gitlab.com/product/continuous-integration/
Qu s o & An er
Workshop
docker run -v <HOST_HTTP_DOC_DIRECTORY>:/usr/share/nginx/html -p 8080:80 nginx
Time is short, let’s utilize the networks.
Feel free to connect with me via spicydog.me

Introduction to Modern DevOps Technologies