(artikel ini adalah bahagian kelima siri "Computing Cloud Computing" Ampere Computing. Anda boleh membaca semua artikel di SitePoint.)
Langkah terakhir dalam pembangunan aplikasi awan asli adalah untuk menentukan di mana untuk bermula. Sebagai isu akhir siri ini, kami akan meneroka cara membangunkan aplikasi awan asli, di mana untuk memulakan proses dalam organisasi anda, dan pelbagai situasi yang mungkin anda hadapi dalam proses tersebut.
Seperti yang ditunjukkan di bahagian lain siri ini, platform asli awan dengan cepat menjadi alternatif yang kuat untuk pengkomputeran berasaskan x86. Seperti yang ditunjukkan dalam Bahagian IV, terdapat perbezaan yang besar antara VCPU ampere penuh dan X86 VCPU separuh teras dari segi prestasi, ramalan, dan kecekapan tenaga.
bagaimana untuk membangunkan aplikasi awan-asli
Cara semulajadi untuk merekabentuk, melaksanakan, dan menggunakan aplikasi yang diedarkan untuk persekitaran pengkomputeran awan-asli adalah untuk memecahkan aplikasi ke dalam komponen atau mikroservis yang lebih kecil, masing-masing bertanggungjawab untuk tugas tertentu. Dalam microservices ini, anda biasanya mempunyai pelbagai elemen teknikal untuk menyediakan fungsi secara bersama. Sebagai contoh, sistem pengurusan pesanan anda mungkin mengandungi kedai data peribadi (yang boleh digunakan untuk pesanan cache dan maklumat pelanggan dalam ingatan) dan pengurus sesi untuk mengendalikan kereta belanja pelanggan, sebagai tambahan kepada pengurus API untuk membolehkan perkhidmatan front-end untuk dapat berinteraksi dengannya. Di samping itu, ia mungkin disambungkan ke perkhidmatan inventori untuk menentukan ketersediaan barangan, mungkin modul penghantaran untuk menentukan tarikh penghantaran dan penghantaran, dan perkhidmatan pembayaran untuk mengumpul pembayaran.
Sifat pengkomputeran awan yang diedarkan membolehkan aplikasi untuk skala dengan keperluan dan secara bebas mengekalkan komponen aplikasi dengan cara yang tidak dapat dicapai oleh perisian tunggal. Jika anda mempunyai banyak trafik ke laman web e-dagang anda, anda boleh melanjutkan hujung depan secara bebas dari perkhidmatan inventori atau enjin pembayaran, atau menambah lebih banyak program pekerja untuk mengendalikan pengurusan pesanan. Matlamat reka bentuk aplikasi awan asli adalah untuk mengelakkan komponen lain yang terjejas oleh mengasingkan kegagalan dalam satu komponen, dan bukannya satu aplikasi besar, di mana salah satu kegagalan boleh menyebabkan kegagalan sistem global.
Di samping itu, pendekatan awan-asli membolehkan perisian memanfaatkan sepenuhnya keupayaan perkakasan yang tersedia dengan hanya membuat pelayan yang diperlukan untuk mengendalikan beban semasa dan menutup sumber semasa waktu puncak. CPU asli awan moden seperti Ampere menyediakan sejumlah besar teras CPU cepat dan interkoneksi cepat, yang membolehkan arkitek perisian untuk skala aplikasi mereka dengan berkesan.
Di bahagian kedua dan ketiga siri ini, kami menunjukkan bahawa aplikasi yang berhijrah ke platform asli awan berasaskan lengan agak mudah. Dalam artikel ini, kami akan menerangkan langkah -langkah yang biasanya perlu diambil untuk menjadikan penghijrahan ini berjaya.
di mana untuk memulakan dalam organisasi anda
Langkah pertama dalam berpindah ke pemproses ARM64 awan Ampere adalah untuk memilih aplikasi yang betul. Sesetengah aplikasi yang digabungkan dengan seni bina CPU yang lain mungkin lebih sukar untuk berhijrah, kerana mereka mempunyai kebergantungan kod sumber pada set arahan tertentu, atau kerana prestasi atau batasan fungsi yang berkaitan dengan set arahan. Walau bagaimanapun, pemproses ampere sering direka dengan baik untuk banyak aplikasi awan, termasuk:
- Aplikasi Microservices, Perkhidmatan Tanpa Ketidaksuburan: Jika permohonan anda dipecah menjadi komponen yang boleh dilanjutkan secara bebas seperti yang diperlukan, pemproses ampere adalah sempurna untuknya. Bahagian utama memecah aplikasi dan memanfaatkan manfaat yang disediakan oleh awan adalah memisahkan perkhidmatan yang berkesudahan dan tanpa stat. Komponen aplikasi tanpa stateless boleh berskala mendatar, menyediakan kapasiti yang lebih tinggi seperti yang diperlukan, sambil menggunakan perkhidmatan yang berkesempatan seperti pangkalan data untuk menyimpan data bukan transitori. Perkhidmatan tanpa stateless adalah mudah kerana anda boleh memuatkan keseimbangan antara banyak replika perkhidmatan, menambah lebih banyak teras ke infrastruktur pengiraan anda untuk mengatasi peningkatan permintaan. Terima kasih kepada reka bentuk CPU tunggal Ampere, anda boleh menjalankan teras ini dengan beban yang lebih tinggi tanpa menjejaskan latensi aplikasi, mengurangkan harga/prestasi keseluruhan.
- transcoding audio atau video: Menukar data dari satu codec ke yang lain (mis., Dalam aplikasi main balik video atau sebagai sebahagian daripada sistem telefon IP) adalah intensif secara komputasi, tetapi biasanya tidak terapung titik intensif dan dapat dilanjutkan dengan banyak sesi Dengan menambah lebih banyak program pekerja. Oleh itu, jenis beban ini berfungsi dengan baik pada platform Ampere dan dapat memberikan kelebihan harga/prestasi melebihi 30% lebih tinggi daripada platform lain.
- Kesimpulan AI: Semasa latihan model AI boleh mendapat manfaat daripada ketersediaan GPU yang sangat cepat untuk latihan, menggunakan model ke data tidak terlalu terapung intensif apabila digunakan dalam persekitaran pengeluaran. Malah, operasi terapung 16-bit yang rendah dapat digunakan untuk memenuhi prestasi dan kualiti SLA kesimpulan model AI dan boleh berjalan dengan baik pada pemproses tujuan umum. Di samping itu, kesimpulan AI boleh mendapat manfaat daripada menambah lebih banyak pekerja dan kernel untuk bertindak balas terhadap perubahan dalam jumlah urus niaga. Semua dalam semua, ini bermakna platform asli awan moden seperti Ampere akan menawarkan harga/prestasi yang sangat baik.
- Pangkalan data dalam memori: Kerana kernel ampere direka untuk mempunyai cache L2 yang besar setiap kernel, mereka biasanya melakukan dengan baik dalam beban kerja intensif memori seperti objek dan cache pertanyaan serta pangkalan data memori. Beban kerja pangkalan data seperti Redis, Memcached, MongoDB, dan MySQL boleh memanfaatkan cache besar setiap teras untuk meningkatkan prestasi. - Integrasi Berterusan Build Farm : Membina perisian boleh menjadi sangat mengira dan disatukan. Menjalankan ujian membina dan integrasi sebagai sebahagian daripada amalan integrasi yang berterusan dan menggunakan amalan penghantaran berterusan untuk mengesahkan versi baru yang akan memasuki pengeluaran boleh mendapat manfaat daripada berjalan pada CPU AMPERE. Sebagai sebahagian daripada penghijrahan kepada seni bina ARM64, membina dan menguji perisian anda pada seni bina itu adalah prasyarat, dan melakukan kerja ini pada perkakasan Arm64 asli akan meningkatkan prestasi membina dan meningkatkan throughput pasukan pembangunan.
menganalisis kebergantungan aplikasi anda
Sebaik sahaja anda telah memilih aplikasi yang anda fikir sesuai untuk penghijrahan, langkah seterusnya adalah untuk menentukan kerja yang anda perlukan untuk mengemas kini timbunan ketergantungan. Tumpukan ketergantungan akan termasuk sistem operasi tuan rumah atau tetamu, bahasa pengaturcaraan dan runtime, dan sebarang kebergantungan aplikasi yang mungkin ada pada perkhidmatan anda.Set arahan ARM64 yang digunakan dalam CPU ampere hanya menjadi terkenal dalam beberapa tahun kebelakangan ini, dan banyak projek telah bekerja keras untuk meningkatkan prestasi ARM64 dalam beberapa tahun kebelakangan ini. Oleh itu, topik umum dalam bahagian ini adalah "versi baru akan lebih baik".
- sistem operasi: Sebagai seni bina ARM64 telah membuat kemajuan besar sejak beberapa tahun kebelakangan ini, anda mungkin ingin menjalankan sistem operasi yang dikemas kini untuk memanfaatkan penambahbaikan prestasi. Untuk pengagihan Linux, mana -mana pengedaran arus perdana baru -baru ini akan memberi anda media pemasangan Binari ARM64 atau imej asas Docker. Jika permohonan anda sedang menggunakan sistem operasi yang lebih lama, seperti Red Hat Enterprise Linux 6 atau 7, atau Ubuntu 16.04 atau 18.04, anda mungkin ingin mempertimbangkan untuk mengemas kini sistem operasi asas.
- Bahasa Runtime/Compiler: Semua bahasa pengaturcaraan moden tersedia untuk ARM64, tetapi versi terkini bahasa popular mungkin termasuk pengoptimuman prestasi tambahan. Perlu diingat bahawa versi terbaru Java, GO, dan .NET mempunyai prestasi yang lebih baik pada ARM64.
- Ketergantungan aplikasi: Sebagai tambahan kepada sistem operasi dan bahasa pengaturcaraan, anda perlu mempertimbangkan kebergantungan lain. Ini bermakna memeriksa perpustakaan pihak ketiga dan modul menggunakan aplikasi anda, mengesahkan bahawa setiap perpustakaan ini tersedia untuk ARM64 dan dibungkus untuk pengedaran anda, sambil mengambil kira kebergantungan luaran seperti pangkalan data, perisian antivirus yang diperlukan dan aplikasi lain. Analisis ketergantungan harus merangkumi pelbagai faktor, termasuk ketersediaan kebergantungan ARM64 dan sebarang kesan prestasi yang akan ada jika kebergantungan ini mempunyai pengoptimuman khusus platform. Dalam sesetengah kes, anda boleh berhijrah apabila beberapa fungsi hilang, sementara di lain -lain, penghijrahan mungkin memerlukan kerja kejuruteraan untuk menyesuaikan diri dengan pengoptimuman seni bina ARM64.
Membina dan menguji perisian pada ARM64
Ketersediaan sumber pengkomputeran ARM64 pada penyedia perkhidmatan awan (CSP) telah berkembang baru -baru ini dan masih berkembang. Seperti yang anda lihat dari mana untuk mencuba dan di mana untuk membeli halaman di laman web pengkomputeran Ampere, ketersediaan perkakasan ARM64 bukan masalah, sama ada di pusat data anda atau di platform awan.
Sebaik sahaja anda mempunyai akses kepada contoh ampere (logam telanjang atau mesin maya), anda boleh memulakan fasa membina dan menguji penghijrahan. Seperti yang kita katakan di atas, kebanyakan bahasa moden kini menyokong ARM64 sepenuhnya sebagai platform kelas pertama. Bagi banyak projek, proses membina semudah mengembalikan semula binari anda atau menggunakan kod Java anda ke JVM asli ARM64.
Walau bagaimanapun, kadang -kadang masalah dalam proses pembangunan perisian boleh membawa kepada beberapa "hutang teknikal" yang mungkin perlu dibayar oleh pasukan semasa proses penghijrahan. Ini boleh mengambil banyak bentuk. Sebagai contoh, pemaju boleh membuat andaian mengenai ketersediaan ciri perkakasan tertentu atau tingkah laku khusus pelaksanaan yang tidak ditakrifkan dalam piawaian. Sebagai contoh, jenis data char boleh ditakrifkan sebagai aksara yang ditandatangani atau tidak ditandatangani mengikut pelaksanaan, dan di Linux pada x86 ia ditandatangani (iaitu, ia berkisar dari -128 hingga 127). Walau bagaimanapun, pada ARM64 menggunakan pengkompil yang sama, ia tidak ditandatangani (julat 0 hingga 255). Oleh itu, kod yang bergantung kepada simbol jenis data char tidak akan berfungsi dengan baik.
bagaimanapun, secara keseluruhan, kod yang mematuhi piawaian dan kod yang tidak bergantung pada ciri perkakasan khusus x86 seperti SSE boleh dibina dengan mudah di atas pemproses ampere. Kebanyakan alat integrasi yang berterusan (alat yang menguruskan pembinaan dan ujian automatik di seluruh matriks platform sokongan), seperti Jenkins, CircleCi, Travis, Tindakan GitHub, dan lain -lain, menyokong nod bangunan ARM64.
Urus penggunaan aplikasi dalam pengeluaran
sekarang kita dapat melihat perubahan yang akan berlaku kepada pengurusan infrastruktur anda apabila menggunakan aplikasi awan anda kepada pengeluaran. Perkara pertama yang perlu diperhatikan ialah anda tidak perlu memindahkan keseluruhan aplikasi sekaligus - anda boleh memilih bahagian -bahagian aplikasi yang akan memberi manfaat paling banyak dari berpindah ke ARM64 dan bermula dengan bahagian -bahagian tersebut. Perkhidmatan Kubernet yang paling banyak diuruskan menyokong infrastruktur heterogen dalam satu kluster. Mengganggu, CSP yang berbeza mempunyai nama yang berbeza untuk mekanisme untuk mencampurkan pelbagai jenis nod pengiraan dalam satu kluster Kubernet tunggal, tetapi semua CSP utama kini menyokong ciri ini. Sebaik sahaja anda mempunyai kolam pengiraan ampere di kluster Kubernet anda, anda boleh menggunakan "blot" dan "toleransi" untuk menentukan pertalian nod bekas - yang memerlukannya untuk menjalankan nod dengan Arch = Arm64.
Jika anda telah membina bekas projek untuk seni bina ARM64, sangat mudah untuk mencipta manifes yang akan menjadi bekas pelbagai arkitek. Ini pada dasarnya adalah fail manifes yang mengandungi penunjuk ke pelbagai imej kontena, dan kontena berjalan apabila memilih imej berdasarkan seni bina tuan rumah.
Masalah utama yang biasanya ditemui oleh orang -orang semasa fasa penempatan dapat diklasifikasikan semula sebagai "hutang teknikal". Skrip penempatan dan automasi boleh menganggap nama laluan khusus platform tertentu, atau dikodkan untuk bergantung pada artifak binari x86 sahaja. Di samping itu, rentetan skema yang dikembalikan oleh pengagihan Linux yang berbeza mungkin berbeza dengan pengedaran. Anda mungkin menemui x86, x86-64, x86_64, ARM64, AARCH64. Menormalkan perbezaan platform ini mungkin sesuatu yang tidak pernah anda lakukan pada masa lalu, tetapi ia akan menjadi sangat penting sebagai sebahagian daripada transformasi platform.
Komponen terakhir penukaran platform adalah operasi aplikasi. Aplikasi awan-asli termasuk sejumlah besar perancah dalam pengeluaran untuk memastikan ia berfungsi dengan baik. Ini termasuk pengurusan log untuk memusatkan peristiwa, pemantauan untuk membolehkan pentadbir mengesahkan bahawa perkara berfungsi seperti yang diharapkan, amaran untuk memberi amaran sekiranya berlaku anomali, alat pengesanan pencerobohan, firewall aplikasi, atau alat keselamatan lain untuk melindungi permohonan anda dari pencerobohan niat jahat oleh pelakon. Ini akan mengambil sedikit masa untuk melabur untuk memastikan proksi dan infrastruktur yang betul diaktifkan untuk nod aplikasi, tetapi kerana semua pemantauan utama dan platform keselamatan kini menyokong ARM64 sebagai platform, memastikan anda dapat melihat kerja dalaman aplikasi biasanya tidak akan menjadi masalah besar . Sebenarnya, banyak platform perisian-sebagai-perkhidmatan yang paling besar semakin banyak memindahkan platform aplikasi mereka ke platform ARM64 yang lain untuk memanfaatkan penjimatan kos yang ditawarkan oleh platform.
Tingkatkan garis bawah anda
Peralihan kepada pemproses awan-asli boleh menjadi besar, menjadikan pelaburan penghijrahan dengan baik. Dengan pendekatan ini, anda juga boleh menilai dan mengesahkan simpanan operasi organisasi anda boleh diharapkan dari masa ke masa.
Perhatikan bahawa salah satu halangan terbesar untuk meningkatkan prestasi adalah inersia, dan kecenderungan organisasi untuk terus melakukan apa yang mereka lakukan, walaupun ia tidak lagi menjadi cara yang paling efisien atau kos efektif. Itulah sebabnya kami mengesyorkan mengambil langkah pertama untuk membuktikan nilai teknologi awan asli kepada organisasi anda. Dengan cara ini, anda akan mempunyai hasil yang nyata untuk berkongsi dengan pihak berkepentingan dan menunjukkan kepada mereka bagaimana pengkomputeran awan asli dapat meningkatkan prestasi aplikasi dan respons tanpa pelaburan atau risiko yang signifikan.
pemproses asli awan telah muncul. Persoalannya bukan sama ada untuk beralih ke awan asli, tetapi apabila anda menukar. Organisasi yang merangkul masa depan yang lebih awal akan mendapat manfaat dari hari ini, yang akan memberi mereka kelebihan yang besar terhadap pesaing yang terikat dengan tradisi.
Ketahui lebih lanjut mengenai pembangunan pada kelajuan awan di Pusat Pemaju Ampere, yang mengandungi sumber untuk merancang, membina, dan menggunakan aplikasi awan. Apabila anda sudah bersedia untuk mengalami manfaat pengkomputeran awan untuk diri sendiri, minta CSP anda untuk pilihan awan mereka berdasarkan siri Ampere Altra dan teknologi ampereone.
Atas ialah kandungan terperinci Mempercepat awan: langkah terakhir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!