This document provides an introduction to modern DevOps technologies. It discusses DevOps concepts like source code management using Git, different methods of deploying programs including using bare metal servers, virtualization, containers, and cloud functions. Specific container and container orchestration technologies like Docker and Kubernetes are explained. Continuous integration and continuous delivery (CI/CD) practices are also introduced. The presentation includes an agenda with slides on these topics and ends with a question and answer section and announcement of a Docker workshop to deploy an HTTP server container.
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Introduction to Modern DevOps Technologies
1. Presented by Kriangkrai Chaonithi @spicydog
13/03/2019 | KMUTT | Applied Computer Science | Operating System
Introduction to
Modern DevOps
Technologies
2. 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
3. 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
7. 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
8. 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
12. How to deploy a program?
Compiled Languages
- Compile
- Upload executable to server
Interpreted Languages
- Upload (or `git pull`) source codes to the server
13. 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
14. Virtualization
● One machine - many servers
● One machine multiple customers
● VPS / Cloud
● SSH/FTP/Git to the server
IaaS
15. Containers
● Docker / Kubernetes
● Auto deployment
● Auto scale (automatically spawn new workers)
● Pay on number of nodes
● Infrastructure as code! (IaC)
PaaS/ CaaS
16. Cloud Functions
● Write your code and deploy!
● Auto deploy
● Auto scale
● Pay per request
● No infrastructure work!!
FaaS
19. 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