Thử 1 loạt công cụ dev với iMac M1 (Apple Silicon): tương thích tốt hơn nhiều rồi!

Duy Luân
9/7/2021 15:2Phản hồi: 131
Thử 1 loạt công cụ dev với iMac M1 (Apple Silicon): tương thích tốt hơn nhiều rồi!
Mình đã từng test 1 lần, nhưng khi đó nhiều công cụ chưa tương thích. Hôm nay, tháng 7 năm 2021, các công cụ đã dần được update cho Apple Silicon và khả năng tương thích của những công cụ phổ biến trong việc phát triển phần mềm đã tốt hơn rất nhiều. Đây là những thứ mình làm trong công việc hằng ngày luôn, rất mong anh em đóng góp thêm những trải nghiệm của anh em nhé.



React Native: chạy ngon nhé


Mình thử nghiệm project hiện tại dùng React Native để làm app cho cả Android và iOS thì đều chạy ổn. Quá trình cài đặt mình có gặp lỗi khi chạy Pod install, nhưng rất dễ khắc phục, cứ copy y nguyên thông báo lỗi dán lên Google là sẽ ra hằng hà xa số các bài hướng dẫn mà thôi, thậm chí ngay trên chính Github của React Native cũng có. Sau khi đã cài thêm Xcode, cài Android Studio và mọi công cụ cần thiết khác thì dự án chạy lên như bình thường.

Tất nhiên là máy ảo iOS cũng chạy ngon lành, đồ Apple với nhau mà lị, chưa kể Apple từng kể rất nhiều về Xcode mới tương thích tốt với Apple Silicon ra sao nên phần này anh em không cần phải lo.

Cái cần quan tâm đó là máy ảo Android của mình không kết nối được với môi trường dev, nên khi chạy lệnh react-native run-android thì quá trình triển khai app lên máy ảo không chạy được. Nhưng nếu mình gắn 1 con điện thoại Android vào thì vẫn chạy được ổn định. Thực ra lỗi này mình không chắc lắm là của các máy Apple M1 vì thỉnh thoảng mình cũng không chạy được app trên máy ảo Android luôn từ lâu rồi, trên chính con MacBook Intel của mình, thế nên đó giờ mình test app Android toàn dùng máy thật. Nhưng sẵn lưu ý ở đây cho anh em biết.

Về tốc độ build app, những gì iMac M1 có thể làm được tương đương với con MacBook Pro 16" của mình. Việc này đồng nhất với các bài test mà nhiều YouTuber đã từng thử nghiệm, trong khi con iMac thì rẻ hơn nhiều và cấu hình chỉ ở mức cơ bản nhất.

Docker với container chạy Node.js: đã chạy ngon


Docker bây giờ đã cài ngon, tính tới lúc mình viết bài này thì đã có bản chính thức dành cho Apple Silicon rồi. Nhớ đợt trước mình cài mà lỗi tùm lum, bung bét cả lên, còn bây giờ thì cài đặt, vận hành không khác gì so với một cái Mac chạy chip Intel.

Mình sử dụng một container chạy Node.js với Next.js ở trong, chính là cục trang chủ Tinh tế, và mọi thứ chạy ổn, không phải điều chỉnh hay sửa chữa gì cả.

Có một điểm khác biệt mình nhận thấy giữa con iMac M1 mình đang dùng với chiếc MacBook Pro 16" của mình, đó là thời gian để build từng trang trong Next.js trên con iMac chạy lâu hơn. Nhưng cũng khó trách nó, đây chỉ là con iMac bản base RAM 8GB, SSD 256GB mà thôi, trong khi con MacBook Pro 16" này là CPU Core i9, RAM 32GB, SSD 1TB, được option lên cao rồi. Giá của tụi nó cũng khác, con iMac này hiện đang bán ở nước ta với giá vào khoảng 33 triệu VND, còn con MacBook Pro 16" tới 72 triệu lận.

Docker, Docker compose và một loạt container Python, Postgres, Redis, Celery, ElasticSearch…


Những container này chạy lên rất ngon, không có vấn đề gì, mình thậm chí không cần phải viết lại file build gì cả. Cứ đem nguyên code mà chạy thôi. Sướng. Có một điểm đáng lưu ý là ElasticSearch bản 7.13 trở lên thì đã hỗ trợ kiến trúc chip arm64, nếu anh em dùng bản cũ hơn có thể phát sinh lỗi. Thứ duy nhất mình nâng cấp trong môi truồng dev của mình là ElasticSearch từ bản 7.3 lên 7.13 thôi đó, nâng xong là nó chạy lên được, không báo lỗi nữa và mọi thứ trở lại bình thường.

Đây là những bộ công cụ mà các anh em làm backend hoặc data engineer thường dùng, có chăng là chúng ta đổi ngôn ngữ sử dụng thành PHP, Go, Java hay Scala thôi. Những thứ khác thì tương tự. Mình thấy rằng việc chuyển sang Apple Silicon không là vấn đề lớn tại thời điểm này nữa.

Quảng cáo


À, hôm bữa mình đọc thấy rằng docker container MySQL chưa có bản cho arm64, anh em có thể thay thế bằng MariaDB nhé, chức năng tương tự.

Sẵn chia sẻ thêm với anh em rằng trước đây mình từng dùng một số docker container để chạy các tác vụ machine learning (dùng TensorFlow, Keras, OpenCV…) thì chúng đều chạy tốt trên các thiết bị nhân CPU ARM. Mình sử dụng tụi nó trên con Raspberry Pi và NVIDIA Jetson Nano. Mình chưa test đám này trên con iMac M1 vì chưa có thời gian, dạo này cũng chưa quay lại các dự án này.

Các công cụ khác liên quan tới command line, docker, docker-compose… mình chạy thấy cũng ổn cả, không bị vấn đề gì. Kể cả homebrew, thứ từng bị lỗi tùm lum vài tháng trước, giờ cũng hoàn thành tốt công việc của nó và giống với các máy Mac Intel.

Tính đến lúc này, anh em developer đã có thể tự tin hơn nếu cần mua Mac M1 hoặc các máy Apple Silicon sắp tới để về phục vụ công việc được rồi đấy. Cuối năm nay nếu Apple có ra MacBook Pro 16" mới mà có đổi ngoại hình thì mình cũng sẽ nâng cấp. Chắc chắn sẽ còn thứ chưa tương thích, nên bạn vẫn cần đi Google trước cái công cụ mà bạn hay dùng để kiểm tra. Còn để an tâm, 100% work thì mua Intel cho an toàn.

Hi vọng những chia sẻ này giúp được cho anh em nhé. Chúc anh em vui vẻ.

Cảm ơn các bạn ở Vender.vn đã cho mình mượn con iMac này. Vender, số 379 Võ Văn Tần, Phường 5, Quận 3 Website: www.vender.vn, anh em mua đồ Apple thì ghé ủng hộ Vender nha
131 bình luận
Chia sẻ

Xu hướng

l0ngnguye
TÍCH CỰC
3 năm
Nghe câu 33 triệu với 72 triệu 😆
@l0ngnguye luân béo lính cao cấp lương 8000$, quan tâm gì 33 với 72, quan tâm sao giảm cân thôi
@SieuBanana Làm mod giàu vậy cơ, mà ổng làm data nữa mà
@Hoàng Huy Sqtt nhìn béo trắng là biết giàu từ trứng rồi bác
ruacon208
TÍCH CỰC
3 năm
M1 giờ quá ngon rồi, RN, Flutter, vscode, chrome, docker, android studio (preview) đều ngon ơ, Qué đã
dororooo
ĐẠI BÀNG
3 năm
@ruacon208 Mình đang dùng m1 đây và như bác trên nói "tích cực lên stackoverflow"
@dororooo Gặp lỗi như trong bài mình nói, mình cũng tích cực GOogle 😁
@Duy Luân Bạn ơi cho mình hỏi cái phần command line vscode của bạn dùng gìmà đẹp vậy?
@Youtuber Life mình dùng mặc định nó có sẵn thôi, không có làm gì thêm cả. Màu màu bạn thấy là của docker-compose
Chạy K8s thử anh ơi
@danielanle K8s mình chưa có dịp dùng 😆 đang ráng tìm dịp rảnh để nghiên cứu huhu
susanou
ĐẠI BÀNG
3 năm
Mình phải dùng image ubuntu và install elk vào =))
@susanou Giờ mình chuộng chạy từ container, hiếm khi nào mình install trực tiếp vô Mac lắm 😁
dung.nq
ĐẠI BÀNG
3 năm
Lượn github thì thấy mọi người nói android studio preview sẽ chạy được react native trên máy ảo nhưng mình chưa thử
@dung.nq Để mình thử thêm, quên mất vụ Android Studio có bản Artic gì đó
build cross platform trên M1 vẫn lỗi
@nguoikhongten03 cross platform là như nào bạn, để mình test thử phát
mushu
TÍCH CỰC
3 năm
Đại khái là mấy bạn làm nhúng hay dùng. Ví dụ mình build OS cho một board SoC ấy. Bình thường xày máy x86 thì xài GNU GCC for arm để build. Cơ mà mình chưa build Linux trên MAC bao giờ nên không rõ. Mà mình nghĩ vụ cross platform này còn lỗi dài dài vì compiler không hỗ trợ thì build làm sao được. Trước đây các tool cross platform build toàn viết cho x86 là chính. Có khả năng dùng M1 build cho ARM thì được chứ huild cho các kiến trúc khác chắc là khó. Có cái này có thể thử nhanh là build go project cross platform. Lúc build set GOARCH=amd64 và GOOS=linux xem có được không?
@mushu À cái đó mình chưa làm nên cũng không rõ.

Có cái build docker image cho arm64 thì mình đang làm và deploy cho Pi 4, Jetson nano thì khá ổn
lgo.hoang
ĐẠI BÀNG
3 năm
@mushu golang build cross ngon trên m1 nhé
Ngon
Nhìn con iMac M1 quá bé nhỏ so với Luân mập 😂
@juneLiht Đợi M2 sẽ chiến ngay 😃
Đọc xong bài thấy dòng cuối thì biết là quảng cáo. lượn sớm.
Tích hợp WSL2 như trên Windows 10 chạy Docker có phải ngon nhanh và mạnh hơn ko
htux
CAO CẤP
3 năm
@centernc Cũng nhắc lại vấn đề ở trên. Docker trên mac chạy hypervisor framework, type1/bare vm, tương đương với hyper-v mà anh m$ dùng với wsl2. Và cái activity monitor đó 2.5gb là tối đa cho vm, phần nào unused thì sẽ đc compress lại.
Screen Shot 2021-07-10 at 5.36.29 PM.png
tungjk
ĐẠI BÀNG
3 năm
@centernc Trước cũng cứ nghĩ docker chạy native trên macos, xong có 1 hồi mượn máy đồng nghiệp cty cái con mac pro 13 ich cài thử docker và chạy thì cái máy nó nóng ran lên. Hoá ra docker trên mac cũng chỉ là chạy qua ảo hoá, mà khổ lỗi cái con mac kia ram có 8gb chạy docker không nổi 😃. Giờ window có cái wsl2 quá ngon, trải nghiệm tốc độ thì ko thua linux thật, chỉ cần đủ ram là đc.
@htux Trên Windows WSL2 Docker chạy max cấu hình theo hệ thống, còn phiên bản cũ Docker Hyper-V backend and Windows containers thì giống trên macOs nhé.
@tungjk Windows support WSL2 chạy Docker thích lắm nhanh với mạnh, nó gần với native nhiều hơn, và hiện tại làm việc WSL2 Linux trên Windows không khác gì trên máy thật Linux cả. Còn về macOS vì nó chạy Unix nên command giống với Linux, dù bản chất nhân hệ điều hành kernel của Linux và Unix là hoàn toàn khác nhau.
Sao bảo lỗi lầm nhiều lắm, và chưa ổn định tốt, bằng mac x86? Và người ta mua về nhưng vẫn đợi táo cập nhật để bớt lỗi đi. Như kiểu gọt chân cho vừa giày.
@dlv.thickgame Là sao
tuandung000
ĐẠI BÀNG
3 năm
Anh Luân ơi, Android Studio + Emulator ổn không anh @duyluan
@tuandung000 Android Studio thì ok, còn Emulator thì không nha, mình chạy mà nó không đẩy app qua emulator
gaucon3503
TÍCH CỰC
3 năm
Đội BE đang phải trả lại mấy chục cái để đổi sang Intel. Đội Android cũng kêu trời đòi quay lại Intel. Sau bao nhiêu sản phẩm thì mình đã không còn tin mấy cái review cưỡi ngựa xem hoa của Tinh tế rồi.
@gaucon3503 Mình đã update lại cái câu cuối bài cho chuẩn hơn nhé, cảm ơn bạn.
gaucon3503
TÍCH CỰC
3 năm
@Duy Luân Là Docker nhé. Bên mình chạy docker. Còn lỗi cụ thể thì không tiện share.
@gaucon3503 😁 mình cũng docker, hiện tại chạy thấy ổn rồi.
robberviet
TÍCH CỰC
3 năm
@gaucon3503 Các công việc phổ biến, nhẹ nhàng thì chắc cũng tàm tạm rồi, còn chuyên sâu hơn chắc còn nhiều lỗi.

Mà dùng Docker trên Mac nó cùi vãi cả chưởng :\ Các thể loại máy ảo cũng thế. Trừ đội web dev và iOS ra, mình thấy công việc engineer ko nên dùng Mac làm gì cho khổ, M1 thì càng nên né đi.
mrford105
TÍCH CỰC
3 năm
Vẫn câu nói cũ, cần câu cơm thì cứ chờ tiếp M1 nhiều lỗi bất ngờ khó fix ngay lắm, chờ thêm 1 năm nữa may ra mới chuyển qua. Apple còn chưa lên m1 cho những con máy quan trọng cho dân dev và media là imac 27” và pro 16”, không nên vội làm gì. Tiền cả đấy, trễ deadline là cháo không có mà húp
@mrford105 Chuẩn rồi 😁
@mrford105 Dùng song song 2 máy thấy hiệu quả ko lỗi thì hãy chuyển ko thì thôi. Dại gì mà dùng nếu ông phụ thuộc nhiều
minhtuanq6
ĐẠI BÀNG
3 năm
@mrford105 Cần câu kiếm cơm thì không thể mang ra thử nghiệm được =]]
Vui:
- Kafka thì ok rồi.
- Lazarus Pascal cũng ngon.
- Electron Js cũng ngon
- Java thuần, Netbeans, Intellij thì ngon từ xưa, trừ các lib JNI độc build từ C/C++.
Buồn:
- Qt6 native còn lâu.
- Nhiều app build Mac Arm64 native nhưng vẫn lỗi.

Bạn nào làm hạ tầng thì chia buồn: cả Mac M1 và windows 10 arm ảo đều chưa có driver cho cáp console ngon.
@Duy Luân Luân kiểm tra lại tính năng sửa comment nhé. Khi sửa comment sẽ mất luôn quote, cho nên không biết comment đó đang trích dẫn comment của ai nữa.

Lỗi này lâu lắm rồi mà chưa thấy sửa.
@Ice Never Dies Để mình check, bình thường cũng không để ý
@Duy Luân Ngày xưa khi edit có cái bbcode quote ở đây nè. Mà giờ không có nên bấm lưu là mất luôn.
Screenshot_20210710-122135~2.png
@Ice Never Dies Đã fix, đang cho lên nhen. Cỡ 15p nữa là xobg
Compile C/C++ làm máy nóng rang, tốc độ compile không nhanh như trên x86.
llyllr
TÍCH CỰC
3 năm
Mấy app dev lớn đã hỗ trợ ngon lành rồi thì việc phát triển thêm app cho m1 ngày càng đông. Ngon mà lỡ mua sfb 15” rồi
Ae cho hỏi mấy app ko tương thích thì chạy bằng terminal x64/86 có ổn ko và performance như nào ạ?
@thienanh9696 ví dụ như cái nào bạn, mình test thử phát
Docker đang HOT quá nhỉ, cái gì cũng deploy trên này đc
@luuthienloc Giờ mấy bạn sinh viên đại học còn dùng docker rồi mà 😁 Anh em đi làm thì nên tìm hiểu và cái nào move qua được thì move sang dùng docker để dev, nó nhàn hẳn

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019