Chuyện của sys

DevOps Blog

Làm thế nào để deploy một application lên Kubernetes với Helm – Phần 1 March 23, 2020

Chào các bạn , dạo gần đây các từ khoá như : Docker , Kubernetes , Helm … Đã không còn quá xa lạ trong lĩnh vực phát triển phần mềm nói chung và lĩnh vực DevOps nói riêng . Nếu như ví Kubernetes như là một người lái tàu thì Helm chính là bánh lái của con tàu đó . Vì thế hôm nay mình xin chia sẻ với các bạn một cách cơ bản nhất về việc deploy một application lên Kubernetes với Helm , thực ra thì mình cũng mới vừa tìm hiểu Helm trong những ngày gần đây . Nếu có gì sai sót mong các bạn đóng góp ý kiến bên dưới . 
1)  Điều kiện . 
Trong serial này để hiểu về cách deploy một application lên Kubernetes với helm thì bạn phải cần nắm rõ các khái niệm , thành phần , cấu trúc cơ bản của Kubernetes ( Ví dụ : Deployment , Service , Ingress , Pod , ReplicaSet … ) .
2) Khái niệm về Helm .
Việc ra đời của Helm giúp cho người dùng thao tác chỉnh sửa các thành phần của Kubernetes trở nên đơn giản hơn , tránh việc thao tác chỉnh sửa lỗi trên các thành phần của Kubernetes , Helm nói đơn giản hơn nó là package manager cho Kubernetes giống như : NPM , YARN , APT , YUM … Hiện tại thì helm cũng đã là project chính thức trong hệ sinh thái của Kubernetes .
3) Thành phần của Helm . 
Chart : Helm sử dụng một định dạng đóng gói gọi là Chart , trong đó bao gồm tất cả các file YAML mô tả một tập hợp cấu thành nên một App/Service được triển khai trên Kubernetes .

Config variables : Giống như trong Ansible có inventory/staging/group_vars , inventory/production/group_vars , roles/service/defaults/main.yml thì config variables của Helm tương tự như vậy bao gồm helm-chart/production.yaml , halm-chart,staging.yaml , values.yaml  .  values.yaml dùng để config variables chung cho cả helm-chart , còn các config production.yaml , staging.yaml dùng để làm config variables riêng cho các environment các nhau . Vì sao lại như vậy thì mình sẽ nói ở phần tiếp theo ở phần deploy .
Templates : Đúng như cái tên của nó , trong templates bao gồm các manifest file cho Kubernetes , nó được ví như một bộ khung mà khi kết hợp với các Config variables sẽ tạo nên một manifest file cho Kubernetes hoàn chỉnh .

Release:  là một version application của Kubernetes hoàn chỉnh .

4) Kiến trúc của Helm
Helm client : Cũng giống như kubectl của k8s , nó cung cấp cho người dùng để thao tác với Tiller Server thông qua command line để : install, upgrade, rollback … các chart .
Tiller server :  là một deployment được deploy lên Kubernetes , cũng giống như Kube-api nó dùng để cho kubectl tương tác thông qua command line nhưng khác ở chỗ nó được xem là trung gian giữa Helm client và Kube-api . Sau khi nhận tương tác từ Helm client tới Tiller server , Tiller server sẽ tương tác với Kube-api để thực thi thay đổi các thành phần như Deployment , Service , Pods … có trên Kubernetes .
Vừa rồi là một số khái niệm cơ bản của Helm mà mình đã tìm hiểu và ghi lại , hi vọng rằng nó sẽ giúp cho các bạn hiểu được phần nào về Helm . Ở phần tiếp theo mình sẽ nói chi tiết hơn về phần cài đặt Helm client , Tiller server và cách mà các bạn có thể sử dụng helm để deploy một application cơ bản lên Kubernetes . Để hiểu hơn về Helm các bạn có thể đọc tại https://helm.sh/docs/ , Cảm ơn các bạn đã đọc bài viết của mình .

No Comments on Làm thế nào để deploy một application lên Kubernetes với Helm – Phần 1
Categories: Linh tinh

Tản mạn chuyện đầu năm January 24, 2020

Chào các bạn lại là mình đây , năm cũ đã qua và năm mới đã tới . Lời đầu tiên mình xin chúc tất cả các anh em DevOps , SRE , SysOps lẫn Dev có một năm mới làm việc hiệu quả , có thêm nhiều bug , issue , sự cố mới trong hệ thống để sang năm có thêm kinh nghiệm cũng như có cái để deal lương với sếp =))) .
Năm 2019 vừa qua là một năm quả thật thành công đối với bản thân của mình , được biết những người bạn mới , những công nghệ mới , những bài học mới  và những người dẫn dắt để trau dồi cho bản thân ngày càng hoàn thiện hơn .

Cảm ơn tất cả những người bạn , những người đồng đội , những người anh em và cả những người đã dẫn dắt giúp đỡ mình trong năm qua … Chúc cho tất cả mọi người có một năm mới an khang thịnh vượng , hạnh phúc và may mắn .
 

No Comments on Tản mạn chuyện đầu năm
Categories: Linh tinh

Tâm sự của một System Engineer – Part 2 October 24, 2019

Chào các bạn lại là mình đây , bây giờ là là 23h và mình vừa tắm xong sau một ngày dài ở công ty về , lướt lướt blog xem đọc lại các bài viết cũ thì thấy người anh thiện lành Nhanpt14 đăng bài Chuyện của sys 2019 có cái gì? hứa với ổng lâu lắm rồi mà chưa viết bài nào nên sợ ông xoá blog thì lại không có chỗ nào giaỉ vầy tâm sự cùng anh em sau những ngày dài làm việc mệt mỏi .
Quay lại chủ đề chính hôm nay mình muốn chia sẻ tâm sự cùng các bạn về một chủ đề “Làm thế nào để có mức lương tốt trong lúc thị trường đang bong bóng cho các vị trí như DevOps/SRE/System Enginner ? ”
Dạo 1 2 năm gần đây các bạn không khó để thấy các job tuyển dụng  DevOps/SRE/System Enginner tràn lan trên các MXH (Linkedin , Facebook , Twitter … ) nhưng mức lương thì không hề thấp một chút nào , tại sao vậy ? Theo như nhà tỷ phú Trung Quốc Jack Ma có chia sẻ “Thế giới đang chuyển dần sang data hóa. Tôi nghĩ chúng ta đang sống trong giai đoạn khởi đầu của thời đại bùng nổ dữ liệu
Như các bạn đã thấy chúng ta cũng đang dần data hoá những thứ trong cuộc sống và kéo theo đó các ứng dụng , nền tảng , dịch vụ ra đời càng ngày càng nhiều , để đáp ứng những nhu cầu tất yếu thì cần phải có một đội ngũ developer hùng hậu để phát triển các sản phẩm nêu trên , một sản phẩm muốn được vận hành trơn tru , chịu tải tốt  , release các tính năng mới một cách nhanh chóng thì cần có những người có hiểu biết chuyên sâu về quy trình làm việc , có kiến thức hệ thống cũng như cách vận hành một sản phẩm nhưng các bạn cũng biết trước đây để tuyển một người làm System thuần đã khó nay muốn tuyển một người có kinh nghiệm làm việc trong một môi trường phát triển phần mềm càng khó hơn vì thế hôm nay mình xin chia sẻ cho các bạn những cách để các bạn có một mức lương tốt trong lúc thị trường đang bong bóng như lúc này .
1) Hãy là một người có tư duy tự động hoá mọi thứ nếu có thể
Các bạn biết đấy làm trong một System engineer làm trong một công ty phần mềm , khác hẳn với lại System engineer truyền thống như Quản trị mail , ftp server , router , switch , server … thì bạn phải làm hơn rất là nhiều ví dụ deploy code mới ở các môi trường nơi tôi làm gọi là “Sin Cốt” , deploy môi trường mới cho các project mới , deploy các Opensource phục vụ cho các project của dev … bạn biết đấy nếu như làm tay thì sẽ không bao giờ có đủ thời gian để làm tất cả những việc đó thay vào đó sẽ là những thứ như Shell , Ansible , Salt , Puppet những công cụ có thể tự động hoá tất cả mọi thứ nếu bạn có khả năng làm việc với nó .
2) Hãy biết ít nhất là một nền tảng điện toán đám mây
Như các bạn hầu hết các công ty phần mềm startup hiện tại đang sử dụng các nền tảng điện toán đám mây (AWS , GCP , Azure , Alicloud …) tính linh hoạt co giãn tức thời , các bạn có thể scale một cách nhanh chóng nếu sản phẩm các bạn phát triển nhanh , tối ưu chi phí ban đầu phải trả thay vì đầu tư số tiền lớn để mua các server physical . Vì thế để có được mức lương tốt ngay lúc này hãy học ngay cho mình ít nhất một nền tảng điện toán đám mây .
3)  Hãy là một người biết bắt trend tốt
Công nghệ càng ngày càng phát triển mỗi ngày mỗi giờ là mỗi sản phẩm công nghệ được release vì thế hãy là một người biết cập nhập công nghệ tìm hiểu thị trường đang cần gì và hãy bắt kịp xu thế công nghệ bạn sẽ là người có một mức lương tốt những từ khoá như (Kubernetes , Docker , Helm , Prometheus , Gitlab-ci , Jenkins … ) đang là những từ khoá hot những tại thời điểm hiện tại và có lẽ cho một vài năm tiếp theo vì thế nếu có thời gian hãy cập nhập công nghệ thường xuyên để mình không bị outdate .
4)  Hãy là một người thân thiện và kết bạn với những người giỏi
Kiến thức là vô hạn còn sức người thì có hạn vì thế đôi lúc khi làm việc chúng ta gặp những case khó nhưng nếu tìm hiểu lại thì phải mất rất nhiều thời gian và tính chất công việc không cho phép , thì lúc này là lúc bạn có thể nhờ vả những người bạn người anh thiện lành mà bạn đã connect từ trước giúp đỡ , tất nhiên một mối quan hệ có thể phát triển được thì phải có sự trao đổi lẫn nhau bạn không thể giúp họ trong vấn đề kỹ thuật thì bạn có thể giúp họ trong các lĩnh vực khác nhưng hãy đừng ngại ngùng mà không hỏi .
Hơn nữa những người mà bạn connect có thể cũng sẽ giới thiệu bạn với những công việc tốt , mức lương tốt , mà phỏng vấn không quá khó vì đã có sự ref và tin tưởng từ trước .
5)  Hãy học một ngôn ngữ nào đó khác tiếng mẹ đẻ
Thời đại công nghệ phát triển hội nhập để có một mức lương cao ngoài kỹ thuật thì bạn cần phải có kỹ năng mềm ở đây là ngôn ngữ . Nếu có thời gian rảnh hãy học cho mình một ngôn ngữ nào đó có thể là tiếng Anh hoặc Tiếng Nhật , Tiếng Trung tuỳ vào sở thích mà bạn có thể chọn mình xin cam đoan với các bạn nó không hề thừa đâu . Nếu không tin bạn có thể xem ảnh .

Một mức lương đáng mơ ước nhỉ , Ngoài ra nếu có ngôn ngữ tốt và kỹ thuật tốt bạn hoàn toàn có thể kiếm một công việc ở nước ngoài như (Singapor , Đức , Nhật …) .
6) Hãy học lập trình . 
Khi làm trong môi trường trong các công ty phát triển phần mềm thì ít nhiều gì hãy học lấy cho mình một ngôn ngữ lập trình (Python , Golang , Java , Php …) để phục vụ cho công việc của mình bởi đôi khi những sản phẩm OpenSource được clone bên ngoài về không đáp ứng đủ nhu cầu hoặc không phù hợp với môi trường thì bạn hoàn toàn có thể custom nó cho phù hợp , hoặc bạn có thể viết một API một con bot nào đó phục vụ cho mục đích automation của mình , hoặc collect các data để monitor … Tùy vào mục đích nhưng hãy học lập trình nếu có thể ngay từ hôm nay .

Trên đây là những điều mà mình đã chia sẻ có thể nó đúng hoặc sai vì đây là ý kiến cá nhân của mình và không có ý định chỉ trích một ai cả , hi vọng nó sẽ giúp ích cho bạn ở hiện tại và tương lai , nếu thấy hay hãy kéo lên trên cho mình 1 like các bạn nhé .

2 Comments on Tâm sự của một System Engineer – Part 2
Categories: Linh tinh