Giải Ngố Circleci Là Gì ? Định Nghĩa Về Circleci Giới Thiệu Ci Và Áp Dụng Thực Tế Tool Circle Ci

Trong quy trình tăng trưởng ứng dụng, CI / CD có vai trò rất quan trọng trong việc bảo vệ tăng trưởng ứng dụng liên tục, mà vẫn giữ được chất lượng mẫu sản phẩm tốt. Trong bài viết này tôi sẽ trình diễn những hiểu biết về DevOps và vận dụng Circle CI để :
Test tự động hóa ( Java ) Push tác dụng lên kênh chat trên Slack

1. Tìm hiểu về DevOps

1.1. Giới thiệu về DevOps

DevOps là gì ? DevOps là viết tắt của Development ( Dev ) và Operations ( Ops ). DevOps là một văn hóa truyền thống thao tác tích hợp giữa kỹ sư tăng trưởng ứng dụng ( dev ) với bộ phận operator ( kỹ sư mạng lưới hệ thống, nhân viên cấp dưới bảo mật thông tin, kỹ sư mạng, kỹ sư hạ tầng, … ) nhằm mục đích mục tiêu rút ngắn vòng đời tăng trưởng loại sản phẩm ( SDLC ) .

Đang xem: Giải ngố circleci

DevOps không phải là một Tools tương hỗ thao tác, mà là một giải pháp thao tác cần đến sự tương hỗ của những Tools. Ngoài ra, không có bất kỳ một tiêu chuẩn nào để những những người sử dụng giải pháp DevOps để tuân theo. Nó chỉ đơn thuần là một văn hóa truyền thống, một cách thao tác phối hợp giữa dev và nhân viên cấp dưới operations thay vì thao tác một mình hay chỉ một team độc lập nào đó .
Dưới đây sẽ trình làng về những điều cần biết để vận dụng DevOps, gồm có :

DevOps Culture: văn hóa làm việc kết hợp giữa Dev và Ops DevOps Practices: cách để thực hiện DevOps DevOps Tools: những Tools cần để thực hiện DevOps DevOps và Cloud: mối quan hệ giữa DevOps và cloud

1.2. DevOps Culture

Với cách thao tác truyền thống lịch sử trước đây – dev thao tác riêng và operations thao tác riêng, họ sẽ có tiềm năng việc làm khác nhau. Nếu như tiềm năng của dev là kiến thiết xây dựng function đúng với requirement và release cho người mua càng nhanh càng tốt thì tiềm năng của operations là tạo ra một mạng lưới hệ thống không thay đổi. Trong một thực trạng nào đó, hai tiềm năng này sẽ trái chiều nhau, function hoàn toàn có thể chạy tốt lúc release nhưng sau một thời hạn hoàn toàn có thể Open nhiều lỗi hoặc chạy chậm. Hoặc một mẫu sản phẩm tâm lý nhiều về maintaince system sẽ làm chậm thời hạn release. Vì thế, DevOps được sinh ra với ý tưởng sáng tạo là tích hợp Dev và Ops mới một tiềm năng chung là “ Speed and Stability ” – Tốc độ và không thay đổi .
Vậy khi có 1 team DevOps, những tiềm năng đạt đến đơn cử như sau :

Fast time – to market (TTM): code nhanh, deploy nhanh. Few production failures: khi sản phẩm được đảm bảo về tính ổn định ngay từ đầu thì lỗi sẽ ít xảy ra hơn. Immediate recovery from failures: không may nếu xảy ra lỗi, vì chúng ta có 1 team đầy đủ dev và ops nên có thể nhanh chóng nhận định nguyên nhân lỗi là do program hay do cấu trúc hệ thống,… và có thể nhanh chóng giải quyết vấn đề ngay lập tức.

Trong DevOps culture, cả dev và operations đều phải chăm sóc đến tính không thay đổi và vận tốc của loại sản phẩm. Vì thế, dev và operations sẽ phải thao tác cùng nhau, sử dụng những tools kiểm tra vận tốc và tính không thay đổi của mẫu sản phẩm, nhờ vậy mà hoàn toàn có thể tạo ra những loại sản phẩm tốt hơn .

1.3. DevOps Concepts và Practices

1.3.1. Build Automation
Build Automation là một quy trình tiến độ tự động hóa để sẵn sàng chuẩn bị source code deploy lên thiên nhiên và môi trường bằng cách sử dụng script hoặc tool. Tùy vào ngôn từ được sử dụng mà cần phải compile, transform hoặc thực thi unit test, … so với code. Thông thường build automation cũng giống như việc chạy một command – line tool để chạy doạn code đã được viết script hoặc được setting trong file config. Việc build automation không nên bị phụ thuộc vào vào IDE cũng như những config của máy tính. Nó có nghĩa là code của bạn hoàn toàn có thể được build trên bất kể PC nào, dù là của bạn hay của người khác .
Vậy tại sao phải build automation ? Trước tiên, build automation sẽ giúp tiết kiệm chi phí thời hạn, hoàn toàn có thể handle được những task cần phải build theo một tiến trình nhất định nào đó. Việc build automation cũng bảo vệ code sẽ luôn được build theo một quá trình chuẩn, mà ko xảy ra lỗi do nhầm lẫn hay một nguyên do nào đó. Ngoài ra, build automation còn giúp thực thi việc build code trên bất kể PC nào, bất kỳ ai trong team cũng hoàn toàn có thể làm được. Nó giống như việc bạn cho 1 file lên server shared và bất kỳ ai có quyền cũng hoàn toàn có thể truy vấn, sử dụng file đó .
1.3.2. Continuous Intergration ( CI – Tích hợp liên tục )
CI là chiêu thức yên cầu những developer phải liên tục merge code đổi khác. Với cách thao tác truyền thống lịch sử, những developer sẽ thao tác riêng không liên quan gì đến nhau với nhau và sau một khoảng chừng thời hạn nhất định ví dụ điển hình như 1 tuần họ sẽ thực thi merge code. Tuy nhiên, với CI thì developer phải merge code của họ mỗi ngày và sẽ chạy auto test để detect những yếu tố khi merge code. CI cũng được tự động hóa, và thường thì được tương hỗ bở một CI Server. Khi developer commit source code đổi khác của họ lên, CI Server sẽ thấy sự biến hóa này và khởi đầu thực thi build, test source code đổi khác một cách tự động hóa. Quá trình này sẽ được thực thi nhiều lần trong 1 ngày, và nếu CI server phát hiện có yếu tố xảy ra nó sẽ ngay lập tức hiển thị thông tin cho developer .
Trường hợp có một người khác đưa code của họ lên và xảy ra lỗi trong quy trình build mạng lưới hệ thống sẽ thông tin lỗi cho người đó triển khai fix, đồng thời sẽ rollback lại để không làm tác động ảnh hưởng đến những người khác .
ậy quyền lợi của CI là gì ? Đầu tiên, CI sẽ giúp phát hiện ra bug sớm, thông tin cho developer. Developer hoàn toàn có thể fix ngay lập tức hoặc rollback để không làm tác động ảnh hưởng đến người khác. Tiếp theo, vận dụng CI sẽ giúp tránh việc phải merge một lượng code lớn khi release. Thay vào đó code sẽ được merge tự động hóa mỗi ngày. Đồng thời, nhờ vào việcì code được merge mỗi ngày nên tất cả chúng ta hoàn toàn có thể release liên tục chứ không cần chờ đến cuối tiến trình khi tổng thể mọi thứ đã xong xuôi mới hoàn toàn có thể release được. Khi code được build liên tục nó cũng tạo ra Continuos Testing ( Test liên tục ), QA hoàn toàn có thể test ngay lập tức những chỉnh sửa đã được đưa lên mà không cần chờ đến khi mọi thứ triển khai xong. CI tạo ra một thói quen tốt cho develop, việc liên tục commit sẽ làm developer viết ra những đoạn code đơn thuần, đúng chuẩn ko rườm ra .

1.3.3. Continuous Delivery và Continuous Deployment

Continuous Delivery ( CD ) là method bảo vệ code hoàn toàn có thể được deploy bất kỳ khi nào. Thay vì phải quyết định hành động có nên deploy code hay không thì team phải build, merge, test, … để bảo vệ code luôn ở trạng thái hoàn toàn có thể deploy .
Một số người khi nhắc đến Continuous Delivery thường viết tắt là CD, tuy nhiên cách gọi tắt này sẽ khiến nhầm lẫn giữa Continuous Delivery và Continuous Deployment .
Continuous Deployment là một practice bảo vệ code biến hóa ( có size nhỏ ) được deploy liên tục lên product .
Vậy Continuous Delivery và Continuous Deployment khác nhau như thế nào ? Continous Delivery bảo vệ cho code hoàn toàn có thể deploy bất kể khi nào. Trong khi Continuous Deployment là deploy trong thực tiễn lên product nhiều lần trong ngày .
Xem thêm : Tốt Nghiệp CĐ Gọi Là Gì ? CĐ Chính Quy Và Nghề Có Gì Khác Nhau
Trên trong thực tiễn Continuous Delivery và Continuous Deployment được triển khai theo flow sau :
Mỗi version code đưa lên đều trải qua một quá trình giống nhau, gồm có : build automation, test automation, … Và nếu không có yếu tố gì xảy ra nghĩa là code đó hoàn toàn có thể deploy. Sau khi quyết định hành động deploy thì sẽ triển khai deploy tự động hóa ( deploy automation ). Nếu việc deploy gặp lỗi, mạng lưới hệ thống sẽ tự động hóa rollback. Developer sẽ nhanh gọn fix lỗi và redeploy version fix lỗi .
Với cách làm như vậy Continuous Delivery và Continuous Deployment sẽ đem lại những quyền lợi như dưới đây :

Nhanh chóng đưa sản phẩm đến tay khách hàng Giảm thiếu các vấn đề xảy ra khi deploy Giảm thiếu risk: lượng deploy trong 1 lần càng nhiều, risk càng cao. Việc chia nhỏ lượng deploy sẽ giảm thiểu risk. Rollback lập tức khi xảy ra lỗi Giúp developer không còn lo lắng khi deploy khi đã có chức năng roll back automation.1.3.4. Infrastructure as Code (IaC)

Infrastructure as Code là method giúp quản trị, thiết kế xây dựng hạ tầng ( Infra ) cho mẫu sản phẩm của bạn. Với Infrastructure as Code, thay vì thực thi thủ công bằng tay theo manual. Bạn hoàn toàn có thể viết code và cho chạy tự động hóa. Các đối tượng người tiêu dùng thiết kế xây dựng trong Infrastructure gồm có : server, istance, môi trường tự nhiên, container, …

Vì sao nên sử dụng IaC?

Đầu tiên, IaC bảo vệ việc tạo và quản trị resource đúng tiêu chuẩn. Tất cả mọi việc được thực thi automation, ko có những sai sót nếu triển khai bằng tay. Tính linh động : IaC được cho phép thực thi cùng một đổi khác giống nhau trên nhiều host, và hoàn toàn có thể sử dụng lại trong tương lai. Tính co dãn ( Scalability ) : khi cần thêm instance bạn chỉ cần cho chạy lại config giống với instance có sẵn và một instance mới được tạo ra chỉ trong vài phút hoặc vài giây. Self-documenting : với IaC để xem những config của mạng lưới hệ thống chỉ cần xem trong source control, bạn không cần phải log lại hoặc tạo 1 tài liệu bất kể nào để lưu giữ thông tin config. Chính bản thân code được dùng để build infra chính là document .

2. Giới thiệu về Circle CI

2.1. Đôi nét về CircleCI

CircleCI là 1 công cụ CI được tin dùng bởi hơn 100,000 công ty và developers trên toàn quốc tế, trong đó có Facebook, Segment, Kickstarter, Percolate, Spotify, … Với những ưu điểm như sau :

Faster Performance: Có thể tùy chọn resource để tối ưu performance cho quá trình building, testing và deploying code Granular Control: Có thể build theo các cách tùy thích bằng cách sử dụng custom job với Workflows Complete Flexibility: Tất cả ngôn ngữ chạy trên Linux thì đều chạy được với CricleCI. Hỗ trợ First-class Docker giúp ta có thể tùy chỉnh môi trường tùy thích.

CricleCI thích hợp với nhiều loại sản phẩm và dịch vụ được sử dụng nhiều trong quy trình tăng trưởng ứng dụng

Source Code: thanhchien3d.vn, Atlassian Bitbucket, thanhchien3d.vn Enterprise Tương thích: Tương thích với rất nhiều test tool Deployment: Heroku, Docker, AWS, Azure, Google Cloud, … Collaborations: Jira, HipChat, Slack, …

Ngoài bản Enterprise, CricleCI có Free gồm có :
Build on Linux Không số lượng giới hạn repos và user 1,500 build minutes per month 1 container 1 concurrent build
Bản không lấy phí khá tự do cho những dự án Bất Động Sản nhỏ. Circle CI là 1 tool để giúp ta hiện thực hóa CI. Có nhiều tool CI khác cũng nổi tiếng nữa ( Travis CI, Jenkins … ) .
Circle CI sử dụng docker, trong thông số kỹ thuật Circle CI ta sẽ chỉ định những docker image sẽ sử dụng và những job, trong những job lại có những step, trong những step là đơn cử những command. Ngoài ra còn có thông số kỹ thuật filter giúp ta linh động kiểm soát và điều chỉnh sao cho chỉ run những job khi có merge / push vào 1 số branch nhất định vân vân .
Mô tả quy trình run job trên Circle CI :
Developer chỉ cần push hoặc merge vào 1 branch, Circle CI tự động hóa biết sự kiện đó và khởi động lên job đã được setup tương ứng. Ban đầu Circle CI pull docker image về và run lên trên thiên nhiên và môi trường cloud của nó. Tiếp theo nó chạy những step đã được thiết lập trong docker container, thường thì step tiên phong luôn là checkout tức là git checkout lấy source về ( mặc định lưu trong thư mục ~ / project ) Các step tiếp theo được chạy tùy vào độ phát minh sáng tạo của bạn, ví dụ job để build thì thường là npm install rồi npm run hay job để deploy thì hoàn toàn có thể là aws s3 sync hay serverless deploy … Sau khi toàn bộ những step đã chạy xong, job kết thúc. Nếu exit code của job là error thì mặc định ta sẽ nhận được mail thông tin failed nữa .
Sau khi setup và thông số kỹ thuật ta chỉ việc dev còn những việc làm như build, chạy test, deploy vân vân được tự động hóa trọn vẹn và chạy tức thì trên thiên nhiên và môi trường cloud can đảm và mạnh mẽ không lấy phí của Circle CI .

3. Áp dụng

Sau đây mình sẽ sử dụng Circle CI để thiết lập CI giúp mình tự động hóa deploy và publish trang blog mỗi khi có push đổi khác gì đó lên thanhchien3d.vn .
Blog của mình viết bằng ruby sử dụng template Jekyll trải qua thanhchien3d.vn page .
Quá trình triển khai :
Thiết lập Circle CI : Tạo một thư mục. circleci và tạo 1 file config.yml trong thư mục vừa tạo. Tiến hành push lên thanhchien3d.vn : Push file thông số kỹ thuật circleci lên reposiroty trên thanhchien3d.vn. Theo dõi quy trình build và deploy .

3.1. Cấu hình Circle CI

Bước 1: Đăng ký/đăng nhập Circle liên kết reposiroty thanhchien3d.vn

Tiến hành truy vấn trang chủ circle ci tại đây để đăng nhập. Bạn hoàn toàn có thể đăng nhập bằng thông tin tài khoản thanhchien3d.vn hoặc bitbucket .

Chọn Add projects và chọn reposiroty.

Bước 2: Thiết lập Environment Variables

Chọn project và chọn setting. Trong mục setting chọn mục build setting chọn tiếp vào Environment Variables.

Xem thêm : Giới Thiệu Bộ Giáo Trình Unity3D Tiếng Việt Cực Hay, Giới Thiệu Bộ Giáo Trình Unity 3D Tiếng Việt

*

Tiến hành tạo 2 giá trị trong Environment Variables. USERNAME là username thanhchien3d.vn hoặc email cũng được, PASSWORD là password thông tin tài khoản thanhchien3d.vn .

Rate this post
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments