מידע על Codelab זה
1. לפני שמתחילים
Google מספקת כלי מתקדם ליצירת תמונות, שבאמצעותו תוכל לבנות ולפרסם בקלות תמונה של מאגר אביזר עגינה עבור אפליקציות Java בכל זמן בלי Docker או Dockerfile. ב-Google Cloud תקבלו גם שרתים ללא שרת (CPC) עם קונטיינרים באמצעות Cloud Run – פלטפורמת מחשוב מנוהלת שמתאימה את גודל המאגרים באופן אוטומטי ללא מצב. במעבדה הזו, תוכלו לראות כמה קל לאחסן את אפליקציית Spring Botlin Kotlin, לפרסם אותה ב-Container Registry, ולהפעיל את התמונה ב-Google Cloud בצורה חלקה!
בשיעור הקוד הזה תלמדו איך להגדיר אפליקציה פשוטה ב-Cotlin, שממחישה איך משתמשים בשירותים ובכלים של Google Cloud, כולל Jib, Container Registry ו-Cloud Run.
דרישות מוקדמות
- היכרות עם השפה והתכנות של Java
- ידע בעורכי טקסט רגילים של Linux, כמו Vim , Emacs ו-nano
הפעולות שתבצעו:
- הגדרת אפליקציה של Spring Botlin ב-Spring.
- אפשר ליצור תמונת Docker אופטימלית.
- מפרסמים את התמונה ברישום מאגר התגים.
- מריצים את האפליקציה במאגר ב-Cloud Run.
מה תצטרך להכין
- פרויקט ב-Google Cloud
- דפדפן כמו Google Chrome
2. תהליך ההגדרה
הגדרת סביבה בקצב עצמי
- נכנסים ל-Cloud Console ויוצרים פרויקט חדש או משתמשים שוב בפרויקט קיים. (אם עדיין אין לכם חשבון Gmail או G Suite, עליכם ליצור חשבון).
חשוב לזכור את מזהה הפרויקט הוא שם ייחודי בכל הפרויקטים ב-Google Cloud (השם הקודם כבר תפוס, והוא לא יעבוד בשבילך.) נתייחס אליו מאוחר יותר ב-codelab הזה בתור PROJECT_ID
.
- לאחר מכן, עליך להפעיל חיוב ב-Cloud Console כדי להשתמש במשאבים של Google Cloud.
התהליך של קוד Lab זה לא אמור לעלות יותר מדולר אחד, אבל אם החלטתם להשתמש במשאבים נוספים או להשאיר אותם, ייתכן שהסכום יהיה גבוה יותר.
משתמשים חדשים ב-Google Cloud זכאים לתקופת ניסיון בחינם ב-1200 ש"ח.
Cloud Shell
Google Cloud יכול לפעול מרחוק מהמחשב הנייד שלכם, אבל במעבדה זו תשתמשו ב-Cloud Shell, סביבת שורת פקודה שפועלת ב-Google Cloud.
הפעלת Cloud Shell
- ב-Cloud Console, לוחצים על Activate Cloud Shell
.
אם אף פעם לא התחלת להשתמש ב-Cloud Shell, יוצג לך מסך ביניים (בחלק הנגלל) שמתאר את הבעיה. אם זה קורה, יש ללחוץ על המשך (ולא יוצג לך שוב). כך נראה המסך החד-פעמי הזה:
הוא ייקח רק כמה רגעים עד שההקצאה והחיבור ל-Cloud Shell.
המכונה הווירטואלית הזו נטענת באמצעות כל כלי הפיתוח הדרושים לך. יש בה ספריית בית בנפח עקבי של 5GB והיא פועלת ב-Google Cloud, וכך משפרת באופן משמעותי את הביצועים ואת האימות של הרשת. את רוב העבודה במעבדה זו אפשר לבצע, אם לא את כולם, באמצעות דפדפן או ה-Chromebook בלבד.
לאחר החיבור ל-Cloud Shell, אתם אמורים לראות שכבר בוצע אימות, ושהפרויקט כבר מוגדר כמזהה הפרויקט.
- מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שאתם מאומתים:
gcloud auth list
פלט הפקודה
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
פלט הפקודה
[core] project = <PROJECT_ID>
אם לא, אפשר להגדיר אותה באמצעות הפקודה הבאה:
gcloud config set project <PROJECT_ID>
פלט הפקודה
Updated property [core/project].
3. אתחול של אפליקציית Spring אתחול
- יצירה של אפליקציית Spring Boot חדשה באמצעות Spring אתחול.
$ curl https://start.spring.io/starter.tgz \ -d language=kotlin \ -d dependencies=web \ -d baseDir=kotlin-jib-cloud-run | tar -xzvf -
לתשומת ליבך, ה-Initializr יוסיף באופן אוטומטי את spring-boot-starter-web
לתלויות שלך ב-pom.xml
של אפליקציית התבנית.
- משנים את הספרייה של אפליקציית התבנית.
$ cd kotlin-jib-cloud-run
- בונים ומפעילים את האפליקציה באמצעות Maven.
$ ./mvnw -DskipTests spring-boot:run
- לאחר ההפעלה, האפליקציה תתחיל להאזין ליציאה 8080. לוחצים על תצוגה מקדימה באינטרנט
בסרגל הכלים של Cloud Shell ובוחרים באפשרות תצוגה מקדימה ביציאה 8080 כדי לגשת לאפליקציה.
- אתם אמורים לקבל תשובה מסוג 404 כי האפליקציה עדיין לא עוזרת. הפסקת האפליקציה עם
Control+C
.
4. הוספת בקר אינטרנט
- צריך ליצור את המחלקה הבאה (
Controller
) בחבילת ההדגמה:
$ vi src/main/kotlin/com/example/demo/Controller.kt or $ nano src/main/kotlin/com/example/demo/Controller.kt
src/main/kotlin/com/example/demo/Controller.kt
package com.example.demo
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
@RestController
class Controller {
@GetMapping("/")
fun saySomething(): String {
return "Kotlin app on Cloud Run, containerized by Jib!"
}
}
- בונים מחדש את האפליקציה ומפעילים אותה.
$ ./mvnw spring-boot:run
- בודקים שוב את האפליקציה באמצעות התצוגה המקדימה באינטרנט
. הפעם אמורה להופיע ההודעה "
Kotlin app on Cloud Run, containerized by Jib!
". יש להפסיק את השימוש באפליקציה עםControl+C
.
5. יש לכלול את האפליקציה שלך במאגר ולפרסם אותה במאגר התגים
באמצעות Jib, ניתן להגדיר קונטיינר של האפליקציה ולכלול אותה בצורה אופטימלית בלי תחנת עגינה, ולפרסם אותה בכל מרשם במאגרים.
- לפני שממשיכים, צריך להפעיל את ה-Container Registry API. יש לעשות זאת רק פעם אחת לכל פרויקט כדי לאפשר גישה ל-API.
$ gcloud services enable containerregistry.googleapis.com
- מריצים את Jib כדי ליצור תמונת Docker ולפרסם אותה במאגר התגים.
$ ./mvnw com.google.cloud.tools:jib-maven-plugin:1.8.0:build \ -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/kotlin-jib-cloud-run
בסופו של דבר, תופיע ההודעה הבאה על כך שהאפליקציה מכילה קונטיינר ונדחפת למרשם המאגרים שלך.
[INFO] Built and pushed image as gcr.io/PROJECT_ID/kotlin-jib-cloud-run ... [INFO] BUILD SUCCESS
אם מופיעה הודעת שגיאה, צריך לבדוק שוב אם ההגדרה של $GOOGLE_CLOUD_PROJECT
נכונה למזהה הפרויקט שלך ב-Google Cloud (PROJECT_ID
).
- לפני שממשיכים, כדאי לבדוק אם התמונה פורסמה בהצלחה. חוזרים אל Cloud Console, לוחצים על Navigation menu
ובוחרים באפשרות Container Registry.
לאחר מכן תראו שהתמונה פורסמה בהצלחה.
6. הפעלת האפליקציה המוכלת ב-Cloud Run
ב-Cloud Run, אתם יכולים לבצע אוטומציה של שרת הקונטיינרים ללא הגבלה ואז להגדיר התאמה אוטומטית של מאגרי התגים שלכם ללא מצב.
- לוחצים שוב על תפריט הניווט
ובוחרים באפשרות Cloud Run.
אם זו הפעם הראשונה שאתם ניגשים אל Cloud Run, תופיע תיבת הדו-שיח הבאה להגדרה חד-פעמית. לוחצים על התחלת השימוש ב-Cloud Run אם היא מופיעה.
- בדף Cloud Run, לוחצים על Create Service (יצירת שירות).
- במסך הבא, לוחצים על בחירה בקטע מקור. המקור הוא התמונה שרוצים להריץ ב-Cloud Run.
- בתיבת הדו-שיח תוצג התמונה שיצרתם בעבר. בוחרים את התמונה ולוחצים על המשך.
- נותרו עוד מספר קליקים להגדרת האפליקציה. בקטע פלטפורמת פריסה, בוחרים באפשרות Cloud Run (מנוהל) כדי שהשירות יופעל ב-Google Cloud באופן מלא. בוחרים אזור שמתאים למיקום שלכם, בוחרים באפשרות הפעלת הפעלות לא מאומתות ולוחצים על יצירה. זהו!
לאחר שפרוסים את התמונה במלואה, בדף Cloud Run תוצג כתובת URL לגישה לאפליקציה. רוצה לנסות?
בסופו של דבר תוצג ההודעה הצפויה מהאפליקציה.
Kotlin app on Cloud Run, containerized by Jib!
זהו! בעתיד, אם תרצו לפרוס גרסאות חדשות של אפליקציות, תוכלו לעשות זאת על ידי לחיצה על פריסת גרסה חדשה בדף.
7. הסרת עותקים כפולים
- כדי לנקות את הסביבה, עליכם למחוק את האפליקציה שנפרסה ב-Cloud Run ואת התמונה שפורסמה ברישום של מאגר התגים. עוברים אל Cloud Run, בוחרים את האפליקציה ולוחצים על מחיקה.
- באופן דומה, עוברים אל דף הרישום של מאגר תגים ומוחקים את התמונה.
8. מזל טוב
מעולה! יצרתם בהצלחה את האפליקציה Spring Bot Kotlin ופרסתם אותה ב-Cloud Run!
באמצעות Jib, בניתם תמונה של מאגר שעברה אופטימיזציה בלי להתקין את Dockerfile או כתבתם קובץ Dockerfile ופרסמתם אותו ב-Container Registry. Jib מבצעת אופטימיזציה של בניית תמונות, כך שכל מי שאינו ללא ידע מעמיק ב-Docker יוכל לחבר אפליקציות Java במהירות וביעילות. לאחר מכן, בכמה קליקים, פרסתם את האפליקציה ב-Cloud Run כדי להתחיל להציג מודעות תוך זמן קצר.
מידע נוסף
- פריסת אפליקציית Java ב-Kubernetes ב-Google Kubernetes Engine
- תיעוד של Cloud Run
- סקירה כללית של Cloud Run
- היכרות עם Jib – יצירת תמונות טובות יותר ב-Java Docker
- יצירת מאגרים מהר יותר באמצעות Jib – כלי של Google לבניית תמונות לאפליקציות Java
- Jib – הכנה של אפליקציית Java
- ערוץ ג'יבר גיטר
- רשימת תפוצה של משתמשים ב-Jibe