Tag Archives: kinh nghiệm

12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor – Phần 3

Như đã giới thiệu ở bài trước, mình sẽ giới thiệu về twlve-factor app. Đây là 12 yếu tố cần thiết để xây dựng 1 ứng dụng “xịn xò”, ổn định, dễ mở rộng, dễ deploy.

Trong bài này, mình sẽ giải thích các yếu tố từ 8 tới 12 nhé:

  • 8. Concurrency: Một app nên được chia tách thành nhiều process nhỏ để tăng concurrency
  • 9. Disposability: Process của web app nên sống nhanh, chết nhẹ nhàng, để có thể dễ dàng chạy/kill process nhanh chóng
  • 10. Dev/prod parity: Các môi trường dev/staging/production nên giống nhau hết sức có thể
  • 11. Logs: Logs nên được viết ra dạng stream ở stdout
  • 12. Admin Processes: Một số task dạng admin (tạo database, fix dữ liệu) nên được chạy trong cùng môi trường với app đang chạy

 

Đây là phần 3 trong series 3 phần về Twelve-Factor App:

  1. Lược dịch và giải thích Twelve-Factor. Giải thích Codebase và Dependencies
  2. Giải thích Config, Backing Service, Build -> Release -> Run, Processes, Port Binding
  3. Giải thích Concurrency, Disposability, Dev/Prod Parity, Logs, Admin Processes

Continue reading 12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor – Phần 3

Chuyện bi hài về cây cầu Chó Lu Té Ca – Bài học về những thay đổi méo thể lường trước được?

Đây là một câu chuyện bi hài dở khóc dở cười về một cây cầu mang tên Chó Lu Té Ca (Choluteca) ở Honduras (Trung Mỹ).

Vào những năm 90, chính quyền Honduras muốn xây dựng 1 cây cầu băng qua con sông Choluteca. Khu vực này vốn có nhiều thiên tai, nên cây cầu phải có sức chống chịu tốt trước giông bão.

Trong vòng 3 năm (từ 1996 tới 1998),  cây cầu được công ty Nhật Hazama Ando xây dựng, bằng công nghệ Nhựt Bổn hiện đại, chấp luôn mọi thể loại giông bão thiên tai.

Thế rồi, cầu vừa xây xong, vài tháng sau đó, cơn bão nhiệt đới Mitch ập tới, gây thiệt hại hơn 7000 nhân mạng ở nước Honduras.

Số phận cây cầu ra sao, các bạn xem tiếp sẽ rõ!

Continue reading Chuyện bi hài về cây cầu Chó Lu Té Ca – Bài học về những thay đổi méo thể lường trước được?

12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor – Phần 2

Như đã giới thiệu ở bài trước, mình sẽ giới thiệu về twlve-factor app. Đây là 12 yếu tố cần thiết để xây dựng 1 ứng dụng “xịn xò”, ổn định, dễ mở rộng, dễ deploy.

Trong bài này, mình sẽ giải thích các yếu tố từ 3 tới 7 nhé:

  • 3. Config: Lưu trữ thiết lập vào biến môi trường (environment variable)
  • 4. Backing services: Xem các service đi kèm (database, API, …) như là resource của app
  • 5. Build, release, run: Tách riêng quá trình release, build và run
  • 6. Processes: App nên chạy dưới dạng 1 (hoặc nhiều) stateless processes
  • 7. Port binding: Mỗi service có thể được truy cập thông qua 1 port cố định

 

Đây là phần 2 trong series 3 phần về Twelve-Factor App:

  1. Lược dịch và giải thích Twelve-Factor. Giải thích Codebase và Dependencies
  2. Giải thích Config, Backing Service, Build -> Release -> Run, Processes, Port Binding
  3. Giải thích Concurrency, Disposability, Dev/Prod Parity, Logs, Admin Processes

Continue reading 12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor – Phần 2

12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor

Sau một thời gian lập trình, bạn sẽ dần nhận ra một điều: Build một ứng dụng là một chuyện khá khó.

Thế nhưng, khi ứng dụng đã bắt đầu có người sử dụng (lên production), ta sẽ gặp phải nhiều vấn đề còn … khó hơn nữa:

  • Làm sao thêm tính năng, sửa lỗi mà không ảnh hưởng đến ứng dụng đang chạy
  • Làm sao để những tính năng mới, bug fix có thể được release nhanh chóng đến tay người dùng
  • Khi lượng người dùng tăng gấp 5, gấp 10 lần, làm sao để có thể nhanh chóng scale hệ thống
  • Làm sao để mấy bạn developer mới gia nhập có thể dễ dàng chạy ứng dụng ở local, test và push code

Đây là những vấn đề làm đau đầu nhiều team, vì nó đòi hỏi không chỉ kiến thức lập trình, mà còn là kiến thức về system architecture, operation, qui trình….

Do vậy, trong bài này, mình sẽ chia sẻ về Twelve-Factor App (12factor.net). Đây là 12 yếu tố cần thiết để xây dựng 1 ứng dụng “xịn xò”, ổn định, dễ mở rộng, dễ deploy nhé.

 

Đây là phần 1 trong series 3 phần về Twelve-Factor App:

  1. Lược dịch và giải thích Twelve-Factor. Giải thích Codebase và Dependencies
  2. Giải thích Config, Backing Service, Build -> Release -> Run, Processes, Port Binding
  3. Giải thích Concurrency, Disposability, Dev/Prod Parity, Logs, Admin Processes

Continue reading 12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor

Không giỏi cái này, không biết cái kia thì có theo lập trình được không?

Lâu lâu, dạo quanh mấy forum và group, mình lại thấy vài câu hỏi ngộ ngộ dạng thế này:

  • Em không giỏi tiếng Anh thì có theo lập trình được không?
  • Em code không giỏi sau này có theo nghề được không?
  • Tư duy logic em không tốt chắc không vào FPT được huhu?

Người hỏi cũng nhiều, mà chắc anh em trong ngành đọc xong chỉ cười cho qua, hoặc chán méo thèm trả lời.

Vì thế, mình viết bài này để trả lời luôn 1 lượt những câu hỏi như thế. Nếu anh em  thấy ai hỏi câu tương tự cứ share bài này ra là được nha :3.

 

Continue reading Không giỏi cái này, không biết cái kia thì có theo lập trình được không?

Tôi đã lên cấp và tiến hoá như thế nào qua 6 năm lăn lộn trong ngành – Phần 2

phần trước, mình đã chia sẻ về những trải nghiệm, những điều mình đã học được khi còn ở Việt Nam và UK. Trong phần này, mình sẽ chia sẻ về những thứ giúp mình “tiến hoá” khi làm việc tại Singapore nhé.

Đây là phần 2 trong series 2 phần Tôi đã lên cấp và tiến hoá như thế nào:

Continue reading Tôi đã lên cấp và tiến hoá như thế nào qua 6 năm lăn lộn trong ngành – Phần 2

Tôi đã lên cấp và tiến hoá như thế nào qua 6 năm lăn lộn trong ngành – Phần 1

Mình thường hay khuyên các bạn mới ra trường là: Đừng quan trọng đi làm lương bao nhiêu, mà phải quan trọng là học hỏi được gì? Qua 1 – 2 năm làm ở đấy thì mình có tiến bộ không? Có thể đạt tới trình độ cao hơn, lương cao hơn không?

Thông thường, các bạn hay hỏi lại là: Làm sao để biết mình cần học hỏi những gì? Do vậy, trong bài này, mình sẽ chia sẻ về những thứ mà mình đã học được qua 6 năm làm việc nha.

Những thứ này đã giúp mình “tiến hóa” từ 1 thằng Fresher bình thường lên Senior, lên Full Stack Developer. Mình nghĩ ai làm vài năm cũng rút ra được thôi, nhưng biết những thứ cần học thì mấy năm đầu đi làm đỡ bỡ ngỡ lạc lối ha.

 

Đây là phần 1 trong series 2 phần Tôi đã lên cấp và tiến hoá như thế nào:

Continue reading Tôi đã lên cấp và tiến hoá như thế nào qua 6 năm lăn lộn trong ngành – Phần 1

Từ nồi hành phi bị cháy, đến chuyện nghe lời khuyên và áp dụng công nghệ – Chuyện Code Chuyện Đời

Chuyện là, vào 1 ngày đẹp trời nọ, mình bỗng dưng thèm món bánh cuốn Việt Nam. Xem hướng dẫn trên mạng, thấy cũng dễ nên mình bắt tay vào làm luôn.

Nhân tiên hũ hành phi gấu mang qua cũng sắp hết, mình nhờ gấu hướng dẫn cách làm hành phi, phi nguyên nửa ký để ăn dần luôn.

Câu chuyện về nồi hành cháy và chuyện áp dụng công nghệ bắt đầu từ đấy….

Continue reading Từ nồi hành phi bị cháy, đến chuyện nghe lời khuyên và áp dụng công nghệ – Chuyện Code Chuyện Đời

Sập Server có phải muôn đời – Phần 3: Phương pháp phòng chống – ngủ ngon không lo server sập

Đây là phần 3 trong series 3 phần “Sập Server có phải muôn đời”.

  1. Làm gì khi hệ thống sập bất ngờ – Xách quần lên công ty
  2. Viết post-mortem sau khi xử lý sự cố – Đừng chỉ trích hay đổ lỗi
  3. Những phương pháp phòng chống/monitoring – Giúp anh em ngủ ngon không lo server sập

 

Ở 2 phần trước, mình đã chia sẻ về những việc cần làm khi hệ thống sập bất ngờ, nên viết post motern như thế nào để tránh gặp phải những sai lầm tương tự.

Tuy vậy, như các cụ đã nói “phòng bệnh hơn chữa bệnh”, phòng chống hệ thống sập thì tốt hơn là chờ hệ thống tèo rồi mới sửa chứ nhỉ. Do vậy, ở kì này, mình sẽ chia sẻ những kinh nghiệm phòng chống nhé.

Continue reading Sập Server có phải muôn đời – Phần 3: Phương pháp phòng chống – ngủ ngon không lo server sập

Mấy ông Senior/Full Stack cũng không “trâu bò” như các bạn tưởng đâu!

Mấy nay, khi tư vấn, mình hay nhận được mấy câu hỏi vui vui từ mấy bạn sinh viên, sắp ra trường:

  • Mấy anh senior trâu bò lắm hay sao mà lương ông nào ông nấy cao khủng thế ạ?
  • Nghe nói mấy ông Full Stack cái gì cũng biết, trên thông Cờ Lao dưới tường Đép Ộp phải không ạ?
  • Nghe kể công ty em có mấy ông senior cái gì cũng biết, code bay tóc không cần Google

Do vậy, hôm nay mình sẽ tự bóc phốt mấy ông Full Stack/Senior (trong đó có cả mình), mấy ổng không trâu cho như các bạn tưởng đâu nhe!

Continue reading Mấy ông Senior/Full Stack cũng không “trâu bò” như các bạn tưởng đâu!