Tentang container sistem Linux

Migrate to Containers CLI memungkinkan Anda memigrasikan aplikasi berbasis Linux ke lingkungan container. Container ini menggunakan container sistem Linux bawaan yang berfungsi sebagai bootloader untuk layanan yang diperlukan oleh aplikasi yang dimodernisasi. Dengan menggunakan Migrate to Containers untuk aplikasi Linux, Anda dapat memodernisasi berbagai aplikasi stateless untuk dijalankan di Google Kubernetes Engine (GKE), Cloud Run, dan cluster GKE.

Untuk informasi selengkapnya, lihat Arsitektur Migrate to Containers CLI.

Dokumen ini memberikan detail tentang container sistem Linux Migrate to Containers yang digunakan sebagai bagian dari solusi untuk menjalankan aplikasi yang dimigrasikan menggunakan Migrate to Containers.

Migrasi menggunakan penampung sistem Linux

Migrate to Containers menemukan file dan proses aplikasi sumber. Kemudian, alat ini akan menghasilkan artefak yang mencakup Dockerfile, manifes Kubernetes, dan konfigurasi Skaffold.

Fungsi utama penampung sistem Linux adalah untuk memulai layanan yang awalnya dijalankan di instance virtual machine (VM) sumber, termasuk layanan aplikasi dan sistem operasi yang relevan.

Dockerfile digunakan untuk mem-build image untuk VM yang dimigrasikan. Dockerfile penampung sistem Linux biasanya terlihat mirip dengan berikut:

# Please refer to the documentation:
# https://cloud.google.com/migrate/anthos/docs/dockerfile-reference

FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.0 as service-manager-runtime

FROM scratch

# Tar containing data captured from the source VM
ADD vmFiles.tar.gz /

COPY --from=service-manager-runtime / /

ADD blocklist.yaml /.m4a/blocklist.yaml

ADD logs.yaml /code/config/logs/logsArtifact.yaml

ADD services-config.yaml /.m4a/

ADD tempfiles.yaml  /.m4a/

# If you want to update parts of the image, add your commands here.
# For example:
# RUN apt-get update
# RUN apt-get install -y \
#       package1=version \
#       package2=version \
#       package3=version
# RUN yum update
# RUN wget http://github.com

ENTRYPOINT ["/ko-app/service-manager-runtime", "start", "-c", "/.m4a/"]

Saat Anda menjalankan migrasi, pernyataan Dockerfile berikut akan menyalin atau menambahkan data VM dari sumber asli ke image Docker:

  • Pernyataan berikut menambahkan file tar yang berisi data yang diambil dari VM sumber ke image Docker:

    ADD vmFiles.tar.gz /
    

    Tar ini dibuat oleh Migrate to Containers. File ini berisi sistem file root VM sumber dengan semua yang disediakan dalam filter dalam rencana migrasi dan folder apa pun yang disediakan dalam rencana migrasi data yang difilter.

  • Pernyataan berikut mengimpor runtime Migrate to Containers dari repositori Docker ke dalam image Docker:

    FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.0 as service-manager-runtime
    
  • Pernyataan berikut kemudian menyalin runtime Migrate to Containers ke dalam image Docker:

    COPY --from=service-manager-runtime / /
    

Klik untuk melihat detail tentang file runtime Migrate to Containers

/ko-app/service-manager-runtime adalah file runtime Migrate to Containers utama. Ini adalah sistem inisialisasi yang dibuat untuk penampung. Metode ini melakukan hal berikut:

  • Membaca file /.m4a/services-config.yaml, dan menjalankan biner yang ditentukan secara berurutan sesuai dengan metode run yang ditentukan seperti daemonize, not daemonize, wait for finish.
  • Mengumpulkan log yang ditentukan dalam file /code/config/logs/logsArtifact.yaml dan mencetaknya ke stdout penampung. Untuk cluster GKE dan GKE, tindakan ini juga memastikan bahwa log dikirim ke Cloud Logging.

Pemeliharaan workload yang dimigrasikan

Anda dapat membuat pipeline baru untuk aplikasi dari artefak yang dimigrasikan. Anda mungkin memiliki pipeline yang berbeda untuk aplikasi yang berbeda. Anda dapat mempertahankan pipeline integrasi berkelanjutan dan deployment yang ada yang menghasilkan aplikasi berbasis VM asli, dan menambahkan langkah-langkah yang relevan yang mengubah file yang dapat dieksekusi yang dihasilkan menjadi penampung sistem Linux.

Diagram berikut mengilustrasikan contoh pipeline menggunakan Migrate to Containers:

Alur CI/CD otomatis untuk replatforming aplikasi menggunakan Migrate to Containers

Diagram ini menunjukkan proses perubahan aplikasi yang ada.

Perubahan pada kode sumber atau jalur OS baru akan didorong ke repositori Git yang ada. Sumber dikompilasi berdasarkan penyiapan yang ada dan image baru di-build. Image baru menyertakan lapisan runtime Migrate to Containers.

Di lingkungan pengujian, developer menjalankan pengujian awal untuk mengonfirmasi apakah image baru berfungsi seperti yang diharapkan. Setelah fase pengujian, image penampung sistem baru akan dibuat dan dikirim ke lingkungan pengembangan atau pengujian, yang nantinya akan diluncurkan ke produksi.