1 / 25

GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC VỚI JENKINS (Continuous Integration System with Jenkins)

GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC VỚI JENKINS (Continuous Integration System with Jenkins). Trình bày: Lâm Minh Trí Cần Thơ: 06/2012. Mục tiêu áp dụng jenkins.

dinah
Download Presentation

GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC VỚI JENKINS (Continuous Integration System with Jenkins)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC VỚI JENKINS (Continuous Integration System with Jenkins) Trình bày: Lâm Minh Trí Cần Thơ: 06/2012

  2. Mụctiêuápdụngjenkins Do quytrìnhthựctếtạibộphậnphầnmềm - CUSC khôngthểápdụngtấtcảsựhỗtrợcủa Jenkins tronghệthốngtíchhợpliêntục. Sửdụng Jenkins đểhỗtrợtốthơnviệcquảnlýphiênbảnvàđónggóiphầnmềm (.Net, PHP, Java…) Tiếtkiệmthờigianvà chi phípháttriểnphầnmềm.

  3. NỘI DUNG TRÌNH BÀY

  4. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC 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 Requirements Analysis Design Coding Testing Maintenance

  5. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 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) 5

  6. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 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). 6 (Hiện tại) (Truyền thống)

  7. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) I.2 Chi tiết workflow của Agile methodology thông qua Scrum methodology. 7

  8. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) I.2 Chi tiết workflow của Agile methodology thông qua eXtreme Programing (XP) methodology. 8

  9. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 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.”

  10. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) I.4 Minh họa hệ thống tích hợp liên tục Trungtâmcủahệthốngtíchhợpliêntục 10

  11. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 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

  12. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 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

  13. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 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

  14. I.GIỚI THIỆU HỆ THỐNG TÍCH HỢP LIÊN TỤC (TT) 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

  15. II. GIỚI THIỆU JENKINS • 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,…

  16. II. GIỚI THIỆU JENKINS (TT) 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

  17. III. VAI TRÒ CỦA JENSKIN TRONG CI 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. Jenkins Khách hàng, Kiểm định,…

  18. III. VAI TRÒ CỦA JENSKIN TRONG CI (TT) 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

  19. III. VAI TRÒ CỦA JENSKIN TRONG CI (TT) III.2 Khép kín quy trình phát triển phần mềm một cách tự động (TT). Build Tool Ant, Maven, MSBuild, Cmake Test Tool TestLink, Junit.Nunit, MSTest… Virtual Machines Source control Tool SVN, VSS, CSV, GIT, Team Foundation Server … Notification Jenkins Static Analysis Developer And others team Deploy Server Code Coverage 19 Customer

  20. IV. LỢI ÍCH JENKINS MANG LẠI • 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

  21. V. ĐỊNH HƯỚNG PHÁT TRIỂN AGILE & CI? • Á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

  22. VI. KHÓ KHĂN KHI ÁP DỤNG AGILE & CI? • 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?

  23. VII. THẢO LUẬN ? ?

  24. VIII. DEMO

  25. 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!

More Related