צרו קשר תנו פידבק

האתגרים בשיפור ביצועי אפליקציות ויצירת תשתית דינאמית

האתגרים בשיפור ביצועי אפליקציות ויצירת תשתית דינאמית

22.03.2022
4 min
Tomer Kopel, Systems Architect, Cisco Israel
האתגרים בשיפור ביצועי אפליקציות ויצירת תשתית דינאמית

כל דאטה-סנטר נבנה על מנת לשרת את האפליקציה ולספק לה את כל צרכיה, כדי שתוכל לספק שירותים עבור הארגון ועבור לקוחותיו. האפליקציה הפכה בשנים האחרונות להיות יצור דינאמי היודע להשתנות באופן אוטונומי ובקצב מהיר לפי דרישה. האם הארגון שלנו מאפשר מרחב מחייה דינאמי ומאובטח לאפליקציה המודרנית?

האפליקציה, או במילים אחרות שירות, היא ליבו הפועם של הארגון – משמע תקלה, איטיות, או חס וחלילה חוסר זמינות, עשויות להשפיע באופן ישיר והרסני על הארגון. ההשפעה יכולה להיות תצורה של פגיעה במוניטין החברה, נטישת לקוחות, פגיעה כלכלית, ובמקרים רבים גם סגירת החברה.  ולכן, מאז ומעולם תשתיות נבנו בצורה אשר תבטיח 100% זמינות לשירות. בעבר נדרשנו לתכנן את התשתיות בצורה שתאפשר זמינות מקסימאלית זו. נדרשנו להפגין ידע בפרוטוקולים ותקנים שכל תפקידם לייצר תשתית שרידה דיה שתוכל להגיב לכל אסון פוטנציאלי.

מנגד, האפליקציה המודרנית מפותחת בהתאמה במתודולוגיות פיתוח דינאמיות (Agile Software Development) מבוססות על ״מיקרו-שירותים״ (Microservices). מתודולוגיות אלו הן הגורם המאפשר את דינאמיות האפליקציה – הן מאפשרות למפתחים להפיץ שדרוגי גירסא באופן מהיר ובטוח. הן אלו המאפשרות להכניס שינויים בהתאם לדרישות הלקוח. הן הגורם המאפשר לאפליקציה להיות דינאמית ולשנות את מרכיביה על-פי דרישה באופן אוטונומי. הן אלו המבטיחות את ריצתה התקינה של האפליקציה 24/7. הן אלו היודעות לנצל את התשתיות באופן אידאלי ובתצורה החסכונית ביותר.

זמינות ודינאמיות, לרב אינן הולכות יחד. התפיסה הרווחת היא כי על מנת להשיג 100% זמינות, נדרשת תשתית סטטית, כזו שאינה יודעת לספק מענה לצרכים המודרניים של האפליקציה.  על כן, נדרשת חשיבה מחודשת ונקיטה של גישות מודרניות מתקדמות בעולם התשתיות (פיזיות, וירטואליות, ב On-Prem וכמובן גם בענן).

xOps (DevOps, SecOps, NetOps, CloudOps, …)

בעוד שאנשי הפיתוח עושים צעדים משמעותיים ומהירים באימוץ של גישות פיתוח חדשות, התשתיות נותרו מסורתיות וסטטיות במובנים רבים. עובדה זו השפיעה באופן דרסטי על המפתח, ועל יכולתו להיות דינאמי כמתבקש. וכך יותר ויותר ארגונים מאמצים מודלי DevOps המאפשרים האצה של תהליכי הפיתוח תוך ניתוק צוואר הבקבוק המוכר על אנשי התשתית. מודלים אלו מחייבים קשירה בין תהליכי הפיתוח לבין התשתית. כך למשל מתבקש כי כל שינוי באפליקציה המצריך שינוי תשתיתי יתבצע באופן אוטומטי.

קשירה זו ניתן לבצע במגוון רחב של דרכים וכלים. אחת הגישות הנפוצות מאפשרת המרה של קונפיגורציה תשתיתית לקוד. במילים אחרות ביצוע הגדרות ושינויים בתשתית באופן תכנותי,  ומכאן שמה – Infrastructure as Code או בקיצור IaC. בדרך זו, בדומה לניהול גרסאות של אפליקציה, ניתן לבצע שינויים בתשתיות, לבצע ״חזרה-לאחור״ במקרה של תקלה, לבצע השוואה בין שתי גרסאות מצב, וכמובן עוד שירותים רבים נוספים.

אחד הפתרונות הדומיננטיים כיום בשוק הינו HashiCorp Terraform. זהו פתרון ״קוד פתוח״ (Open Source) מקיף לבנייה, הגדרה, תחזוקה, וניהול התשתיות באופן בטוח ויעיל. הפתרון מבוסס על צריכה של ״ספקים״ (Providers). תפקידו של ה Provider הוא לבצע את התרגום הנדרש בין ההגדרות של הרכיב לקוד. קיימים מאות Providers בקהילה עבור מרבית השירותים הפופולאריים השונים החל בניהול שרתים פיזיים, אחסון, רשת ועד לניהול של שירותי ענן. SaaS (Software as a Service), IaaS(Intrastrature as a Service) וכו׳.

חברת סיסקו ממנפת שיתוף פעולה בינה לבין HashiCorp לכתיבה, ניהול ותחזוקה משותפת של Providers שונים עבור מוצריה. כך למשל בעזרת שימוש ב ACI (Application Centric Infrastructure) Provider  ניתן להתקין, להגדיר ולבצע תחזוקה שוטפת של תשתית ACI הכולל את הדאטה-סנטר הפנימי, הWAN, ועד לענן ציבורי.

בעזרת כלים אלו, ניתן לבצע שילוב פשוט, מהיר ומאובטח של שינויים והגדרות תשתית אל תוך תהליכי הפיתוח. בדרך זו ניתן לתפעל ולתחזק תשתית גמישה ודינאמית המאמצת שינויים ומטמיעה דרישות בהתאם לצורך העסקי במהירות וביעילות.

העידן המעונן

זה כבר למעלה מעשור שארגונים רבים נוהרים אל עבר הענן. אותה פלטפורמה דינאמית, מודרנית, זמינה בכל מקום על פני הגלובוס, מכילה מגוון אינסופי של כלי פיתוח, אוטומציה ואופטימיזציה של השירות, ולמעשה על פניו נתפסה כפתרון הבלעדי לדרישות המודרניות של האפליקציה. האומנם?

בבואו של ארגון לבצע מעבר או התרחבות לענן מתגלים אתגרים אשר הארגון נדרש לתת להם מענה:

  • כיצד אוכל לבצע חיבור מאובטח בין הדאטה-סנטר המקומי אל הענן?
  • איך אוכל להבטיח את ריצתה התקינה של אפליקציה בשלב המעבר לענן?
  • האם אוכל לנהל ממקום אחד מרכזי את חוות השרתים ב- on-prem ובענן?
  • האם יש דרך לממש מדיניות אבטחה באופן אחיד ללא תלות במיקום השרת?
  • כיצד אוכל לתפעל תקלות בסביבה שאיני שולט עליה קצה לקצה?
  • עד כמה פיתוח האפליקציה שלי מקושר לאלמנטים של ספק הענן אשר ימנעו ממני לעבור או להתרחב לספק ענן נוסף?

אתגרים רבים אלו מצריכים גישה אגנוסטית וגמישה הן לספקי הענן והן לשירותיו. זהו שירות Cisco Cloud Application Centric Infrastructure עבור סביבות מרובות עננים. הפתרון ממנף שימוש ב APIs של ספקי הענן השונים לתוך ממשק יחיד, המאפשר ניהול מרכזי על גבי כל ספקי הענן. בדרך זו ניתן לנטר, להגדיר, לתפעל תקלות באופן חוצה regions, sites, אפליקציות, שירותים וכמובן האובייקטים השונים לכל ספק וספק.

במקביל, ארגונים מתמודדים עם מורכבות אדירה בניהול משאבים ב-Scale גדול, ושמירה על יציבות, פשטות ואופטימיזציה של שירותים קיימים ומתרחבים. הגישה המשולבת של סיסקו עבור Multicloud יכולה לספק מסגרת מדיניות אחת להגדרת יישומים בצורה חוצת צוותים או מיקומים גאוגרפים, תחת שליטה על השרתים עצמם (Workloads), מערכות המחשוב, האבטחה והתשתית הרשתית.

It's all about experience

חשבתם פעם כמה זמן לוקח לכם לבחור באפליקציה אחת על פני אחרת?  האם פעם הסרתם אפליקציה בגלל פשוט שלא עבדה מספיק מהר? כמה הזדמנויות אתם נותנים לשירות עד שאתם מחליטים לנטוש אותו?

זה בדיוק הזמן לדבר על הצד השני של המשוואה – הצורך העסקי – המטרה של האפליקציה – השירות עצמו שהארגון מספק. עד כמה אנשי תשתיות מחוברים לצורך העסקי? לא מספיק.

נניח ומשתמשים של ארגון מתלוננים על זמן טעינה ארוך לאחר ביצוע פעולת ה Login. לכולנו מוכרת הסיטואציה בה אנשי התשתיות והאפליקציה אינם מסכימים על מקור האיטיות. וככל שלארגון תשתיות דאטה-סנטר גדולות ומבוזרות יותר (אפילו על פני מספר עננים ציבורים), המשימה הופכת להיות קשה עוד יותר. כשמסתכלים על חווית משתמש דיגיטאלית, עליינו לקחת בחשבון שלושה פרמטרים:

  1. ביצועי אפליקציות – על האפליקציה לעבוד באופן יעיל, ולספק את השירות ללא כל תלות בכמות המשתמשים הצורכים אותו ברגע נתון
  2. אופטימיזציה – על התשתית לאמץ שינויים באופן דינאמי בהתאם לדרישת האפליקציה והצרכים העסקיים
  3. אבטחת מידע – יכולת לזהות ולחסום חולשות הן בproduction כמו גם בתוך תהליכי הפיתוח, תוך יצירה של שפה משותפת בין המפתחים לאנשי אבטחת המידע

הגישה של סיסקו מספקת ללקוחות שלנו יכולת ניטור קונטקסטואלית מתקדמת, ניהול משאבים ואופטימיזציה של עלויות, בקרת ביצועי אפליקציות ואבטחת מידע, וכך קושרת ביחד את התשתית לאפליקציה באופן החוצה את כל הצוותים בארגון. בעוד שבשוק קיימים מגוון פתרונות לעולמות תוכן ספציפיים, גישת Full-Stack Observability של סיסקו חוצה את כל ה-Stack בארגון החל בתשתיות, דרך קווי ה WAN וספקי הענן, ועד לשכבת האפליקציה עצמה. הגישה מספקת תובנות עסקיות עם צעדים אותם ניתן ליישם בפשטות על מנת לשפר את חווית הלקוח הדיגיטאלית.

לסיכום, סיסקו משקיעה רבות בפיתוח חומרה ותוכנה אשר יוכלו לספק מענה למירב הצרכים של האפליקציה המודרנית. פתיחות המערכות (open APIs), האינטגרציה ביניהם, שיתופי הפעולה העסקיים של סיסקו עם החברות הגדולות בתחום מאפשר לנו לספק ללקוחות שלנו יכולות של ניהול תשתיות, אוטומציה, אינטגרציה, זיהוי תקלות, זיהוי פרצות אבטחה, ניטור אפליקטיבי דרך כל השכבות וצוותי העבודה – החל בתשתיות הפיזיות ועד לקוד המממש את השירות.

תתחילו להגדיל את העסק שלכם יחד איתנו
מוזמנים לפנות אלינו בכל שאלה, בקשה ועניין, אנו נחזור אליכם בהקדם