Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate developer experience on ARM based Apple devices #83094

Closed
tylersmalley opened this issue Nov 10, 2020 · 12 comments · Fixed by #114879
Closed

Investigate developer experience on ARM based Apple devices #83094

tylersmalley opened this issue Nov 10, 2020 · 12 comments · Fixed by #114879
Assignees
Labels
Team:Operations Team label for Operations Team

Comments

@tylersmalley
Copy link
Contributor

Today Apple announced the first devices in its lineup, including the Macbook Pro, to receive ARM-based processors. While it's an exciting time for many to upgrade, we ask that anyone relying on this device for Kibana development hold off for the time being.

Once we receive a device we will report here on the developer experience.

@tylersmalley tylersmalley added the Team:Operations Team label for Operations Team label Nov 10, 2020
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-operations (Team:Operations)

@monfera
Copy link
Contributor

monfera commented Nov 11, 2020

++
Anandtech is enthusiastic, based on how the A14 is already very performance competitive with Intel processors.
M1 should be thermally constrained to a much lower degree, and should have architectural improvements over the already impressive A14.
Plus its way superior performance per watt should inspire increasing use of ARM in the data centers.
Meanwhile Intel is losing benchmarks to AMD, due to lagging in fab process, likely an issue for the next 1-3 years.

@spalger
Copy link
Contributor

spalger commented Nov 17, 2020

Just got my Mac Mini, going to start recording some metrics and compare them to the macs I have around. Let me know what metrics you want to see?

@nreese
Copy link
Contributor

nreese commented Nov 17, 2020

Let me know what metrics you want to see?

Can you provide metrics for typescript type check?

node scripts/type_check --project=x-pack/tsconfig.json
node scripts/type_check --project=tsconfig.json

@myasonik
Copy link
Contributor

More so than specific metrics, I'm more interested in the ease of just getting to work. Notes like homebrew and node support are the most helpful in understanding on whether or not this is something that is actually worth it for me.

I haven't really dug into this much yet but if you know of anything else that might have rocky support, getting that outlined would be awesome.

@spalger
Copy link
Contributor

spalger commented Nov 18, 2020

Notes from an afternoon with the M1 Mac Mini:

  • homebrew doesn't support ARM yet so I needed to run terminal in Rosetta (told finder to launch terminal.app in Rosetta via "Get Info" pane)
  • node isn't published for darwin-arm64 yet, but since I installed an x86 version of bash via homebrew nvm installed the darwin-x64 version of node and everything was great
  • Docker doesn't work on the M1 at all yet, we don't rely on it for any core components but there are some fleet tests that do use it
  • Running the entire dev setup via Rosetta doesn't seem to cause any issues
  • Biggest issue I expect will be the lack of support for dual external displays and fewer USB4/USB-C ports
  • Overall, performance for standard development seems totally comparable to the MacBook I have, though I'm interested how the latest 16" model performs these tasks.
  • The Mac Mini doesn't have the same thermal limits as the MacBook Air, but should have similar thermal performance as the MacBook Pro based on other benchmarks

All tests were run on commit 31014bf
Mac Mini: M1, 16GB, 1TB model, all code running under Rosetta 2 for now
MacBook Pro: 2019 15", 32GB, 2.4Ghz 8-Core i9
iMac Pro: 2017, 64GB, 3 GHz 10-Core Intel Xeon W

task Mac Mini MacBook Pro iMac Pro
yarn kbn bootstrap without a yarn cache 222s 284s 236s
yarn kbn clean 6s 11s 14s
yarn kbn bootstrap with yarn cache 206s 185s 186s
node scripts/build_kibana_platform_plugins 170s (4 workers) 175s (8 workers) 105s (10 workers)
yarn start -> login page loaded 210s 200s 129s
node scripts/jest 300s 226s 162s
node scripts/type_check --project=tsconfig.json first run: 16m40s, second: 14s first run: 22m10s, second: 9s first run: 20m44s, second: 11s
node scripts/type_check --project=x-pack/tsconfig.json 2m15s 2m23s 2m14s

@dmlemeshko
Copy link
Member

dmlemeshko commented Nov 18, 2020

Biggest issue I expect will be the lack of support for dual external displays

Could you elaborate on that?

@myasonik
Copy link
Contributor

M1 Macs seem to only be able to run 1 external monitor through Thunderbolt ports. Mac Mini can run two external monitors but it's the exception (and still is the same total number of monitors compared to laptops): one over Thunderbolt and another over HDMI.

https://appleinsider.com/articles/20/11/11/how-apple-silicon-on-a-m1-mac-changes-monitor-support-and-what-you-can-connect

@shaialon
Copy link

I am using an M1 mini, and cannot install Kibana via Docker M1 Tech Preview
It manages to load elasticsearch, but fails for kibana / logstash with

Pulling kibana (kibana:7.9.2)...
7.9.2: Pulling from library/kibana
ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries
Pulling logstash (logstash:7.9.2)...
7.9.2: Pulling from library/logstash
ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries

Any ideas how to resolve?

@jbudz
Copy link
Member

jbudz commented Dec 28, 2020

Unfortunately no ARM docker builds for Kibana yet - we're working on it now with a 7.12 target. Progress can be tracked at #72884.

@tylersmalley tylersmalley added 1 and removed 1 labels Oct 11, 2021
@exalate-issue-sync exalate-issue-sync bot added impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. loe:small Small Level of Effort labels Oct 12, 2021
jbudz added a commit to jbudz/kibana that referenced this issue Oct 19, 2021
This adds *build and native development support for ARM based Apple devices.

- Bazel has been updated to 4.2.1, providing ARM binaries
- Bazelisk has been updated to 1.10.1, providing ARM binaries
- *Reporting is disabled pending ARM binaries -  elastic#109949

Partially closes elastic#83094
@tylersmalley
Copy link
Contributor Author

I don't believe #114879 was meant to close this issue.

@tylersmalley tylersmalley reopened this Oct 25, 2021
@tylersmalley tylersmalley removed loe:small Small Level of Effort impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. EnableJiraSync labels Mar 16, 2022
@tylersmalley
Copy link
Contributor Author

Done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Team:Operations Team label for Operations Team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants