Giaosucan's blog - Chia sẻ kiến thức theo cách bá đạo

Ticker

20/recent/ticker-posts

Cổ tích DevOps Part 3 - Ngôn tình

Tiếp theo bài 2
3 năm trôi qua…
Một chàng trai dáng vẻ tiều tụy, quần áo xộc xệch thất thểu đi trên đường. Người chàng toát ra nồng nặng mùi rượu. Chàng dừng lại trên đỉnh một ngọn núi, phóng tầm mắt về phía xa xa, đôi mắt chứa chan 2 hàng lệ

Cổ tích DevOps Part 3
User ơi, sao nàng có thể tàn nhẫn như thế, sao nàng không tin ta? Ta đã hứa có thể xây dựng một hệ thống CI/CD có thể build, deploy code cho nàng rồi mà. Hệ thống DevOps vô cùng phức tạp, nàng lại muốn nó chạy trên cloud. Ta cần thời gian nghiên cứu về AWS, Kubernetes, Infrastructure as Code, Jenkins, đâu có dễ dàng gì. Sao nàng không chờ ta mà lại đi theo Dev? Hắn chỉ là một tay Dev cùi, sao nàng lại dễ dàng tin tưởng vào lời đường mật của hắn?
Kiếp này ta không thể bên nàng, vậy hẹn kiếp sau.
Nói xong, chàng trai nhắm mắt gieo mình xuống vực sâu….
Chàng Ops choàng tỉnh dậy, trước mặt chàng là một thiếu nữ xinh đẹp tuyệt trần, nàng có làn da trắng hồng của thiếu nữ tuổi đôi mươi, suối tóc dài đen nhánh, đôi mắt long lanh như hai viên minh châu
Đây là đâu, có phải ta đã chết rồi không?
Cô gái mỉm cười
Đây là Sillicon Valley, ta là DevOps engineer, đang làm việc tại Google. Ta thấy chàng nằm bất tỉnh dưới vực sâu nên đã đem chàng về đây. Vì sao chàng lại tìm cách quyên sinh như vậy? Chàng không tiếc sinh mạng của mình sao?
Chàng Ops liền kể lại hết sự tình, về việc người em Dev đã lừa chàng, cướp đi nàng User. Khiến chàng phải sống trong đau khổ trong bao nhiêu năm qua, những khó khăn của chàng trong việc xây dựng hệ thống Jenkins trên cloud.
Ta đã làm việc tại Silicon nhiều năm rồi, ở đây họ cũng đã xây dựng hệ thống CI/CD trên Google Cloud và AWS, ta sẽ giúp chàng.
Cổ tích DevOps Part 3
Chàng biết đấy, nếu chàng bắt đầu với Jenkins chỉ với 1 single server, chạy master và các bản build thì đâu có thể áp dụng cho các hê thống lớn với hàng ngàn job build chạy hàng ngày. Làm như thế thì chỉ để làm để học test thử chứ không sử dụng vào business được. Ta cần 1 hệ thống Jenkins có khả năng scalable để đáp ứng bài toán trên
Jenkins vốn được thiết kế theo mô hình Master + Agent. Master được thiết kế để coordination and cung cấp GUI cho người dùng tương tác với hệ thống, còn Agent mới thực hiện các job.
 jenkins master slave
Ví dụ thế này, chàng muốn chạy 1 pipeline để build 1 source code nào đó trên GitHub. Chàng sẽ nhập các thông số cần thiết trên Jenkins Master UI (tên repo, branch), sau đó Master sẽ chỉ định jenkin agent (thực chất là 1 con máy) để execute cái job đó. Chàng sẽ viết job Jenkins bằng ngôn ngữ groovy để agent execute.
Ngày nay, rất nhiều tập đoàn ở Sillicon Valley sử dụng Jenkins trên môi trường cloud, họ không dùng on-premise nữa để tận dụng sức mạnh của cloud. Tất nhiên, khi build Jenkins trên cloud thì không đơn giản nhưng cài đặt Jenkins trên local như mấy guideline trên Google nữa. Vì nó liên quan tới Virtual Machine, Docker Container. Kubernetes, EC2, GCE...Chàng phải hiểu sâu về cloud
Chàng có thể sử dụng Kubernetes (Một hệ thống open source cho phép tự động deploy, scaling và quản lý các container (chứa application) để xây dựng hệ thống Jenkins trên cloud. Hãy chịu khó tham khảo series bài viết về Kubernetes của giaosucan’s blog để hiểu hơn về Kubernetes nhé
Nếu đã tìm hiểu về Kubernetes, chàng biết Kubernetes thiết kế dựa trên mô hình master + slave. Như vậy chàng có thể implement một Jenkins scalable infrastructure on top of Kubernetes. Trong đó Jenkins master chính là Kubernetes master, còn các Kubernetes node là các agent.
learning to scale jenkins with kubernetes


GGE và AWS đều cung cấp dịch vụ Kubernetes. Trên AWS, chàng có thể setup Jenkins trên một EKS cluster. Hệ thống của công ty em đang build up hàng chục EKS Cluster như vậy, để phục vụ cho môi trường Dev, Production, QA, Staging…
Mỗi khi Jenkins thực hiện build một source code version nào đó trên Github, bản build đó sẽ được quản lý bởi artifactory. Một hệ thống quản lý các bản deploy của source code, chàng hãy tìm hiểu về JFrog Artifactory nhé…
Chàng trai nghe xong như rúng động, trước đây chàng chỉ nghĩ setup Jenkins như tutorial trên mạng là có thể sử dụng được rồi, nào ngờ Jenkins trên cloud lại phức tạp và nhiều thứ mới lạ đến như vậy…
Nàng có thể chỉ cho ta cách build up hệ thống Jenkins trên cloud không, ta cần phải học những gì??
Ồ còn nhiều thứ phải tìm hiểu lắm, thời gian còn dài, chàng hãy ở lại với ta đêm nay….
(Còn tiếp)

Đăng nhận xét

4 Nhận xét