Day02. DevOps engineer’s Role
90DaysOfDevOps/day02.md at main · MichaelCade/90DaysOfDevOps
개발자가 응용 프로그램에 대한 새로운 기능을 만든다. 이 애플리케이션을 실행하고 필요한 모든 서비스와 통신하도록 구성 및 관리되는 일종의 환경, 인프라 또는 서버가 있다. 가장 중요한 것은 이러한 기능들과 버그 수정을 제품에 어떻게 적용하여 최종 사용자가 사용할 수 있게 하는 것을 의미한다.
한번이 아니라 테스트와 자동화를 포함해 효율적이고 지속적으로 수행해야 한다.
그래서 앞으로 기본적인 개발 지식 ( 시스템, 도구 및 프로세스) 을 잘 이해하는 것이 핵심적이다.
리눅스, 컨테이너화(도커), 네트워크 를 공부해 나갈 것이다.
요약
5가지 중에 1가지만 요약했다.
• 출처 : What is DevOps? - TechWorld with Nana
애자일이던 폭포수던 제일 중요한 것은 요구사항[requirements]을 만족하는 것이다.

endless cycle of implements
코드를 수정할 아이디어가 생기면 → 코드를 개선 → 테스트 하고 → 빌드 → 배포→ 문제가 없는지 관찰의 과정이 복된다.
DevOps
Making the process fast
With minimal bugs
소프트웨어 결함이 발생하는 이유
1) 운영팀과 개발팀관의 의사소통 문제
Role
Developers - coding
Operations - Deploy & Operate
각자의 역할이 다르므로 개발자들이 개발한 코드를 운영팀이 운영하지 적합하지 않았을 경우 돌려 보낸다던지의 비효율 발생 둘간의 협업을 위한 문서같은 것이 필요
명확하지 않은 둘 사이의 자동화
2) 이익의 갈등
Incentives
Developers - 빨리 새로운 것을 적용
Operations - 안정적으로 유지하는 것→ 앱을 사용하는 것이 가능한게 최우선
company
Deliver high-Quality apps to end users fast
3) Security
DevSecOps
4) Application Testing
Testing the app on different levels
Test specific features
End to End tests
Testing on different environments
performances tests
Can’t rely on automated tests fully!
5) Manual Work
- 전통적인 방법 한계지식 공유 방법이 어려움회복하고 복구하기 더 어려운Manually preparing the deployment environmentManually configuring user access & permissions
- Manually configuring Jenkins build jobs
- Manually deploying app
- 누가 언제 무엇을 시작할지 불투명하고 추적하기 어려움
- 느리고 오류의 가능성이 있는 방법
Goal DevOps
Fully Automated!
Streamlined Processes!
위의 단계를 하나씩 없애는 것
어떻게
협업을 잘해야 함 . 매우 어려움
기본적으로 알아야 할 것들
Devlopment
개발자들의 형상 관리가 어떻게 되는지 알고 잇어야 함
how developers works
which git workflow
how application is configured
automated Testing
Linux
서버와 소통하는 방식이 리눅스인 경우가 많고 이를 알고 있어야 함
linux basics
comfortable using CLI
shell commands
linux File system
Server Management
Networking & Security
기본적인 네트워크 지식을 알고 잇어야 함
Firewall, Proxy Servers
Load Balancers
Http/ Https
IP/ DNS Name Resolution
DevOps vs IT Operations
understand and know the Basics
own professions
Containers
계속 등장하는 방법론 도커가 가장 유명함
- virtualization
Build Automation & CI/CD
Build tools & package Manager
- 패키지 매니저가 어떻게 작동하는지 알아야 함
- maven, grandle, npm
Artifact Repository
👉 https://riothaid.tistory.com/186
아티팩트 : 소프트웨어 개발 프로젝트에서 생선되는 다양한 산출물 (ex. maven에서 빌드로 생성되는 프로젝트의 jar 확장자 결과)
아티팩트와 메타데이터를 저장/ 관리하는 장소를 아티팩트 저장소라고 함.→ 외부 라이브러리를 저장하기도 하지만 다른 개발자나 프로젝트 공유를 위한 배포 용도로 사용하는 저장소를 말함.
위의 링크에 자세하게 나와있다.
개발 단계의 저장소와 릴리즈 단계의 저장소를 분리시키고 개발 단계에서는 스냅샷을 타임스탬프와 같이 커밋하는 방식으로 버전을 관리한다. 개발자들끼리 파일 째로 왓다갓다 하던 것을 공유 저장소에 메타데이터로 저장 해놓고 필요시에 빌드 하는 것을 의미한다.
도커 이미지를 저장해 놓는 저장소
Build Automation Jenkins
deploy to server → continusos deployment
Cloud Provider
virtual infrastructure
Infrasturcture as a service
save costs
offer a range of sevices
platform-specific service
Container Orchestration
we need a more powerful
lear Kubernets
powerful, but complex
loft → self severvice kubernets cluster easily
Monitoring
추적 track performance
문제 해결
Infrastructure as Code

Scripting Language
bash powershell
know a scripting or programming language
Version Control
managing code
뭐부터 시작할지 모르겠다면 제일 많이 사용하는걸로 시작해라

이러한 툴들을 적절하게 결합하는 것이 DevOps engineer 의 역할이다
'DevOps > Study' 카테고리의 다른 글
[DevOps challenge] The Big Picture: DevOps & Learning a Programming Language (0) | 2022.07.10 |
---|---|
yaml 이란? (0) | 2022.07.10 |
[DevOps challenge] Day 03.DevOps Lifecycle (0) | 2022.07.03 |
[DevOps 90 challenge] Day 01. DevOps? (1) | 2022.06.27 |