Devops là làm gì? Hiểu một cách đơn giản thì devops là một văn hoá làm việc nơi mà các devops engineer đòi hỏi nhiều kĩ năng hơn thông thường.
– Ngoài kĩ năng phát triển phần mềm thông thường, còn phải biết dùng kĩ năng coding của mình để phát triển các hệ thống deploy, monitor,… một cách tự động.
Devops là làm gì? Bạn đã hiểu gì về devops?
– Devopsd là làm gì? Kết hợp của cụm từ tiếng anh “software development” và “information technology operationS“) là một thuật ngữ để chỉ một tập hợp các hành động trong đó.
– Nhấn mạnh sự hợp tác và trao đổi thông tin của các lập trình viên và chuyên viên tin học khi cùng làm việc để tự động hóa quá trình chuyển giao sản phẩm phần mềm và thay đổi kiến trúc hệ thống.
– Điều này nhằm thiết lập một nền văn hóa và môi trường nơi mà việc build (biên dịch phần mềm), kiểm tra, và phát hành phần mềm có thể xảy ra nhanh chóng, thường xuyên, và đáng tin cậy hơn.
– Khi mà bạn có thêm kĩ năng về devops thì cùng một vấn đề có thể bạn sẽ có thể có nhiều phương án giải quyết hơn. Từ đó tìm được những phương án tối ưu nhất.
1. Lợi ích lớn nhất của việc dùng devops là gì?
– Đóng góp lớn nhất của devops là, cùng với phương pháp Agile. Nó giúp hoàn thiện việc chuyển đổi quy trình phát triển và vận hành phần mềm từ mô hình thác nước (waterfall) sang mô hình phát triển/phát hành liên tục (continuous development/releases).
2. Những lợi ích chính của devop
– Tăng cường sự cộng tác chặt chẽ giữa nhóm phát triển (development). Và nhóm vận hành (operation), cũng như khả năng làm việc liên chức năng (cross-functional).
– Nâng cao tần suất triển khai (deployment), giúp rút ngắn thời gian phát triển/cải tiến sản phẩm.
– Tận dụng các công cụ tự động hóa, giúp hạn chế rủi ro, giảm tỉ lệ thất bại.
– Thời gian phục hồi sản phẩm nhanh hơn.
– Tất cả đều phục vụ cho mục đích cuối cùng là cải thiện khả năng cung cấp dịch vụ IT một cách nhanh chóng. Từ đó, tăng khả năng cạnh tranh của sản phẩm/doanh nghiệp.
Devops engineer là gì?
– Nhìn chung, công việc chính của devops engineer rất gần với công việc của Sysadmin, bao gồm: deploy, optimizing, monitoring, analysis… Điểm khác biệt là:
– Devops engineer đòi hỏi nhiều kĩ năng mềm hơn, đồng thời phải biết dùng coding, scripting để automate hệ thống.
– Người làm devops engineer cũng cần tìm hiểu về stack mà sản phẩm công ty đang sử dụng. Để có thể cùng review bug. Viết những unit test thông thường, và để khi phát triển tiến trình CI/CD thì deploy “êm ái” hơn.
– Người làm Devops Engineer trước hết phải có tư tưởng – mindset đúng. Họ cần đặt lợi ích doanh nghiệp, lợi ích sản phẩm lên hàng đầu. Đồng thời thấy rằng toàn bộ các team thực chất là cùng một “phe”, cùng chia sẻ lợi ích cũng như rủi ro.
Thay vì đợi team Dev phát triển xong sản phẩm, rồi team Ops mới tham gia vận hành như trước kia.
Devops engineer nên tham gia ngay từ đầu với đội ngũ phát triển
– Devops là làm gì? Hiểu sản phẩm hơn, để tối ưu hóa sản phẩm tốt hơn.
– Học ngôn ngữ lập trình mà công ty sử dụng, để nắm được logic code, mài sắc khả năng tư duy, nắm được tiến trình của code chạy như thế nào.v.v…
– Khi deploy code, nếu gặp vấn đề ở chỗ nào, DevOps Engineer sẽ có thể chủ động tìm lỗi và fix luôn mà không cần phải chờ developer.
Tiêu chí quan trọng nhất khi tuyển devops engineer
1. Luôn đăt lợi tập thể lên hàng đầu devops
– Devops là làm gì Đây là tiêu chí quan trọng nhất. Vì DevOps sinh ra là để giải quyết mâu thuẫn. Tiêu chí này thể hiện qua những việc rất nhỏ nhặt cụ thể.
– Ví dụ như cách anh ta suy nghĩ, tổ chức, cấu trúc code/thư mục như thế nào, chia sẻ những best practices… để mọi người có thể cùng nhau đọc và hiểu code đó, cùng tham gia được với mình.
2. Nhìn nhận mọi thứ từ nhiều khía cạnh devops
– Mâu thuẫn giữa nhóm phát triển và vận hành nảy sinh từ sự khác biệt về góc nhìn. Cho nên, DevOps Engineer cần nhìn nhận mọi thứ từ nhiều khía cạnh, để khách quan, sáng suốt hơn, biết “thông cảm” hơn.
– Cụ thể, khi deploy mà code không chạy, thì DevOps Engineer cần xem xét kĩ: vấn đề nằm ở phía code hay phía môi trường.
– Ví dụ, trường hợp làm với Laravel (PHP Framework), file config là .env. Sysadmin không có kinh nghiệm thì dễ mắc sai lầm là chỉ lấy phần code đó xuống. Và chạy và lỗi thì loay hoay và thường nghĩ do code.
– Trong khi, lẽ ra cần phải hiểu những cấu hình liên quan đến môi trường và cách thức hoạt động của Laravel, và phải tác động vào file.env trước đã.
3. Giao tiếp và hợp tác tốt với các team khác devops
– Trong công việc, mối quan hệ tốt thì cái gì cũng dễ dàng, và ngược lại.
Ví dụ, khi triển khai hệ thống bị lỗi do code, nếu mối quan hệ không tốt thì anh dev thường sẽ cãi cho bằng được.
– Để bảo vệ cái tôi của anh DEV. Còn, nếu mình có mối quan hệ tốt, thì khi xảy ra lỗi, chỉ cần nhẹ nhàng nói: “hệ thống không chạy vì nó bị lỗi như này, như kia”. Anh dev sẽ đồng ý sửa ngay để mình deploy lại.
4. Ngoài ra, một devops engneer cũng cần có
– Kinh nghiệm với system và IT operations, quản lý dữ liệu.
– Nắm vững các tiến trình (CI/CD) và công cụ tự động hóa.
– Khả năng sử dụng nhiều công nghệ và mã nguồn mở, coding/scripting.
Những kĩ năng và công cụ cần thiết cho devops là làm gì?
1. Learn a Programming Language devops
– Bạn cần học ít nhất 1 trong ba ngôn ngữ lập trình cơ bản: Java, Python, JavaScript.
– Ngoài ra mình có suggest thêm có thể học PHP. Vì những ưu điểm vượt trội của PHP như dễ học, tài liệu, thư viện nhiều. Có một cộng đồng đông đảo…
– Học một ngôn ngữ lập trình sẽ giúp bạn nâng cao tư duy lập trình. Giúp đỡ rất nhiều trong việc tạo ra các đoạn script một cách dễ dàng hơn.
2. Understand different OS concepts
– Không nhất thiết cần hiểu sâu về OS và hardware như một Sysadmin. Nhưng ít nhất cũng nên có kiến thức cơ bản về: Process Management, Threads and Concurrency, Sockets, I/O Management, Virtualization, Memory storage and File systems
– Mình nghĩ nên bắt đầu với Ubuntu (a Linux distribution). Vì nó Open Source, giao diện thân thiện, cộng đồng người dùng lớn. Là một trong những Best Linux Desktop Environment.
3. Learn to Live in terminal devops
– Với một devops engineer thì gần như đây là một điều bắt buộc.
– Nguyên nhân ư? Chính là do CLI thì mạnh mẽ hơn rất nhiều so với GUI. Mặc dù GUI thì dễ sử dụng nhưng việc có thêm GUI sẽ làm cho OS trở nên nặng nề.
– Có thể bắt đầu làm quen với một vài Linux shell: Bash, Ksh hoặc một vài tool phổ biến: find, grep, awk, sed, lsof, nslookup, netstat. (Nó sẽ rất hữu dụng khi làm việc trên môi trường CLI.)
4. Networking and Security devops là làm gì
– Đã qua rồi cái ngày mọi thứ bị cô lập, các hệ thống hoàn toàn không có sự tương tác qua lại với nhau. Trong thế giới hiện nay Vạn vật đều có thể kết nối, tương tác với nhau do đó Network và Security càng trở lên quan trọng.
– Vì thế nên có kiến thức cơ bản về: DNS, HTTP, HTTPS, FTP, SSL. Hoặc tìm hiểu thêm về các lỗ hổng bảo mật thường gặp.
5. What is and how to setup devops là làm gì
– Bạn có thể bắt đầu làm quen và thử setup một vài Web Server phổ biến như: Apache và Nginx.
– Tìm hiểu một số khái niệm và chức năng thường được sử dụng: Caching Server, Load balancer, Reverse Proxy, and Firewall
– Có thể bắt đầu với một vài practice với Docker đơn giản như:
– Setup thử một vài cache server
– Giả lập có nhiều servers dưới local bằng cách dùng các Docker container. Sử dụng chức năng Load balancer của Web server để cân bằng tải cho server.
6. Learn Infrastructure as code devops
– Mình nghĩ đây là một trong những vấn đề quan trọng nhất của một DevOps. Một DevOps Engineer nên biết
– Containers: Docker, Kubernetes
– Các công cụ quản lý cấu hình: Ansible, Pupet, Chef,..
– Learn some Continuous Integration and Delivery (CI/CD) tools
– Điều này cũng quan trọng không kém việc Learn Infrastructure as code. Khi nó giúp giảm thiểu công sức, sự nhàm chán khi cứ phải lặp đi lặp lại các thao tác mà mình hoàn toàn có thể làm nó một cách tự động.
– Một vài CI/CD tool phổ biến như: Jenkins, TeamCity, Drone..
– Hồi đầu mình làm quen với Jenkins. Mình có thử tạo 1 freestype project. Với những Step cơ bản như:
– Pull source code from git
– Build source code
– Chạy test code (Nếu cần thiết)
– Deploy to server
– Thông báo kết quả của việc build
7. Learn to monitor software and infrastructure
– Ngoài việc setup và deploy lên server thì một phần không thể thiếu đó là việc monitoring server.
– Có nhiều công cụ tốt bạn có thể thử như: Nagios, Zabbix, Icing, Datadog,…
– Khi mà có hệ thống monitoring hoạt động ổn đinh. Bạn có thể dành thời gian để làm những việc khác. Khi có điều gì đó bất thường thì monitoring system sẽ gửi thông báo cho bạn thông qua mail hoặc điện thoại…
8. Learn about Cloud Provides
– Có bao giờ bạn tự hỏi là tại sao các doanh nghiệp hiện nay lại dùng Cloud Server cho các ứng dụng mà họ phát triển. Mình điểm qua những ưu điểm vượt trội của Cloud server như sau:
– Dynamic computing resources: Khả năng mở rộng resource của hệ thống nhanh, hiệu quả, tiết kiệm. Khi chỉ cần 1 cú click chuột là bạn có thể thay đổi cấu hình của hệ thống.
– Giảm chi phí: Doanh nghiệp sẽ có khả năng cắt giảm chi phí để mua bán, cài đặt và bảo trì tài nguyên.
– Giảm độ phức tạp trong cơ cấu của doanh nghiệp: Doanh nghiệp sẽ giảm được nhân sự bên vận hành, bảo trì máy chủ. Nhất là với những công ty không làm việc trong lĩnh vực IT.
– Nhắc đến Cloud Provides không thể kể đến 3 ông lớn đó là: AWS, Google Cloud và Microsoft Azure.
Liên hệ với SEMTEK để tháo nút thắt cho website của bạn bằng giải pháp về Marketing!
SEMTEK Co,.LTD
🏡 Địa chỉ: 2N Cư Xá Phú Lâm D, Phường 10, Quận 6, TP.HCM
📧 Email: info@semtek.com.vn
☎️ Hotline: (+84)098.300.9285
Các tìm kiếm liên quan:
- công việc của devops là gì
- azure devops là gì
- tự học devops
- what is devops
- khóa học devops
- devops engineer
- devops roadmap
- sysops là gì
Nội dung liên quan:
- Tại sao ứng dụng chatbot facebook rất phổ biến
- Entrepreneur là gì? Tìm hiểu 3 kỹ năng vàng của entrepreneur
- Profile nghĩa là gì? Profile Có Thực Sự Cần Thiết Đối Với Doanh Nghiệp?