11 Từ máy Turing đến “mây điện toán”

(Post 15/05/2009) Với bộ nhớ đủ lớn và tốc độ đủ nhanh, một máy tính đơn với chương trình phần mềm có thể đảm đương mọi việc thay cho tất cả máy tính vật lý khác trên thế giới.

Năm 1936, khi đám mây chiến tranh một lần nữa vần vũ trên bầu trời châu Âu, nhà toán học người Anh, Alan Turing, đã phát minh ra chiếc máy tính số hiện đại. Ý tưởng của Turing về máy tính số có ý nghĩa còn quan trọng hơn nhiều so với việc xây dựng một chiếc máy tính vật lý cụ thể.

Công cụ thử nghiệm của Turing, được ông gọi là “máy tính đa năng”, là một chiếc máy đơn giản. Cơ bản, nó có khả năng đọc và ghi các ký hiệu 1 hay 0 trên cuộn giấy dài. Nó chỉ có thể thực hiện một hành động mỗi lúc, đọc hay ghi 1 ký hiệu, nhưng nó có thể nhớ việc đã làm, và với thời gian không giới hạn nó có thể thực hiện vô số hành động.

Turing đã tạo ra “một chiếc máy có thể tái hiện một cách chính xác hành vi của bất kỳ máy tính nào khác”. Bất kỳ tính toán nào, dù phức tạp đến đâu, đều có thể phân thành một loạt các bước đơn giản riêng rẽ – thuật toán hay chương trình – và được thực hiện với máy Turing. Điều này có ý nghĩa: “về nguyên tắc tất cả máy tính số đều tương đương nhau; bất kỳ máy nào có thể đếm, ghi nhận và làm theo các câu lệnh đều có thể thực hiện bất kỳ chức năng tính toán nào”. Điều này cũng có nghĩa: “phần mềm (chương trình) luôn có thể thay thế cho phần cứng”.

Yêu cầu thực tế duy nhất đối với chiếc máy tính đa năng là kích thước bộ nhớ và tốc độ mà nó có thể thực hiện các phép tính và truyền kết quả. Với bộ nhớ đủ lớn và tốc độ đủ nhanh, phát minh của Turing hàm ý một máy tính đơn với chương trình phần mềm có thể đảm đương mọi việc đang được thực hiện bởi tất cả máy tính vật lý khác trên thế giới hiện nay.

Từ phần cứng đến phần mềm

Randy Mott từng được gọi là “siêu sao CIO”. Mott nổi tiếng trong thập niên 1990 khi phụ trách bộ phận CNTT của tập đoàn Wal-Mart, đóng vai trò trung tâm trong việc sử dụng các hệ thống máy tính để hợp lý hóa dây chuyền cung ứng của nhà bán lẻ khổng lồ này và khai thác dữ liệu bán hàng, tạo lợi thế lớn so với K-Mart, Sears và các đối thủ khác. Mott rời Wal-Mart năm 2003 để gia nhập công ty Dell Computer, ở đây ông đã thể hiện tài nghệ trong việc mở rộng hoạt động CNTT và giúp tạo dựng vị thế hãng buôn PC hiệu quả nhất cho Dell.

Năm 2005, Mott lại nhảy việc và trở thành CIO của Hewlett Packard (HP). Nhiệm vụ của Mott tại HP không phải là thiết kế lại và tự động hoá các qui trình mà là thiết kế lại và tự động hoá chính chức năng của hệ thống CNTT.

Mott và cộng sự hiện đang thực hiện việc tinh giảm 85% trung tâm dữ liệu của HP khắp thế giới, chúng sẽ được thay thế bằng 6 hệ thống server khổng lồ đặt tại miền nam nước Mỹ – 4 ở Texas và 2 ở Georgia. Các trung tâm dữ liệu mới sẽ có tính tự động cao, có thể điều khiển từ một trung tâm điều hành và chỉ cần vài nhân viên tại chỗ. Kết hợp với nỗ lực hợp lý hóa danh mục phần mềm ứng dụng của công ty, việc hợp nhất trung tâm dữ liệu này được kỳ vọng giảm tổng nhân lực CNTT của HP từ 19.000 xuống 8.000 và cắt giảm chi phí CNTT từ 4% xuống 2%.

HP không phải là công ty duy nhất hiện đang định hình lại hệ thống CNTT. Trong 10 năm qua, IBM đã thay thế 155 trung tâm dữ liệu truyền thống của mình bằng 7 hệ thống hiện đại. Tiếp theo, IBM công bố sẽ thay thế gần 4.000 server chỉ với 30 mainframe dùng Linux.

Các kế hoạch hợp nhất trung tâm dữ liệu của HP và IBM thật ấn tượng nhưng không phải là cá biệt. Nhiều công ty lớn khác cũng đang hành động để tiết kiệm chi phí CNTT hàng tỉ USD bằng cách giảm số lượng trung tâm dữ liệu và server mà họ sử dụng.

Tất cả nên cám ơn Turing

Phát hiện của Turing rằng “phần mềm luôn có thể thay cho phần cứng” là then chốt của “ảo hóa” – công nghệ nền tảng của làn sóng hợp nhất đang định hình lại hệ thống IT của các công ty lớn. Khi chi phí cho năng lực tính toán và dung lượng lưu trữ tiếp tục đà rơi tự do từ chục năm nay, thì ngày càng có thể biến càng nhiều phần cứng thành chương trình phần mềm – dùng một máy tính thật mạnh để chạy nhiều máy ảo.

Tất cả thiết bị phần cứng gắn vào các trung tâm dữ liệu doanh nghiệp – không chỉ server mà còn cả các ổ đĩa lưu trữ, thiết bị cân bằng tải, tường lửa, chuyển mạch và thậm chí cả cáp nối – thực chất là để thực hiện các lệnh. Ảo hóa đơn giản là biến các lệnh phần cứng thành mã lệnh chương trình (phần mềm) và loại bỏ cỗ máy vật lý. Điều này không chỉ tiết kiệm hàng đống tiền mà còn giúp hiện thực việc tự động hóa những qui trình CNTT thủ công trước đây. Một khi hạ tầng CNTT biến thành phần mềm, nó có thể được lập trình, dễ dàng và từ xa. Như thường lệ, chương trình phần mềm thay thế nhân công.

Trung tâm dữ liệu trong “mây”

Có thể bạn còn nhớ chiếc máy trả lời điện thoại đầu tiên là một thiết bị cồng kềnh. Nó ghi âm dạng analog trên cuộn băng từ và yêu cầu thường xuyên tua lại và thay thế. Sau đó nó được thay bằng chiếc máy số dễ dùng ghi âm dưới dạng chuỗi số nhị phân, cho phép tích hợp nhiều tính năng mới thông qua lập trình phần mềm. Khi thiết bị trở thành số, nó không còn là thiết bị nữa và có thể biến thành dịch vụ làm việc giống như chương trình phần mềm trên mạng của công ty điện thoại. Vậy là bạn chỉ cần đăng ký dịch vụ và có thể vứt đi chiếc máy trả lời điện thoại. Thiết bị vật lý bốc hơi thành “mây” của mạng dịch vụ.

Trung tâm dữ liệu của công ty, chung quy giống như phiên bản phức tạp hơn của chiếc máy trả lời điện thoại. Nó cũng có thể đóng gói thành phần mềm và chuyển thành một “đám mây” trên mạng. Và đó là kết quả có được nếu đi theo con đường của ảo hóa và hợp nhất. Tới lúc nào đó, việc hợp nhất các trung tâm dữ liệu, server và phần cứng khác của một công ty riêng lẻ sẽ gặp điểm giới hạn. Bạn sẽ không thể cắt giảm thêm được nữa vốn, nhân sự hay chi phí hoạt động. Bước kế tiếp yêu cầu việc hợp nhất diễn ra không chỉ trong từng công ty mà còn xuyên suốt nhiều công ty. Trung tâm dữ liệu riêng sẽ theo chân máy trả lời điện thoại cá nhân đi vào “mây”. Cơ sở hạ tầng của từng công ty sẽ biến thành tiện ích dùng chung.

Khi điện toán và truyền thông trở nên đủ nhanh và đủ rẻ, mạng sẽ biến thành “máy tính toán đa năng” của Turing thực thi hiệu quả bất kỳ chương trình nào. Eric Schmidt, CEO của Google, từng nói “khi mạng trở nên nhanh như bộ xử lý, máy tính thu gọn lại và tản ra trên mạng”.

Hãy chuẩn bị chào đón “World Wide Computer” (máy tính toàn cầu) thay thế cho “World Wide Web”

Sun Microsystems, hãng đã đưa ra khẩu hiệu có tính dự báo “mạng là máy tính” rất sớm từ cách đây 20 năm, đã công bố kế hoạch qua mặt chương trình hợp nhất của các đối thủ HP và IBM. Vào năm 2013, bộ phận CNTT của Sun dự định cắt giảm 50% diện tích khu trung tâm dữ liệu nội bộ. Và sau đó, theo Brian Cinque, kiến trúc sư trung tâm dữ liệu của Sun, hãng dự định giảm diện tích này xuống… zero. Đến năm 2015, Sun hy vọng chạy tất cả ứng dụng của hãng từ các lưới tiện ích dùng chung – từ “mây”. Mạng sẽ trở thành không chỉ máy tính mà còn là trung tâm dữ liệu.

Hiện nay, ý tưởng về “phần mềm như dịch vụ” (SaaS – Software as a service) thường gắn với ứng dụng web. Nhưng không có lý do gì để mô hình cấp phát trên web hạn chế với các ứng dụng thông thường. Một khi ảo hóa hạ tầng tính toán, bạn có thể chạy bất kỳ ứng dụng nào trên lưới điện toán bên ngoài. Nhiều công ty nhỏ đang thực hiện việc này thông qua gói dịch vụ tính toán và lưu trữ do Amazon Web Services cung cấp. Các hãng tiên phong khác, như VMWare và 3Tera đang phát triển các công cụ mới giúp dễ dàng cấu hình ứng dụng và cơ sở hạ tầng để chạy trong “mây”. Khi các công cụ này tiến triển, và khi các công ty như IBM, Google và Microsoft dồn hàng tỉ USD xây dựng lưới điện toán, việc chuyển dịch từ tính toán cục bộ sang tính toán trên “mây” sẽ mở rộng và tăng tốc.

Điểm quan trọng cần nhấn mạnh, cuộc cách mạng này không chỉ là tiết kiệm tiền bạc bằng cách chia sẻ cơ sở hạ tầng mà còn thúc đẩy sự cộng tác bằng cách chia sẻ dữ liệu và phần mềm. Cho đến nay, các hệ thống CNTT doanh nghiệp đều được xây dựng trên nguyên tắc cô lập – phần cứng riêng, phần mềm riêng, kho dữ liệu riêng. Nhưng nguyên tắc cô lập xung khắc với bản chất của chính việc kinh doanh đó là chia sẻ qui trình, thông tin và ý tưởng. Một trong những vấn đề đau đầu nhất với hệ thống CNTT đó là điều chỉnh các hệ thống cô lập hỗ trợ làm việc cộng tác.

Mô hình mới của hệ thống CNTT được xây dựng từ đầu trên nguyên tắc chia sẻ giúp giải quyết vấn đề trên. Hãy nhìn hàng triệu người đang hài lòng sử dụng những dịch vụ Web 2.0 để chia sẻ dữ liệu, làm việc với nhau và hình thành những cộng đồng trên mạng. Bạn có thể thích hay không thích Facebook, nhưng mạng xã hội cho thấy việc cộng tác trở nên dễ dàng như thế nào khi phần mềm và cơ sở dữ liệu được chia sẻ thay vì làm việc tách biệt.

Dĩ nhiên, điều đó dễ dàng cho cá nhân hay thậm chí các doanh nghiệp nhỏ, nhưng không hẳn dễ dàng cho các công ty lớn. Các đại công ty đã đầu tư hàng đống tiền cho hệ thống CNTT (thiết bị và nhân sự) và họ sẽ không vội vàng vứt bỏ khoản đầu tư này. Và dĩ nhiên, họ còn phải lo về tính tin cậy, bảo mật, dự phòng và nhiều vấn đề khác. Do vậy, việc chuyển đổi từ hệ thống CNTT riêng sang hệ thống chung sẽ không diễn ra nhanh mà sẽ dần dần. Trong tương lai, có thể các công ty sẽ sử dụng hệ thống CNTT hỗn hợp, kết hợp các hệ thống riêng với các dịch vụ dùng chung, đồng thời tái cấu trúc hạ tầng CNTT nội bộ để hoạt động giống như hệ thống tiện ích ảo hóa cho nhiều công ty khác thuê. Lưới điện toán cho phép sắp xếp máy móc và các chức năng theo bất kỳ cách thức nào đảm bảo hiệu quả và linh động nhất cho người dùng.

“Mây” và lưới điện toán

Thuật ngữ “điện toán mây” (cloud computing) khá mới và hiện đang “hot” trong lĩnh vực công nghệ. Định nghĩa từ Forester Reasearch, “điện toán mây” là “tập hợp cơ sở hạ tầng tính toán được quản lý, có khả năng mở rộng cao và được trừu tượng hóa cho phép đặt các ứng dụng của khách hàng và tính phí tuỳ theo mức sử dụng”. Nói một cách đơn giản hơn, nó là tập hợp các tài nguyên – ứng dụng, năng lực tính toán và lưu trữ, và các dịch vụ (dạng như dịch vụ kiểm tra virus) – được cấp phát trên Internet.

“Điện toán mây” thường được xếp ngang với “điện toán lưới” (grid computing) hay “điện toán tiện ích” (utility computing) đã có trước đây. Cả hai đều bao hàm các trung tâm dữ liệu chứa tài nguyên điện toán có sẵn trên mạng. Vậy chúng có phải là một?

Thực sự không. “Điện toán lưới” bao hàm việc cung cấp nguồn lực tính toán như là tiện ích mà có thể bật hay tắt tùy theo yêu cầu. Có thể nói là tính toán theo nhu cầu.

“Điện toán mây” hơi khác. Nó bao hàm việc cung cấp ứng dụng đến người dùng chứ không chỉ “xung nhịp máy tính”. Đây là một dạng dịch vụ CNTT được cấp phát trên Internet, có đặc trưng là quy mô – khả năng phục vụ hàng triệu người dùng. Đó chính là sự khác biệt.

Thuật ngữ “điện toán mây” có lẽ xuất phát từ biểu tượng đám mây đại diện cho Internet hay môi trường mạng rộng lớn.

Phương Uyên
(theo PC World VN)

FPT Aptech – Hệ Thống Đào Tạo Lập Trình Viên Quốc Tế

FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng.
0981578920
icons8-exercise-96