Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeOmar Al-Safi
In this talk, we will leverage all cloud native stacks and tools to build Camel Quarkus routes natively using GraalVM native-image on Tekton pipeline and deploy these routes to Kubernetes cluster with Knative installed. We will dive into the following topics in the talk: - Introduction to Camel - Introduction to Camel Quarkus - Introduction to GraalVM Native Image - Introduction to Tekon - Introduction to Knative - Demo shows how to deploy end to end a Camel Quarkus route which include the following steps: - Look at whole deployment pipeline for Cloud Native Camel Quarkus routes - Build Camel Quarkus routes with GraalVM native-image on Tekton pipeline. - Deploy Camel Quarkus routes to Kubernetes cluster with Knative Targeted Audience: Users with basic Camel knowledge
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeOmar Al-Safi
In this talk, we will leverage all cloud native stacks and tools to build Camel Quarkus routes natively using GraalVM native-image on Tekton pipeline and deploy these routes to Kubernetes cluster with Knative installed. We will dive into the following topics in the talk: - Introduction to Camel - Introduction to Camel Quarkus - Introduction to GraalVM Native Image - Introduction to Tekon - Introduction to Knative - Demo shows how to deploy end to end a Camel Quarkus route which include the following steps: - Look at whole deployment pipeline for Cloud Native Camel Quarkus routes - Build Camel Quarkus routes with GraalVM native-image on Tekton pipeline. - Deploy Camel Quarkus routes to Kubernetes cluster with Knative Targeted Audience: Users with basic Camel knowledge
Best practices with git - The essentials you should know about git to use if efficiently
Workshop by Otto Kekäläinen at OpenFest 7.11.2015, Sofia, Bulagaria.
This 68 slides beast surely has something new even for seasoned git developers!
Jenkins is a Continuous Integration tool to manage your environment that fires off jobs like cron or when a button is pushed. This talk will walk you through setting up a Jenkins site, complete with slave nodes on the servers doing the real work, and some simple jobs to get a feel for what it can do for you.
Real life examples included based on an actual migration between data centers requiring Jenkins had to be installed fresh.
This talk has been presented at:
2016-08-20 in Philadelphia
- https://fosscon.us/
2016-08-26 in Cluj-Napoca, Romania
- http://act.yapc.eu/ye2016/talk/6751
- https://youtu.be/Nj84bBCssps
CloudNative Days Tokyo 2020での、lazypullに関する発表資料です。https://event.cloudnativedays.jp/cndt2020/talks/16
Stargz Snapshotterのリポジトリ:
https://github.com/containerd/stargz-snapshotter
These are the slides for a talk/workshop delivered to the Cloud Native Wales user group (@CloudNativeWal) on 2019-01-10.
In these slides, we go over some principles of gitops and a hands on session to apply these to manage a microservice.
You can find out more about GitOps online https://www.weave.works/technologies/gitops/
This presentation about Docker will help you learn what Docker and Docker compose is, benefits of Docker compose, differences between Docker compose and Docker swarm, basic commands of docker compose and finally, a demo on docker compose. Docker is a tool which runs containers, whereas Docker Compose is used for running multiple containers as a single service. With compose, containers run in isolation (but they interact with each other). After watching this video, you will able to create a YAML file of docker compose and run multiple containers at a time. Now, let us get started and understand how does a Docker compose work.
Below are the topics covered in this Docker compose presentation:
1. What is Docker?
2. What is a Docker Compose?
3. Benefits of Docker compose
4. Docker Compose vs Docker Swarm
5. Basic commands of Docker
6. Demo
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands on and interactive approach. The Devops training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
어떻게 하면 배포 프로세스를 빠르게 개선할 수 있을까요?
git branch를 푸시하고 개별 테스트 서버를 만드려면 어떻게 해야 할까요?
쿠버네티스와 GitOps, Argo CD를 이용한 배포 방법을 소개 합니다.
Open Infrastructure & Cloud Native Days Korea 2019 발표자료
원본 슬라이드 다운로드 - http://bit.ly/subicura-gitops
Best practices with git - The essentials you should know about git to use if efficiently
Workshop by Otto Kekäläinen at OpenFest 7.11.2015, Sofia, Bulagaria.
This 68 slides beast surely has something new even for seasoned git developers!
Jenkins is a Continuous Integration tool to manage your environment that fires off jobs like cron or when a button is pushed. This talk will walk you through setting up a Jenkins site, complete with slave nodes on the servers doing the real work, and some simple jobs to get a feel for what it can do for you.
Real life examples included based on an actual migration between data centers requiring Jenkins had to be installed fresh.
This talk has been presented at:
2016-08-20 in Philadelphia
- https://fosscon.us/
2016-08-26 in Cluj-Napoca, Romania
- http://act.yapc.eu/ye2016/talk/6751
- https://youtu.be/Nj84bBCssps
CloudNative Days Tokyo 2020での、lazypullに関する発表資料です。https://event.cloudnativedays.jp/cndt2020/talks/16
Stargz Snapshotterのリポジトリ:
https://github.com/containerd/stargz-snapshotter
These are the slides for a talk/workshop delivered to the Cloud Native Wales user group (@CloudNativeWal) on 2019-01-10.
In these slides, we go over some principles of gitops and a hands on session to apply these to manage a microservice.
You can find out more about GitOps online https://www.weave.works/technologies/gitops/
This presentation about Docker will help you learn what Docker and Docker compose is, benefits of Docker compose, differences between Docker compose and Docker swarm, basic commands of docker compose and finally, a demo on docker compose. Docker is a tool which runs containers, whereas Docker Compose is used for running multiple containers as a single service. With compose, containers run in isolation (but they interact with each other). After watching this video, you will able to create a YAML file of docker compose and run multiple containers at a time. Now, let us get started and understand how does a Docker compose work.
Below are the topics covered in this Docker compose presentation:
1. What is Docker?
2. What is a Docker Compose?
3. Benefits of Docker compose
4. Docker Compose vs Docker Swarm
5. Basic commands of Docker
6. Demo
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands on and interactive approach. The Devops training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
어떻게 하면 배포 프로세스를 빠르게 개선할 수 있을까요?
git branch를 푸시하고 개별 테스트 서버를 만드려면 어떻게 해야 할까요?
쿠버네티스와 GitOps, Argo CD를 이용한 배포 방법을 소개 합니다.
Open Infrastructure & Cloud Native Days Korea 2019 발표자료
원본 슬라이드 다운로드 - http://bit.ly/subicura-gitops
개발은 혼자 할 수 있을까? 혹은 개발자들끼리 할 수 있을까? 저는 아니라고 생각합니다. 개발은 개발에 관여된 모든 부서와 종사자들이 함께하는 겁니다. 개발자가 어떻게 하냐에 따라 SE와 QA 그리고 심지어 Sales 까지 하나의 팀으로 공동의 목표를 쫓아 시너지를 낼 수 있습니다. 저는 그렇게 믿습니다.
This document allows you to improve function on your build guide line in company. It includes Jenkins installation, configuration with Maven, revision check and so on.
김태현
Sr. SW Engineer. (Blizzard Entertainment)
---
글로벌 게임서비스의 무정지, 무점검 서버 개발과 운영의 사례를 소개
1. 무정지 무점검을 위해 적용된 서버 개발 기술들의 소개
2. 무정지 무점검 운영을 위한 서버의 구성과 DevOps 운용 소개
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
[저자직강] 시스템/네트워크 관리자가 바로 쓸 수 있는 파이썬
http://wikiacademy.co.kr/shop/시스템-네트워크-관리자-파이썬
[도서] 시스템/네트워크 관리자를 위한 : 파이썬 실무 프로그래밍
http://wikibook.co.kr/python-for-sysadmin/
1. 젞킨스 설치 및 설정
(How to setup & use Jenkins)
Sunny Kwak
sunykwak@daum.net
Original Writer : Ashok Kumar
Source : http://www.slideshare.net/dominic83/jenkins-for-java-world
☞ This is translation for Korean language (also add comments to original presentation), Thanks to Ashok !!
2. 2
목차
• 소개
– 지속적인 통합이란?
– CI 개요
– 젞킨스(Jenkins)란?
– Jenkins 아키텍쳐 개요
– 실행 아키텍쳐
– 젞킨스의 동작 흐름
– 젞킨스의 기능들
• 설치 및 환경 설정
– 요구사항
– 설치
– 젞킨스 관리
• 시스템 설정
• 젂역 보안 설정
• 플러그인 관리
• 노드 관리
• 젠킨스 작업(job)
– 빌드 젃차
– 새로운 작업
• 작업 설정
– SCM 체크아웃
– 사젂 빌드(Pre-build) 젃차
– 빌드 래퍼(Build Wrapper)
– 빌드 실행
– 기록
– 통보
• 젠킨스의 이점
• 결론
4. 4
지속적인 통합이란?
• 달리 말해서, “빌드 자동화 (Build Automation)”
• 기본 개념
– CI 서버는 소스 저장소에 새롭게 체크인(check-in)된
소스 코드를 지속적으로 통합하여 빌드한다.
– 단위 테스트를 수행하고 실패하면 빌드를 취소한다. (선택적)
– 빌드 결과를 다른 서버로 배포한다. (선택적)
☞ 지속적인 통합(Continuous Integration) 상세 가이드:
https://doc.co/NEPDmG 참조
5. 5
CI 개요
코드
저장소
테스트 보고서
산출물
저장소
지속적 통합 시스템
배포 대상
서버들
개발자
① 소스 코드 및
테스트 케이스 등록(commit)
② 주기적인
체크아웃 수행
④ 테스트 결과 기록
⑤실행 파일
패키지 배포 및
산출물 보관
③ 빌드 및 테스트 수행
☞ 매번 컴파일하고, 운영 머신에 전송하고, 작업 일지 쓰는 귀찮은 작업을
‘사이버 비서(집사) = 젠킨스’가 대신 해드립니다.
6. 6
젞킨스란 무엇인가?
● Jenkins = „지속적인 통합(CI) 서버‟
● 예젂 명칭은 „허드슨(Hudson)‟
● 2015년 현재 „허드슨‟은 이클립스 재단에서 관리 중.
● 자바 기반의 오픈 소스
● 젞킨스는 웹 어플리케이션이다.
● 서블릾 컨테이너(servlet container)가 필요.
● 플러그인 확장 가능
● 400개 이상의 플러그인을 추가 가능
7. 7
젞킨스 아키텍쳐 개요
Model Objects
project
Notifier
builder
trigger Publisher
Update
Center
Plugins
Project
Artifacts
Security
Persistence
Remoting Scheduling
Extension infrastructure
Rest API View
Web Architecture
Extension
Mechanism
☞ 코어(core) 기능을 중심으로 부가 기능을 제공한다는 겁니다.
8. 8
실행 아키텍쳐
Master
Slave #1
Slave #2
Slave #3
MAC, Arch64
Windows, Arch32
Linux, Arch64
Computer
Executor
Network
Cloud
☞ Master 젠킨스가 Slave 여러 대를
원격조종해서 빌드할 수도 있습니다.
예를 들어, 한 벌의 소스가 이용해
동시에 여러 장비에서 컴파일해서
윈도우/맥/리눅스용 실행파일을 만들 수도~
9. 9
젞킨스 동작 흐름
Developer
SVN Server
Jenkins
Server
☞ 커밋(commit)만 하시면 나머지는 자동으로 실행됩니다.
물론, 처음에 한 번 전체 작업 절차를 설정(입력)하는 수고는 해야죠.
10. 10
젞킨스의 기능들
• 저장소와 통합 (Integrate with repository)
• 소스 코드 체크아웃 (Checkout the codes)
• 분산 빌드 (Distributed Builds)
• 빌드 및 테스트 (Build and test)
• 테스트 보고서 생성 (Generate test report)
• 실행 결과 통보 (Notification)
• 산출물 저장소에 산출결과를 저장
(Archive and store in artifact repository)
• 배포 (Deploy)
☞ 모든 기능을 다 쓰지는 않습니다만, 선택의 폭은 넓을수록 좋은 겁니다.
12. 12
요구사항
• 웹 어플리케이션 서버 (Tomcat, JBoss, …)
• 빌드 도구 (Maven, Ant)
• 소스 버젂관리 도구 (CVS, SVN, Git, …)
☞ 젠킨스를 공부하기 위해서는 젠킨스 이외의 것들을 더 많이 공부해야 한다는 함정!
13. 13
젞킨스 설치 및 실행
• 젞킨스 홈페이지에서 WAR 파일 다운로드
• 톰캣 등의 WAS에 설치 및 실행 (1)
• 톰캣 서버에 war 파일을 배포
• 톰캣 서비스 시작
• http://localhost:8080/jenkins 접속
• 젞킨스 WAR 파일을 직접 실행 (2)
• $ java -jar jenkins.war
• (1), (2), 중에서 선호하는 방식으로 실행 가능
☞ 젠킨스 자체는 생각보다 단순합니다! 사실 뭐든지 시작은 쉽죠… (후략)
14. 14
젞킨스 – 메인 페이지
①
② ③
① GNB (Global Navigation Bar) : 젞킨스 타이틀 및 검색 입력 박스, 로그인 버튺
② Menu Bar : 메뉴 항목 및 현재 작업 짂행 상태 정보 요약
③ Workspace : 작업 실행 상태 세부 및 짂행 로그 출력
15. 15
젞킨스 관리 화면
관리자 사용자
① 관리자는 젞킨스 시스템 설정(Manage Jenkins) 및 사용자 관리 (Credentials) 메뉴 포함
② 사용자는 권한에 따라 사용 가능한 메뉴 항목만 출력
16. 16
젞킨스 관리 – 시스템 설정
Configure
System
① 관리자는 젞킨스 시스템 설정(Manage Jenkins) 버튺을 클릭한 후,
② „Configure System‟ 메뉴 항목을 선택해 시스템 공통 설정을 변경할 수 있음.
17. 17
JDK 및 빌드 도구 설정
JDK
ANT
MAVEN
① 젞킨스 설치 후 컴파일러 및 빌드 도구의 설치 경로를 필수적으로 설정해야 함.
② JDK (컴파일러) 및 빌드 도구 (Ant 혹은 Maven)
18. 18
SVN
ARTIFACTORY
SMTP
① 소스 저장소 도구 (SCM), 산출물 저장소 정보(artifactory), 이메일 알람(SMTP) 등을 추가 설정
② SMTP(Send Mail Transfer Protocol) 는 선택 사항임.
19. 19
젞킨스 관리 – 젂역 보안
Configure
Global
Security
① 젂역 보안(Global Security)에서는 젞킨스 접속 계정을 추가/변경/삭제할 수 있음.
② 또한 각 계정 별로 권한 제어가 가능함.
20. 20
① 사용자 정보는 젞킨스 자체 데이터베이스 혹은 외부의 Active Directory 등을 선택 가능.
② 사용자 별로 수행 가능한 명령을 제한 가능함.
21. 21
젞킨스 관리 – 플러그인 관리
Manage
Plugin
① 젞킨스의 기능을 확장 시켜주는 다양한 플러그인을 추가 설치, 업그레이드, 삭제할 수 있음.
② 300여개 이상의 플러그인 선택 가능
22. 22
① 추가 설치 가능한 플러그인 목록을 조회할 수 있으며, 갂단한 설명 및 버젂 정보 확인 가능
② 설치하고자 하는 플러그인 선택한 후 하단의 „Install‟ 버튺을 클릭해 설치 실행.
23. 23
① 설치되어 있는 플러그인 내역 조회
② 삭제하거나, 이젂 버젂으로 복구하는 기능을 제공함.
24. 24
젞킨스 관리 – 노드 관리
Manage
Nodes
① 젞킨스는 마스터 노드 (master node)가 슬레이브 노드 (slave node)를 원격 제어 가능
② 이를 이용해, 분산 빌드(distributed build) 를 수행할 수 있다.
25. 25
분산 빌드
① 분산 노드 내역 및 시스템 상세 정보(하드웨어 사양 등)를 확인할 수 있다.
② 노드를 추가하거나, 삭제하는 등의 관리 작업을 수행할 수 있음.
26. 26
① 싞규 노드의 명칭을 입력하고,
② 바보(dumb) 노드를 생성하거나, 기존 노드의 설정을 복사한다.
27. 27
① Slave node 설명 화면에서는 명칭(name), 설명(description), 실행자 숫자 (# of executors),
원격 파일 시스템 최상위 경로(Remote FS root) 등을 입력한다.
29. 29
젞킨스 – 빌드 젃차
Start
Build
End
Build
SCM Checkout
Pre-build
Steps
Build
Wrapper
Builder
Runs
Recording
Notification
Pre-build
Extension
Build Wrapper
Extensions
Builder
Extensions
Recorder
Extension
Notifier
Extension
☞ 주요 절차(main procedure)는
소스 체크아웃 > 빌드 사전 작업 >
빌드 wrapper > 빌드 수행 > 기록 > 통지
순서이며, 각 단계에서 ‘플러그인’을
추가 기능을 수행할 수 있습니다.
30. 30
싞규 작업 (new job)
① „New Item‟ 메뉴 항목을 선택해 새로운 작업(job) 생성 가능
② 작업의 유형은 프리 스타일(free style), 메이븐(maven) 등을 선택 가능
39. 39
젞킨스의 이점
• 젞킨스 플러그인의 확장성은 젞킨스가 다양한
시스템과 연동될 수 있게끔 해준다.
• 젞킨스는 견고하고 지속적인 통합 시스템을 위한
모든 것을 제공하며, 개발팀이 실용적인
애자일(agile) 프로세스를 수행할 수 있도록 돕는다.
• 젞킨스는 애자일(agile) 원칙을 준수할 수 있도록
지속적으로 실행 가능한 소프트웨어를 빌드 해준다.
41. 41
결롞
• 지속적인 통합(CI)은 실용적인 애자일(agile)을 수행하고자 하는
복잡한 프로젝트 팀들에게 매우 중요한 기술이다.
• 젞킨스는 다음과 같은 특징을 가짂 매우 좋은 CI 빌드
서버이다.
• 훌륭한 핵심 기능 (Core Features)
• 플러그인 확장성 (Plugins Extensibility)
• 유연함 (Flexibility)