SlideShare uma empresa Scribd logo
1 de 24
Author : Minh Tri Lam
Contact: minhtri.itp@gmail.com
1
NỘI DUNG TRÌNH BÀY
2
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC
3
I.1 So sánh mô hình phát triển phần mềm truyền thống và hiện tại
Incremental
Spiral
Cocomo
Cocomo II
RAD
RUP
…
Requirements
Analysis
Design
Coding
Testing
Maintenance
Waterfall and Similar Methodology Others Agile and Similar Methodology
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT)
4
I.1 So sánh mô hình phát triển phần mềm truyền thống và hiện tại (TT)
Waterfall and Similar
Methodology
Agile and Similar Methodology
Hướng kế hoạch (plan – driven)
Chỉ phù hợp khi yêu cầu khách hàng
không thay đổi .
Tạo ra phần mềm nhưng chưa biết
được giá trị sử dụng (không đúng yêu
cầu?).
Mất nhiều thời gian và chi phí cho
việc quay lại để chỉnh sửa ở các giai
đoạn trước.
Thường trễ tiến độ do kế hoạch
không sát với yêu cầu và khi yêu cầu
thay đổi.
Rủi ro cao.
Hướng giá trị (value – driven).
Chấp nhận thay đổi và cho phép xử lý thay đổi nhẹ
nhàng và nhanh chóng.
Chia nhỏ để xử lý và xác định được kết quả qua từng
lát cắt. Quá trình chia nhỏ xử lý được lặp lại cho đến khi
sản phẩm hoàn tất.
Tạo ra phần mềm có giá trị và được triển khai cho
khách hàng sử dụng một cách sớm nhất.
Thường xuyên giao tiếp và nhận phản hồi từ phía
khách hàng.
Liên tục cải tiến cho các giai đoạn (lát cắt) sau.
Giảm thiểu rủi ro.
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT)
5
I.1 So sánh mô hình phát triển phần mềm truyền thống và hiện tại (TT).
(Hiện tại) (Truyền thống)
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT)
6
I.2 Chi tiết workflow của Agile methodology thông qua Scrum methodology.
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT)
7
I.2 Chi tiết workflow của Agile methodology thông qua eXtreme
Programing (XP) methodology.
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT)
8
I.3 Định nghĩa hệ thống tích hợp liên tục (Continuous Integration ).
 Phần mềm phát triển theo mô hình Agile còn được gọi là phần mềm
tích hợp liên tục (Continuous Integration ).
 Hệ thống tích hợp liên tục là thành phần sống còn của một Agile team.
 Trích dẫn định nghĩa của Martin Fowler “ Continuous Integration is a
software development practice where members of a team integrate their
work frequently, usually each person integrates at least daily - leading to
multiple integrations per day. Each integration is verified by an automated
build (including test) to detect integration errors as quickly as possible.
Many teams find that this approach leads to significantly reduced
ntegration problems and allows a team to develop cohesive software more
rapidly.”
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT)
9
I.4 Minh họa hệ thống tích hợp liên tục
Trung tâm của
hệ thống tích
hợp liên tục
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT)
10
I.5 Thực tiễn của hệ thống tích hợp liên tục (Practices of Continuous
Integration)
 Qu n lý phiên b n (source control and version control ).ả ả
 T đ ng build bao g m test.ự ộ ồ
 Đôi ngũ phát tri n th ng xuyên chuy n (commit) source vể ườ ể ề
n i l u tr chính (mainline).ơ ư ữ
 M i khi code có thay đ i s build l i (mainline) thông quaỗ ổ ẽ ạ
build server.
 Báo l i cho ng i l p trình gây l i và qu n lý d án.ỗ ườ ậ ỗ ả ự
 Phát hành phiên b n hoàn ch nh cho khách hàng khi khôngả ỉ
còn l i.ỗ
 T đ ng phân ph i phiên b n m i đ n khách hàng.ự ộ ố ả ớ ế
 M i ng i có th nhìn th y nh ng gì đã x y ra (thay đ i,ọ ườ ể ấ ữ ả ổ
l i…) đ xem xét và gi i quy t.ỗ ể ả ế
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT)
11
I.6 Thuận lợi và khó khi áp dụng hệ thống tích hợp liên tục
 Khó khăn:
 C n th i gian thi t l p h th ng ban đ u.ầ ờ ế ậ ệ ố ầ
 Đòi h i qu n lý d án, ng i l p trình, ng i ki m đ nh ph i amỏ ả ự ườ ậ ườ ể ị ả
hi u mô hình phát tri n ph n m m Agile, h th ng tích h p CI,ể ể ầ ề ệ ố ợ
cách s d ng các công c h tr cho Agile và CI.ử ụ ụ ỗ ợ
 Chi phí thi t b ph n c ng (các server cho CI).ế ị ầ ứ
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT)
12
I.7 Tại sao cần hệ thống tích hợp liên tục?
 Gi m thi u r i ro do l i đ c phát hi n s m.ả ể ủ ỗ ượ ệ ớ
 Gi m thi u s l p l i cho các quá trình.ả ể ự ặ ạ
 T o ph n m m có giá tr s d ng s m nh t có th và s n sàng tri nạ ầ ề ị ử ụ ớ ấ ể ẳ ể
khai m i lúc m i n i.ọ ọ ơ
 Cung c p cái nhìn xuyên su t t ng quan và c th cho t ng giaiấ ố ổ ụ ể ừ
đo n.ạ
 Nâng cao k năng c a đ i ngũ nhân viên phát tri n ph n m m.ỹ ủ ộ ể ầ ề
 C i thi n ch t l ng ph n m m.ả ệ ấ ượ ầ ề
 …
I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT)
13
I.8 Những công cụ được sử dụng trong hệ thống tích hợp liên tục
 Code Repositories
 SVN, Mercurial, Git, Visual Source Safe…
 Continuous Build Systems
 Jenkins, Bamboo, Cruise,Hudson,…
 Test Unit Frameworks
 JUnit,Cucumber , CppUnit …
 Test report website
 Mantis, TestLink, Redmine…
 Artifact Repositories
 Nexus, Artifactory, Archiva …
 And others
II. GI I THI U JENKINSỚ Ệ
14
 II.1 Giới thiệu
 Là một ứng dụng web application mã nguồn mở (được cộng đồng phát triển theo giấy
phép MIT) đóng vai trò máy chủ build & test của hệ thống tích hợp liên tục.
 Jenkins được viết bằng Java nên Jenkins có thể kết hợp được với hầu hết các công cụ
khác của hệ thống tích hợp liên tục với nhiều nền tảng khác nhau và đặc biệt là tảng
mobi application (android).
 Tiền thân là Hudson được viết bởi Kosuke Kawaguchi tại Sun, kể từ khi Sun được mua
lại bởi Oracle vào năm 2010, một bộ phận phát triển Hudson đã tách ra phát triển riêng
và được đặt tên là Jenkins.
 Được sử dụng rộng rãi và được phát triển cải tiến liên tục bởi cộng đồng mã nguồn mở
 Đạt nhiều giải thưởng :InfoWorld Bossies Award, 2011 O'Reilly Open-Source Award, 2011
ALM&SCM, SDTimes 100, 2010, 2011 ,GlassFish Community Innovation Award 2008, Duke's
Choice Award 2008
 Được các tổ chức lớn tin dùng: Ebay,Apache, NASA,Boeing,Mozilla, Linked in,…
II. GI I THI U JENKINS (TT)Ớ Ệ
15
II.2 Đặc điểm của Jenkins
 Dễ dàng cài đặt và sử dụng.
 Đa nền tảng.
 Hỗ trợ cho nhiều công nghệ phát triển phần mềm.
 Được sử dụng rộng rãi.
 Dễ mở rộng.
 Dễ dàng liên kết với các công cụ khác của hệ thống tích hợp liên tục thông qua các
plug in.
 …
 Miễn phí.
III. VAI TRÒ C A JENSKIN TRONG CIỦ
16
III.1 Là trái tim c a CIủ
Là CI server (build & test server) gi v trí trung tâm “tráiữ ị
tim” cho m i ho t đ ng c a h th ng.ọ ạ ộ ủ ệ ố
Khách hàng, Kiểm định,…
III. VAI TRÒ C A JENSKIN TRONG CI (TT)Ủ
17
III.2 Khép kín quy trình phát tri n ph n m mể ầ ề
m t cách t đ ng.ộ ự ộ
 Nh vào vi c h tr đa n n t ng, công nghờ ệ ỗ ợ ề ả ệ
Jenkins giúp khép kín quy trình phát tri n ph nể ầ
m m m t cách t đ ng theo mô hình Agile nóiề ộ ự ộ
chung và h th ng tích h p liên t c nói riêng.ệ ố ợ ụ
 V i h n 400 plugin và đ c phát tri n thêmớ ơ ượ ể
không ng ng Jenkins đã tr thành tr th đ cừ ở ợ ủ ắ
l c cho h th ng CI.ự ệ ố
III. VAI TRÒ C A JENSKIN TRONG CI (TT)Ủ
18
III.2 Khép kín quy trình phát tri n ph n m mể ầ ề
m t cách t đ ng (TT).ộ ự ộ
Source control
Tool
SVN, VSS,
CSV, GIT,
Team Foundation
Server
…
Test Tool
TestLink,
Junit.Nunit,
MSTest…
Build Tool
Ant, Maven,
MSBuild,
Cmake
Notification
Code
Coverage
Virtual
Machines
Static
Analysis
Deploy
Server
Jenkins
Customer
Developer
And others
team
IV. L I ÍCH JENKINS MANG L IỢ Ạ
19
 Tất cả với Jenkins hầu như là tự động.
 Giảm thời gian và chi phí.
 Nâng cao năng lực nhân viên?
 Có thể tóm gọn lợi ích Jenkins mang lại là FESS.
 Faster.
 Easier.
 Safer.
 Smarter.
V. Đ NH H NG PHÁT TRI N AGILE &Ị ƯỚ Ể
CI?
20
 Áp dụng một phần của Jenkins
• Build server
• Version control
 Áp dụng test unit
 Quản lý dự án theo mô hình Agile
 Áp dụng tất cả những hỗ trợ của Jenkins trong CI
1
2
3
4
VI. KHÓ KHĂN KHI ÁP D NG AGILE &Ụ
CI?
21
 Thay đ i quan ni m cũ v qu n lý d án?ổ ệ ề ả ự
 Thi t l p quy trình ban đ u phù h p?ế ậ ầ ợ
 Thi t l p h th ng ?ế ậ ệ ố
 K năng c a qu n lý d án, l p trình viên, ki mỹ ủ ả ự ậ ể
đ nh viên?ị
VII. TH O LU NẢ Ậ
22
?
?
VIII. DEMO
23
 Tài liệu tham khảo & chương trình cài đặt Jenkins
 Máy: 172.16.160.208
 Tài kho n: user/userả
 Th m c: Jenkinsư ụ
THANKYOU!
24

Mais conteúdo relacionado

Destaque

Digital library opensource
Digital library opensourceDigital library opensource
Digital library opensourceMinh Tri Lam
 
Secure coding guide lines (Web Sercurity)
Secure coding guide lines (Web Sercurity)Secure coding guide lines (Web Sercurity)
Secure coding guide lines (Web Sercurity)Minh Tri Lam
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Minh Tri Lam
 
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Minh Tri Lam
 
Digital library standard and technology
Digital library standard and technologyDigital library standard and technology
Digital library standard and technologyMinh Tri Lam
 
SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICE
SQL SERVER BUSINESS INTELLIGENCE  & WINDOWS SERVICESQL SERVER BUSINESS INTELLIGENCE  & WINDOWS SERVICE
SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICEMinh Tri Lam
 
ADO .NET Entity framework
ADO .NET Entity frameworkADO .NET Entity framework
ADO .NET Entity frameworkMinh Tri Lam
 
SINGLE SIGN ON (SSO) WITH SECURITY ASSERTION MAKUP LANGUAGE (SAML)
SINGLE SIGN ON (SSO)  WITH SECURITY ASSERTION  MAKUP LANGUAGE (SAML)SINGLE SIGN ON (SSO)  WITH SECURITY ASSERTION  MAKUP LANGUAGE (SAML)
SINGLE SIGN ON (SSO) WITH SECURITY ASSERTION MAKUP LANGUAGE (SAML)Minh Tri Lam
 
DBLINK BETWEEN MS SQL SERVER & ORACLE
DBLINK BETWEEN MS SQL SERVER & ORACLEDBLINK BETWEEN MS SQL SERVER & ORACLE
DBLINK BETWEEN MS SQL SERVER & ORACLEMinh Tri Lam
 
Introduction to continuous integration
Introduction to continuous integrationIntroduction to continuous integration
Introduction to continuous integrationPhilip Johnson
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentDan Stine
 
Art experiences and attitude toward art education
Art experiences and attitude toward art educationArt experiences and attitude toward art education
Art experiences and attitude toward art educationNurnabihah Mohamad Nizar
 
Verziókövető rendszerek alkalmazása fejlesztési projektekben
Verziókövető rendszerek alkalmazása fejlesztési projektekbenVerziókövető rendszerek alkalmazása fejlesztési projektekben
Verziókövető rendszerek alkalmazása fejlesztési projektekbenOpen Academy
 
啟思新書~不管怎樣,別小看自己
啟思新書~不管怎樣,別小看自己啟思新書~不管怎樣,別小看自己
啟思新書~不管怎樣,別小看自己superspeaker
 
Measuring the happiness of large scale written expression harsh
Measuring the happiness of large scale written expression harshMeasuring the happiness of large scale written expression harsh
Measuring the happiness of large scale written expression harshHarshavardhan Achrekar
 

Destaque (20)

Digital library opensource
Digital library opensourceDigital library opensource
Digital library opensource
 
Secure coding guide lines (Web Sercurity)
Secure coding guide lines (Web Sercurity)Secure coding guide lines (Web Sercurity)
Secure coding guide lines (Web Sercurity)
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
 
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
 
Digital library standard and technology
Digital library standard and technologyDigital library standard and technology
Digital library standard and technology
 
SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICE
SQL SERVER BUSINESS INTELLIGENCE  & WINDOWS SERVICESQL SERVER BUSINESS INTELLIGENCE  & WINDOWS SERVICE
SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICE
 
ADO .NET Entity framework
ADO .NET Entity frameworkADO .NET Entity framework
ADO .NET Entity framework
 
SINGLE SIGN ON (SSO) WITH SECURITY ASSERTION MAKUP LANGUAGE (SAML)
SINGLE SIGN ON (SSO)  WITH SECURITY ASSERTION  MAKUP LANGUAGE (SAML)SINGLE SIGN ON (SSO)  WITH SECURITY ASSERTION  MAKUP LANGUAGE (SAML)
SINGLE SIGN ON (SSO) WITH SECURITY ASSERTION MAKUP LANGUAGE (SAML)
 
DBLINK BETWEEN MS SQL SERVER & ORACLE
DBLINK BETWEEN MS SQL SERVER & ORACLEDBLINK BETWEEN MS SQL SERVER & ORACLE
DBLINK BETWEEN MS SQL SERVER & ORACLE
 
Introduction to continuous integration
Introduction to continuous integrationIntroduction to continuous integration
Introduction to continuous integration
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated Deployment
 
Social Media Optimisation
Social Media OptimisationSocial Media Optimisation
Social Media Optimisation
 
Eucaristia - repartir unir
Eucaristia - repartir unirEucaristia - repartir unir
Eucaristia - repartir unir
 
Internet bijak
Internet bijakInternet bijak
Internet bijak
 
Art experiences and attitude toward art education
Art experiences and attitude toward art educationArt experiences and attitude toward art education
Art experiences and attitude toward art education
 
Verziókövető rendszerek alkalmazása fejlesztési projektekben
Verziókövető rendszerek alkalmazása fejlesztési projektekbenVerziókövető rendszerek alkalmazása fejlesztési projektekben
Verziókövető rendszerek alkalmazása fejlesztési projektekben
 
啟思新書~不管怎樣,別小看自己
啟思新書~不管怎樣,別小看自己啟思新書~不管怎樣,別小看自己
啟思新書~不管怎樣,別小看自己
 
Measuring the happiness of large scale written expression harsh
Measuring the happiness of large scale written expression harshMeasuring the happiness of large scale written expression harsh
Measuring the happiness of large scale written expression harsh
 

Semelhante a Jenkins (Continuous Integration System with Jenkins)

01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptxTunTrung15
 
Nhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmNhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmTrần Gia Bảo
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmNguyễn Anh
 
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdfDuongDo35
 
Bài tập công nghệ phần mềm
Bài tập công nghệ phần mềmBài tập công nghệ phần mềm
Bài tập công nghệ phần mềmLượng Võ Đại
 
CONG NGHE PHAN MEM
CONG NGHE PHAN MEMCONG NGHE PHAN MEM
CONG NGHE PHAN MEMduc phong
 
DevOps flow to improve developer's productivity & quality
DevOps flow to improve developer's productivity & qualityDevOps flow to improve developer's productivity & quality
DevOps flow to improve developer's productivity & qualityPhi Huynh
 
Cnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinhCnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinhKy Vo
 
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.Nguyễn Anh
 
Hướng dẫn-cài-đặt-để-sữ-dụng-enterprise-architect-để-thiết-kế-các-mô-hình
Hướng dẫn-cài-đặt-để-sữ-dụng-enterprise-architect-để-thiết-kế-các-mô-hìnhHướng dẫn-cài-đặt-để-sữ-dụng-enterprise-architect-để-thiết-kế-các-mô-hình
Hướng dẫn-cài-đặt-để-sữ-dụng-enterprise-architect-để-thiết-kế-các-mô-hìnhkey Pham
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlMai Mit
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umldlmonline24h
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlAxnet Dung
 
Phan Tich Httt Bang Uml
Phan Tich Httt Bang UmlPhan Tich Httt Bang Uml
Phan Tich Httt Bang Umlhbgfd
 
Kĩ thuật bảo trì phần mềm
Kĩ thuật bảo trì phần mềmKĩ thuật bảo trì phần mềm
Kĩ thuật bảo trì phần mềmPhạm Trung Đức
 
phan tich thiet ke he thong
phan tich thiet ke he thongphan tich thiet ke he thong
phan tich thiet ke he thongvantinhkhuc
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinNguyen Patrick
 

Semelhante a Jenkins (Continuous Integration System with Jenkins) (20)

01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx
 
Nhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmNhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềm
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
1 gioi thieu httt
1 gioi thieu httt1 gioi thieu httt
1 gioi thieu httt
 
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
 
Bài tập công nghệ phần mềm
Bài tập công nghệ phần mềmBài tập công nghệ phần mềm
Bài tập công nghệ phần mềm
 
tài liệu test
tài  liệu testtài  liệu test
tài liệu test
 
CONG NGHE PHAN MEM
CONG NGHE PHAN MEMCONG NGHE PHAN MEM
CONG NGHE PHAN MEM
 
DevOps flow to improve developer's productivity & quality
DevOps flow to improve developer's productivity & qualityDevOps flow to improve developer's productivity & quality
DevOps flow to improve developer's productivity & quality
 
Cnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinhCnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinh
 
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
 
Hướng dẫn-cài-đặt-để-sữ-dụng-enterprise-architect-để-thiết-kế-các-mô-hình
Hướng dẫn-cài-đặt-để-sữ-dụng-enterprise-architect-để-thiết-kế-các-mô-hìnhHướng dẫn-cài-đặt-để-sữ-dụng-enterprise-architect-để-thiết-kế-các-mô-hình
Hướng dẫn-cài-đặt-để-sữ-dụng-enterprise-architect-để-thiết-kế-các-mô-hình
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng uml
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Lecture01
Lecture01Lecture01
Lecture01
 
Phan Tich Httt Bang Uml
Phan Tich Httt Bang UmlPhan Tich Httt Bang Uml
Phan Tich Httt Bang Uml
 
Kĩ thuật bảo trì phần mềm
Kĩ thuật bảo trì phần mềmKĩ thuật bảo trì phần mềm
Kĩ thuật bảo trì phần mềm
 
phan tich thiet ke he thong
phan tich thiet ke he thongphan tich thiet ke he thong
phan tich thiet ke he thong
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tin
 

Jenkins (Continuous Integration System with Jenkins)

  • 1. Author : Minh Tri Lam Contact: minhtri.itp@gmail.com 1
  • 3. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC 3 I.1 So sánh mô hình phát triển phần mềm truyền thống và hiện tại Incremental Spiral Cocomo Cocomo II RAD RUP … Requirements Analysis Design Coding Testing Maintenance Waterfall and Similar Methodology Others Agile and Similar Methodology
  • 4. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 4 I.1 So sánh mô hình phát triển phần mềm truyền thống và hiện tại (TT) Waterfall and Similar Methodology Agile and Similar Methodology Hướng kế hoạch (plan – driven) Chỉ phù hợp khi yêu cầu khách hàng không thay đổi . Tạo ra phần mềm nhưng chưa biết được giá trị sử dụng (không đúng yêu cầu?). Mất nhiều thời gian và chi phí cho việc quay lại để chỉnh sửa ở các giai đoạn trước. Thường trễ tiến độ do kế hoạch không sát với yêu cầu và khi yêu cầu thay đổi. Rủi ro cao. Hướng giá trị (value – driven). Chấp nhận thay đổi và cho phép xử lý thay đổi nhẹ nhàng và nhanh chóng. Chia nhỏ để xử lý và xác định được kết quả qua từng lát cắt. Quá trình chia nhỏ xử lý được lặp lại cho đến khi sản phẩm hoàn tất. Tạo ra phần mềm có giá trị và được triển khai cho khách hàng sử dụng một cách sớm nhất. Thường xuyên giao tiếp và nhận phản hồi từ phía khách hàng. Liên tục cải tiến cho các giai đoạn (lát cắt) sau. Giảm thiểu rủi ro.
  • 5. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 5 I.1 So sánh mô hình phát triển phần mềm truyền thống và hiện tại (TT). (Hiện tại) (Truyền thống)
  • 6. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 6 I.2 Chi tiết workflow của Agile methodology thông qua Scrum methodology.
  • 7. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 7 I.2 Chi tiết workflow của Agile methodology thông qua eXtreme Programing (XP) methodology.
  • 8. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 8 I.3 Định nghĩa hệ thống tích hợp liên tục (Continuous Integration ).  Phần mềm phát triển theo mô hình Agile còn được gọi là phần mềm tích hợp liên tục (Continuous Integration ).  Hệ thống tích hợp liên tục là thành phần sống còn của một Agile team.  Trích dẫn định nghĩa của Martin Fowler “ Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced ntegration problems and allows a team to develop cohesive software more rapidly.”
  • 9. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 9 I.4 Minh họa hệ thống tích hợp liên tục Trung tâm của hệ thống tích hợp liên tục
  • 10. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 10 I.5 Thực tiễn của hệ thống tích hợp liên tục (Practices of Continuous Integration)  Qu n lý phiên b n (source control and version control ).ả ả  T đ ng build bao g m test.ự ộ ồ  Đôi ngũ phát tri n th ng xuyên chuy n (commit) source vể ườ ể ề n i l u tr chính (mainline).ơ ư ữ  M i khi code có thay đ i s build l i (mainline) thông quaỗ ổ ẽ ạ build server.  Báo l i cho ng i l p trình gây l i và qu n lý d án.ỗ ườ ậ ỗ ả ự  Phát hành phiên b n hoàn ch nh cho khách hàng khi khôngả ỉ còn l i.ỗ  T đ ng phân ph i phiên b n m i đ n khách hàng.ự ộ ố ả ớ ế  M i ng i có th nhìn th y nh ng gì đã x y ra (thay đ i,ọ ườ ể ấ ữ ả ổ l i…) đ xem xét và gi i quy t.ỗ ể ả ế
  • 11. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 11 I.6 Thuận lợi và khó khi áp dụng hệ thống tích hợp liên tục  Khó khăn:  C n th i gian thi t l p h th ng ban đ u.ầ ờ ế ậ ệ ố ầ  Đòi h i qu n lý d án, ng i l p trình, ng i ki m đ nh ph i amỏ ả ự ườ ậ ườ ể ị ả hi u mô hình phát tri n ph n m m Agile, h th ng tích h p CI,ể ể ầ ề ệ ố ợ cách s d ng các công c h tr cho Agile và CI.ử ụ ụ ỗ ợ  Chi phí thi t b ph n c ng (các server cho CI).ế ị ầ ứ
  • 12. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 12 I.7 Tại sao cần hệ thống tích hợp liên tục?  Gi m thi u r i ro do l i đ c phát hi n s m.ả ể ủ ỗ ượ ệ ớ  Gi m thi u s l p l i cho các quá trình.ả ể ự ặ ạ  T o ph n m m có giá tr s d ng s m nh t có th và s n sàng tri nạ ầ ề ị ử ụ ớ ấ ể ẳ ể khai m i lúc m i n i.ọ ọ ơ  Cung c p cái nhìn xuyên su t t ng quan và c th cho t ng giaiấ ố ổ ụ ể ừ đo n.ạ  Nâng cao k năng c a đ i ngũ nhân viên phát tri n ph n m m.ỹ ủ ộ ể ầ ề  C i thi n ch t l ng ph n m m.ả ệ ấ ượ ầ ề  …
  • 13. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 13 I.8 Những công cụ được sử dụng trong hệ thống tích hợp liên tục  Code Repositories  SVN, Mercurial, Git, Visual Source Safe…  Continuous Build Systems  Jenkins, Bamboo, Cruise,Hudson,…  Test Unit Frameworks  JUnit,Cucumber , CppUnit …  Test report website  Mantis, TestLink, Redmine…  Artifact Repositories  Nexus, Artifactory, Archiva …  And others
  • 14. II. GI I THI U JENKINSỚ Ệ 14  II.1 Giới thiệu  Là một ứng dụng web application mã nguồn mở (được cộng đồng phát triển theo giấy phép MIT) đóng vai trò máy chủ build & test của hệ thống tích hợp liên tục.  Jenkins được viết bằng Java nên Jenkins có thể kết hợp được với hầu hết các công cụ khác của hệ thống tích hợp liên tục với nhiều nền tảng khác nhau và đặc biệt là tảng mobi application (android).  Tiền thân là Hudson được viết bởi Kosuke Kawaguchi tại Sun, kể từ khi Sun được mua lại bởi Oracle vào năm 2010, một bộ phận phát triển Hudson đã tách ra phát triển riêng và được đặt tên là Jenkins.  Được sử dụng rộng rãi và được phát triển cải tiến liên tục bởi cộng đồng mã nguồn mở  Đạt nhiều giải thưởng :InfoWorld Bossies Award, 2011 O'Reilly Open-Source Award, 2011 ALM&SCM, SDTimes 100, 2010, 2011 ,GlassFish Community Innovation Award 2008, Duke's Choice Award 2008  Được các tổ chức lớn tin dùng: Ebay,Apache, NASA,Boeing,Mozilla, Linked in,…
  • 15. II. GI I THI U JENKINS (TT)Ớ Ệ 15 II.2 Đặc điểm của Jenkins  Dễ dàng cài đặt và sử dụng.  Đa nền tảng.  Hỗ trợ cho nhiều công nghệ phát triển phần mềm.  Được sử dụng rộng rãi.  Dễ mở rộng.  Dễ dàng liên kết với các công cụ khác của hệ thống tích hợp liên tục thông qua các plug in.  …  Miễn phí.
  • 16. III. VAI TRÒ C A JENSKIN TRONG CIỦ 16 III.1 Là trái tim c a CIủ Là CI server (build & test server) gi v trí trung tâm “tráiữ ị tim” cho m i ho t đ ng c a h th ng.ọ ạ ộ ủ ệ ố Khách hàng, Kiểm định,…
  • 17. III. VAI TRÒ C A JENSKIN TRONG CI (TT)Ủ 17 III.2 Khép kín quy trình phát tri n ph n m mể ầ ề m t cách t đ ng.ộ ự ộ  Nh vào vi c h tr đa n n t ng, công nghờ ệ ỗ ợ ề ả ệ Jenkins giúp khép kín quy trình phát tri n ph nể ầ m m m t cách t đ ng theo mô hình Agile nóiề ộ ự ộ chung và h th ng tích h p liên t c nói riêng.ệ ố ợ ụ  V i h n 400 plugin và đ c phát tri n thêmớ ơ ượ ể không ng ng Jenkins đã tr thành tr th đ cừ ở ợ ủ ắ l c cho h th ng CI.ự ệ ố
  • 18. III. VAI TRÒ C A JENSKIN TRONG CI (TT)Ủ 18 III.2 Khép kín quy trình phát tri n ph n m mể ầ ề m t cách t đ ng (TT).ộ ự ộ Source control Tool SVN, VSS, CSV, GIT, Team Foundation Server … Test Tool TestLink, Junit.Nunit, MSTest… Build Tool Ant, Maven, MSBuild, Cmake Notification Code Coverage Virtual Machines Static Analysis Deploy Server Jenkins Customer Developer And others team
  • 19. IV. L I ÍCH JENKINS MANG L IỢ Ạ 19  Tất cả với Jenkins hầu như là tự động.  Giảm thời gian và chi phí.  Nâng cao năng lực nhân viên?  Có thể tóm gọn lợi ích Jenkins mang lại là FESS.  Faster.  Easier.  Safer.  Smarter.
  • 20. V. Đ NH H NG PHÁT TRI N AGILE &Ị ƯỚ Ể CI? 20  Áp dụng một phần của Jenkins • Build server • Version control  Áp dụng test unit  Quản lý dự án theo mô hình Agile  Áp dụng tất cả những hỗ trợ của Jenkins trong CI 1 2 3 4
  • 21. VI. KHÓ KHĂN KHI ÁP D NG AGILE &Ụ CI? 21  Thay đ i quan ni m cũ v qu n lý d án?ổ ệ ề ả ự  Thi t l p quy trình ban đ u phù h p?ế ậ ầ ợ  Thi t l p h th ng ?ế ậ ệ ố  K năng c a qu n lý d án, l p trình viên, ki mỹ ủ ả ự ậ ể đ nh viên?ị
  • 22. VII. TH O LU NẢ Ậ 22 ? ?
  • 24.  Tài liệu tham khảo & chương trình cài đặt Jenkins  Máy: 172.16.160.208  Tài kho n: user/userả  Th m c: Jenkinsư ụ THANKYOU! 24