הפרויקט הראשון של Spyrosoft: GeoPlace
מטה GeoPlace ממוקם בלונדון, והחברה מעבדת ומספקת נתוני GeoLocation. המשימה העיקרית שלנו בפרויקט זה הייתה לפתח ולשתף API שיהיה מתאים לניהול נתונים הקשורים לרחובות ולכתובות בממלכה המאוחדת.
פונקציונליות עיקריות ו- נוסף מטרות
הפונקציונליות העיקרית של המערכת התרכזה בהורדת קבצי לוקליזציה מסוימים ממקורות שונים (כולל תיבות דואר אלקטרוני ו-FTP), התאמת קבצים אלה כך שיתאימו לפורמטים מסוימים ואז שליחתם למסדי נתונים שבהם הם יאומתו. כשלב הבא, ניתן להנגיש את הנתונים לשותפים חיצוניים של הלקוח באמצעות נקודות קצה (endpoints). כך משתמשת כיום Ordnance Survey בבריטניה במידע.
בנוסף למטרה העיקרית הזו של יצירת API נגיש ואמין, הבודקים שלנו קיבלו גם את המשימה להכשיר את צוות הבודקים של הלקוח ב-Agile ולהוביל אותם דרך מערך שיטות העבודה המומלצות בנוגע לסוג הבעיות שיש לחפש, כיצד להתפתח כמומחי QA וכיצד ליצור תוכנית QA.
בודקי Spyrosoft הכינו גם מסגרת בדיקות באמצעות כלי הבדיקה Cucumber הכתוב ב-Java, וכן דוחות בדיקה הנוצרים באופן אוטומטי בעת הפעלת משימה חדשה ב-Jenkins, שרת אוטומציה בקוד פתוח.
אחד האתגרים הנרחבים ביותר בפרויקט זה בכל הנוגע לבדיקות היה הגודל והמורכבות של הפרוצדורות שאוחסנו במסדי הנתונים וה-SQL-ים המורכבים לבדיקת הנתונים. בהתחשב במגבלות אלה, הבודקים שלנו החליטו להשתמש בכלי נוסף ליצירת בדיקות יחידה של מסד הנתונים כדי לאמת את הנתונים בצורה יעילה יותר. הייחודיות של פתרון זה טמונה בעובדה שהנתונים התקבלו ממספר מקורות בו-זמנית והיה צורך לעבד אותם באופן אסינכרוני.
גלו את שירותי הגאומרחב שלנו!
קרא עודכיצד נוצר פרויקט Aurora?
הצוות ב-GeoPlace נזקק לדרך יעילה יותר לניהול נתוני המיקום הגיאוגרפי שלהם והחליט לשכור צוות פיתוח חיצוני שיוכל ליצור API אמין עבור ספקי צד שלישי, כך שיהיה להם מסד נתונים תמיד מעודכן של רחובות וכתובות. כשלב ראשון, המפתחים שלנו יצרו תוכנית לפתרון המלא ול-MVP שלו, ולאחר מכן הוסיפו לו פונקציונליות חדשה.
צוות GeoPlace היה אחראי לחלוטין על אימות הנתונים שנוספו למסד הנתונים. הם גם עבדו עם מומחי מסדי נתונים מנוסים וניהלו את הלוגיקה העסקית של המוצר, שהייתה קשורה ישירות למסדי הנתונים. עבור פרויקט זה היה חשוב במיוחד לאחד מקורות נתונים שונים שנמסרו גם בפורמטים שונים, כולל XML ו-CSV. לפני שהתחלנו להקים את המערכת, קבצים אלו היו צריכים להיות מנוהלים ידנית על ידי צוות GeoPlace.
הפתרון
אחד השיפורים הראשונים שצוותנו יישם היה הכנסת זרימת עבודה של Agile ו-Scrum לשאר צוותי הפרויקט. כתוצאה מכך, הצוות נפגש במהלך תקצירים קצרים מדי יום (daily scrums) ובסקירות (retrospectives) לאחר כל ספרינט (תקופה של שבועיים שבה כל חברי הצוות עבדו על איטרציה חדשה של המוצר). כדי לאפשר זאת, שיתפנו פעולה באופן הדוק מאוד עם צוות GeoPlace, הראינו להם כיצד מתודולוגיה זו פועלת בפועל, וקיימנו הדרכות Agile לאורך 4 החודשים הראשונים של עבודתנו ממטה החברה שלהם בלונדון. היינו גם התוספות הראשונות במיקור חוץ לצוות הפרויקט, כלומר שהמפתחים שלנו היו שותפים מלאים לארגון תהליכים חדשים ולהתאמת זרימת העבודה כך שתתאים למבנה החדש הזה.
הצוות שלנו היה מעורב גם בפיתוח המוצר, בתכנון תכונות נוספות והטכנולוגיות שישמשו בתהליך. היישום בוצע על ידי הצוות שלנו, למעט מסדי הנתונים. שני ארכיטקטי מערכות היו אחראים על הפרויקט – אחד מצוות GeoPlace ואחד מ-Spyrosoft.
ללקוח היה סביבת פריסה ותשתית משלו. המהנדסים שלנו הציעו להציג את ClayOne Kafka לניטור ביצועים ועיבוד קבצים גדולים. יישמנו גם את מסגרת Apache Camel – במטרה בלעדית לשלב את המערכת עם מקורות נתונים שונים. מצדנו, נכתבו גם פתרונות ב-Java וקיבלנו את הנתונים לפני העברתם למסד הנתונים.
אחד המומחים שלנו ל-QA גם העביר מפגשי הדרכה לבודקים אחרים בפרויקט, שבהם דיבר על עבודה ב-Agile, כיצד בודקים יכולים לעבוד בשיטה זו, למה לשים לב, כיצד ליצור תוכנית בדיקות ואילו תכונות צריכות להיות לבודק מצוין. הוא גם הכין מסגרת בדיקות באמצעות כלי הבדיקה Cucumber, הכתובה ב-Java, ודוח בדיקות שנוצר אוטומטית בעת הפעלת משימה חדשה ב-Jenkins, שרת אוטומציה בקוד פתוח.
אחד האתגרים הגדולים בפרויקט זה היה גודלן של הפרוצדורות המאוחסנות במסד הנתונים וה-SQL המתקדם שבחן נתונים אלה. כאן הציגו המפתחים שלנו כלי ליצירת בדיקות יחידה של מסד הנתונים ולאימות הנתונים באופן יעיל יותר.
הייחודיות של הפתרון טמונה באופן שבו הוא מתמודד עם קבצים ממקורות שונים וכיצד הוא יכול לעבוד באופן אסינכרוני. באשר לבדיקות, מדובר בבדיקת קבצי 2G בפורמט הספציפי לפרויקטים של GeoLocation.
הצוות שלנו שיתף פעולה באופן הדוק ובנה אמון ויחסי עבודה טובים כבר מההתחלה, כך שהם ממש הרגישו שהם חלק מ-GeoPlace.
השלבים הבאים
הודות למערכת המיושמת, הצוות של GeoPlace הצליח לצמצם את מספר השעות שהושקעו בהורדה ידנית של הנתונים, אימותם והעלאתם למסד הנתונים. הדבר לא רק עזר להם לחסוך זמן וכסף, אלא גם סיפק להם את המשאבים להתמקד במשימות ליבה אחרות. כעת הם יכולים להציע שירותים נוספים הקשורים לנתונים ללקוחות הקצה שלהם.
התחלנו לשתף פעולה עוד ב-2016 ו-Aurora היה הפרויקט הראשון אי פעם עבור Spyrosoft. הוא הושק בינואר 2021.
המטרה המרכזית הייתה לפתח API אמין לניהול נתוני רחובות וכתובות בבריטניה. הפתרון מאפשר ל-GeoPlace להוריד, לעצב, לאמת ולשתף נתוני מיקום גיאוגרפי באופן אוטומטי עם שותפים חיצוניים כגון Ordnance Survey.
הצוות שלנו הטמיע את Apache Camel לצורך אינטגרציה בין מערכות ואת ClayOne Kafka לניטור ביצועים ולטיפול בקבצים גדולים. הבדיקות בוצעו באמצעות Cucumber (Java), עם דוחות אוטומטיים שהופקו דרך Jenkins. הפתרון תוכנן לעיבוד נתונים אסינכרוני ממקורות מרובים.
האתגרים העיקריים של הפרויקט כללו טיפול בנהלי מסד נתונים נרחבים, בדיקת שאילתות SQL מורכבות וניהול קבצי מיקום גיאוגרפי גדולים (2GB) ממקורות שונים. הצוות שלנו התמודד עם זה על ידי יצירת בדיקות יחידה מותאמות אישית למסד הנתונים כדי להבטיח דיוק וביצועים.
ה-API החדש צמצם באופן משמעותי את העבודה הידנית ושיפר את היעילות בעיבוד ובאימות נתונים. GeoPlace יכולה כעת לספק נתוני מיקום עדכניים ואיכותיים מהר יותר, לחסוך זמן ומשאבים תוך הרחבת היצע השירותים שלה ללקוחות ולשותפים.
arrow_circle_rightצור קשר
מעוניינים לשתף איתי פעולה? צרו קשר.
arrow_circle_right המאמרים שלנו