#chuyencuasys.com

“DevOps is bullshit”

Techtalk cuối tuần – GitOps April 11, 2021

Chào các bạn , hôm nay là một ngày cuối tuần khá là nhàn rỗi đối với mình .Vì thế hôm nay mình xin phép lên đây chia sẻ , trao đổi một chút về một khái niệm mới cũng không hẵn mới , nhưng cũ thì cũng chẳng phải là cũ đó là GitOps .

1) Vậy GitOps là gì ? 
Chúng ta có thể tách nghĩa của nó ra trong từ “GitOps” . Git là một source control để lưu tất cả các manifest , config , source code của các bạn . Ops là Operation là hệ điều hành ,  hiểu rộng hơn có thể là một Infrastructure . Vậy GitOps bạn có thể hiểu nôm na chúng ta thay vì phải thao tác trực tiếp trên Operation/Infrastructure thì chúng ta có thể thao tác tất cả ở trên Git .

2) Tại sao phải sử dụng GitOps ?
Quay về cách đây 5 năm hoặc thậm chí là 10 năm khi ta muốn thao tác cài đặt hàng loạt các package cho các servers thì chúng ta có thể ssh vào từng con server để cài đặt , hoặc các master thời đó có thể viết Shell Script hoặc xịn hơn là Ansible để thao tác . Nhưng một vấn đề gặp phải là các action này không lưu lại history , rollback rất khó khăn hoặc rất chậm , không an toàn khi thao tác với hệ thống và còn rất nhiều vấn đề khác mình sẽ trình bày ở bên dưới .

– Sử dụng GitOps sẽ giúp cho bạn có thể lưu được tất cả các action của thành viên trong team dựa vào cơ chế merge request của Git . Khi ai đó cần action một cái gì đó tới hệ thống thì sẽ phải pull repository về sau đó phải commit và merge request để các leader review sau khi approve thì action kia mới có effect .
– Sử dụng GitOps sẽ giúp cho bạn rollback một cách dễ dàng hơn bằng việc quản lí source tại Git .
– Sử dụng GitOps cũng là một cách để các bạn docs lại kiến thức của mình và có thể đọc code để xem lại bất cứ lúc nào .
– Sử dụng GitOps có thể giúp bạn đỡ phải login vào server để thao tác tránh rủi ro không đáng có .
– Apply GitOps sẽ giúp bạn và team của bạn tiết kiệm được rất nhiều thời gian bằng việc automation tất cả mọi thứ .
– Hơn nữa GitOps giúp team bạn gắn kết hơn làm việc hợp tác với nhau hơn bằng việc lưu tất cả các action ở Git.
3) GitOps hoạt động ra sao ?
Giả sử ở đây mình có một manifest helm bên dưới , bình thường mình sẽ phải chạy command line để apply một secret và configmap của mình tới cluster Kubernetes
helm upgrade secret-test ./secret \
–install \
–namespace=”test-namespace”
và lần khác cần chỉnh sửa gì mình lại phải vào folder này để chỉnh sửa các values rồi lại chạy command dài loằn ngoằn một lần nữa . Việc này khá là tốn thời gian cho bạn .


Vậy khi apply GitOps thì flow làm việc của mình sẽ như nào ?
Mình chỉ cần edit file mình cần edit và commit nó lên Git , còn lại Git sẽ tự làm tất cả việc còn lại . Bên dưới mình có vẽ một mô hình cơ bản về GitOps .

Developer edit config lên Git sau đó sẽ có CI sẽ run command dài loằn ngoằn để deploy tới K8s Cluster . Thật đơn giản phải không ? Nhưng sao phía CI/CD lại biết mình chạy command nào mà nó run được hay vậy ?  Vì các config sẽ được lưu ở 1 file có tên là .gitlab-ci.yml file này sẽ thực hiện tất cả các thao tác mà mình đã define từ trước . Nhưng bài viết này mình chỉ tập trung về GitOps nên có lẽ mình sẽ chia sẻ chi tiết hơn về Gitlab-CI .

Thực sự GitOps là khái niệm tuyệt vời để cho các team DevOps/System có sizing lớn làm việc cùng với nhau một cách hiệu quả nhất mà không bị conflict giữa các thành viên với nhau . Hi vọng qua bài viết này bạn có thêm một chút khái niệm về GitOps cũng như các GitOps hoạt động ra sao . Cảm ơn các bạn đã đọc bài , nếu thấy hữu ích hay cho mình 1 like để ủng hộ mình nhé . Have a nice weekend . 

No Comments on Techtalk cuối tuần – GitOps
Categories: Linh tinh

Tản mạn chuyện cuối năm February 11, 2021

Chào các bạn , lại là mình đây .Hôm nay là 30 tết cũng là ngày cuối cùng của năm 2020 theo tết âm lịch của người Việt Nam . Kết thúc một năm đầy biến động với những pha nhảy việc thần thánh của mình và những chuỗi ngày cực kì khó khăn trong năm 2020 khi đã nhảy việc tận 4 lần để tìm được chỗ mới cho mình . Hi vọng sẽ gắn bó thật lâu với công ty để có thể phát triển được những sản phẩm tốt nhất cho người Việt .

Lời cuối mình xin chúc AE DevOps/SysOps thật nhiều incident , thật nhiều challenge để có thể deal lương tốt với sếp trong năm tiếp theo , chúc cho cộng đồng DevOps/SysOps phát triển càng ngày càng mạnh , chúc cho gia đình , bạn bè người thân của các anh em thật nhiều sức khoẻ , may mắn và thành công trong cuộc sống .

Tại hạ xin cáo bút ở đây . HAPPY NEW YEAR LUNAR !!!!

No Comments on Tản mạn chuyện cuối năm
Categories: Linh tinh

Là một DevOps Engineer bạn sẽ chọn làm công ty product hay công ty outsource ? January 19, 2021

Chào các bạn , thời gian tết đến xuân về cũng đang cận kề , chắc AE System/DevOps cũng đang dần dần đóng băng và review hệ thống để chuẩn bị cho một mùa tết ấm no hạnh phúc với những chiếc bánh chưng , bánh giầy to bự từ công ty :))) . Mình thì năm nay nhảy việc 4 lần nên chắc cũng chả có bánh chưng chứ đừng nói là nhân thịt hay nhân ngọt 🙁 , đúng là một năm kinh tế buồn mà . 2H sáng chợt tỉnh giấc để chuẩn bị migrate hệ thống nhưng thấy thời gian còn nhiều quá nên lên đây bàn luận với các bạn về một vấn đề cũng khá nhiều tranh cãi “là System/DevOps Engineer thì nên làm công ty product hay là công ty outsource” . Dưới đây là quan điểm cá nhân của mình , nó có thể đúng hoặc sai , hi vọng rằng sẽ nhận được nhiều phản hồi từ các bạn để mình có thêm nhiều ý kiến hơn .

1. Sự khác nhau giữa một công ty outsource và một công ty product ? 

– Công ty outsource/outsourcing : Công ty anh A có ý tưởng , có tài chính và muốn thuê công ty anh B viết 1 soft hoặc project để công ty anh A có thể đem ra thị trường với danh nghĩa là của công ty anh A . Anh A có trách nhiệm thanh toán tiền còn công ty anh B có trách nhiệm hoàn thành yêu cầu soft/project cho công ty anh A , Sau khi hoàn thành xong soft/project công ty anh B bàn giao tất cả lại cho công ty anh A và sau đó tiếp tục tìm 1 công ty anh CDEXYZ để viết tiếp . Nói nôm na thì công ty outsource là công ty chuyên đào tạo những chiến binh tinh nhuệ để đi đánh thuê , đánh nhanh rút gọn hoàn thành tốt nhiệm vụ và nhận thù lao .

– Công ty product là công ty mà vừa có ý tưởng , vừa có tài chính lại vừa có nguồn nhân lực để có thể tự phát triển các soft/project cho chính công ty của mình . Nói nôm na thì công ty product là một công ty chuyên đào tạo những chiến binh tinh nhuệ để tự xây dựng đế chế riêng của mình từ đó có thể đưa ra thị trường tìm kiếm users và đem về nguồn thu nhập .

2. Công việc của một System/DevOps Engineer trong một công ty outsource và một công ty product là gì ? 

Mình thì thật là may mắn khi đã được làm việc và trải nghiệm được nhiều môi trường làm việc, từ outsource cho tới product cho tới lai giữa outsource và product .
Vì thế mình cũng muốn chia sẻ với các bạn về những trải nghiệm của mình khi làm việc tại 2 môi trường này .

– Tại công ty outsource công việc thường ngày của một System/DevOps Engineer thì sẽ phải handle một lúc nhiều projects cùng một lúc đôi khi là 10 – 15 projects công việc chủ yếu sẽ là họp cùng DEV team và khách hàng khi có một project mới được launch từ request của khách hàng . Sau đó lên plan chuẩn bị resource cho các môi trường DEV/STAG , triển khai CI/CD ,  setup môi trường , phối hợp cùng dev benchmark . Vì tính chất công ty outsource cần nhanh để sản phẩm release sớm giao cho khách hàng nên thường làm trong môi trường outsource các System/DevOps Engineer sẽ ít được động chạm tới performance/CCU của sản phẩm vì thực tế thì chỉ được làm ở môi trường DEV/STAG và ít đụng chạm tới real users .

– Tại công ty product công việc thường ngày của một System/DevOps Engineer sẽ vất vả hơn nhiều mặc dù thì có thể handle một lúc ít projects cùng lúc hơn . Chủ yếu sẽ làm việc trực tiếp với DEV team và team leader khi có một project mới được launch từ request của team product . Sau đó team System/DevOps và team DEV sẽ phải họp lên plan chuẩn bị resource cho việc launch sản phẩm ra ngoài , triển khai CI/CD , setup môi trường , benchmark . Vì tính chất là công ty product nên các System/DevOps Engineer cần phải làm việc với tinh thần trách nhiệm cao , phải on call 24/7/365 khi các services production có sự cố hoặc bị die thì phải xử lí ngay lập tức , tránh việc downtime lâu ảnh hưởng tới người dùng đang sử dụng bên ngoài  . Nếu làm cty product mà có incident report thì quả là 1 cực hình, stress triền miên khi lỗi không thuộc về mình mà phải đi report 😄

– Như mình đã nói ở trên thì vẫn AE System/DevOps Engineer còn làm trong một môi trường khác nữa là lai giữa hai môi trường . Nói nôm na thì công ty khách hàng sẽ thuê bạn về làm việc vận hành cho sản phẩm product của họ thường thì những AE làm trong khoảng lai giữa hai môi trường outsource và product này sẽ là những người khá là master trong việc vận hành sản phẩm cũng như phát triển hệ thống . Vì khách hàng thường sẽ giao cho bạn những công việc khá là khó khăn cũng như độ trách nhiệm cực cao . Thì ở môi trường này , các AE System/DevOps Engineer sẽ làm việc như một người lính đánh thuê chuyên nghiệp và cũng vừa là một người xây dựng đế chế riêng của mình . Riêng mình thì khá thích làm việc ở môi trường này , vì thường sẽ được làm việc remote và mức đãi ngộ khá là cao từ công ty thuê .

3. Các điểm tốt và không tốt khi làm việc tại một công ty outsource và một công ty product là gì ?
– Công ty outsource :
Điểm tốt :
– Sẽ được làm được nhiều công nghệ mới , tiếp cận khá nhiều flow làm việc mới .
– Được make color hệ thống .
– Thời gian không gò bó có thể vứt laptop ở nhà mà đi chơi với gấu mà không cần phải lo hệ thống chết giữa chừng .
Điểm không tốt : Làm nhiều công nghệ mới những sẽ không làm sâu , không hiểu sâu sẩn phẩm của mình , vì thường sản phẩm có vòng đời khá ngắn nên chỉ làm cho xong rồi tiếp tục với các sản phẩm mới từ request khách hàng .

– Công ty product : 
Điểm tốt :
– Sẽ được làm một số công nghệ là stack của công ty nhưng sẽ được đào sâu nghiên cứu .
– Vì tính chất vòng đời của sản phẩm khá là dài vì thế sẽ được nhìn thấy sản phẩm do mình owner phát triển từng ngày từng ngày đó là một điều cực kì hạnh phúc đối với những AE làm việc tại các công ty product .
Điểm không tốt :
– Sẽ ít được làm những công nghệ mới vì công ty product cần một sự ổn định cao cho nên  khi đưa một công nghệ mới vào tổ chức cần được cân đo đong đếm rất nhiều mới có thể apply vào được .
– Thời gian khá là gò bó khi phải on call 24/7/365 trực hệ thống khi có event , hoặc có một service mới được đưa ra ngoài .

4. Vậy AE System/DevOps Engineer nên chọn công ty nào để làm việc ?

Như mình đã giải thích rõ tính chất công việc ở trên rồi , mình nghĩ các bạn cũng đã có câu trả lời cho chính mình .
– Nếu bạn muốn làm nhiều công nghệ mới , nhiều thứ mới mẻ thì mình nghĩ nên chọn công ty outsource sẽ phù hợp với bạn .
– Nếu bạn muốn nhận nuôi một đứa con tinh thần muốn nhìn nó phát triển từng ngày , từng ngày thì đừng ngại ngần hãy đến với những công ty product mình chắc chắn bạn sẽ rất happy khi làm điều này .
– Còn nếu bạn làm vì TIỀN ok thoai :)) hãy chọn công ty nào trả lương cao nhất :)))

“Trên đây là đôi dòng chém gió của mình trong thời gian đợi migrate hệ thống giờ cũng đã 3h sắp tới giờ migrate hệ thống rồi . chúc các bạn có được sự lựa chọn đúng đắn cho nghề nghiệp của mình . Chúc bạn và hệ thống của bạn luôn luôn khoẻ mạnh . Cảm ơn các bạn , nếu thấy hay đừng ngại ngần để lại cho mình 1 like và share nhé . Mãi iuuu :*”

No Comments on Là một DevOps Engineer bạn sẽ chọn làm công ty product hay công ty outsource ?
Categories: Linh tinh

DevOps Engineer làm gì khi rảnh rỗi ? June 28, 2020

Chào các bạn , dạo gần đây sau khoảng thời gian khá bận rộn thì cuối tuần cũng được nghỉ ngơi và thư giãn , mình lên đây chia sẻ đôi điều , chém gió cùng các bạn . Vậy theo các bạn một người DevOps Engineer làm gì khi rảnh rỗi ? Và dưới đây là đôi lời chia sẻ quan điểm cá nhân của mình .

1) Tìm một course để học

Kiến thức là vô hạn không ai có thể biết hết tất cả mọi thứ , vì thế khi rảnh rang các bạn có thể tìm một course nào đó để học hoặc có thể hơn là ôn thi một cert nào đó lận lưng nó rất tốt cho việc sau này các bạn có thể tìm một cơ hội mới . Việc update kiến thức mỗi ngày là cần thiết mà đúng không mọi người .

2) Vẽ việc để làm

Với một người DevOps Engineer khi đã automation mọi thứ trong quy trình từ Dev -> Stg -> Prod thì cũng là lúc thời gian rảnh rang để research vẽ việc , làm lab/test các công nghệ mới , hoặc có thể dev vài project nhỏ cho bản thân để tối ưu hoá công việc của mình hơn . Từ đó có thể apply vào quy trình , công việc của bản thân . Đừng ngại khi học một công nghệ mới vì tin mình đi nó sẽ rất tốt cho các bạn trong tương lai gần mà thôi .

3) Mời cơm trưa hoặc cafe đồng nghiệp

Theo mình thấy,  nếu các bạn làm ở một môi trường nhỏ thì thường sẽ biết hết tất cả các developers,  nhưng nếu bạn đang làm trong một công ty lớn tầm vài trăm developers, thì việc biết mặt hết tất cả mọi người là điều không thể. Vì thế là một người DevOps Engineer hãy kết nối với mọi người nhiều hơn , bạn có thể mời người làm cùng project của mình một ly cafe hoặc bữa trưa để cả 2 cùng nhau chém gió , trao đổi thêm về công việc , giúp cho mối quan hệ tốt hơn từ đó công việc của mình sẽ trở nên trơn tru hơn , ăn ý hơn .

4) Trao đổi với leader nhiều hơn

Nhiều bạn thường sẽ có tư duy việc mình mình làm , ít khi nào trao đổi với các leader , người quản lý trực tiếp của mình . Có thể khi hết việc một số bạn sẽ ngồi chơi , lướt Facebook , xem Youtube nhưng thay vì như vậy các bạn có thể trao đổi với sếp nhiều hơn, về định hướng sắp tới của các project, biết đâu bạn tìm thấy một cái gì đó mà bạn đã research và apply luôn vào những project .

5) Phỏng vấn dạo .

Về vấn đề phỏng vấn đối với các bạn khá là serious nhưng đối với mình việc phỏng vấn dạo không có gì là xấu , nhưng đừng đi quá nhiều có thể các bạn sẽ bị vào blacklist của các HR . Quay lại vấn đề phỏng vấn dạo , việc này rất tốt đối với các bạn mới đi làm 2 – 3 năm vì nếu làm quá lâu ở một tổ chức có thể bạn sẽ bị outdate lúc nào mà không biết , việc phỏng vấn sẽ giúp các bạn update được tình hình thị trường đang cần gì , muốn gì , và định giá bản thân của mình đang ở thị trường là bao nhiêu .

Trên đây là đôi lời mình chia sẻ , theo quan điểm cá nhân của mình . Vì thế nếu có gì đúng hoặc sai vì thế các bạn có thể comment bên dưới để bổ sung thêm nhé. Nếu thấy hay hãy cho mình 1 like . Chúc các bạn có một cuối tuần vui vẻ , không bị incident để tận hưởng một ngày cuối tuần ý nghĩa bên gia đình và người thân . 

 

No Comments on DevOps Engineer làm gì khi rảnh rỗi ?
Categories: Linh tinh

Cài đặt cluster Kubernetes sử dụng RKE April 25, 2020

Chào các bạn, hôm nay mình xin giới thiệu cho bạn một công cụ tuyệt vời, nó có thể giúp bạn launch một cluster Kubernetes trên physical chỉ trong vòng chưa tới 20 phút . Thật tuyệt vời phải không nào , hãy theo dõi bài viết của mình bên dưới nhé .

1) Giới thiệu

Rancher Kubernetes Engine (RKE) là một công cụ dùng để triển khai môi trường Kubernetes trên máy chủ vật lý hoặc máy chủ ảo hóa. RKE đơn giản hóa việc cài đặt Kubernetes trên bất kì hệ điều hành và nền tảng nào bạn đang chạy .

2) Chuẩn bị

Ở mô hình trong bài viết bạn cần có 3 server để sử dụng làm 3 nodes trong bài viết này lần lướt sẽ là : 10.0.0.1 , 10.0.0.2 , 10.0.0.3 đã cài đặt trước Docker .

3) Cài đặt 

Như mình có nói ở phần 2 bạn cần cài đặt Docker trên 3 node mình muốn deploy Kubernetes  . Sau đó là cài đặt RKE  trên máy client .

$ wget https://github.com/rancher/rke/releases/download/v0.2.1/rke_linux-amd64 && mv rke_linux-amd64 /usr/bin/
$ rke -v rke version v0.2.1

Chuẩn bị 1 manifest như sau :

Sau đó run command line như bên dưới và đợi kết quả .
$ rke up –config rancherui-cluster.yml

Export KUBECONFIG and show nodes :
$ export KUBECONFIG=kube_config_rancherui-cluster.yml

$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
10.0.0.1 Ready controlplane,etcd,worker 20m v1.13.4
10.0.0.2 Ready controlplane,etcd,worker 20m v1.13.4
10.0.0.3 Ready controlplane,etcd,worker 20m v1.13.4

Các bạn thấy nó đấy khá là đơn giản và tiện lợi để có 1 cluster Kubernetes . Nếu bạn thấy thích hãy like nó và để lại comment bên dưới cho mình nhé . Thanks các bạn

No Comments on Cài đặt cluster Kubernetes sử dụng RKE
Categories: Linh tinh

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

Chào các bạn, ở phần 1 mình đã giới thiệu một cách cơ bản về Helm và một số các thành phần cơ bản của nó . Và ở phần này, mình sẽ nói một cách cơ bản nhất làm thế nào để deploy một application sử dụng Helm lên Kubernetes .

1) Build một image .

Ở bài này mình sẽ đưa một app Nodejs để sử dụng Helm deploy lên Kubernetes .

Dockerfile : 

Project Nodejs :

Build image: 

Push image tới registry của Docker Hub

2) Tạo một helm chart

Tạo deployments , ingress , service :

Edit file values.yaml

3) Deploy Helm chart đã tạo tới cluster Kubernetes .

Sau khi đã tạo các thành phần cần cho helm chart thì mình sẽ sử dụng helm để deploy .

Check syntax :

Deploy:

Thử vào web :

Trên đây là hướng dẫn giúp các bạn có thể sử dụng Helm để deploy một app nodejs lên một cluster Kubernetes . Hi vọng sẽ giúp các bạn có thêm kiến thức hữu ích . Hãy để lại một like nếu bạn thích nó và chúc cho các bạn có một kì làm việc [email protected] Covid-19 có thêm được nhiều kiến thức mới .

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

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

Tôi đã pass vị trí System Engineer tại Zalo như nào ? Part 4 – Chuẩn bị CV July 23, 2018

Chào các bạn để tiếp tục theo Serial của mình về việc chuẩn bị những điều cần thiết khi đi phỏng vấn tại Zalo , thì các bạn biết rồi đấy CV là một cái cực kì quan trọng cho việc thành bại của một buổi phỏng vấn nhưng khoan bàn đến chuyện nội dung của CV đã.
Ngày xưa khi chưa có Zalo , Facebook hay là Yahoo thì các cô cậu học sinh muốn tán tỉnh ai đó sẽ phải dùng thư tình nhưng các bạn biết đấy nó sẽ có nhiều trường hợp và cách để cho đối phương đọc thư của mình :

+ Điển hình nhất là để hộc bàn tỉ lệ fail khá cao
+ Đưa trực tiếp cái này phải quen từ trước nếu không đối phương sẽ khá là ngại trong việc nhận thư và ngay cả người đưa thư cũng ngại
+ Cuối cùng là đưa cho con bạn thân , cái này tỉ lệ thành công khá là cao

Áp dụng kĩ thuật từ xưa của anh cha để lại thì việc gửi CV cũng vậy , ở Zalo cũng có 2 cách cho bạn apply thứ nhất là các bạn có thể gửi CV trực tiếp qua website tuyển dụng trực tiếp của Zalo Clickhere hoặc qua mail của HR tuyển dụng nhưng nếu bạn không phải là một người quá xuất sắc trong việc chém gió cũng như làm CV thì mình khuyên bạn nên làm theo cách 2 của mình đó là các bạn nên gửi cho những người trong công ty , những người có quen với các HR hoặc là những người trong team của bạn mà chuẩn bị vào làm thì tỉ lệ bạn pass qua vòng giữ xe là khá cao điều quan trọng hơn nữa nếu bạn phỏng vấn pass thì người giới thiệu cũng có 1 ít tiền bonus cũng như khi đi làm có người quen cũng đỡ bỡ ngỡ hơn = > đấy là quan điểm của mình thôi nhé 😉

Sau khi đã tìm hiểu và quen những người trong công ty bạn sắp apply rồi tiếp theo là việc viết CV phần này cũng quan trọng không kém bởi những thứ bạn viết ở CV sẽ là những thứ mà phần lớn bạn sẽ trao đổi trong suốt cuộc phỏng vấn vì vậy hãy cực kì cân nhắc trong việc này vậy trong CV cần ghi những gì :

+ Đầu tiên tất nhiên họ tên phải rõ ràng , ngày tháng năm sinh , số điện thoại , nơi ở thông tin cá nhân , đặc biệt hơn các bạn có thể để 1 câu introdution giới thiệu nhẹ về bản thân mục tiêu hiện tại để làm nổi bậc mình hơn ví dụ như này :
I’m a System Engineer, specialized in Linux operating system. Most of my free time is spent learning new technologies. I have a huge passion for Linux and the open source community. Things that I’m currently focus on right now are Linux, Devops tool, and AWS.

+ Tiếp theo là phần quan trọng nhất đó là kinh nghiệm làm việc tại đây nên theo mình nghĩ các bạn chỉ nên ghi 2 hoặc tối thiểu là 3 công ty các bạn đã làm nếu các bạn có 1 – 3 năm kinh nghiệm vì chẳng một nhà tuyển dụng nào muốn tuyển một ứng việc 1 năm nhảy việc đến 3 lần đâu

+ Phần quan trọng nhất vẫn là technical cái này theo quan điểm cá nhân của mình thôi nhé , khi nhà tuyển dụng đăng tin tuyển sẽ có 1 cái JD các bạn cứ dựa vào đó mà ghi nếu như những công việc đó các bạn đã làm ở những công ty cũ mình lấy ví dụ một JD mà mình đã apply vào Zalo :

Yêu cầu :
Có kinh nghiệm trong việc vận hành hệ thống server Linux, Windows (tối thiểu 1 năm) 
Có kiến thức về các dịch vụ như: haproxy, nginx, LAMP, LEMP Stack…
Có khả năng lập trình Bash Shell, Python … ( Biết echo “helloworld” là được)
Có kiến thức cơ bản về network ( TCP/IP, mạng LAN, WAN…)
Có kiến thức cơ bản về security 
Có kiến thức về các cơ sở dữ liệu: MySQL, Redis cluster, Hadoop…

Thì dựa vào JD này các bạn có thể viết những gì có liên quan đến những việc mình làm ở công ty cũ mỗi dòng như vậy các bạn có thể viết một dòng ở CV , Nếu có những thứ bạn làm mà bạn cảm thấy nổi trội và bạn nghĩ đó là thế mạnh cũng như điểm cộng cho mình thì có thể ghi vào còn không thì cứ ghi vừa đủ với JD mà nhà tuyển dụng yêu cầu là được

+ Còn một phần nữa là các skill của các bạn mình thấy 1 số mẫu có biểu thị skill với % mình cực kì không đồng tình với chuyện này bởi nó không có tác dụng lắm bởi số % mà các bạn để là so với ai ? trình độ như nào ? và % đó các bạn làm được gì , theo mình các bạn nếu ghi skill các bạn cứ đưa thẳng vào những dự án các bạn đã làm ví dụ như ở trên JD kia yêu cầu biết về Haproxy , nginx , LAMP LEMP stack chẳng hạn thì các bạn ghi vào CV các bạn đã làm 1 web hay app sử dụng haproxy nginx hay deploy với LAMP LEMP stack như vậy sẽ hay hơn rất nhiều là con số % kia .

Sau khi hoàn thành việc viết CV thì các bạn cứ gửi cho các anh chị trong ngành xem thử CV như này đã đầy đủ chưa thiếu gì không ? còn nữa CV là tiếng anh nếu cần trau chốt cho đẹp thì có thể gửi cho một số người good về ngữ pháp tiếng anh và nhờ họ chỉnh lại cho một ít để đẹp hơn . Chúc các bạn thành công ^^!

No Comments on Tôi đã pass vị trí System Engineer tại Zalo như nào ? Part 4 – Chuẩn bị CV
Categories: Linh tinh