Pembangunan/pengujian yang cepat, andal, dan hemat biaya dalam skala besar dengan Eksekusi Jarak Jauh EngFlow di AWS

Bagaimana konten ini?

Bahkan ketika organisasi rekayasa modern mengadopsi arsitektur layanan mikro dan menguraikan aplikasi monolitik mereka, basis kode yang besar dan kompleks adalah hal yang umum. Semakin banyak kode menyebabkan siklus pembuatan/pengujian lebih lama, yang dapat menurunkan produktivitas developer dan meningkatkan biaya. Selain itu, anggaran komputasi finite integrasi berkelanjutan (CI) menyebabkan antrean eksekusi, yang selanjutnya mengurangi produktivitas rekayasa.

EngFlow membantu organisasi modern meningkatkan siklus pembuatan dan pengujian mereka untuk memaksimalkan produktivitas tim pengembangan perangkat lunak melalui Eksekusi Jarak Jauh dan Caching.

Untuk memberikan solusi yang beperforma, andal, dan hemat biaya kepada pelanggannya, EngFlow mengikuti praktik terbaik dari Kerangka Kerja AWS Well-Architected. Dalam posting ini, kami akan fokus pada praktik yang membantu meningkatkan rasio performa-harga dan meningkatkan ketersediaan.

Arsitektur layanan Eksekusi Jarak Jauh EngFlow

Pelanggan EngFlow berinteraksi dengan layanan Eksekusi Jarak Jauh melalui saluran yang aman dan pribadi, yang dilindungi pada beberapa lapisan menggunakan teknologi jaringan yang berbeda seperti Penyeimbang Beban Jaringan dan titik akhir cloud privat virtual (VPC), subnet, dan grup keamanan (lihat Gambar 1).

Penjadwal, yang berjalan di instans Amazon Elastic Compute Cloud (Amazon EC2) dengan volume Amazon Elastic Block Store (Amazon EBS), membagi setiap permintaan pembuatan/pengujian menjadi bagian-bagian yang independen dan menempatkan tugas pembuatan/pengujian individual pada instans pekerja yang ada, yang memenuhi persyaratan komputasi/memori tugas pembuatan/pengujian. AWS Auto Scaling digunakan untuk menyediakan kemampuan penyembuhan diri dengan mempertahankan jumlah tetap dari instans penjadwal yang berjalan. Instans penjadwal Amazon EC2 yang gagal diganti secara otomatis tanpa perlu campur tangan manusia.

Perangkat lunak Eksekusi Jarak Jauh EngFlow mendistribusikan tindakan pembuatan/pengujian di ratusan atau bahkan ribuan instans Worker, yang semuanya berjalan pada instans EC2 dengan volume EBS yang terpasang. Di sini, EngFlow menggunakan AWS Auto Scaling untuk menskalakan ke dalam dan ke luar kapasitas komputasi yang diperlukan sesuai permintaan, meminimalkan pemborosan, dan memaksimalkan pemanfaatan. Untuk mendukung kebutuhan pelanggan yang berbeda dan menawarkan solusi hemat biaya, instans Worker dapat berjalan di Instans EC2 Sesuai Permintaan atau Instans Spot. EngFlow menyediakan kemampuan untuk kembali ke instans Sesuai Permintaan demi keandalan yang lebih baik.

Eksekusi Jarak Jauh berpasangan dengan solusi Caching Jarak Jauh EngFlow untuk mencegah duplikasi pekerjaan. Dengan melakukan cache di semua artefak pembuatan/pengujian pada penyimpanan lokal yang dilakukan oleh organisasi, EngFlow memungkinkan tim untuk mengunduh artefak pembuatan/pengujian sebelumnya, alih-alih mengeksekusi ulang pembuatan/pengujian itu sendiri. Hal ini mempersingkat waktu pembuatan/pengujian dan mengurangi biaya per pembuatan/pengujian. Saat instans di cloud datang dan pergi, artefak pembuatan/pengujian disinkronkan secara tahan lama dan hemat biaya ke Amazon Simple Storage Service (Amazon S3) untuk akses yang berkesinambungan.

Untuk mendukung operasi saat dilakukan deployment ke akun pelanggan, solusi Eksekusi Jarak Jauh EngFlow menggunakan layanan standar AWS, seperti Log, Metrik, dan Alarm Amazon CloudWatch.

Mari kita lihat lebih dalam bagaimana EngFlow memungkinkan pembuatan AWS yang cepat, andal, dan hemat biaya dan bagaimana mereka mengidentifikasi area untuk meningkatkan solusi Eksekusi Jarak Jauh mereka saat mengerjakan tinjauan Well-Architected mereka.

Performa

Banyak pelanggan EngFlow menganggap kecepatan pembuatan/pengujian sebagai salah satu proposisi nilai utama EngFlow. Kecepatan pembuatan/pengujian menandakan peningkatan produktivitas developer, waktu masuk pasar yang lebih cepat, dan kemampuan untuk menjalankan lebih banyak eksperimen pada saat yang sama, sebagai contohnya. Menjalankan pembuatan/pengujian CI di cloud dan menggunakan simpul komputasi terdistribusi dari generasi CPU terbaru dan terkuat, alih-alih stasiun kerja lokal membantu pelanggan, seperti Blue River Technology mencapai peningkatan performa 9 kali lipat untuk pembuatan/pengujian CI mereka.

Rekayasawan EngFlow membantu pelanggan mereka memilih instans EC2 yang paling beperforma dan hemat biaya yang paling sesuai dengan persyaratan unik mereka, seperti prosesor AWS Graviton3 generasi terbaru. Mereka menggunakan volume gp3 EBS terbaru, yang menyediakan generasi volume SSD tujuan umum terbaru untuk pelanggan guna memastikan pembuatan/pengujian dilakukan secepat mungkin. Hal ini dimungkinkan dengan menganalisis beban kerja pelanggan yang unik, yang memanfaatkan metrik CloudWatch standar dan kustom.

Selain itu, kemampuan untuk menyempurnakan konfigurasi AWS Auto Scaling untuk instans Worker membantu EngFlow menemukan keseimbangan optimal antara kapasitas dan biaya sehingga pelanggan mereka selalu memiliki kapasitas komputasi dan penyimpanan yang cukup untuk memulai pembuatan/pengujian terjadwal baru dengan segera, tanpa membuang-buang uang untuk sumber daya yang tidak digunakan.

Keandalan

EngFlow telah mengikuti praktik terbaik AWS untuk menyediakan layanan yang andal sejak awal hingga menjalankan pembuatan/pengujian penting waktu bagi ribuan developer.

Konfigurasi AWS Auto Scaling mencakup tiga Zona Ketersediaan AWS di Wilayah AWS yang dipilih untuk menskalakan berdasarkan permintaan pelanggan, menahan disrupsi layanan lokal, dan menyediakan kemampuan penyembuhan diri dengan mengganti instans Amazon EC2 yang gagal secara otomatis. Amazon S3 melengkapi solusinya sebagai layanan penyimpanan yang tahan lama dan sangat tersedia untuk artefak pembuatan/pengujian.

Selama tinjauan Well-Architected, EngFlow menemukan area untuk meningkatkan keandalan layanan mereka. Amazon EC2 Auto Scaling menggunakan kebijakan penghentian untuk menentukan instans mana yang dihentikan terlebih dahulu selama peristiwa penskalaan. Kebijakan penghentian menentukan kriteria penghentian yang digunakan oleh Auto Scaling saat memilih instans mana yang akan dihentikan.

Secara default, kebijakan penghentian memilih Zona Ketersediaan dengan instans terbanyak. Kebijakan ini mengakhiri instans yang diluncurkan dari templat peluncuran atau konfigurasi peluncuran terlama. Jika instans diluncurkan dari templat peluncuran atau konfigurasi peluncuran yang sama, Amazon EC2 Auto Scaling memilih instans yang paling dekat dengan jam penagihan berikutnya dan menghentikannya.

EngFlow mengamati bahwa kebijakan penghentian default ini terkadang menghentikan instans EC2 yang berada di tengah pelaksanaan pekerjaan yang berharga bagi pelanggan kami. Selagi Ekesekusi Jarak Jauh EngFlow mencoba kembali tugas secara otomatis, hal itu menyebabkan eksekusi pembuatan/pengujian lebih lama, biaya lebih tinggi, dan pertanyaan pelanggan. Dengan membuat kebijakan penghentian kustom mereka sendiri dikombinasikan dengan menggunakan perlindungan penskalaan ke dalam instans, EngFlow dapat meningkatkan keandalan dan efisiensi mereka.

Efisiensi biaya

Pelanggan EngFlow menjalankan pembuatan/pengujian CI dalam skala besar, yang menggunakan ratusan atau bahkan ribuan instans EC2 secara bersamaan pada waktu puncak. Beban kerja ini menjadi tempat yang tepat untuk mencari peluang optimisasi biaya atas nama pelanggan kami.

Untuk menghemat biaya komputasi hingga 90% dibandingkan dengan sesuai permintaan, dalam ulasan Well-Architected kami, kami berdiskusi dengan EngFlow mengenai kemampuan untuk mengaktifkan Instans Spot untuk Eksekusi Jarak Jauh mereka, berdasarkan Armada Spot Amazon EC2.

“Fitur ini merupakan peluang besar bagi kami dan pelanggan kami untuk menjadi lebih hemat biaya saat menjalankan di AWS. Kami senang menerapkannya. Secara desain, instans Worker kami adalah stateless dan menangani penghentian spontan dengan mekanisme coba ulang yang kuat. Instans Spot AWS sangat cocok, menghemat rata-rata biaya komputasi bagi EngFlow dan pelanggan kami sebesar 70%.” — Yannic Bonenberger, Engineer di EngFlow menjelaskan.

Saat mengerjakan integrasi Instans Spot, EngFlow juga meningkatkan pemanfaatan sumber daya instans EC2 secara keseluruhan dengan meningkatkan algoritma penjadwalan instans Worker kami sehingga menghasilkan penghematan biaya tambahan bagi pelanggan kami.

Setelah EngFlow mengintegrasikan Instans Spot, Instans Spot akan mendengarkan pemberitahuan gangguan Instans Spot, yang dikeluarkan dua menit sebelum Amazon EC2 menghentikan atau mengakhiri Instans Spot Anda. Dengan ini, mereka dapat menghindari penjadwalan tugas pembuatan/pengujian baru pada instans yang akan segera diklaim ulang. Serupa dengan ini, Arsitek Solusi AWS juga merekomendasikan untuk mendengarkan rekomendasi penyeimbangan ulang instans EC2 guna menghindari penjadwalan tugas pembuatan/pengujian baru pada instans dengan kemungkinan besar untuk segera diklaim ulang. Setelah menerapkan rekomendasi ini, pelanggan EngFlow menemukan lebih sedikit percobaan ulang tugas pembuatan/pengujian karena instans EC2 dihentikan sebelum waktunya.

Pendekatan yang menjanjikan untuk pembuatan/pengujian modern

Organisasi berteknologi besar dan gesit, seperti platform media sosial, marketplace perjalanan jangka pendek, dan produsen mobil mengandalkan platform EngFlow untuk membuat rekayasawan tetap mengikuti perkembangan dan mempertahankan ketangkasan yang diperlukan untuk pengembangan perangkat lunak modern. AWS adalah inti dari kesuksesan EngFlow. AWS memberi mereka arsitektur yang fleksibel dan efisiensi biaya, yang secara langsung diterjemahkan menjadi keunggulan kompetitif bagi pelanggan akhir.

“Sungguh luar biasa, betapa besar kekuatan yang bisa Anda dapatkan di ujung jari Anda. Ini adalah pertama kalinya dalam sejarah Anda bisa mendapatkan 1.000 mesin sebagai developer tunggal dan mencoba sesuatu dalam skala besar.” – ujar CTO EngFlow Ulf Adams.

Christian Mueller

Christian Mueller

Dalam perannya sebagai Principal Solutions Architect untuk pelanggan otomotif strategis di Amazon Web Services (AWS), Christian membantu mereka memanfaatkan potensi penuh AWS Cloud agar mereka makin sukses. Dia tertarik pada semua hal yang berhubungan dengan nirserver dan bangga menjadi bagian dari transformasi besar yang terjadi di industri otomotif, mulai dari kendaraan yang terhubung dan otonom hingga kendaraan yang ditentukan perangkat lunak (SDV).

Luis Pino

Luis Pino

Sebagai Software Engineer di EngFlow, Luis bertanggung jawab untuk memastikan bahwa penyiapan infrastruktur di EngFlow berjalan mulus. Luis pernah bekerja selama lima tahun di Google untuk membantu mengembangkan Bazel dengan fokus pada API eksternal dan dukungan MacOS. Dia juga memegang gelar PhD di bidang Ilmu Komputer dari École Polytechnique dengan konsentrasi di bidang verifikasi perangkat lunak formal.

Bagaimana konten ini?