Hãy tưởng tượng xây dựng một trang web thương mại điện tử tuyệt đẹp mà ngân nga cùng với một dòng chảy ổn định tốt đẹp của giao thông và sau đó , mỗi ngày một lần trong khoảng 15 phút , gai giao thông của nó lên tới 100 lần . Đó là một thách thức vài nhà phát triển phải đối mặt, nhưng nó mô tả những gì Eric Bowman ( @ ebowman ) phó chủ tịch của kiến trúc, phải tìm ra tại flash trang web bán hàng Gilt.com
Tôi nghĩ rằng nó sẽ là thú vị để nâng mui xe trên Gilt.com để phát hiện ra các quyết định công nghệ và kiến trúc quan trọng Bowman đã phải thực hiện để cho phép loại quy mô và độ đàn hồi trong trang web. Bowman khai thác thành phát triển gần đây trong chương trình phản ứng , somethingReadWrite báo cáo gần đây , cũng như dựa trên mã nguồn mở, để xây dựng một trang web đẹp với một trải nghiệm người dùng tuyệt vời mà có thể mở rộng để đáp ứng nhu cầu của hàng chục ngàn khách hàng đánh trang web tất cả tại một lần.
Trong quá trình đó ông chuyển Gilt.com xa Ruby on Rails. Nhưng tôi cần biết : Có phải đó là một lần , hoặc một phần của một xu hướng?
Trong quá trình đó ông chuyển Gilt.com xa Ruby on Rails. Nhưng tôi cần biết : Có phải đó là một lần , hoặc một phần của một xu hướng?
Mạ vàng Dumps Java Đối với Scala
ReadWrite : Làm thế nào bạn đến Gilt ?
Eric Bowman : Tôi đã dành toàn bộ sự nghiệp của mình trong phát triển phần mềm trong công nghệ. Đầu tiên công việc "thực sự" của tôi liên quan đến hàng đầu phát triển kỹ thuật cho The Sims 1,0 nhượng quyền thương mại . Trong những năm gần đây tôi đã được tham gia vào cấu trúc và thực hiện các hệ thống bên phát triển phần mềm .
Trước khi gia nhập Gilt tôi là kiến trúc sư trưởng tại TomTom, một địa điểm và các giải pháp định hướng cung cấp dịch vụ có trụ sở tại Amsterdam . Trong tháng 8 năm 2011 tôi trở thành kiến trúc sư trưởng tại Gilt , sau đó một vài tháng sau đó được đặt tên là phó chủ tịch của Kiến trúc . Như bạn đã nói, tôi làm việc từ văn phòng Dublin Gilt của cùng một đội ngũ rất tài năng của các kỹ sư tập trung vào một số tham vọng và sáng kiến thú vị nhất của công ty : giao hàng liên tục, cơ sở hạ tầng , hoạt động và tìm kiếm, chỉ để tên một vài. Chúng tôi đang liên tục làm việc để phát triển kiến trúc Gilt để xử lý theo thứ tự tiếp theo của nhân rộng độ lớn và tạo ra những trải nghiệm mua sắm mà giữ hàng triệu thành viên của chúng tôi sẽ trở lại mỗi ngày.
RW : Khi đã chuyển Gilt để Scala ?
EB : Ngay khoảng thời gian tôi đến. Khi tôi gia nhập Gilt chúng tôi đã lập trình trong Java , sau khi ban đầu tạo ra Gilt on Rails.
RW : Tại sao Gilt làm cho quá trình chuyển đổi từ Java đến Scala ?
EB : Từ năm 2009 đến 2011 Gilt tăng rất nhanh trong điều khoản của thành viên , và vì sự phát triển này, chúng tôi đã mở rộng quy mô tổ chức công nghệ của chúng tôi phù hợp. Với Java , nó đã trở thành khó khăn hơn cho các đội để đóng góp mã - cơ sở mã của chúng tôi đã trở thành nguyên khối . Cho hiệu suất và khả năng mở rộng lý do chúng tôi muốn tiếp tục làm việc trên JVM , và bắt đầu tìm kiếm các ngôn ngữ khác nhau JVM .
Năm 2011 một số kỹ sư của chúng tôi đã trở thành thực sự vui mừng về Scala , một ngôn ngữ lập trình được phát triển bởi an toàn kiểu . Scala yêu cầu ít hơn nhiều mã văn bản hơn so với Java , và nó đã được dễ dàng tích hợp với các dịch vụ JVM khác . Chúng tôi đã nhận nó , và chúng tôi tiếp tục gặt hái những lợi ích của sự thanh lịch và đơn giản của ngôn ngữ . Như một phần của sự thay đổi này , chúng tôi cũng đã bắt đầu sử dụng các bộ phận khác của nền tảng an toàn kiểu phản ứng giống như khung Play, Akka và SBT .
Để phản ứng Spikes giao thông RW : Từ góc độ kỹ thuật , những gì làm cho Gilt duy nhất? Tại sao Scala quan trọng ?
EB : Một trong những yếu tố độc đáo chính của chúng tôi là mô hình đèn flash bán hàng của chúng tôi , trong đó sản xuất một số thách thức kỹ thuật rất thú vị. Mỗi ngày chúng ta kinh nghiệm gai giao thông dữ dội vào buổi trưa US Miền Đông là hàng loạt của ngày bán hàng mới đi sinh sống. Các thành viên của chúng tôi vội vàng để xem tất cả các sản phẩm khác nhau , và hầu hết các ngày , lưu lượng truy cập của chúng tôi tăng lên tới 100 lần chỉ trong vài giây. Vì vậy, chúng ta phải xây dựng hệ thống có thể hỗ trợ những vụ nổ bất ngờ của hoạt động . Giải pháp của chúng tôi là phát triển một kiến trúc phân tán dựa trên hàng trăm microservices xây dựng tại Scala.
RW : Tại sao microservices ?
EB : Microservices có ý nghĩa cho Gilt trong một số cách . Mạ vàng bắt đầu như một ứng dụng bản đồ bằng đá nguyên khối , nhưng như chúng ta đã tăng trưởng một cách nhanh chóng , chúng tôi sớm phát hiện ra rằng mô hình này là không thích hợp để xử lý gai giao thông của chúng tôi rất hiệu quả. Một kiến trúc nguyên khối làm cho nó khó khăn để xác định những người sở hữu mã những gì , và giới thiệu phụ thuộc phức tạp. Nó cũng có xu hướng kéo dài chu kỳ kiểm tra và có thể có tác động hiệu quả bất ngờ.
Với vi - dịch vụ , chúng tôi có thể duy trì cách ly giữa các dịch vụ không liên quan và giữ quá trình phát triển của chúng tôi là ma sát tự do càng tốt và giảm độ phức tạp . Nó cũng cho phép chúng ta thiết lập quyền sở hữu đội ngũ end-to -end chất lượng , không chỉ làm cho tất cả chúng ta có trách nhiệm hơn mà còn góp phần phát triển hạnh phúc - kỹ sư của chúng tôi biết họ có thể có tác động và xem kết quả của công việc của họ dễ dàng hơn.
Bài học kinh nghiệm về Ruby On Rails ... Và mã nguồn mở RW : một số bài học cho những người khác mà bạn đã học được trong khi mở rộng quy mô Gilt là gì?
EB : Giữ chồng của bạn và kiến trúc của bạn như đơn giản càng tốt , vì vậy bạn có thể thích ứng một cách nhanh chóng . Điều này không có nghĩa là bạn nên cắt góc , tuy nhiên. Không trả đủ quan tâm đến kiến trúc sẽ làm cho bạn vấn đề xuống dòng khi bạn phát triển . Chúng tôi sẽ không xem xét bắt đầu với Rails là một sai lầm trên một phần của chúng tôi , bởi vì nó là tuyệt vời cho phép chúng tôi để di chuyển nhanh nhẹn . Nhưng nếu chúng tôi phải làm tất cả hơn một lần nữa, chúng tôi có khả năng sẽ bắt đầu với chơi Framework, đó là dễ dàng hơn nhiều quy mô.
Một chút lời khuyên là để tận dụng lợi thế của tất cả các phần mềm mã nguồn mở tốt nhất - không chỉ vì lý do chi phí liên quan, nhưng vì những lý do liên quan đến chất lượng là tốt. Ví dụ, chúng tôi đã chọn PostgreSQL như cơ sở dữ liệu của chúng tôi ra mắt và nó vẫn là cốt lõi của chiến lược quan hệ của chúng tôi . Nó chỉ thực sự duy trì tốt , với một cộng đồng năng động liên tục làm cho sửa lỗi và thêm các tính năng mới có giá trị .
RW : Làm thế nào quan trọng là mã nguồn mở để mạ vàng ?
EB : Nó rất quan trọng với chúng tôi. Chúng tôi đã tạo Gilt gần như hoàn toàn bằng cách sử dụng phần mềm mã nguồn mở - từ PostgreSQL để SBT ( công cụ xây dựng cho Scala , cũng như Java) nhiều dự án Apache : Zookeeper , Kafka , Avro và kiến, chỉ để tên một vài . Trong những ngày trước đó của chúng tôi , khi chúng tôi đã có một cơ sở dữ liệu PostgreSQL duy nhất và cần thiết khả năng nhân rộng, chúng tôi đã tham gia các công ty khác trong tài trợ Hot Standby , một tính năng quan trọng (lần đầu tiên được giới thiệu trong Postgres 9.0 ) cho phép nhân rộng đúng bằng cách làm cho nó có thể đọc từ nhiều máy chủ nô lệ .
Chúng tôi khuyến khích các kỹ sư của chúng tôi để tham gia vào các dự án mã nguồn mở và tạo ra nhiều các dự án riêng của họ như họ muốn. Yêu cầu chính của chúng tôi là mã của họ có chất lượng cao ( tài liệu, với các bài kiểm tra tự động , và hữu ích ) và không cốt lõi để kinh doanh Gilt của . Nhà truyền giáo công nghệ của chúng tôi khuyến khích tất cả các dự án mã nguồn mở trên blog công nghệ của chúng tôi , thông qua phương tiện truyền thông xã hội, vv , cho dù dự án là Gilt liên quan hay không. Chúng tôi cũng duy trì một ổn định hoạt động của các dự án trên GitHub repo của chúng tôi - mà tôi khuyến khích tất cả mọi người để kiểm tra - và góp phần yêu cầu kéo cho các dự án chúng tôi sử dụng nhiều nhất.
Không có nhận xét nào:
Đăng nhận xét