728x90
반응형
로드맵을 기준으로 DevOps 분야에 대한 공부 방향성과 현재 지식 수준을 점검해보려고 한다.
기준은 구글에 검색해서 나온 이미지 중 정리가 잘 되었다고 생각한 이미지이다.
https://dev.to/ankit01oss/the-complete-devops-roadmap-28n1
기본적인 내용이나 활용 등 어느정도 알고 있다고 생각한 항목은 내용을 작성했고, 애매하게 알고있다고 생각한 내용은 주황색, 잘 모른다고 생각한 항목은 빨간색으로 강조했다.
Learn a Programming Language
- c
: 포인터, 구조체, 함수 등 기본적인 개념 이해
: Windows API 활용 및 DLL 작성 가능 - c++
: 클래스, 템플릿, STD 등 기본 문법 활용이 가능 - Python
: 기본 문법 및 자료 구조 활용 능숙
: 리스트 컴프리헨션, 람다 함수, 데코레이터, 비동기 활용 가능
: 다양한 패키지 활용 경험 - Ruby : 모름
- Go
: 기본 문법 및 고루틴 이해
: 예제 수준 작성 가능 - Rust : 모름
- JavaScript/Node.js
: 기본적인 JavaSctript 및 Ajax 작성 가능
: 간단한 Node.js 백엔드 구축 및 기동 가능
Understand difference OS concepts
- Networking
: 라우터, 스위치, 허브 개념
: OSI 7 Layer 이해
: 랜, 구리, 광케이블 융착 가능
: 채널먹스, MSPP 운용 경험
: TCP/ UDP 개념 이해 - Sockets
: c, Python 소켓 프로그래밍 가능
: Raw 소켓 테스트 수준으로 가능 - I/O Management :
- Virtualization : 하이퍼바이저, VM?
- Memory/ Storage :
- File Systems :
- POSIX Basics :
- Process management :
- Startup management (initd) :
- Service management (systemd) :
- Threads and Concurrency :
Operating System
- Linux (Debian, SUSE Linux, Fedora, Ubuntu, CentOS, Rocky, RHEL)
: rpm build.spec 수정/작성 가능, yum repository 구축 가능, rpm/ deb 버전 별 설치 가능
: 서비스, 네트워크 인터페이스, NTP, locale, iptables 등 명령어 능숙
: 유저별 그룹관리, 계정 생성 및 ssh 연동, 자원 관리
: Clonezilla 활용 가능
: 쉘 스트립팅 가능 - Unix (FreeBSD, OpenBSD, NetBSD) : OpenBSD만 설치 해봄
- Windows
: PowerShell 스크립트 가능 (COM 포트 시리얼 통신 등)
: Windows API 활용 가능
: DLL injection, Global hooking 코드 작성 경험 있음
: 커널 디버깅 환경 구축 가능 (windbg, 가상 머신)
: 필터/HID 드라이버 기초 개념 이해 및 예제 수준 작성 가능 - Windows Server : 설치 및 IIS 서버 구축, 사설 ssl 인증서 발급 가능
Learn to live in Terminal
- Bash Scripting
- Vim/ Nano/ PowerShell/ Emacs
- Compiling apps from source : gcc
- System Performance : nmon, iostat, sar, vmstat
- Others : strace, dtrace, systemtap, uname, df, history
- Nerwork : nmap, tcpdump, ping, mtr, traceroute, airmon, airodump, dig, iptables, netstat
- Process Monitoring : ps, top, htop, atop, isof
- Text Manipulation Tools : awk, sed, grep, sort, uniq, cat, cut, echo, fmt, tr, ni, egrep, fgrep, wc
Networking, Security and Protocols
- Emails : SMTP, IMAPS, POP3S, DMARC, SPF
: 툴을 활용한 메일서버 구축, 구글 smtp와 연동 등 작업은 가능, 프로토콜 구조 등을 알지는 못함 - Protocols : HTTP, HTTPS, FTP, SSL/TLS, SSH
: 각자 개념 등에 대해 어느정도 설명이나 이해는 가능하지만 프로토콜 구조를 완벽하게 알지 못함 - Port Forwarding : 공유기, 툴 등을 활용하여 포트포워딩 가능
- Domain Keys :
What is and How to setup ___
- reverse Proxy : 대략적으로 이해
- caching server :
- Load Balancer : 개념 이해 및 간단한 활용 가능
- Forward Proxy :
- firewall : 개념 및 iptables 등 기본 방화벽 활용 가능, inbound/ outbound 정책 추가 가능
- webserver : IIS, Nginx, Apache, Tomcat, caddy
: 정적 웹서버 구축 및 config 설정 가능
Learn Infrastructure as Code
- Containers : Docker, LXC
: Docker 사용 가능, Dockerfile 작성 가능, 네트워크 및 특권 설정 가능, docker compose 일부 활용 가능 - Configuration Management : Ansible, Chef, SaltStack, Puppet
: 어떤 용도이고 각 도구 별 차이점은 대략적으로 알고있지만 실제 사용 경험이 적거나 없음 - Container Orchestration : Kubernetes, Docker swarm, mesos, nomad
: 쿠버네티스 클러스터, minikube 구축 가능, pod/deployment/service/CNI 등 기본 용어와 개념은 알지만 활용 미숙함 - Infrastructure Procisioning : Terraform, CloudFormation, Pulum
: Terraform의 Write-> Plan-> Apply 구조와 작성된 tf 파일 활용은 가능하지만 이해도가 낮음
Learn some CI/CD Tools
- Gitlab CI : 구축 및 기본 기능 활용 가능
- Jenkins : 구축, 플러그인, 노드추가, 프로메테우스 연동, 파이프라인 이해
- Github Actions
- Travis CI
- TeamCity
- Circle CI
- Bamboo
- Azure DevOps
Learn how to monitor software and Infrastructure
- Infrastructure Monitoring : Prometheus, Nagios, Grafana, Zabbix, Monit, Datadog
- Application Monitoring : Jaeger, New Relic, Instana, AppDynamics, OpenTracing
- Logs Management : Elastic Search, Graylog, Splunk, Papertrail
Cloud Providers
- AWS
- GCP
- Azure
- Heroku
- Digital Ocean
- Linode
- Vultr
- NCP
Cloud Design Patterns
- Availability
- Data Management
- Design and Implementation
- Management and Monitoring
728x90
반응형
댓글