Skip to content

Flutter Infrastructure Foundation

godofredoc edited this page May 22, 2023 · 1 revision

Flutter Infrastructure Foundation

The Flutter Infrastructure Foundation Team is responsible for setting up, maintaining and improving the low level infrastructure used to build, test and release Flutter.

DeviceLab Hardware

Flutter keeps a lab of test beds that include hosts and phones for all the supported platforms. These test beds are used to collect performance benchmarks and detect regressions.

As of May 2023 the Flutter DeviceLab contains 99 test beds with the following hardware and software:

Host Architecture Phone Count
Linux X64 Android 36
Windows X64 Android 6
Windows Arm64 Android 1
Windows Arm64 9
Mac X64 iOS 18
Mac X64 2
Mac Arm64 iOS 12
Mac Arm64 1
Mac X64 Android 9
Mac Arm64 Android 5

VMs

Flutter uses Linux and Windows virtual machines to build and test Flutter. These VMs are auto-provisioned and distributed to 4 different pools. The following is the configuration distribution:

LUCI pool config os cpus count total cpus
luci.flutter.prod e2-standard-32 Linux

32

15

480

luci.flutter.prod n1-standard-8 Linux

8

135

1080

luci.flutter.try e2-standard-32 Linux

32

30

960

luci.flutter.try n1-standard-8 Linux

8

137

1096

luci.flutter.staging e2-standard-32 Linux

32

4

128

luci.flutter.staging n1-standard-8 Linux

8

30

240

luci.dart-internal.flutter e2-standard-32 Linux

32

20

640

luci.flutter.prod e2-highmem-8 Windows

8

59

472

luci.flutter.try e2-highmem-8 Windows

8

130

1040

luci.flutter.staging e2-highmem-8 Windows

8

12

96

luci.dart-internal.flutter e2-highmem-8 Windows

8

20

160

Totals

592

6392

Mac hostonly machines

Mac machines are organized in a different category because they are provisioned in chrome labs and have no phones attached. The machine configurations are the following:

LUCI pool model os count
luci.flutter.prod Macmini8,1 Mac-12.6-21G115

28

luci.flutter.prod Macmini9,1 Mac-12.6-21G115

31

luci.flutter.try Macmini8,1 Mac-12.6-21G115

74

luci.flutter.try Macmini9,1 Mac-12.6-21G115

71

luci.flutter.staging Macmini8,1 Mac-12.6-21G115

5

luci.flutter.staging Macmini9,1 Mac-12.6-21G115

7

luci.dart-internal.flutter Macmini8,1 Mac-12.6-21G116

15

luci.dart-internal.flutter Macmini9,1 Mac-12.6-21G117

2

Totals

233

Services

Flutter Infrastructure Foundation owns the DeviceLab provisioning services, maintains Flutter LUCI service configurations, and provides lab maintenance services.

This is the list of services with their descriptions:

Service Type Description
SALT Owned Configuration provisioning service used to push configurations as code for host and devices for all the supported platforms.
Machine Provider Configuration management Configuration service to provision, spin up and tear down virtual machines.
LUCI swarming bot Owned Scripts used to set up and tear down LUCI services on the supported platforms.
Capacity planning and delivery Owned Budgeting for lab expansions, delivery of new capacity, and decommissioning of end of life hardware.
Lab maintenance Owned Faulty hardware replacement, hardware recovery and reprovisioning.

Lab migrations planning and execution.

Onboarding of new platforms Owned Creating provisioning SALT scripts and onboarding on LUCI services.
Device doctor Owned Phone configuration validation and device recovery.

Flutter Wiki

Process

Framework repo

The Flutter CLI Tool

Engine repo

Packages repo

Engineering Productivity

User documentation

Clone this wiki locally