Thể loại: Máy tính

Apache proxy với tiêu hóa thực

Bởi Watkin Lloyd Steven , Chủ Nhật 27 Tháng Ba 2011 12:57

Bài đăng này sẽ nhanh chóng chỉ cho bạn cách thiết lập proxy với cơ sở xác thực bằng cách sử dụng apache .

Trong trường hợp của tôi tôi muốn có bit torrent khách hàng truyền dẫn có sẵn trên internet để tôi có thể kiểm tra trên các adminster torrent tải và nhà nước (như việc phát hành fedora mới nhất) theo yêu cầu. truyền bản thân khách hàng web của mình chạy trên cổng 9091 theo mặc định. Thay vì bận tâm mở thêm cổng trên tường lửa của tôi và thêm các quy tắc cổng chuyển tiếp nessecary tôi quyết định tôi sẽ chỉ proxy các cuộc gọi qua để truyền tải thông qua sử dụng apache mod_proxy .

Tiếp tục đọc 'proxy Apache với tiêu hóa thực' »

Zend Framework: Render Nếu Tồn tại

Bởi Watkin Lloyd Steven , Chủ nhật ngày 12 Tháng 12 Năm 2010 16:19

Tóm tắt

Đây là một bài nhanh chóng để thảo luận về quan điểm trợ giúp đơn giản chứ không phải tôi tạo ra để biểu diễn một Zend Framework xem kiểu tập tin chỉ khi nó tồn tại. Thông thường yêu cầu mã để làm cho một tập tin mà không tồn tại sẽ ném một ngoại lệ. Vì vậy tôi tạo ra một wrapper cho các Zend_View:: render () phương pháp mà xác định xem file có tồn tại và nếu như vậy làm cho, nếu không chỉ đơn giản là trả về một chuỗi rỗng.
Tiếp tục đọc 'Zend Framework: Render Nếu Tồn tại' »

Zend Certified Engineer (ZCE) 5,3

Bởi Watkin Lloyd Steven , thứ Năm 30 Tháng Chín, 2010 21:00

Với sự phát hành chính thức của chương trình Chứng chỉ Zend (ZCE) Kỹ sư cho 5,3 tôi nghĩ rằng tôi sẽ cho hiển thị nhanh chóng của tôi về những gì tôi nghĩ về kỳ thi.

Một số thông tin về bản thân mình: tôi lần đầu tiên được giới thiệu với PHP khoảng 7 năm trước đây và đã làm việc chuyên nghiệp trong PHP từ năm 2006. Tôi hiện đang làm việc cho một thú vị mới thành lập được gọi là Brightpearl có trụ sở tại Bristol, Anh , sản xuất CRM tích hợp, kế toán, và phần mềm thương mại điện tử. Trước đây tôi đã không thu được bất kỳ trình độ ZCE trước. Tôi hiện đang phát triển trong series 5.2.x và chưa thực sự được sử dụng bất kỳ tính năng cụ thể 5.3 (Tôi đang chờ đợi cho Zend Framework 2 và Doctrine 2) trong các dự án phát triển của tôi.
Tiếp tục đọc 'Zend Certified Engineer (ZCE) 5,3' »

Zend Framework Per Cài đặt Giao diện Module - Follow Up

Bởi Watkin Lloyd Steven , Thứ Ba 16 tháng 2 năm 2010 20:48

Là một theo dõi bài viết trước đây của tôi vào mỗi cách bố trí các thiết lập dựa trên mô-đun cho Zend Framework , tôi đã cập nhật các mã yêu cầu cấu hình ít hơn trước (không phải là nó đòi hỏi nhiều hơn là một vài dòng trong cấu hình ứng dụng của bạn!).
Tiếp tục đọc 'Zend Framework mỗi Module Giao diện Cài đặt - Follow Up' »

Tính toán lưới văn phòng bằng cách sử dụng các môi trường ảo - Phần 4

Bởi Watkin Lloyd Steven , Thứ sáu ngày 04 tháng 12 năm 2009 23:59

Giới thiệu

Tôi làm việc trong một công ty mà 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 mà ngồi xung quanh mỗi người và mỗi ngày không làm gì trong nhiều giờ. Nó sẽ không được 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 các hệ thống của chúng tôi? Trong này tập hợp các bài viết tôi sẽ xem xét các lợi ích tiềm năng của một văn phòng sử dụng điện lưới sử dụng các môi trường ảo.

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

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, nhanh hơn hiệu quả hơn mã 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ã cũ có mùi . Làm thế nào sau đó làm chúng tôi đảm bảo rằng chúng tôi luôn luôn sử dụng phiên bản mới nhất và lớn nhất của 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, thủ đoạn này, tuy nhiên, là để giảm sức mạnh xử lý và lưu lượng mạng trong việc đạt được điều này. Cho phép bắt đầu với những đơn giản của các giải pháp và cải thiện nó từ từ qua một vài lần lặp lại.

Phương pháp đầu tiên sẽ là chỉ cần kết nối với máy chủ điều khiển 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ã này. 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 về điều đó 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à mỗi lần thay thế? Hoặc 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 kiểm tra lật đổ trong mã ban đầu và sau đó chỉ cần cập nhật mã của chúng tôi vào mỗi ương ( 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à cron mỗi 10 phút), trông đơn giản như sau:

  #! / 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, hãy bắt đầu ngay bây giờ"
     cd / path / to / làm việc / sao chép
     svn cập nhật
     php yourJobProcessingScript.php
 fi 

Bây giờ chúng tôi có thể chắc chắn rằng với chạy mỗi chúng ta 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 mỗi và mỗi lần chúng ta thực hiện việc chạy và giảm lưu lượng mạng bằng cách chỉ chuyển giao những khác biệt file 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 đúng 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ừ ​​chi nhánh của một 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 mà được trả lại cho cơ sở dữ liệu như một phần của kết quả trả về. 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 khi tôi sao chép thân của tôi vào các ngành như công nhân mà tôi chắc chắn đã được chạy các tập lệnh 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 sử dụng các nguồn dữ liệu sau đó tại một số điểm này sẽ được cập nhật quá. 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 thường xuyên bạn sẽ lũ với lưu lượng truy cập mạng của bạn ngay sau khi công nhân của bạn bắt đầu chạy đưa 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 các máy ảo của tôi.

Giữ bạn đang ngựa đó! Gì nếu dữ liệu nguồn 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 được chúng tôi nói chuyện? Nó có thể là hiệu quả hơn để cài đặt một ổ cứng lớn hơn bổ sung 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 về ngân sách và là đến với doanh nghiệp để quyết định. Nó có thể là nguồn dữ liệu của bạn là quá lớn mà chỉ cần nó không khả thi để giữ cho 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ở nên 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ể là bạn có thể nhìn vào hoạt động chiến lược khác, ví dụ chỉ kêu gọi công nhân của bạn 20:00-06:00 mỗi đêm và / hoặc dữ liệu yêu cầu điều tiết nguồn.

Di chuyển trên cho phép nói rằng số lượng các nguồn dữ liệu của chúng tôi đến 100GB dữ liệu. Vâng đó là có khá nhiều dữ liệu để di chuyển xung quanh các mạng trên cập nhật. Làm thế nào chúng tôi sẽ đảm bảo rằng chúng tôi có cá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 lên như là một bậc thầy trong nhân bản (với một bản ghi bin tốt đẹp lâu dài) có thể là cách để đi:

nhân rộng Bằng cách đặt mỗi nhân viên của bạn lên như là một nô lệ cho các bản cập nhật máy chủ công việc kiểm soát các nguồn dữ liệu của bạn sẽ chảy xuống độc đáo cho công nhân 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 bạn công nhân kick trong cùng một lúc). Điều này có lợi thế hơn rsync trong đó bạn sẽ không nhận được một tạm dừng 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, các mysql daemon vào nhân viên của bạn sẽ liên tục cập nhật dữ liệu của nó khi xử lý vẫn tiếp tục.

Đây là cách để thiết lập máy chủ trình diễn của tôi. Để thiết lập sao chép tôi 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 đã có nhân viên inital của tôi sao chép các dữ liệu máy chủ điều khiển 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 thời gian khi VM đã được sao chép.

Tóm tắt

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

Tiếp theo thời gian

Trong phần cuối 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ề triển khai hệ thống này cho. Tôi sẽ tóm tắt những gì đã học được và những gì tôi quản lý để tạo ra.

Tính toán lưới văn phòng bằng cách sử dụng các môi trường ảo - Phần 3

Bởi Watkin Lloyd Steven , Thứ sáu ngày 04 tháng 12 năm 2009 23:37

Giới thiệu

Tôi làm việc trong một công ty mà 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 mà ngồi xung quanh mỗi người và mỗi ngày không làm gì trong nhiều giờ. Nó sẽ không được 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 các hệ thống của chúng tôi? Trong này tập hợp các bài viết tôi sẽ xem xét các lợi ích tiềm năng của một văn phòng sử dụng điện lưới sử dụng các môi trường ảo.

Trong phần 2 chúng ta nhìn vào các công việc một máy chủ sẽ chạy, và làm thế nào công việc cần phải được cấu hình để đạt được số tiền lớn nhất trong khi chế biến đảm bảo mỗi công việc được xử lý mà không có thất bại.

Thiết lập nhân viên của bạn - hoặc máy chủ Limp

Bước tiếp theo trong quá trình này là để thiết lập công nhân ảo. Đối với điều này tôi sẽ sử dụng một cài đặt của CentOS bằng cách sử dụng VirtualBox. Tôi sẽ cài đặt MySQLPHP trên máy chủ, cũng được biết đến như là một Limp (Li nux, m ySQL, P HP) Server (tôi có thể đã làm cái tên lên).

  • Cài đặt VirtualBox trên máy tính các cửa sổ của bạn (theo liên kết)
  • Tải về và cài đặt CentOS (hiện tại phiên bản 5.3) bên trong một máy ảo được tạo ra

Có điểm nào tôi sẽ có điều này có thể là 1000 của các hướng dẫn rất lớn ra khỏi đó (ok, đây là một: Tạo và Managing CentOS máy ảo VirtualBox dưới ). Điểm quan trọng cần lưu ý Tôi cho rằng là tôi gọi là GridMachine của tôi máy ảo.

Theo như sự lựa chọn của tôi về khách hàng và hệ điều hành ảo hóa đi không có lý do hấp dẫn lớn đối với mỗi sự lựa chọn. VirtualBox là một cái gì đó tôi sử dụng trên máy chủ của tôi và được hỗ trợ bởi ba hệ điều hành. Tôi đã chọn CentOS như một ổn định của hệ điều hành tốt và tôi sử dụng nó trên máy chủ web của riêng tôi. Tôi có niềm tin rất lớn trong các công cụ thích hợp cho công việc này (mặc dù tôi đang áp dụng "sử dụng nhanh nhất và dễ nhất cho bạn tâm ở đây), do đó, nếu hệ điều hành X chạy mã của bạn nhanh hơn và hiệu quả hơn sử dụng mà thay vào đó:)

Điều quan trọng là đảm bảo rằng các máy ảo của bạn sử dụng DHCP, nếu không cho mỗi máy ảo mới này sẽ cần phải được cấu hình riêng rẽ mà là một cái gì đó chúng tôi không want.By sử dụng DHCP chúng ta không cần phải cấu hình các thiết lập mạng riêng cho các máy công nhân, DHCP sẽ bàn trong các khu công nghiệp cho bạn. Vì vậy, bạn có thể sao chép máy ảo của bạn về văn phòng mà không cần lo lắng về việc thiết lập mỗi một trong những động (điều này cải thiện khả năng mở rộng và làm giảm nhân viên hành chính).

Quá trình bạn nên đặt mục tiêu đạt được sẽ là để có được một máy vật lý mới, cài đặt VirtualBox, và sau đó triển khai khá nhiều hình ảnh ảo mà không có nhiều người khác. Nó có thể là khôn ngoan để thiết lập tất cả các công nhân trên một subnet khác nhau để bạn ít nhất có thể nhìn thấy bao nhiêu máy đang chạy. Bạn cũng sẽ cần phải thiết lập máy của bạn trên một thuê hoặc cho thuê dài DHCP không giới hạn.

Làm thế nào để chạy việc về người lao động

Đây là một khu vực thú vị và có một số phương pháp có giá trị cho công việc xử lý về người lao động. Ở đây tôi sẽ chỉ thảo luận về hai rõ ràng nhất:

  • Ngừng chạy kịch bản: Một kịch bản, có thể là một kịch bản, hoặc một kịch bản PHP được thực thi một lần vào người lao động và chạy như một phần của một vòng lặp vô hạn. Tôi đã giảm giá phương pháp này là một tai nạn của kịch bản và có khả năng lao động của bạn sẽ ngừng chạy mà không có một số loại can thiệp.
  • Cron kịch bản dựa trên thực thi: Mỗi phút X đến cron daemon khai mạc một cuộc gọi đến kịch bản của bạn để có được những điều xảy ra. Nếu không có kiểm tra một số này có thể dẫn đến nhiều bản sao nhiều nhân viên của bạn chạy kịch bản.

quyết định của tôi là đi với cron mà Khai mạc "một kịch bản mỗi 10 minutes. kịch bản của tôi thực hiện các nhiệm vụ sau đây:

  1. Nhận được một danh sách quá trình và grep này cho 'php'. Nếu không tìm thấy sau đó tiếp tục.
  2. Gọi mã công việc của bạn, trong trường hợp của tôi đây sẽ là một cái gì đó dựa trên PHP
  3. Công nhân hoàn thành kịch bản chạy của nó
  4. Sẵn sàng để đi lại trên gọi thích hợp tiếp theo

bash script của tôi trông giống như sau:

  #! / Bin / sh
 nếu ps ax | grep-v grep |> php grep / 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, hãy bắt đầu ngay bây giờ"
     php yourJobProcessingScript.php
 fi 

Lưu ý: nhân echo là gần như hoàn toàn vô nghĩa, nhưng có thể giúp người kế tiếp những người đi cùng để thử và chỉnh sửa chúng.

Đó là kết luận các thiết lập của máy nhân viên ảo, nhanh chóng, đơn giản và dễ dàng để sao chép để mỗi phần mới của phần cứng đó là nhận được. Các 'thông minh' của hệ thống lưới điện thực sự không phải trong hệ điều hành hình dung, của tất cả để làm với các mã được tạo ra để xử lý công việc, cấu hình việc làm, và trong việc bảo đảm rằng công việc chạy khi tức (thích hợp khi máy chủ được nhàn rỗi ).

Thiết lập Windows để khởi tạo công nhân

Nhiệm vụ đầu tiên là để làm việc ra lệnh cần thiết để chạy các máy ảo từ cửa sổ dòng lệnh. Nếu bạn đã cài đặt VirtualBox trong vị trí mặc định và bạn đã đặt tên GridMachine nhân viên của bạn sau đó các lệnh cần thiết để tải lên nhân viên của bạn là:

  "C: \ Program Files \ CN \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Tuy nhiên để chạy các kịch bản trong một nhà nước không đầu "chúng ta cần phải sử dụng:

  "C: \ Program Files \ CN \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - VRDP = off 

Điều này sẽ khởi động máy ảo mà không có các giao diện đồ họa và cho phép nó để tiết kiệm nước một cách duyên dáng. Tham số thứ hai sẽ tắt RDP để nó không xung đột với các cửa sổ RDP, hoặc cung cấp cho bạn một thông báo về lắng nghe trên cổng 3389. Tên máy ảo là trường hợp nhạy cảm!

Tiếp theo, chúng tôi sẽ cần phải thiết lập các cửa sổ lên để khởi động máy ảo nhân viên của chúng tôi một khi máy đã được nhàn rỗi. Để làm điều này (trên Windows XP) bạn sẽ cần phải đi vào Start -> All Programs -> Accessories -> System Tools -> Scheduled Tasks như sau:

sắp xếp công việc

Tiếp theo nhấp vào "Add Scheduled Task 'sau đó duyệt đến thêm một chương trình tùy chỉnh. Điều hướng đến kịch bản VBoxManage của bạn và kích OK. Lịch trình công việc của bạn cho bất kỳ tùy chọn (chúng tôi sẽ thay đổi điều này trong một phút) và tiếp tục. Sau khi bỏ qua các cửa sổ màn hình tiếp theo sẽ yêu cầu bạn của những người bạn muốn chạy nhiệm vụ này, tôi muốn đề nghị là 'Administrator' hoặc tạo một người dùng mới với đặc quyền. Hãy nhớ rằng chúng tôi không muốn can thiệp vào tài khoản của cán bộ tiêu chuẩn trên máy tính ở bất kỳ điểm nào. Click vào tùy chọn hiển thị tiếp theo và kiểm tra nâng cao cho nhiệm vụ này.

Đến cuối hộp văn bản chạy thêm chuỗi 'GridMachine startvm' của chúng tôi và đảm bảo rằng chỉ chạy khi đăng nhập là trái unticked. Khám phá lịch trình công việc kế tiếp và thay đổi lịch trình thả xuống tùy chọn 'khi nhàn rỗi ", chọn số lượng thời gian bạn muốn máy tính để được nhàn rỗi trước khi chuyển sang tab tiếp theo.

Cuối cùng bỏ chọn tùy chọn trong đó nêu dừng công việc nếu nó được chạy X số lượng thời gian, nhưng đánh dấu vào tùy chọn để dừng công việc nếu máy không còn nhàn rỗi.

lịch

Đó là nó sau đó cho các thiết lập cửa sổ lưu trữ!

Tóm tắt

Trong phần này, chúng tôi đã thiết lập một máy ảo để hoạt động như một công nhân, cũng như cách thức mà chúng ta gọi và thực hiện các kịch bản xử lý công việc của chúng tôi (cho bản thân mình một kịch bản PHP). Từ đây chúng ta nhìn vào cách thiết lập các bản sao của chúng ta về cửa sổ để khởi động máy ảo trong chế độ không đầu khi máy tính trở nên nhàn rỗi, và lưu lại trạng thái của nó khi người sử dụng hồ sơ sử dụng của máy. Hy vọng rằng vào thời điểm này bạn nhìn thấy như thế nào đơn giản nó là để thiết lập một hệ thống và là ngứa để có được một số thí nghiệm cho mình đi!

Tiếp theo thời gian

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

Tính toán lưới văn phòng bằng cách sử dụng các môi trường ảo - Phần 1

Bởi Watkin Lloyd Steven , 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 mà 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 mà ngồi xung quanh mỗi người và mỗi ngày không làm gì trong nhiều giờ. Nó sẽ không được 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 các hệ thống của chúng tôi? Trong này tập hợp các bài viết tôi sẽ xem xét các lợi ích tiềm năng của một văn phòng sử dụng điện lưới sử dụng các môi trường ảo.

Là một PHP phát triển tôi sẽ sử dụng các công cụ mà tôi sử dụng mỗi ngày là, Linux, MySQL , PHP, VirtualBox và subversion (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ệ chỉ là tốt.

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

Những môi trường ảo sẽ chạy trên các máy các cửa sổ vì đây là những gì đa số các văn phòng chạy. Việc xử lý các loại máy văn phòng không nên can thiệp với các nhân viên sử dụng những máy móc, nên không cần bảo trì tại các máy, và dễ dàng triển khai cho các máy mới khi chúng trở nên có sẵn. Ngoài ra, các máy ảo mới không nên đòi hỏi bất kỳ cấu hình thêm vì điều 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 gia hạn.

Tại sao triển khai một Grid Computing Office?

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

  • Bạn sẽ không giao dữ liệu nhất định đến một môi trường điện toán đám mây
  • Bạn không thể đưa dữ liệu nhất định vào một môi trường điện toán đám mây vì lý do pháp lý (ví dụ như dữ liệu rời khỏi đất nước), có thể vì lý do pháp lý, ví dụ như NHS hồ sơ.
  • Bạn muốn giữ lại đơn vị xử lý của bạn gần gũi và có toàn quyền kiểm soát phần cứng quá
  • Bạn không có tiền dự án để chạy trường điện toán đám mây
  • văn phòng của bạn không có một kết nối với Internet và do đó không thể có của nó để 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 cũng giữ đi

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 Văn phòng Tính toán lưới

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 chung chung). Hãy tưởng tượng bạn có máy chủ xử lý lớn lực lưỡng chạy 100 công việc mỗi ngày. Trong văn phòng của bạn, bạn có 50 máy được nghỉ 16 giờ mỗi ngày, mỗi của các máy này là 10% mạnh như chế biến lực lưỡng của bạn cắt đứt. (Tất cả các kết quả ở đây được làm tròn để tăng hiệu suất đánh giá thấp).

Vì vậy, 1 máy * 10% năng lượng * 2 / 3 thời gian = 0,067 tức là 1 máy tính để bàn chế biến 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ờ bạn có quy mô điều này phải mất 15 máy tính để bàn nhàn rỗi để xử lý là nhiều công ăn việc làm mỗi ngày như là máy chủ của bạn xử lý chính nào.

Vì vậy, trong văn phòng giả vờ của chúng tôi là 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 tôi có thể được chế biến 400 công ăn việc làm mỗi ngày thay vì 100.

Thông báo, không có đầu tư phần cứng mới của công ty bạn đã chỉ tăng công suất xử lý hàng loạt 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 từ môi trường văn phòng nhất mà tôi đã được cho các máy nói chung là trái vào đêm anyway, do đó bạn có thể thấy điều này như một sáng kiến ​​xanh.

lợi thế khác cũng có nghĩa là đầu tư mới (hoặc cập nhật) chế biến các máy chủ có thể bị trì hoãn nếu máy của bạn văn phòng là đủ và rằng 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ẽ tự động.

Công nghệ

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

  • Idle máy văn phòng (trong trường hợp của tôi một máy tính xách tay cửa sổ phụ tùng cũ XP)
  • VirtualBox (hoặc một máy khách ảo hóa phần mềm)
  • Một máy ảo với PHP, mySQL running chạy một hệ điều hành cắt giảm, tôi kêu gọi các máy chủ của tôi nhao:)
  • Công việc để chạy
  • Việc làm máy chủ (có thể là một máy ảo ở đâu đó)

Việc tiêu biểu

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 ta cần phải phù hợp và trả lại kết quả
  • Kết hợp gồm việc kiểm tra / tìm kiếm một số (khá tĩnh) dữ liệu nguồn
  • 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 dữ liệu bổ sung nguồn để đáp ứng với kết quả
  • Dữ liệu được trả về với bản ghi phù hợp, đầy đủ xác nhận và xử lý
  • Mỗi bản ghi trong một công việc được độc lập với phần còn lại

Vì vậy, về cơ bản chúng tôi đang xem xét chạy công việc đó đòi hỏi 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.

Grid giải pháp không chỉ thuận lợi cho việc xử lý công việc 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 này cho ví dụ và thông tin thêm: Tính toán lưới , nhưng một vài ví dụ nổi tiếng là Seti @ HomeBIONC . Có khung để chạy lưới điện toán, và cũng là những giá trị xem xét.

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

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

  • 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 phù hợp chế biến
  • Làm thế nào để thiết lập hệ thống các cửa sổ trên một máy
  • Đả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ẽ xây dựng (ok tôi xây dựng, sau đó viết 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à máy ảo của tôi 'GridMachine. Máy chủ của tôi kiểm soát công việc sẽ được máy chính của tôi mà chạy Fedora 11 .

Điều này có nghĩa là không có cách nào để chứng minh một hệ thống hoàn toàn làm việc mạnh mẽ, có nghĩa là nó nhiều hơn 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 hợp lý thời gian ngắn và với 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 việc làm thế nào nên được cấu hình để đạt được số tiền lớn nhất trong khi chế biến đảm bảo mỗi công việc được xử lý mà không có thất bại.

Tính toán lưới văn phòng bằng cách sử dụng các môi trường ảo - Phần 2

Bởi Watkin Lloyd Steven , Thứ sáu ngày 04 tháng 12 năm 2009 23:23

Giới thiệu

Tôi làm việc trong một công ty mà 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 mà ngồi xung quanh mỗi người và mỗi ngày không làm gì trong nhiều giờ. Nó sẽ không được 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 các hệ thống của chúng tôi? Trong này tập hợp các bài viết tôi sẽ xem xét các lợi ích tiềm năng của một văn phòng sử dụng điện lưới sử dụng các môi trường ảo.

Trong phần 1 , tôi đã cho một tổng quan về hệ thống và công nghệ, tôi sẽ được sử dụng cũng như thảo luận một số các 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.

Kiểm soát công việc

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

  • Tay trong công việc theo yêu cầu từ người lao động
  • Nói cho công nhân loại công việc để chạy
  • Theo dõi việc làm
  • Đả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ọ mà để 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à các công trình hiện nay 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 như kinh doanh 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 (nghĩa là cơ sở mã số), cuối cùng bạn thậm chí có thể chạy máy một số công nhân khác nhau mà được tối ưu hóa cho từng loại công việc (mặc dù điều đó không di chuyển ra khỏi công nhân chung của 'ý tưởng). Luôn luôn cố gắng nghĩ về tương lai, khi hệ thống đang phát triển, 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à thời gian phát triển tăng lên.

Việc làm Server

Chúng ta sẽ cần một nơi nào đó để kiểm soát công việc 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 được rằng 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 công nhân cần phải biết được nơi để tìm việc làm, người lao động cần tìm hệ thống điều khiển công việc (không phải là hệ thống điều khiển công việc tìm thấy những công nhân).

Các máy chủ công việc chính nó không thực sự có một nhiệm vụ phức tạp (trong một dù sao đi nữa hệ thống cơ bản), nó cần để lưu trữ một danh sách các công việc, tay trong công việc, 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 trong công việc') được định nghĩa có thể 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ỉ việc làm nhưng điều này vượt ra ngoài tập thể dục này.

Không có lý do gì đó mà 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 thoát tài nguyên quá nhiều từ nó. Tuy nhiên việc các máy chủ không có nhu cầu cao, nếu nó đi xuống vào tối thứ Sáu bạn sẽ mất một ngày cuối tuần toàn bộ xử lý, 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ý của bạn chính 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 sẵn sàng cao.

Thiết lập cơ bản

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 các máy chủ của tôi Limp (có nghĩa là Li nux, ySql m, P HP). Các mã đang chạy trên nhân Thea sẽ thực sự làm việc hiểu những gì 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à thực sự tay trong việc làm thay vì các công nhân làm công việc khó khăn mình, 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, Stupid!).

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

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

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

  • id: Độc đáo xác định các công việc
  • Tên: có thể là một tham chiếu của khách hàng, hoặc số bất kỳ của các dấu hiệu khác
  • Tình trạng: Bạn cần phải biết nơi mà công việc là lúc, ví dụ:
    • 0: Không 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 là một tốt đẹp để có. Tôi muốn đề nghị theo dõi người lao động theo địa chỉ IP của họ trên mạng của bạn
  • started_at: Khi nào thì nhân viên bắt đầu công việc? Bằng cách theo dõi các công việc không hoàn thành trong vòng X số lượng thời gian chúng ta biết chúng ta cần phải nhận công việc một lần nữa và bắt đầu chế biến bởi nhân viên khác. Người lao động có thể dừng xử lý / đi offline cho bất kỳ số lý do, mất điện, tai nạn, mất mạng, vv

Nó rất 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 thống kê theo dõi, một cột thời gian kết thúc để xem bao lâu công việc đã, một truy cập để xem bao nhiêu công nhân chọn công việc (rõ ràng điều này cần phải 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ào (và do đó chỉ sử dụng lao động thích hợp), hoặc ngay cả những loại nhân viên sẽ được yêu cầu.

Cho phép thêm công ăn việc làm ví dụ một vài:

Ví dụ việc làm

Bảng tiếp theo nữa là khá đơn giản để hiểu, đây là những hồ sơ của chúng tôi công việc. Chúng được liên kết với các bảng công việc chính của một cột `jobs_id`. Việc tạo nên bảng này phụ thuộc rất nhiều vào dữ liệu mà bạn cần 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: Người tên
  • đị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ó giống nhau tạo thành như bảng ghi 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 ghi:

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

... Và đó là tất cả những gì bạn cần để điều khiển công việc! (Mặc dù ở mức độ rất cơ bản) Trong trường hợp của tôi là chỉ vào một bảng, nơi dữ liệu của tôi để xử lý đã được đặt, nhưng điều này có thể chỉ là một cách 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, các công nhân sẽ làm quản lý công việc của chúng tôi cho 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 cần xử lý và nhận được thông tin. Làm thế nào chúng ta sẽ làm được đ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ững điều sau đây:

  1. Đi 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 chúng (thay thế __ME__ với một định danh, dễ dàng nhất sẽ là địa chỉ IP):
      UPDATE `công việc` SET `tình trạng` = 0 WHERE `tình trạng` = 1 và `started_by` = __ME__; 
  2. Sử dụng 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à nói với hệ thống điều khiển mà nhân viên này là đối phó với nó:
      UPDATE `công việc` SET `tình trạng` = 1, `started_by` = __ME__, `started_at` = NOW () WHERE `tình trạng` = 0 hoặc
     (`Tình trạng` = 1 và `started_at`> DATE_SUB (NOW (), khoảng X Giờ)) ORDER BY `id` ASC; 

    Bằng cách lấy các công việc 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 đang chạy trong trường hợp của một công nhân bị rơi hoặc đi AWOL.

  3. Tiếp lấy các chi tiết công việc tiếp theo là hồ sơ tự:
      SELECT * FROM `công việc` 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 tôi chèn hồ sơ và kết quả của chúng tôi đánh dấu các công việc như hoàn tất. Hãy nhớ là việc làm có thể đình chỉ / tiếp tục 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à công việc đình chỉ một nửa thông qua việc cập nhật 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 cho các 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 việc làm này thể hiện như thế nào có thể được tuyển chọn và quản lý từ một-truy vấn SQL khung bạn thực sự cần được trừu tượng hóa điều khiển 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, tập tin hệ thống dựa trên XML , hoặc bất kỳ khác số hệ thống nó sẽ không ảnh hưởng đến đoạn mã trên nó.

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

Các 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 công việc chúng ta có thể tấn công một sự cân bằng tuyệt hảo giữa tốc độ, quá trình nhân bản, và độ tin cậy. Mất một vài kịch bản ofÂ:

  1. Việc làm mất 1 ngày mỗi để chạy: Điều này có nghĩa là công nhân của bạn cần 15 ngày để xử lý từng 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ẽ phải mất ít nhất là gấp đôi thời gian để có được một công việc xử lý các nhân viên ban đầu nên đi AWOL (thời gian để nhận rằng nó đã không trả lại kết quả cộng thêm thời gian tái chế). Trong lý tưởng một bạn sẽ có ít nhất một công việc toàn dễ dàng thông vào cuối mỗi kỳ nghỉ dài, như vậy bạn giữ cho công việc hẹn giờ hơn và ở trường hợp xấu nhất một công việc sẽ phải mất hai ngày để xử lý nên là người đầu tiên đi mất tích.
  2. Việc làm mất 1 phút để chạy: Điều này có nghĩa là công nhân của bạn 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 chế biến làm việc thêm trong thời gian ăn trưa, nghỉ cà phê, hội họp, vv kịch bản này đặt căng trên các lĩnh vực khác của hệ thống và giới thiệu các vấn đề riêng của mình. Ví dụ, trước hết bạn thiết lập tỉ lệ thời gian xử lý sẽ phải đi xuống, do đó mất đi hiệu quả của hệ thống. mạng của bạn là có được liên tục công việc truyền thông tin cho công nhân viên khác nhau bực bội người đồng ngày của họ để làm việc ngày. Bạn cũng sẽ đưa thêm căng thẳng trên máy chủ xử lý công việc của bạn vì nó đã để món ăn ra rất nhiều và rất nhiều mảnh nhỏ làm việc trên một cơ sở 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 lộ lớn trở lại 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 của 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ế sẽ không có một lý tưởng thiết lập cấu hình cho mạng lưới của bạn, nhiều phụ thuộc vào các nguồn lực sẵn có, các loại công việc, việc làm thay đổi hoàn toàn yêu cầu thời gian, 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 thước sao cho mỗi công nhân có thể có được thông qua ít nhất khoảng 3-4 công việc trong thời hạn 15 giờ (dài nhất có thể khoảng thời gian nhàn rỗi)
  • Chơi với quy mô công việc để thiết lập thời gian trở nên khá đá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 vào gấp đôi lượng thời gian (có thể ít hơn) mà bạn mong đợi nó để hoàn thành nó giả định rằng AWOL đi của nó và bắt đầu chế biến nó với các nhân viê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 thông 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ác công việc tiếp theo không). Bạn có thể muốn giảm 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 nhiệm vụ chế biến nhân bản 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 ở đầu và cuối 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 các 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 đề mà chỉ sẽ 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 nhân của bạn. Nếu công việc trở nên quá nhớ không gian công việc chuyên sâu hoặc đĩa chuyên sâu 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 việc làm gia công mà không có lý do thực sự tại sao.

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

Khi nộp các kết quả của một công việc quan trọng là phải kiểm tra xem kết quả chưa được gửi 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 một thời gian.

Khi kết quả được trình đả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ể qua nhấn mạnh, xây dựng khả năng chịu lỗi vào hồi công việc và trình kết quả. Các công nhân có thể (và nhiều khả năng sẽ) đi vào đình chỉ chế độ ở bất tiện nhất của thời đại và điều này cần phải được phục vụ cho. Cũng lại một lần nữa tóm tắt kết quả của bạn đi trình sẽ giúp phục vụ cho những thay đổi trong tương lai cho hệ thống điều khiển công việc của bạn dễ dàng hơn nhiều để giải quyết.

Tóm tắt

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 làm và làm thế nào để có được một hệ thống rất cơ bản thiết lập. 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à cách tốt nhất để cấu hình việc làm để có được hầu hết các hệ thống mạng lưới văn phòng của chúng tôi. Để kết thúc, một đoạn văn hoặc hai ngày nộp kết quả về máy chủ điều khiển công việc đã được trình bày.

  • Một máy chủ điều khiển 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
  • Bằng cách trừu tượng hóa 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ó vấn đề nhiều
  • Cấu hình việc làm 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 có nhiệm vụ chế biến nhân bản 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à hồ sơ và các bất tiện nhất của lần. Hãy nhớ kiểm tra xem kết quả đã được gửi bởi nhân viên khác.

Tiếp theo thời gian

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

Tính toán lưới văn phòng bằng cách sử dụng các môi trường ảo - Phần 5

Bởi Watkin Lloyd Steven , Thứ sáu ngày 04 tháng 12 năm 2009 23:03

Giới thiệu

Tôi làm việc trong một công ty mà 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 mà ngồi xung quanh mỗi người và mỗi ngày không làm gì trong nhiều giờ. Nó sẽ không được 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 các hệ thống của chúng tôi? Trong này tập hợp các bài viết tôi sẽ xem xét các lợi ích tiềm năng của một văn phòng sử dụng điện lưới sử dụng các môi trường ảo.

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

Dự bị triển khai

Trước khi triển khai hệ thống lưới điện của bạn nếu có một điều bạn làm và điều mà một mình nó là tiêu 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ề cách làm việc thêm nhiều hệ thống của bạn sẽ làm gì trừ khi bạn có con số để trở lại điều này đảm bảo bạn là không có gì. Vì vậy,

  • có bao nhiêu hồ sơ bạn có thể quá trình hiện? Mỗi ngày? Mỗi giờ?
  • Bao lâu thì thường cần để chuyển xung quanh một việc làm không?
  • Làm thế nào nhiều hơn nữa năng lực bạn có?

Ngoài ra còn có các câu hỏi khác:

  • 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 sẽ ảnh hưởng đến khả năng của bạn, bạn sẽ 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?
  • Có phải máy của bạn văn phòng có khả năng chạy các công việc?
  • Là (hoặc có thể bạn công việc được chuyển đổi) của bạn để 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 các phương pháp mới, điểm chuẩn lại. 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ẽ chỉ được một nhân viên khác (chỉ một trong 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 là một và để lại rất khác chap nghèo để đối phó với những hậu quả ... có thể không ...

Triển khai cho một hệ thống như thế này cần phải được 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 (cũng là số một). Trước hết, lăn ra một vài máy tại một thời điểm, theo dõi lưu lượng mạng, làm thế nào vật chủ nhân thực hiện trên cơ sở hằng 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 với những phát hiện của bạn.

Khi hệ thống đã giải quyết với một vài máy (cho phép nói rằng 10% của tất cả các máy văn phòng, tức là 5) tiếp tục giám sát lưu lượng mạng và máy chủ chuẩn performance. Next một lần nữa, bây giờ bạn sẽ được xử lý công việc nhiều hơn 33% tiêu chuẩn đầu tiên của bạn. Kiểm tra này là như vậy, hoặc là bạn í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ỳ cho đến khi bạn hạnh phúc có tất cả các máy văn phòng đang chạy 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 để dừng lại.

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 bản cập nhật mã mới ảnh hưởng đến tốc độ hệ thống của bạn, hãy kiểm tra tất cả các công nhân được báo cáo và công việc chế biến. Từ từ (rất chậm) tăng cấu hình của bạn để có được công việc tốt nhất từ ​​công nhân và mạng của bạn.

Dừng lại!

Nếu bạn muốn dừng công nhân của bạn chạy ở một thời gian? Họ đều đang chạy ra khỏi đó, 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ó thể có vẻ hiển nhiên, nhưng giá trị của nó thêm chỉ trong trường hợp bị bỏ qua 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ố công việc khác để tiêu diệt chế biến của bạn. Một lý do quan trọng tại sao chúng tôi luôn luôn cố gắng cập nhật để các tập lệnh xử lý mới nhất trước khi chạy bất kỳ!

Hệ thống trình diễn

Để viết này tập hợp các bài viết 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 xảy ra. Không có nghĩa là có tôi đi ra ngoài và bão hòa toàn bộ văn phòng với giao thông và cũng không có tôi đã có quyền truy cập vào một máy tính thường xuyên các nhân viên để xem cách thực hiện chủ nhà đã bị ảnh hưởng.

Hệ thống trình diễn của tôi là rất khiêm tốn thực sự. Tôi sử dụng máy tính để bàn thường xuyên của tôi thiết lập 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 server cài đặt thiết lập là một bậc thầy trong nhân bản, PHP , Â và SVN liên kết thông qua apache (để truy cập thông qua VM công nhân).

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

Các máy ảo được thiết lập với PHP, lật đổ, và mySQL. Tôi đã kiểm tra ra một chi nhánh tên là "công nhân từ các máy chủ điều khiển công việc lưu trữ của tôi và chắc chắn 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 cài đặt mySQL như một nô lệ và kiểm tra dữ liệu đã được sao chép từ mySQL trên máy chủ điều khiển công việc xuống VM công nhân. Sau khi thiết lập này, tất cả các tập lệnh bash tôi và công việc cron.

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

  • Tìm hiểu trong lĩnh vực tên
  • Tính số lượng các tên tương tự trong một bảng từ nguồn dữ liệu được tổ chức vào VM
  • Tính số lượng các tên như trên, nhưng tách tên bằng dấu cách (tức là tên đầu tiên, giữa, họ tên)
  • Lặp đi lặp lại quá trình này 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 trên máy tính xách tay nhân viên các cửa sổ và nhìn các công việc được kiểm tra bằng cách mỗi địa chỉ IP công nhân. Tại thời điểm này tôi cũng khẳng định nhân bản tự động khởi động lại.

Để các máy tính xách tay để chờ kết quả là một nhân viên bắt đầu quá trình công việc từ máy chủ điều khiển công việc. Khi trở lại sử dụng máy tính xách tay đã có một sự chậm trễ trong 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 nhận thức rằng máy tính của họ có thể tạm dừng trong 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 dài này. Các lợi ích của số lượng chế biến thực hiện bởi các máy này trong thời gian nhàn rỗi sẽ lớn hơn nhiều mà các nhân viên phải chờ một thời gian ngắn (nói 1 phút) trên máy của họ khi đến một buổi sáng (tôi thường chờ đợi lâu hơn mà điều này cho một Defender Windows cập nhật diễn ra) cung cấp họ đã nhận thức được thời gian này hữu ích (để lấy một ly cà phê buổi sáng!).

Nói chung tôi cảm thấy tự tin rằng tôi đã chứng minh những công nghệ có thể được sử dụng để tạo ra một hệ thống. Tôi đã chỉ ra rằng hệ thống như vậy không làm việc trên một quy mô nhỏ (rất) và với một số chi tiết thử nghiệm có thể được thúc đẩy 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 đến được với cá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á

Các bước tiếp theo hiển nhiên là để 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ư vậy trong một môi trường văn phòng và xem những gì sẽ xảy ra. Hỏi một doanh nghiệp cam kết này mà không một công ty đường mòn lòng đam mê để chứng minh công nghệ và hiệu quả có thể là một ít khó khăn. Grid / 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 thấy 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 cơ bản miễn phí bằng cách sử dụng phần mềm nguồn mở và phần lớn là 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 đã chỉ ra rằng 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 mà 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 được dựng và chạy hầu như không có kết thúc với số lượng tùy biến và cải tiến, bạn có thể thực hiện. Đối với số liệu thống kê ví dụ / điểm chuẩn có thể dễ dàng được thêm vào hiển thị các giá trị của các 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 cho phần cứng hiện tại 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 mình bạn thực phẩm cho rằng về chạy một hệ thố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 dữ liệu của bạn xử lý được 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.

Zend Framework: Nguyên tắc cơ bản - Đánh giá

Bởi Watkin Lloyd Steven , Thứ Bảy Ngày 28 tháng 11 năm 2009 22:42

sử dụng lao động của tôi gần đây đã trả tiền cho một nhóm người trong chúng ta phát triển để có Zend Framework: Nguyên tắc cơ bản Tất nhiên, ở đây tôi sẽ tóm tắt ý kiến của tôi suy nghĩ và trên các khóa học cho người khác. Đối với những người tìm kiếm để tiết kiệm thời gian, đây là bản tóm tắt của tôi:

Để phát triển những người không có thời gian để nhìn vào Zend Framework khóa học này (Zend Framework: Nguyên tắc cơ bản) cung cấp một tổng thể hình ảnh tốt đẹp của khuôn khổ giới thiệu bạn đến các khu vực trọng điểm và đưa ra đủ thông tin để tiếp tục. Đối với những người đã dành thời gian nhìn vào khuôn khổ và đã đi theo một hoặc hai hướng dẫn khóa học này không cung cấp nhiều hơn nữa.

Bối cảnh

Tôi đã được một PHP phát triển trong khoảng 5-6 năm, và đã bắt đầu làm việc với Zend Framework trên cơ sở thành phần trong những tháng cuối cùng 6. Tôi đã phát triển và / hoặc được một nhà phát triển trên một số nhỏ Zend Framework MVC sites. tôi sẽ trung thực, tôi đã không có một số lượng lớn các tiếp xúc với các khuôn khổ khác từ một điểm mã hóa của mình nhưng có một vài chi giờ nghiên cứu các trang web dự án và đánh giá them. Khung và cộng đồng xung quanh Zend Framework nó là khá thú vị và có vẻ như khả năng rất lớn ở nơi nó đi.

Thông tin về các khóa học

Khóa học được cung cấp trên 9 hai phiên WebEx giờ (với một break 10-phút ở giữa). Các thời gian để đi qua một tập hợp các slide được cung cấp bởi Zend với cuộc thảo luận bất cứ lúc nào. Bạn có thể sử dụng một micro để nói chuyện với người hướng dẫn, nhưng phải trung thực tôi đã không nhìn thấy bất cứ điều gì bất cứ ai sử dụng nhiều hơn các cửa sổ chat. Ngoài ra một máy VMWare Ubuntu được cung cấp có mã ví dụ, dự án thiết lập một phiên bản dùng thử một của Zend Studio. Các nhà lãnh đạo quá trình đàm phán để tham dự hoặc qua một giải pháp VoIP tích hợp, hoặc bạn có thể quay số bằng cách sử dụng một trong những quay số trên toàn thế giới với số lượng nhiều.

Trong suốt khóa học các vật liệu bao gồm một tổng quan về các Framework và mô hình MVC trước khi đi vào một ứng dụng lưu bút mẫu. Các cuộc thảo luận đã chứng minh bootstrapping, Zend_Application, Db Bàn, truy cập cơ sở dữ liệu, hình thức, lọc, ACL, Validating, vv, vv Về cơ bản bao gồm tất cả các chủ đề bạn muốn yêu cầu để có được một trang web cơ bản lên một thời gian chạy tất cả các cấp cho bạn những công cụ để đi và có được nâng cao hơn trong khuôn khổ (mặc dù điều này đã làm số tiền để 'Xem trang web "nhiều thời gian).

Thời gian được dành cho mã lên một số ví dụ, và phát triển "lưu bút" và ứng dụng đơn giản "wiki". Cá nhân tôi cảm thấy rằng việc cung cấp mã hay từng ứng dụng và sau đó yêu cầu chúng tôi để phát triển cơ bản là một bản sao cùng đã không thực sự cung cấp một kinh nghiệm học tập tốt đã được những gì. Tôi đã có thể ưa thích để phát triển một ứng dụng tương tự, nhưng không giống nhau. để các ứng dụng ví dụ với lợi ích của việc có một hướng dẫn để tham khảo. Ngoài ra xây dựng các ứng dụng từ đầu với người biểu tình sẽ của có thể dẫn đến câu hỏi thêm về lý do tại saolàm thế nào, như vậy cho một sự hiểu biết tốt hơn về khuôn khổ, sau khi tất cả các bạn có thể tra cứu chi tiết cụ thể sau khóa học.

Các bài giảng cuối cùng bao gồm làm việc trên các ứng dụng tiếng Việt với sự giúp đỡ / hướng dẫn từ hướng dẫn. Sau khi các thông tin phản hồi khóa học đã được thực hiện, nó đã được nhấn mạnh nhiều lần thông qua các khóa học Zend có phản hồi rất nghiêm trọng, trong thực tế, dường như phiên bản của chúng tôi tất nhiên là khá mới. Một số các nhà phát triển khác trong công ty sẽ được tham gia các khóa học sớm nên nó sẽ được thú vị để xem nếu điều này xảy ra.

Các khóa học theo phong cách đã được chính thức, cho phép thông tin phản hồi và sự hợp tác giữa người tham dự và hướng dẫn. Các nhà lãnh đạo khóa học là thân thiện, dễ tiếp cận (địa chỉ email đã được chia sẻ cho các câu hỏi), và trong khi trình bày của mình từ các trang trình bày đã được một chút run rẩy coi như hoàn toàn có thẩm quyền trong khuôn khổ. Ông rõ ràng là một người sử dụng khuôn khổ một cách thường xuyên hơn là một người được dạy để dạy các khóa học, tôi thích "đời thực" kinh nghiệm trong lĩnh vực đó.

Cảm giác chung

Trong một số cách tôi tìm thấy quá trình một sự lãng phí thời gian, ở những người khác là một điều rất tiện dụng. Hy vọng rằng tôi sẽ nhận được lý do của tôi trên toàn rõ ràng, và có thể cung cấp một số thực phẩm cho tư tưởng hoặc thông tin phản hồi hữu ích (biết tôi điều này là không!).

Đối với bản thân mình khóa học này nhằm mục đích cấp quá thấp. Đã được hướng dẫn QuickStart, đọc Rob Allen của Zend Framework trong hành động, và làm việc với các khuôn khổ một chút, tôi đã không thực sự nhận được bất cứ điều gì quá nhiều. Tôi sẽ về thích quá trình để nhận từ cuối QuickStart và phát triển kỹ năng bổ sung.

Điều đó nói rằng, các khóa học có tiêu đề ghi rõ "Zend Framework: Nguyên tắc cơ bản" và trong khía cạnh khoá học đó đạt được những gì nó đặt ra để làm. Các thành viên khác của nhóm phát triển đã không dành thời gian tìm kiếm vào khung thành mỗi phiên với sự nhiệt tình và câu hỏi đó đã được thực sự tốt đẹp để xem.

Tất cả đã không mất, nó đã được tốt để dành thời gian để xác nhận các chi tiết cơ bản của khuôn khổ và có được để hỏi một vài câu hỏi ở những nơi tôi đã không được 100%. Đây cũng là thời gian mà tôi đã ngồi xuống mỗi ngày và suy nghĩ về mã hóa bằng cách sử dụng khung và các dự án trong tương lai, cái gì tôi sẽ không có thể làm khác (bạn có thể tưởng tượng công ty của bạn đồng ý rằng:?)). Cuối cùng nhưng không ít nhất bạn cũng có được một giấy chứng nhận tốt đẹp từ Zend để nói rằng bạn tham dự khóa học (mặc dù bằng email).

Zend Framework chứng nhận

Đây là một câu hỏi mà vẫn đến với tâm trí trong suốt khóa học, nó sẽ chuẩn bị cho tôi xác nhận? nhanh chóng Các, dễ ràng là không. Giảng viên khóa học là khá rõ ràng về điều đó với những lời khuyên bổ sung xác nhận các bạn thực sự cần được sử dụng khung về một ngày để cơ sở ngày và cảm thấy rất thoải mái và tự tin trong việc sử dụng và phương pháp của nó.

Tóm tắt

Với tất cả những gì tôi đã viết ở trên, tôi sẽ tóm tắt tất cả mọi thứ trong hai điểm bullet dễ dàng:

  • Mới để Zend Framework: Khóa học này thực hiện chính xác những gì bạn mong muốn, nó sẽ cho bạn một giới thiệu tốt đẹp để các khuôn khổ và nền tảng tốt cho một nhân cơ bản mà từ đó bạn có thể xây dựng. Khóa học này dường như tạo ra sự quan tâm và nhiệt tình với các khuôn khổ giữa các nhà phát triển.
  • Được sử dụng Zend Framework: Trong khi nó đã được tốt đẹp để chống đỡ một số các vấn đề cơ bản rất Tôi cảm thấy thời gian, nỗ lực, và các quỹ để có những khóa học có thể được tốt hơn chi của các nơi khác. Nó sẽ được tốt đẹp để see Zend tạo ra một khóa học cấp cao hơn mới để phát triển lên tầm cao mới - ít nhất là với tiêu chuẩn của giấy chứng nhận và vượt ra ngoài ngay lập tức. Cho rằng tôi sẽ đăng ký.












Chủ đề của bức tranh toàn cảnh Themocracy

3 khách online
2 khách, 1 chương trình, 0 thành viên
Max khách truy cập hôm nay: 23 lúc 04:19 giờ UTC
Trong tháng này: 26 tại 2011/07/05 12:35 giờ UTC
Trong năm nay: 130 tại 28-03-2011 10:40 UTC
Tất cả thời gian: 130 vào 28-03-2011 10:40 UTC