ניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר
-
@google3 כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
הלו, גם לאדם הזה יש כלים שיכולים לעזור, ואני שואל מה הם.
אתה רוצה שאגלה לך באיזה כלי הוא ישתמש? הוא לא צריך כל כך כלים כי הוא לא נותן לשום מתכנת גישה, רק הוא בעל הגישה.
הכלי שאיתו הוא מעביר את הקוד הוא כפי ש@nigun אמר, גיט עונה על הבעיות שהזכרת, אלא שגם לגיט אפשר להכניס קוד עויין או מסוכן, ולכן האדם האחראי שיידע תכנות במידה רבה, הוא זה שיאשר כל commit לתוך הענף הראשי.
לא הייתי ממליץ לך אדם שדרך הניהול שלו תעבור דרך המון כלים ופחות לעבור על הקוד שנכתב.
למה אתה יכול לשלם לשישה מתכנתים ולא למנהל אחד? אתה נעלב שהתשתמע ממני שאתה לא מתאים למלאכה? לא הייתי ממליץ לך לקחת אדם שירגיע אותך שאמנם הוא לא יודע טוב לקרוא קוד בXYZ, אבל הוא נעזר בכלים מצוייינים שהמליצו לו בפורום. האחראי חייב לדעת לקרוא קוד ולבקש הסברים כשהוא לא מבין ולהיות מסוגל לאמת את ההסברים.בקשר לתשובה שרצית מאוד, הנה אני כותב אותה:
תוכנת ServerCodeManage (המצאתי שם) נותנת מענה מושלם להאצלת סמכויות למפתחים.
תוכלו לנהל מי יכול לגשת לאיפה, לצפות איזה גישה הייתה בפועל בזמן אמת ולאחר זמן, לזהות התנהגות חריגה, ובנוסף כל השינויים מגובים וניתן בכל עת לחזור לגירסאות קודמות.
ככה תוכלו לתת למפתחים לעבוד על הקוד שלכם, בלי כל סיכון.אני מבין מה שתיארת לעצמך, אבל זה לא מציאותי לפחות לגבי הקוד, זו לא הדרך שבה עובד העולם של פיתוח. משפטי הפרסומת שכתבתי הם מופרכים. מי שיש לו גישה לשרת והוא כותב שמה קוד שרץ בפרודקשיין, שום דבר בעולם לא מגן ממנו.
בתכלס הוא יכול לעשות מה שבא לו (גם אם הוא לא מנהל, אם אתה נותן לו לשים בשרת קוד ואתה ברוב טובך תפעיל את הקוד). -
אם יורשה לי לשאול - במידה ואחד המתכנתים צריך להתקין חבילה ב-apt get, להריץ פקודת composer, או להתקין מרכזיית אסטריסק. בשביל זה בעל השרת צריך לתת להם הרשאת root והאפשרות לראות את ההיסטוריה באמצעות פקודת
history
מסורבלת ולא מאפשרת לקבל במהירות מידע מי ביצע כל פקודה.
האם cockpit נותן מענה לזה? -
@איש-נחמד כל הדברים שאמרת אינם במסגרת תפקידו של מתכנת אלא של איש שנקרא DevOps או טכנאי.
חייב להיות אחד כזה עם אמון, ושום כלי לא יכול נגדו כי הוא יצטרך הרשאות ניהול.
מתכנת בהגדרה לא מתקין ולא מריץ כלום במחשב שאיננו שלו, הוא כותב קוד ותמעביר את הקוד עם הנחיות. -
@איש-נחמד כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
אם יורשה לי לשאול - במידה ואחד המתכנתים צריך להתקין חבילה ב-apt get, להריץ פקודת composer, או להתקין מרכזיית אסטריסק. בשביל זה בעל השרת צריך לתת להם הרשאת root והאפשרות לראות את ההיסטוריה באמצעות פקודת
history
מסורבלת ולא מאפשרת לקבל במהירות מידע מי ביצע כל פקודה.
האם cockpit נותן מענה לזה?אם הכל מנוהל עם docker אף מפתח לא צריך להריץ שום פקודה על המכונה.
ואם מישהו שאתה לא סומך עליו נגע במכונה אתה לא יכול לסמוך על הקובץ היסטוריה -
@nigun כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
@איש-נחמד כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
אם יורשה לי לשאול - במידה ואחד המתכנתים צריך להתקין חבילה ב-apt get, להריץ פקודת composer, או להתקין מרכזיית אסטריסק. בשביל זה בעל השרת צריך לתת להם הרשאת root והאפשרות לראות את ההיסטוריה באמצעות פקודת
history
מסורבלת ולא מאפשרת לקבל במהירות מידע מי ביצע כל פקודה.
האם cockpit נותן מענה לזה?אם הכל מנוהל עם docker אף מפתח לא צריך להריץ שום פקודה על המכונה.
ואם מישהו שאתה לא סומך עליו נגע במכונה אתה לא יכול לסמוך על הקובץ היסטוריהאני אישית עובד עם docker לוקאלי, אבל הבנתי שזה לא מיועד ל-production
-
@איש-נחמד כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
@nigun כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
@איש-נחמד כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
אם יורשה לי לשאול - במידה ואחד המתכנתים צריך להתקין חבילה ב-apt get, להריץ פקודת composer, או להתקין מרכזיית אסטריסק. בשביל זה בעל השרת צריך לתת להם הרשאת root והאפשרות לראות את ההיסטוריה באמצעות פקודת
history
מסורבלת ולא מאפשרת לקבל במהירות מידע מי ביצע כל פקודה.
האם cockpit נותן מענה לזה?אם הכל מנוהל עם docker אף מפתח לא צריך להריץ שום פקודה על המכונה.
ואם מישהו שאתה לא סומך עליו נגע במכונה אתה לא יכול לסמוך על הקובץ היסטוריהאני אישית עובד עם docker לוקאלי, אבל הבנתי שזה לא מיועד ל-production
למה לא?
בקוברנטיס הכל עם קונטיינרים ואין פרודקשן יותר מזה -
דוקר != קוברנטיס, אבל כמובן שדוקר או כל טכנולוגיית קונטיינרים אחרת מיועדת גם לפרודקשן.
בכל מקרה, לעצם השאלה, קצת קשה לענות בלי להבין מה המוצר שאתם מפתחים, האם זה מלא אתרים? האם זה בכלל מרכזיות?
הפתרון שלך יצטרך להיות בכל מקרה תהליך מוגדר ומדויק ("פרוסס") שבו שינוים עוברים ביקורות על ידי אנשים שאתה כן נותן בהם אמון. לרוב מדובר בתפקיד DevOps, אל תחשוב בכלל לעשות את זה בעצמך אלא אם הידע שלך בעולם הרשתות, הפיתוח, וכלים שונים ומשונים הוא מספיק רחב. לא סתם המשרה הזאת נחשבת אחת היקרות.אם כל מה שאתה מחפש זה פתרון גיבוי - תשתמש בגיבוי של הענן שלך כדי לשמור סנאפשוטים, או בrestic ושמירה לS3.
אם אתה מחפש משהו יותר מזה, מוזמן לפרט פה יותר על תחום העיסוק שלך, מה התוצרים שלך ומה המתכנתים בד"כ עושים על השרתים.
בהצלה -
בקריאה נוספת אני מבין שאתה פשוט רוצה שמות של כלים ולא רוצה להבין איך לנהל את התהליכים אצלכם יותר טוב, אז אני יזרוק פה כמה שמות:
https://goteleport.com - לניהול גישה מרחוק למשתמשים שונים
restic & cloudflare / wasabi - לגיבוים -
@aaron כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
בקריאה נוספת אני מבין שאתה פשוט רוצה שמות של כלים ולא רוצה להבין איך לנהל את התהליכים אצלכם יותר טוב, אז אני יזרוק פה כמה שמות:
https://goteleport.com - לניהול גישה מרחוק למשתמשים שונים
restic & cloudflare / wasabi - לגיבויםקודם תודה על המענה
אכן אני מחפש שמות של כלים ובפרט עם יש כלים שיש כאן עם נסיון שזה טוב ועוזר למטרה@dovid
כדי להסביר לך, אני לא יכול בשלב זה לעשות כפי שאתה מציע-
עלות של אדם אמין בארה"ב לעבודה כזה היא כ-150,000 דולר לשנה, רק כדי להתחיל
-
רוב הפרויקטים עדיין בשלבי פיתוח, (אף על פי שחלקם מתקדמים עם לקחות כבר). כל דבר ידרוש עיבוד נוסף, מה שיכול לאט את הפרויקט באופן משמעותי. לא לדבר על חוסר בשני שרתים נפרדים לפיתוח ולפרודקשן, שאין לי בשלב זה, אז לפעמים (או תמיד) הטכנאי צריך לראות מה הוא עושה בזמן אמת, וזה יכול להיות שינוי קטן. עם כל דבר צריך להיות תחת עניין של פתוח אחר, זה יקח פי שלושה יותר זמן.
-
בנוסף להנ"ל יש לי המתכנטים בכל שעות היום, כך אני יצטרך לשלם לשני מנהלים ?
-
המתכנתים שלי, חלקם עובדים איתי כבר שנים, לא אוהבים את הרעיון שיצטרכו לשאול מישהו על כל דבר.
-
חלק המתכנתים שלי גם עושים DevOps/טכנאות, וכשיש תקלה הם טופלים בה
בסך הכול, במצבי הנוכחי, כאשר אני לא חברה מספיק גדולה, אני לא יכול לשעות זאת, (ויש רבים אחרים במצב דומה)
מה שאפשרי לעשות הוא להציע שמות של כלים, כמו @aaron נוקרה לזה, שיכולים לעזור במצב זה. למשל, אם יש לי 30 שרתים, הרבה יותר נוח לראות במקום אחד מי יש לו גישה, מה ההרשאות שלו וכו'. וכן, לראות במקום אחד את כל הגיבויים של השרתים, אם הגיבוי היומי הצליח ועוד, במקום לרוץ משרת לשרת 30 שרתים. -
-
@google3 כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
למשל, אם יש לי 30 שרתים, הרבה יותר נוח לראות במקום אחד מי יש לו גישה, מה ההרשאות שלו וכו'. וכן, לראות במקום אחד את כל הגיבויים של השרתים, אם הגיבוי היומי הצליח ועוד, במקום לרוץ משרת לשרת 30 שרתים.
אם אתה מתייחס למקרה שיש לך 30 שרתים, כדאי לך להקצות אחד לפחות לפיתוח
@google3 כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
לא לדבר על חוסר בשני שרתים נפרדים לפיתוח ולפרודקשן, שאין לי בשלב זה
-
@איש-נחמד כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
@google3 כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
למשל, אם יש לי 30 שרתים, הרבה יותר נוח לראות במקום אחד מי יש לו גישה, מה ההרשאות שלו וכו'. וכן, לראות במקום אחד את כל הגיבויים של השרתים, אם הגיבוי היומי הצליח ועוד, במקום לרוץ משרת לשרת 30 שרתים.
אם אתה מתייחס למקרה שיש לך 30 שרתים, כדאי לך להקצות אחד לפחות לפיתוח
@google3 כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
לא לדבר על חוסר בשני שרתים נפרדים לפיתוח ולפרודקשן, שאין לי בשלב זה
עד כה לא היה לי, והעניין הוא שכל שרת הוא פרויקט אחר.
אכן, אני יכול לבדוק לשים הכל בתוך שרת אחד על ידי דוקר או שרתים וירטואלי, אבל בכל מקרה, מינימום זה יהיה מאוד קשה ויקח המון זמן. מקסימום זה כמעט בלתי אפשרי (לדוגמה, שרת של אסטריקס, פריסוויץ', קמליה וכד')
@איש-נחמד אני חושב שיש לך קצת ידע פרויקטם שאני מדבר..... (תגיד אתה אם אני יכול לעשות פשוט)
-
@google3 המוצא היחיד זה שתשלים את פער הידע שלך כדי שתוכל להיות המנהל.
(תוכל אפילו בינתיים לאפשר למתכנתים לעשות הכל אבל לכפות כללים, למשל לעבוד עם גיט פול בשביל לעדכן את השרת, כך שהכל חייב להיות מתועד בגיט, בהקדם האפשרי כדאי ליצור להם יוזר או כל דרך אחרת שבה הם יכולים לעשות רק שני פעולות: גיט פול, וריסטרט לאפליקציה. את כל הפער התחזוקת השרת תצטרך ללמוד, כמובן שבהתחלה תיעזר בהם ושיסבירו לך כל דבר מה זה עושה וכולי).
שום כלי בעולם לא יעזור לך באמת, יש הרבה כלים שאולי ישלו אותך.
דוקר וחבריו זה גלגול אחריות, בסוף תמיד יש אחראי עם רמת אמון גבוהה. -
@google3 אשאל אותך כך: יצא לך לחוות תקלות וdowntime שנבע מטעויות אנוש שיכלו להימנע אילו מישהו מקצועי יותר היה שולט בכל התשתיות שלך?
מה לדעתך כמות העובדים שאתה צריך להגיע אליה כדי להתחיל לעבוד מסודר? (רמז: אחד.)לעבוד מסודר זה בסך הכל להוסיף אוטומציה לכל מה שאפשר, להעביר את הכל דרך גיט ולוודא שתמיד התשתית שלך זמינה להתקנה בצורה אוטומטית, או סמי-אוטומטית.
כלומר רצף הוראות ברור להתקנה, כמה שיותר אוטומציה.
זה ההגדרה לגיבוי טוב, כמו שצוטט פה באיזה ת'רד אחר, גיבוי לא מספיק ללא יכולת שחזור שעובדת ויכולה להחזיר אותך לפעילות בזמן מוגדר.אתה לא צריך בהכרח איש DevOps על מלא, אתה צריך פרילנסר שידע להקים לך תשתית טובה לעבודה רציפה של המתכנתים שלך.
-
@google3 כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
אז לפעמים (או תמיד) הטכנאי צריך לראות מה הוא עושה בזמן אמת, וזה יכול להיות שינוי קטן. עם כל דבר צריך להיות תחת עניין של פתוח אחר, זה יקח פי שלושה יותר זמן.
נשמע שהמפתחים בודקים שהקוד עובד בפרודקשן.
אני למדתי בדרך הקשה שאין מנוס וכדי לפתח בצורה מסודרת צריך טסטים (וכל המרבה בטסטים הרי זה משובח)
בפועל יכול לצאת שעל כל שורת קוד יכתבו 10 שורות של טסטים אבל בסופו של דבר אתה מקבל שקט ואתה יודע שאם קוד עבר את הטסטים ככל הנראה אתה יכול להעלות אותו לשרת פרודקשן ויעבוד בפעם הראשונה בלי הפתעות ובלי שהמפתח נגע בשרת.
בVoIP קצת יותר קשה לכתוב טסטים כי אין כ"כ פריימרוקים מוכנים וזה לפעמים עובד בצורה אסינכרונית אבל יש מספיק כלים שאפשר לבנות אתם את כל הטסטים הנדרשים אבל זה מן הסתם דורש פיתוח. -
@dovid כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
שום כלי בעולם לא יעזור לך באמת, יש הרבה כלים שאולי ישלו אותך.
נראה שאני הפכתי כאן ליעד לשכנע
בסדר, אני שומע מה אתה אומרבאמת, השכנעת אותי ללמוד גיט (שכבר רציתי ללמוד מזמן, רק חיפשתי את הזמן לזה).
עכשיו, אם אתה יכול לשתף אותי עם "כלים שאולי יסייעו לך", אודה לך מאוד.וכמו שאתה מבין, גם אני עובד עם גיט, זה עדיין לא מענה למה שאני צריך.
כמו שאני יכול לראות כל גיבוי במקום אחד,
לראות את כל השרתים במקום אחד, מה המצב של CPU, SSD וכו'.
לראות כל השרתים מה המצב עם משתמשים (הלו גם לשרת פתוח צריך להיות משתמש) -
@google3 כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
כמו שאני יכול לראות כל גיבוי במקום אחד,
לראות את כל השרתים במקום אחד, מה המצב של CPU, SSD וכו'.
לראות כל השרתים מה המצב עם משתמשים (הלו גם לשרת פתוח צריך להיות משתמש)מצאתי שירות חינמי שנקרא zabbix
בחיפוש בגוגל נראה שיש לו הרבה אלטרנטיבות:
https://www.google.com/search?q=zabbix+alternative -
@aaron כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
@google3 אשאל אותך כך: יצא לך לחוות תקלות וdowntime שנבע מטעויות אנוש שיכלו להימנע אילו מישהו מקצועי יותר היה שולט בכל התשתיות שלך?
שוב, יש לי כמה פרויקטים ותלוי אל מה אתה שואל (יש מה מה שעדיין בשלב פתוח אבל יש שם לקחות לטסטים).
אבל התשובה כמעט תמיד שלא ודברים שצריכים לעבוד, עובדים.
לדגמא יש לי שירות של מספרים בכל העולם כבר 5 שנים והיה רק פעם אחת נפילה וזה היה בגלל חוסר ב-SSD.
אותה נפילה הייתה לי גם בשיחות יוצאות פעמיים בגלל חוסר ב-SSD.
כבר טיפלתי בשני המקרים, שימחוק הלוג שהוא יותר מחודש, אבל עם כל זה זה מה שחוסר לי מאוד אם יש לי מקום שאני יכול לראות כל השרתים והמצב איתם SPU SSD זה יכול לעזור לי המון
אגב, לגבי שיחות נכנסות, יש לנו גיבוי כיום עם שרת נוסף, כך שבכל מקרה של תקלה או ריבוט, המעבר הוא אוטומטי לשרת הגיבוי. השרת גיבוי מסנכרן את המידע כל 6 שעות לאחר שרת הראשון - ועובדים עכשיו לעשות את זה גם לשיחות יוצאות
-
@aaron כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
מה לדעתך כמות העובדים שאתה צריך להגיע אליה כדי להתחיל לעבוד מסודר? (רמז: אחד.)
אתה באצם צודק אין מי שחולר אילך אבל כמו שכבתי כבר למעלה כעת אני לא יכול
@google3 כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
עלות של אדם אמין בארה"ב לעבודה כזה היא כ-150,000 דולר לשנה, רק כדי להתחיל
רוב הפרויקטים עדיין בשלבי פיתוח, (אף על פי שחלקם מתקדמים עם לקחות כבר). כל דבר ידרוש עיבוד נוסף, מה שיכול לאט את הפרויקט באופן משמעותי. לא לדבר על חוסר בשני שרתים נפרדים לפיתוח ולפרודקשן, שאין לי בשלב זה, אז לפעמים (או תמיד) הטכנאי צריך לראות מה הוא עושה בזמן אמת, וזה יכול להיות שינוי קטן. עם כל דבר צריך להיות תחת עניין של פתוח אחר, זה יקח פי שלושה יותר זמן.
בנוסף להנ"ל יש לי המתכנטים בכל שעות היום, כך אני יצטרך לשלם לשני מנהלים ?
המתכנתים שלי, חלקם עובדים איתי כבר שנים, לא אוהבים את הרעיון שיצטרכו לשאול מישהו על כל דבר.
חלק המתכנתים שלי גם עושים DevOps/טכנאות, וכשיש תקלה הם טופלים בה
-
@google3 כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
נראה שאני הפכתי כאן ליעד לשכנע
לא הבנתי, עניתי לך על שאלה, אתה לא נשמע לי אסיר תודה.
נ.ב. מה נסגר עם העברית שלך? אתה נעזר בכותבים נוספים? אתה רגע כותב עברית צחה ורגע שאחריו קצת פחות.
-
@google3 כתב בניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר:
לדגמא יש לי שירות של מספרים בכל העולם כבר 5 שנים והיה רק פעם אחת נפילה וזה היה בגלל חוסר ב-SSD.
אני מדבר על טעויות אנוש במהלך פיתוח, לא ש5 שנים משהו רץ בפרודקשן בלי שינויים..
לניטור של שרתים אתה יכול להשתמש בnetdata או בgrafana עם node exporter, ביחד עם alerts. זאת האפשרות הטובה יותר לדעתי.