Cổ tích DevOps 2- Quy trình CI
devops
23
White

Giaosucan viết ngày 14/10/2018

http://www.giaosucan.com/

GIAOSUCAN'S BLOG - CHIA SẺ KIẾN THỨC KĨ THUẬT THEO CÁCH BÁ ĐẠO

Tiếp theo
http://www.giaosucan.com/2018/09/co-tich-devops-part-1.html

alt text
Từ ngày gặp Bụt bên bờ suối, người em IT Operation về nhà ngày đêm nghiền ngẫm về DevOps, học thêm về Linux Ubuntu, SysAdmin, tập code ShellScript, Python, không quản ngại khó khan gian khổ, thức thâu đêm suốt sáng để luyện rèn. Chả mấy chốc, trình độ tăng tiến rõ rệt, việc deploy application nhanh hơn trc rất nhiều, lại ít gặp issue, khiến nàng User vô cùng sung sướng, nhiều lần cho chàng được “thị tẩm”, phê như con tê tê.
alt text
Trái lại, người anh Developer thì lại tỏ ra chểnh mảng, không quan tâm đến DevOps, chỉ tối ngành lêu lổng chơi bời, không chịu rèn luyện, khiến application code xong mà bug hàng tấn, cho nên mặc dù deploy lên server bình thường nhưng chất lượng app vẫn rất kém, nàng User rất bực tức, nhiều lần “cấm vận” khiến chàng bị bỏ đói.
Lâu ngày, người anh sinh ra đố kị, căm ghét người em. Rồi một hôm đang ngồi xem phim Diên Hy Công Lược, thấy Nhàn Phi dùng kế hãm hại Phú Sát Hoàng Hậu, người anh đã nghĩ ra một kết hay….
Từ hôm đó, người anh trở nên rất chịu khó viết code, rồi nỉ non với người em
An ơi, anh code xong rồi deploy cho anh đi, để tối nay nàng user còn dùng
OK, man. Chờ chút.
Người anh lọ mọ mở terminal ssh vào server, run command build, chạy test check kết quả rồi deploy app. Ngày ngày cứ theo process như vậy
Điều lạ là người anh make Pull Request yêu cầu merge code và deploy app liên tục. Trước đây, tuần độ 2 3 lần, giờ đây 1 ngày đến 3, 4 lần. Khiến chàng IT operation làm việc không xuể, nhiều lần ko keep dc deadline, làm cho nàng User rất đau lòng, ko còn sướng như trước.
Chàng buồn lắm, lại ôm laptop ra bờ suối ngồi khóc, đợi bụt xuất hiện giải cứu, nhưng khóc hết cả chậu nước mắt mà chẳng thấy ai, mệt mỏi chàng thiếp đi…
Trời bỗng nổi 1 cơn gió, trong làn khói sương mờ ảo, một bóng người con gái hiện ra
alt text

Ta là Ngụy Anh Lạc bà nội 10 đời của ngươi, thật ra thằng Dev nó cố ý tạo request nhiều lần để cho ngươi không kham nổi công việc deploy thôi, chứ nó ko có code thêm features gì đâu, chỉ toàn sửa comment với change tên biến. Vì nó biết ngươi deploy app manual tốn effort, nên mới làm thế để bẫy ngươi. Muốn thoát khỏi cảnh tay chân, phải xây dựng hệ thống CICD tự động build, test deploy app mỗi khi có source code commit mới là chuẩn men. Cái này gọi là Continuous Integration (CI) tích hợp liên tục mục đích để

Giảm thiểu effort manual lặp đi lặp lại (Build, Test, Deploy)
Hạn chế sai sót của con người
Tạo phần mềm có giá trị sử dụng sớm nhất có thể và sẵn sàng triểnkhai mọi lúc mọi nơi.
Phát hiện issue nhanh chóng

Tóm lại mô hình tích hợp liên tục nó như thế này này
alt text

Giờ nếu như thằng Dev nó commit code lên repository như GitHub hoặc make Pull Request, hệ thống CI sẽ tự động detect new source và pull source về để thực hiện build, chạy test (Unit Test, Smoke Test), ngoài ra còn có thể tích hợp 1 số công cụ review code như Coverity hoặc Sonar nữa để generate kết quả review code trước khi chạy test. Nếu như kết quả Test Pass, quá trình deploy sẽ đc trigger và app sẽ được deploy lên server trên các môi trường khác nhau (QA, DEV, Staging và Production environment). Server có thể là on premise hoặc cloud (AWS, GCE). Ngược lại có lỗi thì không deploy, notify lại cho developer qua mail hoặc kênh chat như Slack…
Quá trình CI này được thực hiện bởi các pipeline job. Thực chất là 1 cấu hình build cho 1 ứng dụng. Vòng đời quản lý của 1 ứng dụng có thể có 1 hoặc nhiều job/item, được viết dưới dạng script (Groovy Script hoặc Shell). Các script này sẽ thực hiện các tác vụ tự động như run command build, execute tests script, output kết quả ra console.
Tóm lại thay vì anh DevOps deploy app manual thì sẽ automated nó bằng scripting, vừa đơn giản gọn nhẹ lại ít sai sót.
Tool để làm CI rất nhiều, chẳng hạn như

Source Code version control có Git, SVN, Visual Source Safe, tốt nhất là dùng Git
CI system có Jenkins, Bamboo...Ta khuyến khích ngươi dùng Jenkins nhé, hàng tốt đấy
Testing framework có Junit, CPP, ưu tiên automation framework như Selenium…
Chàng trai thấy lạ liền hỏi
Thế Jenkins nó hoạt động thế nào ạ, làm sao code được job trên Jenkins??
Ngụy Anh Lạc bực mình nói:
Cái đấy bữa sau bà hiện hồn về rồi chỉ cho cách setup và viết pipeline script trên Jenkins, bây giờ đến lúc ta phải thị tẩm với hoàng thượng rồi
Nói xong, bà tát vô mặt chàng IT bốp 1 cái rồi biến mất, chàng giật mình tỉnh dậy hóa ra là giấc mơ.Chàng IT nhớ lại câu chuyện thầm nhủ
“Thằng Dev nó lừa ta, hãy đợi đấy…”
(Còn tiếp)

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Giaosucan

43 bài viết.
447 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
73 42
Part 1 http://www.giaosucan.com/2019/03/toiphongvanosilliconvalleynhunao.html Part 2 http://www.giaosucan.com/2019/03/phongvanosilliconphan2happ...
Giaosucan viết 6 tháng trước
73 42
White
55 5
Bản quyền thuộc Fsoft Potato Tech Mag Giới thiệu series chuyện về kiến trúc Microservice từ thiết kế đển implementation Giaosucan's blog: Chia sẻ...
Giaosucan viết hơn 1 năm trước
55 5
White
31 3
Đón đọc những bài viết đặc sắc ở blog https://giaosucan.blogspot.com Lịch sử ra đời Những người làm trong ngành tài chính ngân hàng sẽ không xa lạ...
Giaosucan viết gần 2 năm trước
31 3
Bài viết liên quan
White
18 1
DevOps6 series NOTE: Đây là Phần 1 trong chuỗi bài viết của mình Ai nên đọc tiếp Nếu anh em là dev muốn sự nghiệp của mình lái nhẹ sang hướng k...
huskykun viết 4 tháng trước
18 1
Male avatar
6 5
Nhân tình cờ thấy khoá học này sắp mở trên Udacity 1] và có bạn hỏi mình cần gì để trở thành DevOps thì mình có ghi lại một số suy nghĩ cá nhân bên...
Thang Man viết 3 năm trước
6 5
White
3 2
Như bài viết trước mình đã giới thiệu các anh em về Laradock, một thư viện mạnh mẽ sẽ giúp các anh em rất nhiều trong việc deploy product ( Laravel...
Hùng Phạm viết 4 tháng trước
3 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
43 bài viết.
447 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!