

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Upgrade ke Flink 2.2: Panduan lengkap
<a name="flink-2-2-upgrade-guide"></a>

Panduan ini memberikan step-by-step petunjuk untuk meningkatkan Layanan Terkelola Amazon Anda untuk aplikasi Apache Flink dari Flink 1.x ke Flink 2.2. Ini adalah peningkatan versi utama dengan perubahan yang melanggar yang memerlukan perencanaan dan pengujian yang cermat.

**Upgrade versi utama adalah uni-directional**  
Operasi Upgrade dapat memindahkan aplikasi Anda dari Flink 1.x ke 2.2 dengan pelestarian status, tetapi Anda tidak dapat bergerak kembali dari 2.2 ke 1.x dengan status 2.2. Jika aplikasi Anda menjadi tidak sehat setelah memutakhirkan, gunakan Rollback API untuk kembali ke versi 1.x dengan status 1.x asli Anda dari snapshot terbaru.

## Prasyarat
<a name="upgrade-guide-prerequisites"></a>

Sebelum memulai upgrade Anda:
+ Ulasan [Melanggar perubahan dan penghentian](flink-2-2.md#flink-2-2-breaking-changes)
+ Ulasan [Panduan kompatibilitas status untuk peningkatan Flink 2.2](state-compatibility.md)
+ Pastikan Anda memiliki lingkungan non-produksi untuk pengujian
+ Dokumentasikan konfigurasi dan dependensi aplikasi Anda saat ini

## Memahami jalur migrasi Anda
<a name="upgrade-guide-migration-paths"></a>

Pengalaman upgrade Anda bergantung pada kompatibilitas aplikasi Anda dengan Flink 2.2. Memahami jalur ini membantu Anda mempersiapkan dengan tepat dan menetapkan harapan yang realistis.

**Jalur 1: Status biner dan aplikasi yang kompatibel**

**Apa yang diharapkan:**
+ Memanggil operasi Upgrade
+ Selesaikan migrasi ke 2.2 dengan transisi status aplikasi: → → `RUNNING` `UPDATING` `RUNNING`
+ Pertahankan semua status aplikasi tanpa kehilangan data atau pemrosesan ulang
+ Pengalaman yang sama dengan migrasi versi minor

Terbaik untuk: Aplikasi atau aplikasi stateless menggunakan serialisasi yang kompatibel (Avro, skema Protobuf yang kompatibel, tanpa koleksi) POJOs 

**Jalur 2: Ketidakcocokan biner**

**Apa yang diharapkan:**
+ Memanggil operasi Upgrade
+ Operasi gagal dan memunculkan ketidakcocokan biner melalui API Operasi dan log
+ Dengan auto-rollback diaktifkan: Aplikasi secara otomatis berputar kembali dalam beberapa menit tanpa intervensi Anda
+ Dengan auto-rollback dinonaktifkan: Aplikasi tetap dalam keadaan berjalan tanpa pemrosesan data; Anda secara manual memutar kembali ke versi yang lebih lama
+ Setelah biner diperbaiki, gunakan [UpdateApplication API](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html) untuk pengalaman yang mirip dengan Path 1

Terbaik untuk: Aplikasi yang menggunakan dihapus APIs yang terdeteksi selama startup pekerjaan Flink

**Jalur 3: Status aplikasi yang tidak kompatibel**

**Apa yang diharapkan:**
+ Memanggil operasi Upgrade
+ Migrasi tampaknya berhasil pada awalnya
+ Aplikasi memasuki loop restart dalam hitungan detik karena pemulihan status gagal
+ Mendeteksi kegagalan melalui CloudWatch Metrik yang menunjukkan restart terus menerus
+ Memanggil operasi Rollback secara manual
+ Kembali ke produksi dalam beberapa menit setelah memulai rollback
+ Tinjau [Migrasi negara](state-compatibility.md#state-compat-migration) untuk aplikasi Anda

Terbaik untuk: Aplikasi dengan ketidakcocokan serialisasi status (POJOs dengan koleksi, status serial KRYO tertentu)

**catatan**  
Sangat disarankan untuk membuat replika aplikasi produksi Anda dan menguji setiap fase peningkatan berikut pada replika sebelum mengikuti langkah yang sama untuk aplikasi produksi Anda.

## Tahap 1: Persiapan
<a name="upgrade-guide-phase-1"></a>

**Perbarui kode aplikasi**

Perbarui kode aplikasi Anda agar kompatibel dengan Flink 2.2:
+ **Perbarui dependensi Flink** ke versi 2.2.0 di atau `pom.xml` `build.gradle`
+ **Perbarui dependensi konektor ke versi** yang kompatibel dengan Flink 2.2 (lihat) [Ketersediaan konektor](flink-2-2.md#flink-2-2-connectors)
+ **Hapus penggunaan API yang tidak digunakan lagi**:
  + Ganti DataSet API dengan DataStream API atau Tabel API/SQL
  + Ganti `SourceFunction` `SinkFunction` lawasan/dengan FLIP-27 Source dan FLIP-143 Sink APIs
  + Ganti penggunaan Scala API dengan Java API
+ **Perbarui ke Java 17**

**Unggah kode aplikasi yang diperbarui**
+ Bangun JAR aplikasi Anda dengan dependensi Flink 2.2
+ Unggah ke Amazon S3 dengan **nama file yang berbeda** dari JAR Anda saat ini (misalnya,) `my-app-flink-2.2.jar`
+ Perhatikan bucket dan kunci S3 untuk digunakan pada langkah upgrade

## Tahap 2: Aktifkan rollback otomatis
<a name="upgrade-guide-phase-2"></a>

Auto-rollback memungkinkan Amazon Managed Service untuk Apache Flink untuk secara otomatis kembali ke versi sebelumnya jika upgrade gagal.

**Periksa status rollback otomatis**

*Konsol Manajemen AWS:*

1. Arahkan ke aplikasi Anda

1. Pilih **Konfigurasi**

1. Di bawah **Pengaturan aplikasi**, verifikasi **Rollback sistem** diaktifkan

*AWS CLI:*

```
aws kinesisanalyticsv2 describe-application \
    --application-name MyApplication \
    --query 'ApplicationDetail.ApplicationConfigurationDescription.ApplicationSystemRollbackConfigurationDescription.RollbackEnabled'
```

**Aktifkan auto-rollback (jika tidak diaktifkan)**

```
aws kinesisanalyticsv2 update-application \
    --application-name MyApplication \
    --current-application-version-id <version-id> \
    --application-configuration-update '{
        "ApplicationSystemRollbackConfigurationUpdate": {
            "RollbackEnabledUpdate": true
        }
    }'
```

## Fase 3: Ambil snapshot (opsional)
<a name="upgrade-guide-phase-3"></a>

Jika snapshot otomatis diaktifkan untuk aplikasi Anda, Anda dapat melewati langkah ini, jika tidak, ambil snapshot aplikasi Anda untuk menyimpan status aplikasi Anda sebelum memutakhirkan.

**Ambil snapshot dari menjalankan aplikasi**

*Konsol Manajemen AWS:*

1. Arahkan ke aplikasi Anda

1. Pilih **Snapshots**

1. Pilih **Buat snapshot**

1. Masukkan nama snapshot (misalnya,`pre-flink-2.2-upgrade`)

1. Pilih **Buat**

*AWS CLI:*

```
aws kinesisanalyticsv2 create-application-snapshot \
    --application-name MyApplication \
    --snapshot-name pre-flink-2.2-upgrade
```

**Verifikasi pembuatan snapshot**

```
aws kinesisanalyticsv2 describe-application-snapshot \
    --application-name MyApplication \
    --snapshot-name pre-flink-2.2-upgrade
```

Tunggu sampai `SnapshotStatus` `READY` sebelum melanjutkan.

## Tahap 4: Tingkatkan aplikasi
<a name="upgrade-guide-phase-4"></a>

Anda dapat meningkatkan aplikasi Flink Anda dengan menggunakan [https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html)tindakan.

Anda dapat memanggil `UpdateApplication` API dengan berbagai cara:
+ **Gunakan Konsol Manajemen AWS.**
  + Buka halaman aplikasi Anda di file Konsol Manajemen AWS.
  + Pilih **Konfigurasikan**
  + Pilih runtime baru dan snapshot yang ingin Anda mulai, juga dikenal sebagai konfigurasi pemulihan. Gunakan pengaturan terbaru sebagai konfigurasi pemulihan untuk memulai aplikasi dari snapshot terbaru. Arahkan ke aplikasi baru yang ditingkatkan JAR/zip di Amazon S3.
+ **Gunakan AWS CLI[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kinesisanalyticsv2/update-application.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kinesisanalyticsv2/update-application.html)**tindakan.
+ **Gunakan CloudFormation.**
  + Perbarui `RuntimeEnvironment` bidang. Sebelumnya, CloudFormation menghapus aplikasi dan membuat yang baru, menyebabkan snapshot Anda dan riwayat aplikasi lainnya hilang. Sekarang CloudFormation perbarui `RuntimeEnvironment` tempat Anda dan tidak menghapus aplikasi Anda.
+ **Gunakan AWS SDK.**
  + Konsultasikan dokumentasi SDK untuk bahasa pemrograman pilihan Anda. Lihat [https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html).

Anda dapat melakukan pemutakhiran saat aplikasi dalam `RUNNING` keadaan atau saat aplikasi dihentikan dalam `READY` status. Amazon Managed Service untuk Apache Flink memvalidasi kompatibilitas antara versi runtime asli dan versi runtime target. Pemeriksaan kompatibilitas ini berjalan saat Anda melakukan `UpdateApplication` saat dalam `RUNNING` status atau berikutnya `StartApplication` jika Anda memutakhirkan saat dalam `READY` status.

**Tingkatkan dari status RUNNING**

```
aws kinesisanalyticsv2 update-application \
    --application-name MyApplication \
    --current-application-version-id <version-id> \
    --runtime-environment-update FLINK-2_2 \
    --application-configuration-update '{
        "ApplicationCodeConfigurationUpdate": {
            "CodeContentUpdate": {
                "S3ContentLocationUpdate": {
                    "FileKeyUpdate": "my-app-flink-2.2.jar"
                }
            }
        }
    }'
```

**Tingkatkan dari status READY**

```
aws kinesisanalyticsv2 update-application \
    --application-name MyApplication \
    --current-application-version-id <version-id> \
    --runtime-environment-update FLINK-2_2 \
    --application-configuration-update '{
        "ApplicationCodeConfigurationUpdate": {
            "CodeContentUpdate": {
                "S3ContentLocationUpdate": {
                    "FileKeyUpdate": "my-app-flink-2.2.jar"
                }
            }
        }
    }'
```

## Tahap 5: Memantau peningkatan
<a name="upgrade-guide-phase-5"></a>

**Pemeriksaan kompatibilitas**
+ Gunakan API Operasi untuk memeriksa status pemutakhiran. Jika ada ketidakcocokan biner atau masalah dengan startup pekerjaan, operasi pemutakhiran akan gagal dengan log.
+ Jika Operasi Upgrade telah berhasil tetapi aplikasi macet di loop restart, ini berarti status tidak kompatibel dengan versi Flink baru atau ada masalah dengan kode yang diperbarui. Tinjau [Panduan kompatibilitas status untuk peningkatan Flink 2.2](state-compatibility.md) tentang cara mengidentifikasi masalah ketidakcocokan negara.

**Pantau kesehatan aplikasi**

*Status aplikasi:*
+ Status aplikasi harus transisi: `RUNNING` → `UPDATING` → `RUNNING`
+ Periksa runtime aplikasi. Jika 2.2, operasi upgrade berhasil.
+ Jika aplikasi Anda dalam `RUNNING` tetapi masih pada runtime yang lebih lama, auto-rollback dimulai. Operasi API akan menampilkan operasi sebagai`FAILED`. Periksa log untuk menemukan pengecualian untuk kegagalan.

Selain itu, pantau metrik ini di CloudWatch:

*Mulai ulang metrik:*
+ `numRestarts`: Monitor untuk restart yang tidak terduga - upgrade berhasil `numRestarts` jika nol dan `uptime` atau `runningTime` meningkat.

*Metrik pos pemeriksaan:*
+ `lastCheckpointDuration`: Harus mirip dengan nilai pra-peningkatan
+ `numberOfFailedCheckpoints`: Harus tetap di 0

## Fase 6: Validasi perilaku aplikasi
<a name="upgrade-guide-phase-6"></a>

Setelah aplikasi berjalan di Flink 2.2:

**Validasi fungsional**
+ Verifikasi data sedang dibaca dari sumber
+ Verifikasi data sedang ditulis ke sink
+ Verifikasi logika bisnis menghasilkan hasil yang diharapkan
+ Bandingkan output dengan baseline pra-upgrade

**Validasi kinerja**
+ Pantau metrik latensi (waktu end-to-end pemrosesan)
+ Pantau metrik throughput (catatan per detik)
+ Pantau durasi dan ukuran pos pemeriksaan
+ Memantau memori dan pemanfaatan CPU

**Jalankan selama 24\$1 jam**

Biarkan aplikasi berjalan setidaknya selama 24 jam dalam produksi untuk memastikan:
+ Tidak ada kebocoran memori
+ Perilaku pos pemeriksaan yang stabil
+ Tidak ada restart yang tidak terduga
+ Throughput yang konsisten

## Fase 7: Prosedur rollback
<a name="upgrade-guide-phase-7"></a>

Jika pemutakhiran gagal atau aplikasi berjalan tetapi tidak sehat, putar kembali ke versi sebelumnya.

**Rollback otomatis**

Jika auto-rollback diaktifkan dan upgrade gagal selama startup, Amazon Managed Service untuk Apache Flink otomatis kembali ke versi sebelumnya.

**Rollback manual**

Jika aplikasi berjalan tetapi tidak sehat, gunakan `RollbackApplication` API:

*Konsol Manajemen AWS:*

1. Arahkan ke aplikasi Anda

1. Pilih **Tindakan** → **Gulung kembali**

1. Konfirmasikan rollback

*AWS CLI:*

```
aws kinesisanalyticsv2 rollback-application \
    --application-name MyApplication \
    --current-application-version-id <version-id>
```

**Apa yang terjadi selama rollback:**
+ Aplikasi berhenti
+ Runtime kembali ke versi Flink sebelumnya
+ Kode aplikasi kembali ke JAR sebelumnya
+ Aplikasi dimulai ulang dari snapshot terakhir yang berhasil diambil **sebelum peningkatan**

**penting**  
Anda tidak dapat memulihkan snapshot Flink 2.2 di Flink 1.x
Rollback menggunakan snapshot yang diambil sebelum upgrade
Selalu ambil snapshot sebelum meningkatkan (Fase 3)

## Langkah selanjutnya
<a name="upgrade-guide-next-steps"></a>

Untuk pertanyaan atau masalah selama upgrade, lihat [Memecahkan Masalah Layanan Terkelola untuk Apache Flink](troubleshooting.md) atau hubungi AWS Support.