Thể loại: lưới máy tính

Văn phòng lưới máy tính sử dụng môi trường ảo - Phần 4

, thứ Sáu ngày 04 tháng 12 năm 2009 11:59

Giới thiệu

Tôi làm việc trong một công ty nơi chúng tôi chạy nhiều công ăn việc làm hàng loạt chế biến hàng triệu hồ sơ của các dữ liệu mỗi ngày và tôi đã suy nghĩ gần đây về tất cả các máy ngồi xung quanh mỗi và mỗi ngày không làm gì trong vài giờ. Nó sẽ không tốt nếu chúng ta có thể sử dụng những máy móc để tăng cường sức mạnh xử lý của hệ thống của chúng tôi? Trong tập hợp các bài này, tôi sẽ nhìn vào những lợi ích tiềm năng của việc sử dụng một mạng lưới văn phòng bằng cách sử dụng các môi trường ảo hóa.

Trong phần 3 , chúng tôi tạo ra máy xử lý ảo của chúng tôi và đặt lên cửa sổ máy để trở thành công nhân thời gian nhàn rỗi.

Chạy mã mới nhất

Chắc chắn sau khi tạo nhân viên kinh doanh logic của bạn sẽ thay đổi, lỗi sẽ được tìm thấy, mã nhanh hơn hiệu quả hơn sẽ được sản xuất do đó để lại công nhân của bạn ngồi xung quanh xử lý dữ liệu bằng cách sử dụng mã mùi cũ. Làm thế nào sau đó làm chúng tôi đảm bảo rằng chúng tôi luôn sử dụng phiên bản mới nhất và lớn nhất của các kịch bản xử lý của chúng tôi?

Có một số cách rất dễ dàng đơn giản, chúng ta có thể làm điều này, lừa, tuy nhiên, là để giảm sức mạnh xử lý và mạng lưới giao thông trong việc đạt được điều này. Cho phép bắt đầu với các giải pháp đơn giản và cải thiện nó từ từ trong một vài lặp đi lặp lại.

Phương pháp đầu tiên sẽ được chỉ đơn giản là kết nối với máy chủ kiểm soát công việc của chúng tôi (qua samba, FTP, hoặc tương tự) và kéo xuống phiên bản mới nhất của mã. Không phải rất hiệu quả, nhưng nó sẽ làm công việc. Cho phép cải thiện phần nào, làm thế nào về việc tạo ra một kịch bản rsync và sử dụng mỗi lần thay vì? Ngoài ra những gì về việc đưa kịch bản xử lý mới nhất của chúng tôi vào lật đổ ra các mã ban đầu và sau đó chỉ cần cập nhật mã của chúng tôi trên mỗi lần chạy (svn cập nhật) ?

Cuối cùng, chúng ta có thể kết thúc với một kịch bản bash (gọi là định kỳ mỗi 10 phút) có vẻ như là đơn giản như thế này:

  # / Bin / sh
 nếu ps ax | grep grep-v | grep php > / dev / null
 sau đó
     echo "công việc hiện đang chế biến, xuất cảnh"
 khác
     echo "công việc không chạy, bắt đầu ngay bây giờ"
     cd / path / to / / sao chép
     svn cập nhật
     php yourJobProcessingScript.php
 fi 

Bây giờ chúng ta có thể chắc chắn rằng với mỗi lần chạy, chúng tôi chắc chắn chạy mã mới nhất. Chúng tôi đảm bảo điều này bằng cách cập nhật cơ sở mã của chúng tôi và mỗi khi chúng tôi thực hiện một hoạt động và giảm lưu lượng mạng bằng cách chỉ chuyển giao những khác biệt tập tin trên mạng của chúng tôi.

Trong thiết lập trình diễn của tôi, tôi đã làm chính xác như trên. Subversion đã được cài đặt trên máy chủ xử lý công việc của tôi và tôi chỉ đơn giản là kéo các mã mới nhất từ ​​một chi nhánh công nhân bằng cách sử dụng 'svn cập nhật'. Tôi cũng đã thêm một thẻ số phiên bản để xử lý kịch bản của tôi đã được trả lại cho cơ sở dữ liệu như là một phần của sự trở lại kết quả. Bằng cách này tôi có thể thấy rằng mã của tôi đã được cập nhật mỗi lần sao chép thân của tôi vào các nhân viên tức là chi nhánh mà tôi chắc chắn chạy kịch bản xử lý mới nhất.

Sử dụng dữ liệu mới nhất

Nếu xử lý công việc của bạn làm cho việc sử dụng các nguồn dữ liệu sau đó tại một số điểm sẽ được cập nhật. Trừ khi bạn gọi các nguồn dữ liệu của bạn trên một cơ sở rất hiếm khi xảy ra bạn sẽ tràn ngập mạng của bạn với giao thông ngay sau khi các nhân viên của bạn bắt đầu chạy tất cả mọi thứ vào bế tắc. Đối với giải pháp của tôi, tôi quyết định rằng tôi muốn để di chuyển các nguồn dữ liệu của tôi xung quanh với máy ảo của tôi.

Giữ bạn đang ngựa có Điều gì sẽ xảy ra nếu nguồn dữ liệu của tôi là HUGE? Vâng điều này thực sự là một trường hợp của bao nhiêu dữ liệu chúng ta đang nói ? Nó có thể được hiệu quả chi phí để cài đặt một ổ đĩa cứng bổ sung lớn hơn vào mỗi máy hơn là mua một máy chủ xử lý bổ sung. Đây là một câu hỏi của ngân sách và các doanh nghiệp để quyết định. Nó có thể đó là nguồn dữ liệu của bạn quá lớn mà chỉ là không khả thi để giữ cho rằng số lượng dữ liệu trong các máy nhân viên của bạn. Trong trường hợp đó bạn sẽ làm gì? Vâng, chúng tôi có thể nhìn vào gọi một máy chủ dữ liệu địa phương, nhưng điều này có thể gây ra các vấn đề với mạng. Trong trường hợp này, một hệ thống lưới điện như thế này có thể trở thành không thực tế để đưa vào môi trường văn phòng của bạn. Nó cũng có thể được rằng bạn có thể nhìn vào các chiến lược thay thế chạy, ví dụ chỉ kêu gọi công nhân của bạn giữa 8 giờ tối và 6 giờ sáng mỗi đêm và / hoặc nguồn dữ liệu yêu cầu can thiệp .

Di chuyển trên cho phép nói rằng số lượng nguồn dữ liệu của chúng tôi để 100GB dữ liệu. Cũng có khá một chút dữ liệu để di chuyển xung quanh mạng cập nhật. Làm thế nào chúng tôi sẽ đảm bảo rằng chúng tôi có bản sao mới nhất của dữ liệu trong trường hợp này? Rsync là một khả năng, nhưng cá nhân tôi nghĩ rằng bằng cách chạy nguồn dữ liệu mới nhất của bạn trên máy chủ xử lý công việc của bạn và thiết lập này như là một bậc thầy trong nhân rộng (với một bản ghi bin tốt đẹp lâu dài) có thể là con đường để đi:

sao chép Bằng cách mỗi thiết lập của người lao động của bạn như là một nô lệ để cập nhật công việc máy chủ kiểm soát nguồn dữ liệu của bạn sẽ nhỏ giọt xuống độc đáo cho người lao động của bạn mà không có một sự gia tăng rất lớn trong các hoạt động mạng (có nghĩa là trừ khi bạn thực hiện một cập nhật dữ liệu rất lớn và tất cả các công nhân đá trong cùng một lúc). Điều này có lợi thế hơn rsync trong đó bạn sẽ không có được một tạm dừng rất lâu trước khi mỗi công việc, như các bản cập nhật cơ sở dữ liệu, mysql daemon nhân viên phụ trách của quý vị sẽ tiếp tục cập nhật dữ liệu của mình khi xử lý vẫn tiếp tục.

Điều này là làm thế nào tôi thiết lập máy chủ trình diễn của tôi. Để thiết lập lên sao chép Tôi làm theo các hướng dẫn trên trang web mySQL ( Thiết lập bản sao ) và trong vòng 20 phút, tôi đã lao động inital của tôi sao chép các tập dữ liệu máy chủ kiểm soát công việc. Đối với mỗi người lao động bổ sung các thiết lập sao chép và quá trình làm việc mỗi khi VM đã được sao chép.

Tóm tắt thông tin

Trong phần này của bài viết chúng tôi đã xem xét cách dễ dàng và không đau là để giữ cho mã xử lý của bạn ngày using rsync hoặc subverion (SVN) để làm việc và làm giảm lưu lượng mạng tại cùng một time. Chúng tôi cũng thảo luận làm thế nào để giữ nguồn thông tin dữ liệu của bạn up-to-ngày bằng cách cho phép nó gián tiếp cho mỗi công nhân của bạn. Vì vậy chúng tôi khu vực đảm bảo rằng chúng tôi tiếp tục với logic kinh doanh và thông tin trong hệ thống mạng lưới văn phòng của chúng tôi. Rõ ràng là sẽ có vô số lựa chọn thay thế để thực hiện các nhiệm vụ này, nhưng đây là hai ví dụ đơn giản để hiển thị một giải pháp dễ dàng để đi qua.

Tiếp theo thời gian

Trong phần cuối cùng của loạt bài này, được đặt tên Phần 5 , chúng tôi sẽ thảo luận về việc triển khai hệ thống này cho. Tôi sẽ tóm tắt những gì đã được học và những gì tôi quản lý để tạo ra.

Văn phòng lưới máy tính sử dụng môi trường ảo - Phần 1

, thứ Sáu ngày 04 tháng 12 năm 2009 11:23

Giới thiệu

Tôi làm việc trong một công ty nơi chúng tôi chạy nhiều công ăn việc làm hàng loạt chế biến hàng triệu hồ sơ của các dữ liệu mỗi ngày và tôi đã suy nghĩ gần đây về tất cả các máy ngồi xung quanh mỗi và mỗi ngày không làm gì trong vài giờ. Nó sẽ không tốt nếu chúng ta có thể sử dụng những máy móc để tăng cường sức mạnh xử lý của hệ thống của chúng tôi? Trong tập hợp các bài này, tôi sẽ nhìn vào những lợi ích tiềm năng của việc sử dụng một mạng lưới văn phòng bằng cách sử dụng các môi trường ảo hóa.

Là một nhà phát triển PHP , tôi sẽ sử dụng các công cụ mà tôi sử dụng mỗi ngày cụ thể là , Linux, mySQL, PHP, VirtualBox và lật đổ ( SVN). Tuy nhiên tôi hy vọng hướng dẫn này sẽ thích ứng với các ngôn ngữ khác và các công nghệ tốt.

Các giải pháp tôi cung cấp sẽ được dựa trên các loại hình chế biến chúng ta cần để đạt được tuy nhiên điều này có thể không đúng thông qua toàn bộ bài viết như tôi sẽ thay đổi mọi thứ cho đơn giản, hoặc để sản xuất các kịch bản sử dụng thú vị hơn.

Những môi trường ảo hóa sẽ chạy trên cửa sổ máy vì đây là những gì phần lớn các văn phòng chạy. Xử lý các máy văn phòng không nên can thiệp với nhân viên bằng cách sử dụng các máy, nên không cần bảo trì máy tính, và dễ dàng triển khai cho các máy tính mới khi họ trở nên có sẵn. Ngoài ra, các máy ảo mới không nên yêu cầu thêm bất kỳ cấu hình như thế này làm giảm đáng kể khả năng mở rộng và dễ dàng mà tại đó hệ thống lưới điện có thể được mở rộng.

Tại sao lại triển khai một lưới máy tính văn phòng?

Trước hết bạn có thể nghĩ, tại sao không chỉ cần sử dụng một nguồn tài nguyên điện toán đám mây, chẳng hạn như nền tảng Amazon EC2? Vâng, lý do có thể là một số, ví dụ:

  • Bạn sẽ không ủy thác cho các dữ liệu nhất định đến một môi trường điện toán đám mây
  • Bạn không có thể đưa dữ liệu nhất định vào một môi trường điện toán đám mây cho lý do pháp lý (dữ liệu ví dụ như rời khỏi đất nước), có khả năng vì lý do pháp lý, ví dụ như NHS hồ sơ.
  • Bạn muốn giữ các đơn vị của bạn xử lý chặt chẽ và có toàn quyền kiểm soát phần cứng
  • Bạn không có tiền dự án để chạy các trường hợp đám mây
  • Văn phòng của bạn không có một kết nối Internet và do đó không thể sử dụng một nguồn tài nguyên điện toán đám mây
  • Bạn không thích mưa, những đám mây cho thấy mưa, do đó bạn giữ tốt

Tôi chắc chắn rằng danh sách có thể tiếp tục, nhưng tôi nghĩ đó là đủ cho bây giờ.

Ưu điểm của một lưới máy tính văn phòng

Vâng, cho phép làm một số toán học (và trong phong cách vật lý thực sự cho phép thực hiện một số giả định sâu rộng). Hãy tưởng tượng bạn đã lớn lực lưỡng xử lý máy chủ đang chạy 100 việc làm mỗi ngày. Trong văn phòng của bạn, bạn có 50 máy được nhàn rỗi 16 giờ một ngày, các máy này là 10% như mạnh mẽ như cắt đứt xử lý lực lưỡng của bạn. (Tất cả các kết quả ở đây được làm tròn để đánh giá thấp tăng hiệu suất).

Vì vậy, 1 điện máy * 10% * 2 / 3 thời gian = 0,067 tức là 1 máy tính để bàn xử lý trong thời gian nhàn rỗi có thể xử lý 6 công ăn việc làm đầy đủ mỗi ngày.

Nếu bây giờ tỷ lệ này lên nó mất 15 máy tính để bàn nhàn rỗi để xử lý công việc càng nhiều mỗi ngày như chính máy chủ xử lý của bạn.

Vì vậy, trong văn phòng giả vờ của chúng ta về 50 máy, chúng tôi có thể làm tăng sức mạnh xử lý của chúng tôi từ 1 máy chủ lên đến 4 máy chủ xử lý đầy đủ, hoặc chúng ta có thể xử lý 400 việc làm mỗi ngày thay vì 100.

Thông báo, không đầu tư phần cứng mới của công ty bạn vừa tăng công suất chế biến hàng loạt của nó 4 lần ! Có khả năng bạn sẽ tăng sử dụng năng lượng của bạn nhưng hầu hết các môi trường văn phòng tôi đã được cho các máy tính nói chung là còn lại trên qua đêm nào, vì vậy bạn có thể thấy điều này như một sáng kiến ​​màu xanh lá cây.

Lợi thế khác cũng có nghĩa rằng đầu tư mới hoặc cập nhật máy chủ xử lý có thể bị trì hoãn nếu máy văn phòng của bạn là đủ và khi bạn cải thiện sức mạnh của máy văn phòng của bạn lưới văn phòng của bạn trở nên mạnh mẽ hơn tự động.

Công nghệ

Những gì bạn cần? (Hay đúng hơn tôi đã sử dụng những gì):

  • Máy văn phòng nhàn rỗi (trong trường hợp của một phụ tùng máy tính xách tay Windows XP)
  • VirtualBox (hoặc một ứng dụng ảo hóa phần mềm)
  • Một máy ảo với PHP, mySQL running chạy cắt giảm hệ điều hành, tôi kêu gọi các máy chủ của tôi khập khiễng :)
  • Công việc để chạy
  • Việc làm máy chủ (có thể là một máy ảo một nơi nào đó)

Điển hình Jobs

Các loại công việc mà hệ thống này được thiết kế để chạy như sau:

  • Hệ thống nhận được một danh sách các dữ liệu mà chúng tôi cần phải phù hợp và trả lại kết quả
  • Kết hợp liên quan đến việc kiểm tra / tìm kiếm một số (khá tĩnh) nguồn dữ liệu
  • Kết quả từ các nguồn dữ liệu có thể yêu cầu xác nhận thêm, sáp nhập, kiểm tra các nguồn dữ liệu bổ sung kết quả
  • Dữ liệu được trả về với các hồ sơ phù hợp, đầy đủ xác nhận và xử lý
  • Mỗi bản ghi trong một công việc độc lập với phần còn lại

Vì vậy, về cơ bản chúng tôi đang tìm kiếm chạy các công việc có yêu cầu một hỗn hợp của cơ sở dữ liệu tra cứu và một số crunching số, một kịch bản khá điển hình trong một môi trường kinh doanh.

Các giải pháp mạng lưới không chỉ thuận lợi cho việc xử lý các công việc của loại này. Về cơ bản, bất kỳ quá trình có thể được chia thành các đơn vị độc lập có thể chạy song song. Xem wikipedia cho các ví dụ và biết thêm thông tin: lưới máy tính , nhưng một vài ví dụ nổi tiếng là Seti @ HomeBIONC . Có khuôn khổ cho chạy lưới máy tính, và đây là những giá trị xem xét.

Những gì chúng ta sẽ đạt được?

Vào cuối những bài viết này, tôi hy vọng rằng việc triển khai một mạng lưới văn phòng không cần phải được tiêu thụ cực kỳ đắt tiền hay thời gian. Tôi sẽ thảo luận:

  • Thiết lập hệ thống kiểm soát công việc, công việc cấu hình
  • Tạo một máy ảo xử lý thích hợp
  • Làm thế nào để thiết lập hệ thống trên một máy cửa sổ
  • Đảm bảo bạn đang sử dụng mã mới nhất và dữ liệu
  • Triển khai và điểm chuẩn
  • Nhìn về phía trước

Tôi sẽ được xây dựng (xây dựng, sau đó đã viết bài này) một ứng dụng ví dụ để kiểm tra các khái niệm trên một máy địa phương sử dụng Windows XP và GridMachine 'máy ảo của tôi. Công việc máy chủ kiểm soát của tôi sẽ là máy tính chính của tôi chạy Fedora 11.

Điều này là không có cách nào có nghĩa là để chứng minh một hệ thống hoàn toàn làm việc mạnh mẽ, có nghĩa là thêm một cuộc biểu tình và thảo luận cho thấy rằng những điều này có thể đạt được trong một không gian ngắn hợp lý thời gian và chi phí ít. Xin vui lòng gửi cho tôi bất kỳ ý kiến, chỉnh sửa, hoặc cải tiến và tôi sẽ làm hết sức mình để giữ cho bài viết này cập nhật cho phù hợp.

Tiếp theo thời gian

Trong phần 2 , tôi sẽ bắt đầu bằng cách nhìn vào hệ thống điều khiển công việc, và nhìn vào công việc nên được cấu hình để đạt được số tiền lớn nhất xử lý đồng thời đảm bảo rằng mỗi công việc được xử lý mà không có thất bại.

Văn phòng lưới máy tính sử dụng môi trường ảo - Phần 2

, thứ Sáu ngày 04 tháng 12 năm 2009 11:23

Giới thiệu

Tôi làm việc trong một công ty nơi chúng tôi chạy nhiều công ăn việc làm hàng loạt chế biến hàng triệu hồ sơ của các dữ liệu mỗi ngày và tôi đã suy nghĩ gần đây về tất cả các máy ngồi xung quanh mỗi và mỗi ngày không làm gì trong vài giờ. Nó sẽ không tốt nếu chúng ta có thể sử dụng những máy móc để tăng cường sức mạnh xử lý của hệ thống của chúng tôi? Trong tập hợp các bài này, tôi sẽ nhìn vào những lợi ích tiềm năng của việc sử dụng một mạng lưới văn phòng bằng cách sử dụng các môi trường ảo hóa.

Trong phần 1 , tôi đã đưa ra một cái nhìn tổng quan của hệ thống và công nghệ sẽ được sử dụng cũng như thảo luận một số trong những lý do tiềm năng tại sao bạn sẽ muốn tạo ra một mạng lưới văn phòng.

Công việc kiểm soát

Nếu bạn đang được chạy việc làm sau đó bạn sẽ cần một số cách để quản lý chúng. Hệ thống (trên máy chủ công việc của bạn) kiểm soát công việc của bạn cần phải thực sự cũng nghĩ ra ngay cả trước khi cố gắng chạy một mạng lưới văn phòng. Vì vậy, trước hết, nhiệm vụ cho một hệ thống kiểm soát công việc là gì:

  • Tay các công việc theo yêu cầu của người lao động
  • Cho công nhân những loại công việc để chạy
  • Theo dõi công việc
  • Đảm bảo rằng công việc chỉ chạy một lần
  • Cung cấp dữ liệu việc làm cho người lao động, hoặc ít nhất là nói với họ để có được nó

Hệ thống này cũng cần phải được mở rộng, một giải pháp mà làm việc trong một trường hợp duy nhất có thể được mở rộng để chạy một số loại công việc khi doanh nghiệp nhìn thấy giá trị trong một giải pháp mạng lưới. Ví dụ, công việc có thể được ưu tiên, nhiều hơn một loại hình làm việc có thể tồn tại (ví dụ như một số cơ sở mã), cuối cùng bạn thậm chí có thể chạy các máy tính nhân viên khác nhau được tối ưu hóa cho từng loại công việc (mặc dù không di chuyển ra khỏi công nhân chung chung ' 'ý tưởng). Luôn luôn cố gắng để suy nghĩ về tương lai khi phát triển hệ thống, một tầm nhìn ngắn hạn có thể dẫn đến sự thất vọng dài hạn và tăng thời gian phát triển.

Công việc máy chủ

Chúng ta sẽ cần một nơi nào đó để kiểm soát việc làm của chúng tôi từ, điều này sẽ là hệ thống duy nhất trong mạng lưới của bạn có một bộ định vị tài nguyên cố định, một địa chỉ IP, tên máy chủ, URL (bằng cách sử dụng DNS nội bộ), vv Điều này là do người lao động cần phải biết nơi để tìm việc làm, người lao động phải tìm ra hệ thống kiểm soát công việc (không phải là hệ thống điều khiển công việc tìm người lao động).

Các máy chủ bản thân công việc không thực sự có một nhiệm vụ phức tạp (trong một hệ thống cơ bản dù sao đi nữa), nó cần để lưu trữ một danh sách công việc, tay ra việc làm, nhận được kết quả, và sau đó lưu trữ chúng để thu hồi sau. Làm thế nào các bộ phận này (chẳng hạn như 'tay ra công ăn việc làm ") được định nghĩa có thể được rất cơ bản. Sau đó chúng ta có thể mở rộng hệ thống bao gồm một giao diện quản trị để thêm, chỉnh sửa, xóa, đình chỉ công việc nhưng điều này nằm ngoài tập thể dục này.

Không có lý do gì sau đó là máy chủ công việc của bạn không có thể là một máy ảo đang chạy trong máy chủ xử lý chính của bạn cung cấp nó không tiêu hao quá nhiều tài nguyên từ nó. Các máy chủ công việc tuy nhiên không cần sẵn sàng cao, nếu nó đi xuống vào một buổi tối bạn sẽ mất cả một ngày cuối tuần chế biến, có khả năng chi phí cho bạn một vài tuần giá trị của thời gian xử lý (khi so sánh với máy chủ xử lý chính của bạn một mình) . Bạn có thể muốn xem xét việc đặt máy chủ công việc của bạn trên một môi trường cân bằng tải cho tính sẵn sàng cao.

Cơ bản cài đặt

Các thiết lập cơ bản cho máy chủ công việc của chúng tôi sẽ bao gồm những gì tôi đang kêu gọi một trong những máy chủ khập khiễng của tôi (có nghĩa Li nux, m ySql, P HP). Các mã đang chạy trên công nhân Thea sẽ thực sự làm việc ra những công việc nó có thể chạy bằng cách tương tác với với cơ sở dữ liệu hệ thống điều khiển công việc. Sau đó chúng ta có thể tạo ra một dịch vụ web và bàn tay thực sự ra công ăn việc làm hơn là có người lao động làm công việc khó khăn, bản thân, nhưng bây giờ chúng tôi sẽ tiếp tục sử dụng các nguyên tắc KISS (Hãy giữ nó đơn giản, ngu ngốc !).

Vì vậy, cho phép tạo ra ba bảng mySQL để đối phó với công việc . Đây sẽ là `công việc`, `jobRecords`, và `jobResults`.

việc làm bảng Ở đây tôi đang sử dụng SQL Buddy một chút thay thế tuyệt vời để phpMyAdmin chỉ vì dễ dàng hơn để cài đặt trên CentOS (đối với những người khác nhìn thấy: 10 lựa chọn thay thế tuyệt vời để phpMyAdmin)

Bảng này bao gồm trong 5 lĩnh vực đơn giản,

  • id: Độc đáo xác định công việc
  • tên: có thể là một tài liệu tham khảo khách hàng, hoặc bất kỳ số nào của các định dạng khác
  • Tình trạng: Bạn cần phải biết công việc tại, ví dụ như
    • 0: Chưa bắt đầu
    • 1: Chọn
    • 2: Đã hoàn thành
  • started_by: Ai đang bắt đầu làm công việc ? Đây không phải là hoàn toàn cần thiết nhưng tốt đẹp để có. Tôi muốn đề nghị nhân viên theo dõi địa chỉ IP của họ trên mạng của bạn
  • started_at: Khi người lao động bắt đầu công việc? Bằng cách theo dõi các công việc không hoàn tất trong vòng X số lượng thời gian chúng ta biết chúng ta cần nhận công việc một lần nữa và bắt đầu chế biến công nhân khác. Người lao động có thể ngăn chặn xử lý / đi offline cho bất kỳ số lý do, mất điện, tai nạn, mất mạng.

Nó là dễ dàng như thế nào bảng này có thể được mở rộng với một vài trường bổ sung để cho phép đối với các số liệu thống kê theo dõi, một thời gian hoàn thành cột để xem bao lâu công việc đã, một truy cập để xem có bao nhiêu công nhân được công việc (rõ ràng điều này cần có xu hướng 1), công việc ưu tiên, danh sách có thể đi và về. Trong tình huống công việc phức tạp hơn, nó sẽ có thể xác định bao nhiêu bộ nhớ người lao động sẽ cần truy cập (và do đó chỉ sử dụng người lao động phù hợp), hoặc thậm chí của người lao động sẽ được yêu cầu.

Cho phép thêm một số công việc ví dụ:

ví dụ công việc

Bảng tiếp theo lại là khá đơn giản để hiểu, đây là hồ sơ công việc của chúng tôi. Họ được liên kết với bảng công việc chính của một cột `jobs_id`. Làm cho bảng này phụ thuộc rất nhiều vào các dữ liệu mà bạn cần phải cung cấp cho người lao động của bạn, cho phép thực hiện một ví dụ rất đơn giản, nơi chúng tôi có bốn cột:

  • id: ID của bản ghi
  • tên: tên của Người
  • địa chỉ: địa chỉ của Người
  • jobs_id: ID công việc mà hồ sơ này có liên quan đến

Bảng thứ ba và cuối cùng bao gồm một bảng kết quả, nó cũng tương tự như bảng hồ sơ của chúng tôi, và với việc bổ sung một số cột có thể là một phần của bảng hồ sơ:

  • job_record_id: Liên kết kết quả vào bảng công việc
  • Kết quả: dữ liệu kết quả

... Và đó là tất cả những gì bạn cần cho công việc kiểm soát! (Mặc dù ở một mức độ rất cơ bản) Trong trường hợp của tôi tôi chỉ vào một bảng dữ liệu của tôi để xử lý được đặt, nhưng điều này có thể dễ dàng được một tập tin, các thông số để chạy mã mô phỏng, bạn tên nó.

Lựa chọn một công việc

Như đã nêu trước đây, người lao động sẽ làm quản lý công việc của chúng tôi đối với chúng tôi bây giờ, vì vậy tất cả chúng ta cần phải thực sự làm là tìm một công việc mà nhu cầu chế biến và có được thông tin. Làm thế nào chúng ta sẽ làm điều này? Vâng chọn tiêu chí lựa chọn công việc của chúng tôi và tìm việc làm, trong SQL tôi đã làm như sau:

  1. Thực hiện bất kỳ công việc không được đánh dấu là hoàn thành nhưng từ nhân viên của chúng tôi và thiết lập lại (thay thế __ME__ với một định danh, đơn giản nhất là địa chỉ IP):
      Cập nhật: `việc làm` SET `tình trạng` = 0 `tình trạng` = 1 và `started_by` = __ME__; 
  2. Sử dụng các tiêu chí lựa chọn công việc của chúng tôi, chọn một công việc và yêu cầu hệ thống kiểm soát công nhân này là đối phó với nó:
      Cập nhật: `việc làm` SET `tình trạng` = 1, `started_by` = __ME__, `started_at` = NOW () Ở ĐÂU `tình trạng` = 0 OR
     (`Tình trạng` = 1 và `started_at`> DATE_SUB (NOW (), khoảng thời gian X Giờ)) ORDER BY `id` ASC; 

    Bằng cách lấy công việc mà không trả lại kết quả trong X số lượng thời gian chúng tôi đảm bảo rằng tất cả các công việc được điều hành trong trường hợp của một công nhân bị rơi hoặc đi AWOL.

  3. Tiếp theo lấy các chi tiết công việc tiếp theo là các hồ sơ tự:
      SELECT * FROM `việc làm` WHERE `started_by` = __ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

Sau khi hoàn thành công việc chúng ta chèn các bản ghi kết quả của chúng tôi và đánh dấu các công việc như hoàn thành. Hãy nhớ là công việc có thể đình chỉ / resume bất cứ lúc nào cho phép đối với một số mạnh mẽ trong kịch bản của bạn. Nó có thể là nhiệm vụ đình chỉ một nửa cách thức thông qua việc cập nhật các hệ thống điều khiển công việc, do đó, kiểm tra số lượng hồ sơ trong công việc và số lượng các kết quả lưu lại hệ thống điều khiển công việc sẽ là một động thái khôn ngoan.

Ngoài ra, trong khi điều này chứng minh việc làm có thể được lựa chọn và quản lý từ một khung SQL truy vấn bạn thực sự cần được trừu tượng hóa kiểm soát công việc của bạn để nếu bạn quyết định chuyển sang sử dụng một dịch vụ web, một hệ thống tập tin dựa trên XML, hoặc bất kỳ số hệ thống, nó sẽ không ảnh hưởng đến các mã trên nó.

Công việc cấu hình

Khía cạnh tiếp theo để xem xét là việc kích thước và cấu hình. Bằng cách chơi với cấu hình việc làm, chúng ta có thể tấn công một sự cân bằng tuyệt vời giữa tốc độ, quá trình sao chép, và độ tin cậy. Hãy OFA vài kịch bản:

  1. Việc làm mất 1 ngày để chạy: Điều này có nghĩa rằng các nhân viên của bạn cần 15 ngày, kể từ ngày mỗi quá trình công việc (nhớ 10% sức mạnh cho 2/3rds thời gian) . Điều này rõ ràng không phải là một cấu hình khôn ngoan, quy mô công việc của bạn là quá lớn! Nó sẽ mất ít nhất gấp đôi thời gian để có được một công việc xử lý người lao động ban đầu nên đi AWOL (thời gian nhận rằng nó đã không trả lại một kết quả cộng với thời gian tái chế). Trong một lý tưởng, bạn sẽ có ít nhất một công việc toàn dễ dàng xóa vào cuối mỗi khoảng thời gian nhàn rỗi dài, như vậy bạn tiếp tục các công việc đánh dấu trên và trường hợp xấu nhất một công việc sẽ phải mất hai ngày để quá trình đầu tiên nên đi mất tích.
  2. Công Việc mất 1 phút để chạy: Điều này có nghĩa rằng người lao động mất khoảng 15 phút để chạy mỗi công việc . Trong khi điều này ban đầu có thể có vẻ lý tưởng, bạn có được xử lý công việc bổ sung trong thời gian ăn trưa, nghỉ cà phê, các cuộc họp, kịch bản này đặt căng thẳng cho các khu vực khác của hệ thống của bạn và giới thiệu các vấn đề riêng của mình. Ví dụ, trước hết là thiết lập / chế biến, tỷ lệ thời gian của bạn sẽ đi xuống, do đó mất đi hiệu quả hệ thống. Mạng của bạn là có được liên tục truyền tải thông tin công việc để các nhân viên khác nhau bực bội những người lao động đồng ngày của họ sang ngày làm việc. Bạn cũng sẽ căng thẳng hơn trên máy chủ xử lý công việc của bạn vì nó có món ăn ra rất nhiều và rất nhiều phần nhỏ công việc một cách thường xuyên. Cuối cùng, trong tình huống này nếu máy chủ công việc của bạn đi xuống bạn sẽ để tạo ra một đăng nhập trở lại lớn của công việc dở dang trong khi công việc lớn hơn có thể tiếp tục chế biến blissfully không biết rằng các máy chủ công việc đã trải qua khó khăn.

Trong thực tế có cấu hình không có một lý tưởng cho các thiết lập mạng lưới của bạn, phụ thuộc nhiều vào các nguồn lực sẵn có, loại công việc, yêu cầu công việc thời gian quay vòng, năng lực mạng lưới, và như vậy. Tuy nhiên, một số hướng dẫn sẽ là:

  • Việc làm kích thước để mỗi công nhân có thể nhận được thông qua ít nhất việc làm 3-4 trong một khoảng thời gian 15 giờ (khoảng thời gian dài nhất có khả năng nhàn rỗi)
  • Chơi với kích thước công việc để thời gian thiết lập trở nên tương đối không đáng kể so với thời gian xử lý (mang trong tâm trí các điểm trên).
  • Nếu một công việc không hoàn thành trong số tiền của thời gian gấp đôi (có thể ít hơn), bạn mong đợi nó để hoàn thành nó giả định đào ngũ của nó đi và bắt đầu chế biến với công nhân khác. Điều này có nghĩa là bạn có thể phải chờ đến ba lần chiều dài bình thường của một công việc cho nó để hoàn thành (có thể lâu hơn nếu công việc tiếp theo không). Bạn có thể muốn giảm bớt thời gian này, nhưng phải cẩn thận không để giảm quá nhiều như bạn có thể bắt đầu nhân đôi việc xử lý các nhiệm vụ một cách thường xuyên.
  • Công việc phải được độc lập của yêu cầu bên ngoài càng nhiều càng tốt. Các máy chủ công việc, ví dụ, chỉ nên được liên lạc vào lúc bắt đầu và kết thúc mỗi công việc.
  • Không bão hòa mạng của bạn, điều này sẽ có hai tác động tiêu cực, nhân viên ban ngày của bạn sẽ tìm thấy bằng cách sử dụng mạng bực bội và các vấn đề có thể được kinh nghiệm với các kết nối thời gian ra một vấn đề sẽ chỉ trở nên tồi tệ hơn khi bạn quy mô mạng lưới của bạn.
  • Đảm bảo việc làm có thể chạy trên các công nhân của bạn. Nếu công việc trở nên quá bộ nhớ công ăn việc làm không gian tập trung thâm canh, đĩa sẽ bắt đầu hủy bỏ và điều duy nhất bạn sẽ nhận thấy là sự sụt giảm số lượng công việc xử lý không có lý do thực sự tại sao.

Trình Kết quả của việc một

Khi trình kết quả của một công việc quan trọng là phải kiểm tra kết quả đã được đệ trình bởi nhân viên khác, đặc biệt là nếu người lao động hiện nay đã không hoạt động trong một thời gian.

Khi kết quả được gửi đảm bảo rằng số lượng các kết quả phù hợp với số lượng hồ sơ trong công việc.

Như đã nêu trước đây, và không thể được trên nhấn mạnh, xây dựng khả năng chịu lỗi vào công việc thu hồi và nộp kết quả. Các công nhân có thể (và nhiều khả năng sẽ) đi vào chế độ đình chỉ bất tiện nhất của thời đại và nhu cầu này được phục vụ các thực cho. Ngoài ra một lần nữa abstracting đi kết quả của bạn trình sẽ giúp phục vụ cho các thay đổi trong tương lai để hệ thống điều khiển công việc của bạn dễ dàng hơn nhiều để đối phó với.

Tóm tắt thông tin

Trong section này, chúng tôi đã nhìn vào những gì một máy chủ điều khiển công việc cần phải làm và làm thế nào để có được một hệ thống rất cơ bản. Chúng tôi thảo luận làm thế nào để lấy một công việc từ hệ thống điều khiển và làm thế nào tốt nhất để cấu hình việc làm để có được nhất của chúng ta về hệ thống mạng lưới văn phòng của bạn. Để kết thúc, một đoạn văn hoặc hai trình kết quả lại cho máy chủ điều khiển công việc đã được trình bày.

  • Một máy chủ kiểm soát công việc quản lý công việc và đảm bảo rằng tất cả các đơn vị làm việc được hoàn thành
  • Tóm tắt công việc của bạn chọn / kết quả trình, chúng ta có thể thay đổi công nghệ của máy chủ điều khiển mà không cần nhiều vấn đề
  • Cấu hình công việc của bạn để đảm bảo rằng họ đang chạy một cách nhanh chóng và hiệu quả mà không gây áp lực quá nhiều vào cơ sở hạ tầng mạng của bạn, và không sao chép các nhiệm vụ xử lý một cách thường xuyên.
  • Đảm bảo rằng bạn xây dựng khả năng chịu lỗi và checking lỗi thành thói quen của bạn, công nhân có thể đình chỉ và tiếp tục và bất tiện nhất của thời đại. Hãy nhớ để kiểm tra nếu kết quả đã được đệ trình bởi nhân viên khác.

Tiếp theo thời gian

Trong phần 3 , chúng ta sẽ tạo máy chế biến ảo của chúng tôi và thiết lập máy cửa sổ của chúng tôi để trở thành công nhân trong thời gian nghỉ .

Văn phòng lưới máy tính sử dụng môi trường ảo - Phần 5

, thứ Sáu ngày 04 tháng 12 năm 2009 11:03

Giới thiệu

Tôi làm việc trong một công ty nơi chúng tôi chạy nhiều công ăn việc làm hàng loạt chế biến hàng triệu hồ sơ của các dữ liệu mỗi ngày và tôi đã suy nghĩ gần đây về tất cả các máy ngồi xung quanh mỗi và mỗi ngày không làm gì trong vài giờ. Nó sẽ không tốt nếu chúng ta có thể sử dụng những máy móc để tăng cường sức mạnh xử lý của hệ thống của chúng tôi? Trong tập hợp các bài này, tôi sẽ nhìn vào những lợi ích tiềm năng của việc sử dụng một mạng lưới văn phòng bằng cách sử dụng các môi trường ảo hóa.

Trong Phần 4 , chúng tôi đã sử dụng các công cụ để đảm bảo rằng chúng ta đang chạy các phiên bản mới nhất của các nguồn mã và dữ liệu để kết quả thu được là luôn luôn up-to-ngày với các thông tin kinh doanh mới nhất và logic.

Pre-Triển khai

Trước khi triển khai hệ thống mạng lưới của bạn nếu có một điều bạn làm và một điều một mình, điểm chuẩn hệ thống hiện tại của bạn ! Không có vấn đề gì bạn nói với đồng nghiệp về hệ thống của bạn là bao nhiêu thêm công việc sẽ làm, trừ khi bạn có con số để trở lại điều này đảm bảo bạn không có gì. Vì vậy,

  • bao nhiêu hồ sơ bạn có thể xử lý hiện tại? Trung bình mỗi ngày? Mỗi giờ?
  • Bao lâu nó thường để chuyển xung quanh một công việc?
  • Nhiều hơn khả năng bạn có?

Ngoài ra còn có thêm câu hỏi:

  • Nếu máy chủ xử lý của bạn (hoặc một trong các máy chủ xử lý của bạn) đi xuống như thế nào điều này sẽ ảnh hưởng đến khả năng của bạn, bạn sẽ được làm tê liệt?
  • Lợi thế gì bạn hy vọng / mong đợi để có được từ một hệ thống lưới điện?
  • Máy văn phòng của bạn có khả năng chạy các công việc?
  • Là của bạn (hoặc bạn có việc làm có thể được chuyển đổi) để làm việc trong phong cách này chạy?

Điểm quan trọng cuối cùng là mất thời gian của bạn trên bất kỳ sự thay đổi lớn như thế này. Cập nhật mã xử lý của bạn làm việc bằng cách sử dụng phương pháp mới, điểm chuẩn một lần nữa. Có thể thiết lập máy chủ xử lý của bạn để chạy một máy ảo, sau khi tất cả các máy chủ xử lý của bạn sẽ được một nhân viên khác (chỉ là một rất mạnh tương đối). Cho phép quá trình mới để giải quyết.

Triển khai

Đề nghị của tôi sẽ là pop vào cuối tuần một văn phòng thực hiện tất cả các cài đặt và thiết lập . Làm điều này ngay trước khi kỳ nghỉ hai tuần và để lại để người nghèo khác chap để đối phó với những hậu quả ... có thể không ...

Triển khai một hệ thống như thế này cần phải được làm chậm. Mặc dù nó là tương đối đơn giản để thiết lập hệ thống này sẽ ảnh hưởng đến toàn bộ cơ sở hạ tầng văn phòng của bạn (tốt kỹ thuật số). Thứ nhất, tung ra một vài máy tại một thời điểm, lưu lượng mạng theo dõi, làm thế nào các máy chủ lao động thực hiện trên cơ sở ngày-to-ngày. Bạn có thể cần phải thay đổi cấu hình công việc của bạn đáp ứng những phát hiện của bạn.

Một khi hệ thống đã giải quyết với một vài máy (cho phép nói 10% của tất cả các máy văn phòng, tức là 5) tiếp tục theo dõi lưu lượng mạng và máy chủ performance. Tiếp theo điểm chuẩn một lần nữa, bây giờ bạn nên được xử lý công việc nhiều hơn 33% so với tiêu chuẩn đầu tiên của bạn. Kiểm tra này là như vậy, hoặc ít nhất là trong sân chơi bóng chày này. Nếu không, điều tra những gì đang xảy ra trước khi chuyển. Lặp lại chu kỳ này cho đến khi bạn hạnh phúc tất cả các máy văn phòng mà không giết chết hiệu suất máy tính cá nhân hoặc nghiền mạng của bạn vào bế tắc.

Tại tất cả các lần giữ điểm chuẩn, ngay cả sau khi tất cả các triển khai được thực hiện. Kiểm tra cập nhật mã mới ảnh hưởng đến tốc độ của hệ thống của bạn, kiểm tra tất cả các công nhân đang báo cáo và xử lý công việc. Chậm (rất chậm) tăng cấu hình công việc của bạn để có được những sản phẩm tốt nhất từ ​​công nhân và mạng của bạn.

Dừng lại!

Điều gì sẽ xảy ra nếu bạn muốn để ngăn chặn công nhân của bạn chạy ở một thời gian? Họ là tất cả ra khỏi đó chạy, tái sinh, và cố gắng hết sức mình để xử lý dữ liệu như côn trùng đói. Câu trả lời có vẻ hiển nhiên nhưng giá trị của nó thêm chỉ trong trường hợp bị bỏ qua của nó. Đơn giản chỉ cần chỉnh sửa kịch bản xử lý của bạn với một lối ra (0) hoặc chết () hoặc tuyên bố một số khác để giết chết công việc xử lý của bạn. Một lý do quan trọng lý do tại sao chúng tôi luôn luôn cố gắng cập nhật kịch bản xử lý mới nhất trước khi chạy bất kỳ!

Trình diễn hệ thống

Để viết này tập hợp các bài báo ngắn, tôi tạo ra một mạng lưới rất nhỏ để chứng minh các công nghệ và phương pháp. Tôi đọc rất nhiều bài báo, hướng dẫn, và sử dụng các công cụ khác nhau để thiết lập và theo dõi những gì đang diễn ra. Không có nghĩa là tôi đi ra ngoài và bão hòa toàn bộ một văn phòng với lưu lượng truy cập và cũng không có tôi đã truy cập vào một máy tính thường xuyên của các thành viên nhân viên để xem làm thế nào hiệu suất máy chủ đã bị ảnh hưởng.

Hệ thống trình diễn của tôi là thực sự rất khiêm tốn. Tôi sử dụng máy tính để bàn thường xuyên của tôi như là một máy chủ điều khiển công việc. Vào ngày này, tôi đã cài đặt mySQL máy chủ cài đặt thiết lập là một bậc thầy trong sự sao chép, PHP , Â và SVN liên kết thông qua apache (để truy cập thông qua nhân viên VM).

Sau đó tôi tạo ra một máy nhân viên CentOS trên VirtualBox trên một máy tính xách tay 6 năm tuổi XP cửa sổ. Tôi thiết lập các nhiệm vụ theo lịch trình theo quy định sau khi sao chép các máy ảo vào máy và để cho nó đi.

Máy ảo được thiết lập với PHP, lật đổ, và mySQL. Tôi đã kiểm tra một chi nhánh có tên là 'công nhân' từ kho lưu trữ máy chủ kiểm soát công việc của tôi và chắc chắn rằng nó có thể được cập nhật bằng cách sử dụng svn cập nhật '. Tiếp theo tôi thiết lập mySQL như một nô lệ và kiểm tra dữ liệu đã được sao chép từ mySQL trên máy chủ kiểm soát công việc để máy ảo công nhân. Sau khi tất cả những điều này, tôi thiết lập kịch bản bash và công việc cron.

Kịch bản xử lý của tôi về cơ bản đã đi dọc theo dòng này (những thứ rất đơn giản):

  • Tìm hiểu trong lĩnh vực tên
  • Tính số lượng tên tương tự trong một bảng từ nguồn dữ liệu được tổ chức trên máy ảo
  • Đếm số lượng tên như tên bằng dấu cách ở trên, nhưng tách (tức là tên đầu tiên, giữa, họ tên)
  • Lặp lại quá trình 1.000 lần

Mỗi công việc mất khoảng 20 phút để chạy. Có lúc tôi mở ra nhiều bản sao của máy ảo nhân viên trên máy tính xách tay các cửa sổ và theo dõi các công việc được kiểm tra bởi mỗi địa chỉ IP công nhân. Tại thời điểm này, tôi cũng xác nhận rằng bản sao tự động khởi động lại.

Để máy tính xách tay nhàn rỗi kết quả trong một công nhân bắt đầu xử lý các việc làm từ các máy chủ điều khiển công việc. Khi tiếp tục sử dụng máy tính xách tay, có một sự chậm trễ khoảng 30-60 giây, đây là một số tiền hợp lý của thời gian và nhân viên sẽ cần phải được thực hiện nhận thức rằng máy tính của họ có thể tạm dừng một thời gian ngắn khi trở về máy. Máy mới hơn có thể không có một tạm dừng này dài. Lợi ích của số lượng chế biến được thực hiện bởi các máy này trong thời gian nhàn rỗi sẽ là lớn hơn các nhân viên phải chờ đợi một thời gian ngắn (nói 1 phút) đến máy của họ một buổi sáng (tôi thường xuyên chờ đợi lâu hơn cho một Windows Defender cập nhật diễn ra) chúng được tạo ra nhận thức được điều này (thời gian hữu ích để lấy một cà phê buổi sáng).

Nói chung tôi cảm thấy tự tin rằng mình đã chứng minh các công nghệ có thể được sử dụng để tạo ra một hệ thống như vậy. Tôi đã chỉ ra rằng một hệ thống như vậy không làm việc trên một quy mô nhỏ (rất) và thêm một số thử nghiệm có thể được mở rộng sử dụng các nguồn tài nguyên của máy của một văn phòng. Nếu tôi không nhận được điểm để làm điều này, tôi sẽ rất quan tâm để biết / thấy khi một người nào khác không.

Kết luận / Đánh giá

Rõ ràng bước tiếp theo sẽ được thực sự có được một ví dụ thế giới thực và bắt đầu triển khai một hệ thống như thế này trong một môi trường văn phòng và xem những gì sẽ xảy ra. Yêu cầu một doanh nghiệp cam kết này mà không cần một công ty đường mòn lòng đam mê để chứng minh công nghệ và hiệu quả có thể được một chút khó khăn. Lưới / phân phối máy tính là rất phổ biến là một số vòng tròn và có một số ứng dụng lớn (BIONC, SETI @ Home, Folding @ Home, vv). Tôi không, tuy nhiên, tìm một quy mô nhỏ hơn và hệ thống đơn giản như thế này trong tìm kiếm của tôi có thể được triển khai trong một môi trường văn phòng.

Tôi tạo ra một hệ thống về cơ bản miễn phí bằng cách sử dụng phần mềm mã nguồn chủ yếu là mở và các công cụ có sẵn trong văn phòng hầu như bất kỳ. Các công nghệ về cơ bản đã được chứng minh và hiển thị để thực hiện và làm việc như mong đợi. Hy vọng rằng tôi đã cho thấy với công việc không nhiều và với một thiết lập rất đơn giản, bạn có thể triển khai một hệ thống văn phòng điện toán lưới là mạnh mẽ, giá rẻ, Â và khả năng mở rộng tất cả cùng một lúc.

Một khi hệ thống và chạy trên đó là hầu như không có kết thúc với số tiền tùy biến và cải tiến bạn có thể làm. Ví dụ số liệu thống kê / điểm chuẩn có thể dễ dàng được thêm vào hiển thị giá trị của hệ thống như vậy mỗi ngày. Máy mới có thể được thêm vào một cách nhanh chóng và dễ dàng và khi họ đến với những nâng cấp phần cứng hiện có củng cố sức mạnh xử lý của bạn.

Tôi hy vọng bạn đã rất thích đọc loạt bài này và cho bạn thức ăn cho các tư tưởng chạy một hệ thống mạng lưới văn phòng. Các giải pháp trình bày ở đây sẽ không nhất thiết phải làm việc trong mọi tình huống, nhưng cần được thích nghi để cho phép bạn để có được xử lý dữ liệu của bạn thực hiện bằng cách sử dụng giải pháp của riêng bạn.

Xin vui lòng gửi cho tôi bất kỳ ý kiến, chỉnh sửa, hoặc cải tiến và tôi sẽ làm hết sức mình để giữ cho bài viết này cập nhật cho phù hợp.













Panorama Theme theo Themocracy

10 khách trực tuyến
9 khách, 1 chương trình, 0 thành viên
Max du khách hôm nay: 17 at 04:02 am UTC
Tháng này: 19 19-08-2011 06:09 am UTC
Năm nay: 130 28-03-2011 10:40 pm UTC
Tất cả thời gian: 130 28-03-2011 10:40 pm UTC