Cloud Development Environment (CDE) là gì
Bài viết phân tích sâu về Môi trường Phát triển Đám mây (CDE), so sánh giữa việc tự lưu trữ và sử dụng dịch vụ SaaS như GitHub Codespaces. Từ đó, bài viết dưới đây Bizfly Cloud đưa ra lời khuyên cho các nhóm phát triển phần mềm về cách lựa chọn giải pháp phù hợp nhất với nhu cầu và mục tiêu của họ.
Tự Do Sáng Tạo Hay Hiệu Suất Chuẩn Hóa?
Tôi nhớ khoảng 10 năm trước, một tổ chức tài chính đã cố gắng hợp lý hóa quy trình phát triển của họ và tạo ra cái mà ngày nay chúng ta gọi là nền tảng. Họ nhận thấy thời gian onboard cho các nhà phát triển mới chậm như thế nào và việc sử dụng công nghệ không nhất quán ra sao. Họ có một ban kiến trúc, nhưng ban này lại cách biệt với hoạt động phát triển hàng ngày. Phương pháp Agile cho họ biết rằng mọi thứ nên được tự động hóa, vì vậy họ đã áp dụng cách tiếp cận đó cho quy trình của mình.
Điều họ đang làm là hướng tới Môi trường Phát triển Đám mây, hay CDE. Có một sự hiểu biết mơ hồ rằng nếu họ đóng gói tất cả các công cụ “tốt nhất trong phân khúc” lại với nhau, thì điều đó có thể mang lại trải nghiệm onboard tốt. Nhưng một trong những vấn đề là tìm cách tổng hợp các trải nghiệm phát triển khác nhau trong toàn tổ chức và cách tránh mất đi chuyên môn có thể kết hợp xung quanh một môi trường duy nhất. Liệu có hợp lý khi hy sinh chuyên môn để đạt được sự tiêu chuẩn hóa?
Bài đăng này là về việc tìm hiểu cách câu trả lời cho câu hỏi đó tác động đến nhóm của bạn, khi đối mặt với tất cả các lựa chọn CDE mới. Và nó vẫn đòi hỏi một sự phản ánh trung thực về cách thức nhóm của bạn trong tổ chức của bạn hoạt động.
CDE và WordPress: Sự Tương Đồng Bất Ngờ
Bạn không cần phải suy nghĩ về phát triển để xem xét các trải nghiệm đám mây. Giống như nhiều ấn phẩm trực tuyến khác, The New Stack chạy trên nền tảng WordPress. Khi tôi viết một bài đăng, có khả năng tôi sẽ muốn trình bày một đoạn mã bao gồm các dấu ngoặc nhọn. Nếu tôi chỉ đưa đoạn mã trực tiếp vào như một phần nội dung, các dấu ngoặc nhọn có thể bị hiểu là một hướng dẫn hoặc có thể được thay thế bằng các thực thể HTML mà có lẽ tất cả các bạn đều quá quen thuộc: “<” và “>”. Dù bằng cách nào: Tôi đã gặp phải một trở ngại trong vai trò là người dùng nền tảng, một vấn đề với hệ thống. Và bây giờ đồng hồ bắt đầu chạy.
- Liệu nền tảng, hoặc ít nhất là Google, có hướng tôi đến giải pháp?
- Ai thực sự hiểu vấn đề? Người hiểu vấn đề có quyền truy cập vào nền tảng không?
- Việc giải quyết sẽ mất bao lâu?
- Tôi có nên tránh mã?
Trong tình huống này, câu trả lời liên quan đến việc nhóm nội bộ xuất sắc đã nhận ra vấn đề và nhanh chóng cấp quyền truy cập vào plugin WordPress thích hợp. Thời gian rất quan trọng, nhưng không phải là cực kỳ quan trọng. Cuối cùng, trọng tâm là người viết thể hiện bản thân một cách chính xác nhất có thể. Nhưng nếu bị thúc ép, tôi có thể sửa bài đăng của mình sau.
Bây giờ hãy tưởng tượng nhóm phát triển phần mềm của bạn đang đến gần thời hạn và một vấn đề nan giải xuất hiện. Nhóm có kỹ năng để cô lập vấn đề không? Điều quan trọng hơn là các nhà phát triển kỳ quặc có thể thể hiện bản thân hay nhóm duy trì cách tiếp cận hợp tác? Trả lời một cách trung thực những câu hỏi này sẽ giúp bạn tìm ra cách tham gia vào môi trường trực tuyến.
Điện Toán Theo Yêu Cầu với CDE
Ngày nay, chúng ta coi CDE là một môi trường phát triển theo yêu cầu đi kèm với tất cả các công cụ và phần phụ thuộc được định cấu hình sẵn cần thiết để xây dựng và triển khai ứng dụng - miễn là có sẵn mẫu cho loại ứng dụng bạn muốn xây dựng. Chúng thường hoạt động trong một dải hiệu suất đã biết; nghĩa là, bạn có thể biết được vùng chứa của họ có thể tăng tốc RAM và CPU bao nhiêu. Giống như hầu hết các sản phẩm đám mây, bạn chỉ có thể truy cập chúng qua web. Trong bài viết cuối cùng của tôi, tôi đã xem xét môi trường trực tuyến phổ biến Replit chạy Ghostwriter AI và nhận thấy việc bắt đầu dễ dàng như thế nào.
Sách trắng CDE của Gitpod mô tả bốn phẩm chất chính của CDE: Công bằng, Nhất quán, Khả năng mở rộng và Khả năng sẵn có theo yêu cầu. Bất kỳ ai cũng có thể bắt đầu phiên với môi trường phát triển và nhận được môi trường giống như bất kỳ ai khác. Nó không chỉ là việc khởi động một vùng chứa và bàn giao nó; một đường ống đầy đủ phải có sẵn để xây dựng một ứng dụng hoàn chỉnh từ mã. Cũng giống như Google Docs, một phiên có sẵn ngay lập tức, 24/7. Sự hợp tác là khá tự nhiên.
Tự Lưu Trữ và Tiêu Chuẩn Hóa
Daytona có cái mà nó gọi là Môi trường Phát triển Chuẩn hóa (SDE), chủ yếu là về việc tự lưu trữ CDE và nhu cầu kiểm soát những nỗ lực này. Coder.com có cách tiếp cận hơi khác về việc tự lưu trữ.
Nhiều tổ chức lớn đã xây dựng môi trường đám mây của riêng họ, với lý do là nhu cầu kiểm soát chi phí, bảo mật hoặc khả năng mở rộng. SDE công nhận nhu cầu tạo ra các mẫu để cho phép các nhà phát triển sử dụng công cụ của riêng họ hoặc truy cập các tài nguyên có trong AI; để làm việc cục bộ hoặc trực tuyến.
Tự lưu trữ mang lại sự linh hoạt và khả năng kiểm soát gần hơn với người dùng nội bộ, nhưng rõ ràng là ưu tiên cho các tổ chức có kỹ năng kết nối mọi thứ.
Lập Trình Viên và Nhu Cầu Tùy Chỉnh
Một số kỹ sư thực sự thích thú với việc xử lý các cấu hình và mã cơ sở hạ tầng. Nếu nhóm của bạn có những kỹ năng đó, thì việc khai thác chúng là điều hợp lý. Ngược lại, nhiều nhà phát triển ghét phải mày mò với một tập lệnh trông không giống mã phát triển hàng ngày của họ. Quan trọng hơn, họ có thể chưa bao giờ tìm hiểu cách thức hoạt động của các hệ thống như Ansible hoặc Chef khi chúng thịnh hành và có thể nghĩ ra những giải pháp phức tạp để sửa chữa nền tảng.
Onboarding Cho Sự Đồng Nhất Hay Linh Hoạt?
Lợi ích lớn nhất từ một môi trường trong hộp (Phần mềm dưới dạng dịch vụ hoặc SaaS) - như GitHub Codespaces - là nó tăng tốc quá trình onboard một cách đáng kể. Kiến thức của nhóm về môi trường đó sẽ không có phạm vi rộng như khi mọi người có trải nghiệm hơi khác nhau, do cách họ cài đặt. Bất kỳ tài liệu nào về cách bắt đầu đều có nhiều khả năng hoàn toàn chính xác cho mỗi người dùng. Nhưng có những vấn đề với việc cho rằng vì tôi muốn một môi trường, nên tôi muốn một môi trường vì lý do giống như người cuối cùng muốn có môi trường.
Onboarding không đồng nhất hơn cho phép mọi người tham gia môi trường một cách nhanh chóng, mà không cần giả định bạn biết chính xác họ muốn làm gì khi họ đến đó. Một ví dụ điển hình là giám đốc tiếp thị ham học hỏi, người muốn làm nhiều hơn là sử dụng trang trình bày và muốn chạy bản dựng hiện tại. Cho phép họ khởi động bản dựng là điều hợp lý, nhưng không phải nếu họ phải thiết lập đường hầm SSH trước. Những lợi ích mà họ có thể đạt được từ việc cập nhật một tài nguyên hình ảnh bằng logo của khách hàng tiềm năng - điều mà họ không thể làm đơn giản từ phía sau trình duyệt web - có thể rất lớn. Mặt khác, ai đó đến để nhanh chóng đánh giá dự án có thể muốn chạy một loạt bản dựng từ các thời điểm khác nhau và có thể bị thách thức bởi việc không kiểm soát hoàn toàn các công cụ quen thuộc của họ.
Lập Trình Cho Đổi Mới Hay Sản Xuất?
Ưu điểm lớn của việc vận chuyển container (hoặc container liên kết) là chúng có kích thước tiêu chuẩn. Điều này đã cách mạng hóa việc kiểm soát chi phí trong vận chuyển, vì các cảng container có thể được xây dựng trước với một mẫu hoạt động. Bạn có thể tự hỏi tại sao phải mất quá nhiều thời gian (những năm 1970) để những điều này xuất hiện. Tất nhiên, đã có rất nhiều nỗ lực trước điều này - điều đã được tiêu chuẩn hóa thực sự là các mô hình thương mại quốc tế. Tương tự, bạn phải nhìn nhận một cách trung thực vào nhóm của mình và tìm ra xem lý do tồn tại của họ là phân phối hay là những công việc bí mật đầy cảm hứng.
Bảo mật dữ liệu chưa bao giờ thực sự là vấn đề như người ta vẫn nghĩ. Đó là câu hỏi về địa lý pháp lý - nơi dữ liệu có thể được lưu giữ. Mặt khác, dữ liệu được lưu giữ trên trung tâm dữ liệu nội bộ của riêng bạn khó an toàn hơn dữ liệu được lưu giữ trong trung tâm dữ liệu của một công ty được trả tiền rõ ràng để quan tâm đến bảo mật. Nhưng thuật ngữ “bảo mật” cũng có thể có nghĩa là an toàn trong hộp cát của riêng bạn hoặc đảm bảo rằng các nhà phát triển không có quá nhiều mã trên máy tính xách tay của họ. Phần lớn thời gian, nó vẫn là vấn đề chính trị hơn là vấn đề theo nghĩa đen.
Bắt Đầu Với Những Gì Nhóm Của Bạn Làm
Vì vậy, điểm mấu chốt là phải đảm bảo rằng bạn biết nhóm của mình đang thực sự làm gì, sau đó thúc đẩy một chút khả năng chống lỗi thời trong tương lai. AI có thể là lợi ích bây giờ, nhưng sẽ cần thiết sau này. Bạn có thể biết chính xác kích thước của một container mà bạn cần ngay bây giờ, nhưng điều đó có thể thay đổi. Bạn có thể đi đến kết luận rằng thứ duy nhất mà nhóm của bạn nên chia sẻ là kho lưu trữ git. Có thể là một vài container trong Docker. Có thể là một CDE đầy đủ hoặc có thể là một cái gì đó tự lưu trữ. Dù bằng cách nào, hãy bắt đầu với những điều cơ bản về cách giải quyết xung đột đầu tiên.