O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Jenkins (Continuous Integration System with Jenkins)

3.326 visualizações

Publicada em

Continuous Integration System with Jenkins
Hệ thống tính hợp liên tục với Jenkins

Publicada em: Software
  • Seja o primeiro a comentar

Jenkins (Continuous Integration System with Jenkins)

  1. 1. Author : Minh Tri Lam Contact: minhtri.itp@gmail.com 1
  2. 2. NỘI DUNG TRÌNH BÀY 2
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 22. VII. TH O LU NẢ Ậ 22 ? ?
  23. 23. VIII. DEMO 23
  24. 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

×