+7

Biên niên sử DevOps - Phần 1: Khi Dev Và Ops Không Còn Là "Kẻ Thù"

Mở Đầu: Một Câu Chuyện Không Của Riêng Ai...

3 giờ sáng, một đêm mưa gió...

Tin nhắn Slack sáng đèn: "Anh ơi, production lỗi rồi!!!"

Điện thoại réo inh ỏi: "NGUY CẤP! Hệ thống không truy cập được!!!"

Email từ sếp: "Chuyện gì đang xảy ra với server vậy???"

Anh em dev chúng ta ai chẳng từng trải qua những đêm "không ngủ" kiểu này. Giữa màn đêm tĩnh mịch, chỉ có tiếng gõ bàn phím và... tiếng thở dài! 😅

Ngày Xưa Ấy...

Tôi còn nhớ như in, năm 2015, khi còn là một dev non và xanh:

# Một ngày đẹp trời của dev
def một_ngày_bình_thường():
    code_xong = True
    if code_xong:
        # Test local ngon lành
        if works_on_my_machine():
            # Push thôi!
            git_push()
            # Về nhà đánh PUBG
            return về_nhà_vui_vẻ()

Nhưng rồi...

# 3 giờ sáng hôm sau
def thực_tế_phũ_phàng():
    while system_on_fire:
        try:
            fix_bug_khẩn_cấp()
            pray_to_bug_gods()
        except CuộcĐờiQuáĐau:
            # Nhớ lại những ngày còn là dev tự do
            contemplating_life_choices()
            # Pha thêm cafe
            drink_more_coffee()

Đó là thời "đồ đá" của ngành phần mềm. Dev và Ops như hai thế giới song song, không bao giờ gặp nhau. Cho đến một ngày...

1. DevOps Ra Đời: Khi Dev Và Ops Không Còn Là "Kẻ Thù" 🤝

1.1 Chuyện Gì Đã Xảy Ra?

Các anh em biết không, ngày xưa mỗi lần deploy code là một cuộc đấu tranh sinh tử:

Dev: "Em đẩy code lên nha?"

Ops: "Khoan! Chờ review cái!"

Dev: "Nhưng deadline là hôm nay..."

Ops: "Không! Phải chờ release window!"

Dev: "Nhưng khách hàng đang đợi..."

Ops: "Không! Phải test kỹ đã!"

Dev: "Thôi em tự deploy được không?"

Ops: "KHÔNG BAO GIỜ!!!"

Rồi một ngày, ai đó nghĩ ra: "Ủa, sao không để Dev và Ops làm việc chung nhỉ?"

Và thế là DevOps ra đời!

1.2 Biên niên sử DevOps

Nghe có vẻ đơn giản nhỉ? Nhưng câu chuyện thực sự còn ly kỳ hơn nhiều...

Các cụ ta có câu "Dev một nơi, Ops một nẻo". Ngày xưa, có hai vương quốc láng giềng: Kingdom of Dev và Empire of Ops.

Dev là vùng đất của những nghệ sĩ code, nơi các dev ngày đêm sáng tạo feature mới, viết những đoạn code "nghệ thuật". Họ sống với châm ngôn: "Code fast, ship faster!" 🚀

# Kingdom of Dev
class DevKingdom:
    def daily_life(self):
        write_beautiful_code()
        push_to_production()
        print("Magic happens here!")
        return về_nhà_đánh_game()

Ops là đế chế của những chiến binh bảo vệ hệ thống, nơi các ops tận tụy ngày đêm canh giữ production. Khẩu hiệu của họ: "Stable system, happy life!" 🛡️

# Empire of Ops
class OpsEmpire:
    def daily_life(self):
        protect_production()
        block_dangerous_deploys()
        print("No deploy on Friday!")
        return thức_đêm_canh_server()

Hai vương quốc này đã sống trong tình trạng "lạnh nhạt" suốt nhiều năm. Dev thì muốn ship code nhanh như tên lửa, Ops thì muốn hệ thống ổn định như... đá tảng!

Cho đến một ngày, một hiệp sĩ tên DevOps xuất hiện. Anh ta đến từ vùng đất Silicon Valley xa xôi, mang theo một triết lý mới:

"Này các anh em! Sao ta không... hợp tác với nhau?"

Ban đầu, cả hai vương quốc đều hoài nghi:

  • Dev: "Collaboration? Nghe kỳ quá!"
  • Ops: "Làm việc với Dev á? Không đời nào!"

Nhưng rồi DevOps đã cho họ thấy một viễn cảnh mới. Tưởng tượng development pipeline như một nhà hàng 5 sao:

  • Dev không còn là đầu bếp "ném đồ ăn ra quầy rồi về"
  • Ops không còn là quản lý "chỉ biết la mắng đầu bếp"

Thay vào đó:

  • Cả team cùng nhau lên menu (Planning)
  • Đầu bếp nấu có quản lý hướng dẫn (Development with Ops in mind)
  • Bếp trưởng và quản lý cùng nếm thử (Testing)
  • Món ăn ra lò là cả team cùng vui (Successful Deployment)
  • Khách complain là cả team cùng giải quyết (Incident Response)
# DevOps Kingdom
class DevOpsKingdom:
    def modern_life(self):
        while True:
            self.plan_together()
            self.code_with_standards()
            self.test_automatically()
            self.deploy_safely()

            if incident_happens():
                self.fix_as_team()
            else:
                self.celebrate_success()
                print("Let's go for lunch! 🍜")

Kết quả?

  • Feature ra đều đều như... sushi trên băng chuyền! 🍣
  • Server ổn định như... temaki cầm trên tay! 🍙
  • Khách hàng hài lòng như... được ăn buffet không giới hạn! 🍱

Và thế là... DevOps Kingdom ra đời! Nơi Dev và Ops không còn là "nước với lửa" mà là... wasabi với sushi, là ramen với soup, là filtered coffee với startup! ☕️

Đó là lý do vì sao giờ đây, thay vì nghe:

  • Dev: "Em chỉ muốn ship code!"
  • Ops: "Anh chỉ muốn hệ thống sống!"

Ta có:

  • DevOps: "Anh em ơi, deploy xong đi ăn trưa không?"
  • Cả team: "Đi chứ, hệ thống auto-scale lo hết rồi!" 🎉

Nghe hay ho nhỉ? Nhưng khoan đã... để DevOps Kingdom này vận hành trơn tru, anh em mình cần hiểu rõ hơn về các nguyên tắc và công cụ của nó. Và đó chính là những gì chúng ta sẽ khám phá trong phần tiếp theo...


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí