מארכיטקטורה מונוליטית לארכיטקטורה מבוססת קונטיינרים – תחזוקת אפליקציות
Giuseppe Gangemi, ספק עולמי של מחברים ופתרונות הרכבה, ביקש לשפר את יכולת ההתרחבות של אפליקציית GlassCad שלו ולהפחית עלויות תשתית. שיפרנו את הביצועים והאבטחה של האפליקציה על ידי יישום קונטיינרים, auto-scaling ושירותי AWS נבחרים. השתמשנו גם ב-Terraform כדי לייעל את ניהול התשתית ולהקל על פריסה בסביבות שונות.
שירותים
טכנולוגיות
אודות הלקוח
FREEDOM Giuseppe Gangemi הוא ספק עולמי של מחברים ופתרונות הרכבה. החברה מתמחה במתן שירותים הקשורים לתעשיות ייצור ועיבוד הזכוכית. GlassCad היא אפליקציה שנוצרה כדי לסייע ללקוחות בתכנון ובעיצוב של חללי זכוכית. היא מאפשרת אופטימיזציה של תהליך ההזמנה ושיפור בחיתוך ובעיבוד של זכוכית. התוכנה מנצלת אלגוריתמים מתקדמים וטכנולוגיית CAD כדי לייצר תוכניות חיתוך יעילות. הדבר ממזער פסולת וממקסם את ניצול החומר תוך הקפדה מתקדמת על בחירה אופטימלית של אביזרים וחומרי עזר.
תחזוקת אפליקציות – מטרות הפרויקט
המטרות העיקריות של הפרויקט היו:
- העברת אפליקציית AWS מאזור 'eu-central-1' לאזור 'eu-west-1'
- העברת האפליקציה מארכיטקטורה מונוליטית לארכיטקטורה מבוססת קונטיינרים
- שפרו את היכולת להתרחב ואת הזמינות של האפליקציה
- הפחתת עלויות תשתית
- הקמת סביבות פיתוח, בדיקה (staging) וייצור
- יישום רשת הפצת תוכן (CDN) לשיפור הביצועים והפחתת השהיה
- הטמעת פתרון מסד נתונים מנוהל עבור האפליקציה
- הטמעת AWS Secrets Manager לאחסון ושליפה מאובטחים של נתוני אפליקציה רגישים
- יישום AWS Certificate Manager לניהול תעודות SSL/TLS עבור האפליקציה
arrow_circle_right המלצת לקוח
מה אומרים עלינו
שלבי הפרויקט
- תכנון ועיצוב
השלב הראשון היה לתכנן את ההעברה ולעצב את הארכיטקטורה החדשה. זה כלל ניתוח של האפליקציה הקיימת, זיהוי רכיבים שניתן להעביר לקונטיינרים ויצירת התשתית החדשה ב-AWS. הצוות החליט להשתמש ב-Amazon Elastic Container Service (ECS) לניהול הקונטיינרים, ב-Amazon CloudFront כ-CDN לשיפור הביצועים והפחתת השהיה, וב-Amazon Relational Database Service (RDS) כפתרון מסד נתונים מנוהל עבור האפליקציה. הם גם החליטו ליישם את AWS Secrets Manager לאחסון ושליפה מאובטחים של נתוני אפליקציה רגישים ואת AWS Certificate Manager לניהול תעודות SSL/TLS עבור האפליקציה.
- קונטיינריזציה של האפליקציה
המשימה הבאה הייתה להעביר את היישום לקונטיינרים. הדבר כלל פירוק היישום המונוליטי לרכיבים קטנים יותר שניתן לנהל ולהרחיב באופן עצמאי. הצוות השתמש ב-Docker כדי להעביר את רכיבי היישום לקונטיינרים ויצר אימג'ים לכל רכיב כך שניתן יהיה לאחסן אותם ב-Amazon Elastic Container Registry (ECR).
- בניית התשתית החדשה עם Terraform
כשהקונטיינרים היו מוכנים, הצוות החל לבנות את התשתית החדשה ב-AWS באמצעות Terraform. יצרנו מודולי Terraform נפרדים עבור סביבות הפיתוח, ה-Staging והייצור, כל אחד עם VPCs, תת-רשתות, מאזני עומסים, קבוצות סקיילינג אוטומטי, אשכולות ECS ומופעי RDS משלו.
- יישום Amazon CloudFront
לאחר שהתשתית החדשה הייתה במקום, יישמנו את Amazon CloudFront כ-CDN כדי לשפר ביצועים ולהפחית השהיה. יצרנו גם הפצת CloudFront עבור כל סביבה והגדרנו אותה לשמור במטמון תוכן שנגיש לעתים קרובות, כגון תמונות וקבצים סטטיים.
- יישום Amazon RDS
השלב הבא היה יישום Amazon RDS כפתרון מסד נתונים מנוהל עבור האפליקציה. יצרנו מופעי RDS לכל סביבה והגדרנו את מסדי הנתונים להשתמש ב-Amazon Aurora, שהוא מנוע מסד נתונים בעל זמינות גבוהה ויכולת הרחבה. בשל כך, הצוות שלנו גם הגדיר את קבוצות האבטחה ובקרות הגישה כדי להבטיח שמסדי הנתונים מאובטחים.
- יישום AWS Secrets Manager
לאחר מכן הצוות יישם את AWS Secrets Manager. כתוצאה מכך, הדבר אפשר לנו לאחסן ולאחזר באופן מאובטח נתוני אפליקציה רגישים כגון פרטי התחברות למסדי נתונים, מפתחות API וסודות אחרים. נעשה שימוש ב-AWS SDK לגישה פרוגרמטית לסודות מהאפליקציה ויושמו בקרות גישה מפורטות כדי להבטיח שרק משתמשים מורשים יוכלו לגשת לסודות.
- יישום AWS Certificate Manager
AWS Certificate Manager הוצג לניהול תעודות SSL/TLS עבור האפליקציה. השתמשנו ב-ACM כדי ליצור תעודות SSL/TLS עבור כל סביבה והגדרנו את מאזני העומס ושירותי ECS להשתמש בתעודות לתקשורת מאובטחת עם האפליקציה.
- העברת היישום
לאחר שהתשתית החדשה, ה-CDN, מסדי הנתונים, Secrets Manager ו-Certificate Manager היו במקומם, הגיע הזמן להתחיל בהעברת האפליקציה מהתשתית הישנה לחדשה. השתמשנו באסטרטגיית פריסה מתגלגלת (rolling deployment) כדי לפרוס בהדרגה את הקונטיינרים החדשים ולאמת את תפקוד האפליקציה לאחר כל פריסה. כמו כן, AWS CloudWatch סייע לניטור הביצועים והזמינות של האפליקציה, ויישמנו auto-scaling כדי להבטיח שהאפליקציה תוכל להתמודד עם עומס תעבורה מוגבר.
- בדיקות ואימות
לאחר השלמת המעבר, הצוות שלנו ביצע בדיקות ואימות מקיפים. היה צורך להבטיח שהאפליקציה פועלת כראוי בסביבה החדשה. לכן ביצענו גם בדיקות עומס מקיפות כדי לאמת את יכולתה של האפליקציה להתמודד עם נפח התעבורה והעומס הצפויים.
תהליך

תוצאות
השלמנו בהצלחה את פרויקט תחזוקת האפליקציה, והתשתית החדשה עמדה ביעדים של שיפור יכולת ההרחבה, הזמינות והפחתת עלויות התשתית. השימוש בקונטיינרים ובהרחבה אוטומטית אפשר לאפליקציה להתמודד עם עלייה בתעבורה ובעומס, בעוד שהשימוש ב-AWS Secrets Manager וב-Certificate Manager סייע גם לשפר את אבטחת האפליקציה. הטמעת AWS CloudFront גם שיפרה את ביצועי האפליקציה והפחיתה את זמן ההשהיה למשתמש. לבסוף, השימוש ב-Terraform אפשר ניהול ופריסה קלים של התשתית בסביבות מרובות, ופישט את השליטה בכל מכלול האפליקציה, מה שסיפק את הצורך של מר Gangemi בתהליך שכפול יעיל.
arrow_circle_right העבודה שלנו
צפו בסיפורי הצלחה נוספים של לקוחותינו
arrow_circle_rightצור קשר