רן, אלון, ודותן בפרק מספר 59 של באמפרס (371 לא-קוסמי-ואפילו-לא-ראשוני למניין רברס עם פלטפורמה) - סקירה של טכנולוגיות ודברים מעניינים מהזמן האחרון.
הפרק הוקלט ערב כנס רברסים 2019, ובחסות חברת ForeScout (שהיא גם ספונסרית של הכנס).
רן -
מאחורי הקלעים (ידוע גם כ”שאלת הראיון הקלאסית”) - “מה קורה כש…”: גרסת Kubernetes - מההקשות על המקלדת, דרך שלל הפרוטוקולים ועד שהביטים מגיעים ליעדםאז זו גרסת Kubernetes - מה קורה לכל אחד מהרכיבים החל מ - kubectl Deploy דרך ה- Kubelets ועד לפרישה מוצלחת, קריאה מעניינת לכל מי שעוסק בעולם הזהרגע - מה זה בכלל Kubectl Deploy?! למי שמעולם לא השתמש ב - Kubernetes אולי לא בהכרח כדאי להתחיל מכאן, אבל למי שכן זו דרך טובה להבין מה קורה בפניםעוד מעולם Kubernetes - פרויקט קוד פתוח חדש של חברת RANCHER בשם k3OSהחברה מספקת תשתיות בעיקר ל Kubernetes, וזו מערכת הפעלה שהיא “K8s native” - יש node של K8S שמגיע עם מערכת ההפעלה (בלי למשל להתקין קודם Ubuntu ועליו K8s וכו’)המערכת מאוד “רזה” ומינימליסטית, ומכילה רק את מה ש-K8s צריך, מה שמאפשר להריץ אותה על חומרה מאוד בסיסית (“חלשה”), שמתאימה למכונות קצה (Edge) דוגמאת Raspberry Pi וכו’.מה בעצם יש להרוויח מהרצת K8s על חומרה חלשה? זה לא שיהיה אפשר להריץ המון משימות (כי החומרה, ובכן, חלשה…)יש מקרים בהם נרצה רק את ה - Orchestration features, בלי צורך ב - Scale, למשל: הרבה מאוד רכיבים קטנים (VPN Gateway?) בהרבה מקומות בעולם. באופן הזה מתקבל מישור ניהול אחיד ונוח להכל ביחד (גם ל-Data Center וגם עבור תחנות הקצה)ה - Workload מן הסתם יפוצל באופן לא אחיד, אבל הניהול יהיה ממקום אחד, עם אותם כלים ואותו Monitoring וכו’.יתרון אפשרי נוסף הוא שיקולי Security ו - Hardening (לא מריצים מה שלא צריך, חלק שאין לא יתקלקל), חוץ מזה צריך שפחות חומרה כמעיין Side Benefitהאם נריץ על המקרר? כנראה שלא, אבל שווה לבדוקואם כבר מחפשים צרות - מה קורה עם Updates? יש סעיף שמתייחס לזה, אבל כרגיל זו נקודה עדינה ששווה לשים לב אליהשאלת בונוס - האם האייטם הקודם רלוונטי לכאן? כן . . . בסוף זה עדיין K8s. ההבדל המשמעותי הוא במערכת ההפעלה (מעיין Linux שהורידו ממנו כמעט הכל והוסיפו K8s)ויש עוד דברים, למשל - כנס GitHub Universe, שכלל כמה הכרזות מעניינות, בהן - תוכנית חדשה בשם Sponsors - עכשיו אפשר לקבל sponsorship לפרוייקטי קוד פתוח דרך GitHubהנה לינק ל - Keynote בדקה הרלוונטיתיש אינטגרציה ואגרגציה למערכות קיימות (למשל Gittip), ו- GitHub מספקים את הממשק ומציגים את הפרטים בחזית הבמה של הפרויקטאולי יקח זמן, אבל עם פוטנציאל למהפכה אמיתית - מאפשר ליותר מפתחים לעבוד לבד או בקבוצות קטנות עם בסיס כלכליראוי לציין שזה בסך הכל מאוד קל - הוספה של קובץ קונפיגורציה ל Repo וזהו בגדולנקודה שעלולה להסתבך - לאן בדיוק הולך הכסף? צריך להגדיר לאיזה Contributor מגיע מה, ומאחורי הקלעים חבויה בעיה לא פתורה של איך בדיוק מחלקים כסף בפרויקט קוד פתוח, או יותר נכון - מהו מבנה האחזקה של פרויקט Open Source ואיך מעדכנים אותו (למשל כשיש Contributor ראשי שכבר לא כל כך תורם וכו’)? . . . ומה בעצם ההבדל בין זה לבין Bug bounty? כסף כרגיל מסבך את העניינים . . .אולי יהיה Use Case מעניין לחברות שיוכלו להקצות זמן רשמי לעבודה על קוד פתוח תמורת קבלותכרגיל יהיה יותר מעניין כשיכנס לסיפור Corporate Money (אלפי $ ומעלה) עם הצבת דרישות (SLA, תמיכה וכו’), פותח אפיק שקודם לא היה קיים - עד עכשיו היה אפשר לעבוד בחברה או לפתח מודל עסקי סביב הקוד הפתוח (Elastic Search style וכו’, ואז AWS מגיעים וזה כבר Rabbit hole חדש בפני עצמו . . . ); עכשיו אולי יש משהו באמצע למפתחים קטנים שרוצים להתפרנס מהתחום.יהיה מעניין לפרויקטים ללא גב של Corporate (למשל D3, כנראה שה - Linux foundation יסתדרו גם בלי)היו ניסיונות למערכות תגמול של פרויקטי תכונה, ובטח יצוצו עכשיו עוד סטארטאפים בתחוםועוד הכרזה - GitHub Package Registryמאפשר לארח Registries בסגנון npm, Maven, Rubygems וכו’ - ב - GitHubלא שאי אפשר היה קודם, אבל אפשר לקוות לאינטגרציה יותר טובה (ואולי גם Security משופר)עדיין בבטא, כמו ה - Sponsors.מצגת של מפתח Go ותיק בשם Dave Cheney תחת הכותרת Clear is better than cleverיש גם וידאומשתמש ב - Go כמדיום, אבל האמירות עצמן מאוד כלליות (ולא בהכרח צריך להכיר Go לעומק על מנת להנות מהמצגת) - איך לכתוב קוד שהוא קל להבנה, תחזוקה וקריאה, תוך טענה שזה עדיף על קוד חכםאמ;לק - אל תתחכמוכתוב ומוצג מאוד יפה, לא נכנס למחקרים וכו’ אלא מאוד Down to Earth ואינטואיטיבי - רק שבכל זאת נוטים לפספס הרבה פעמיםמתחבר לקו של Clean Code ו - Uncle Bob, וזו עוד שכבה, מומלץ לחפש עוד מחקרים בנושאמאמר של Facebook על מערכת פנימית בשם Tupperware - כלי ה - Orchestration ו - Deployment הפנימי של Facebook (סוג של “ה - K8s המקומי”)לא קוד פתוח, אבל המאמר מתאר את ה - Design Principals וה - Trade-offs שנלקחוזה לא היה ממש סודי גם קודם, אבל המאמר כן צולל יותר לעומק על שינויים שנעשו לאחרונה - למשל העובדה (?) ש - Facebook רצים על חומרה יחסית חלשה (שצורכת פחות חשמל, הרבה שימוש במעבדים מבוססי ARM), מה שמכתיב החלטות Orchestration שונות ממקומות אחרים.היה מאמר של Uber שעסק ב - Workloads עם דפוסים שונים (Online לעומת Batch וכו’) על אותה חומרה לניצול מקסימלי - וטען שזה נכון עבור סוגים ספציפיים (וקונפיגורציות ספציפיות) של חומרה, ולא בהכרח נכון עבור חומרה יחסית “רזה” (כשלפעמים עדיף לשים workload ספציפי על חומרה ספציפית לניצולת טובה יותר).באופן דומה, יש הרצאה של AWS על איך ה - Framework של Lambda עובד - בהתחלה ניסו לשים את האפליקציות של אותה החברה על אותם השרתים ולא הגיעו לניצולת טובה, ואז התחילו לנסות ב - Random - ועכשיו בכלל עברו להיעזר ב - Machine Learning לניצולת מקסימליתבסוף זה כנראה עניין של רמת ה - Fragmentation שניתן להגיע אליה באופן יעיל, משהו שחברה שיש לה Ownership מלא על כל ה - Stack, כמו Facebook או Uber, יכולה לעשות ו - AWS למשל לא יכולים.יש עוד דברים מעניינים, והמאמר עצמו מעניין ברמה ההנדסית ויחסית מפורט (שוב - לא קוד פתוח)מאמר ישן של Peter Norvig (בין היתר משמש כ Head of Research ב - Google) על איך ללמוד לתכנת בעשר שניםאמ;לק - דני סנדרסון אמר את זה קודם (לימוד שחייה בהתכתבות וכו’), כל הסדנאות של “למד לתכנת ב-21 ימים” לא שוות הרבה, והוא מגבה בהרבה טיעונים מעניינים על הטמעת חשיבה אלגוריתמית וכו’עוד נקודה מעניינת - המאמר תורגם להרבה מאוד שפות, כולל עברית (לא תרגום מלא ומדלג על חלק, אבל נחמד לראות)
אלון -
מזמן לא עסקנו ב - K8s, אז עכשיו Tinder פרסמו מאמר על המעבר שלהם ל - Kubernetesמסתבר שהיו להם המון קשיים במעבר, והמאמר הוביל להרבה תגוובת בסגנון “הנה דוגמא למה לא כולם צריכים לעבור ל - K8s” . . .המאמר הזה אינו מופע יחיד - צרות DNS ו - Network ועוד - בהתחלה זה נחמד, אבל אז רוצים מעיין “K8s ענק שמנהל את כל הצי” לטובת “ניצול משאבים נכון”, ואז מגיעים כל שאר האילוצים והכל מסתבך, ו - DNS הופך להיות single point of failure . . . מה גם שיש עננים שאינם של Google שעליהם כל הסיפור עובד פחות טוב, ולא תמיד נעים שצריך להיות Core Developer של K8s כדי לפתור בעיותחשוב לזכור שב - Scale ש - Tinder רצים עליו כנראה שתמיד יהיו בעיות, שלא בהכרח היו נמנעות גם בלי מעבר ל- K8s.מצד אחד הייתה מערכת שעבדה לפני כן, וכמות הבעיות ושנתיים עבודה לא נראים שווים את זהמצד שני, אמנם תרופת קסם זה בטח לא, ושנתיים עבודה זה כנראה הסדר גודל שצריך לקחת בחשבון - אבל בסוף הגיעו להישגים מרשימים.ובואו לא נתחיל עם מה יש לדבר על הענן של Google. לפחות החיפוש אחלה.קצת עצוב - How @DigitalOcean just killed our companyחברה בשם @raisupcom ש @DigitalOcean החליטו מסיבה כלשהי שהם Malware, ומשם העניינים הסתבכו. מאוד.העסק לגיטימי, המערכת החליטה שהם לא - גם אחרי שתוקן ידנית. לא ברור איך נגמר אבל מרמז בעדינות שעדיף אולי לשקול לבחור ספק ענן אחר.ואם כבר ספקי ענן אהובים - Google outage לקחו איתם גם את Uber ועוד חברותוזה עוד הוקלט לפני מקרה Google Calendarהוציאו הסבר על מה שקרה - וזה די מזכיר את מה שקרה ב-2017 עם S3 - מישהו שינה את הקונפיגורציה באופן שגרם לפעולת Maintenance לרוץ מעל חצי מהשרתים, מה שגרם לכל המערכת לקרוס בתגובת שרשרת (אולי זה אותו עובד?)אבל החיפוש עבד!מאמר מעניין על Lessons learned scaling PostgreSQL database to 1.2bn records/monthמדבר על Hosted PostgreSQL ב - GCP וגם ב - AWS (ולא סתם - טוען שהביצועים ב - GCP טובים יותר)מאמר מאוד טכני, בגדול עושה רושם שכל ספק ענן משקיע יותר ב - SQL Cloud שלו (Aurora, Spanner) ופחות ב - Open source אחרים, עשוי להוביל להתכנסות לספקים הגדולים, אבל בלי קשר - הרבה נתונים מעניינים.קצת על React - יצא מאמר שמסביר מתי להשתמש ב useMemo לעומת useCallbackכולל דוגמאות אינטראקטיביות והסבר על ביצועיםשווה לקרוא למי שמפתח ב React עם hooks (ומי שלא - שיעבור קודם ואז יקרא)למתנגדי Hooks - נראה שה -Hype גדול אבל המחיר הוא קצת יותר מדי “קסמים”. מצד שני לא כולם מתנגדים (ע”ע המאמר על זה שקוד קריא זה עדיין ערך) . . .ספרייה נחמדה בשם Argo - מתחרה ב - Airflow ו Luigi על Workflow managementמתוחזקת ע”י Intuit ו”נולדה לK8s” - משתמשת בכל ה -Ecosystem שזה נחמדמגיע ל flow managements מפלצתיים ב-YAML שזה פחות נחמדיש עדיין קצת באגים של פרוייקט צעיר אבל נראה מאוד מבטיח (אולי עדיין לא ב - Production מלא, אבל מועמד)יש הרבה דוגמאות למערכות מעל K8s - כמו למשל TensorFlow מעל K8s בשם KubeFlow, ונראה שנוצר מעיין Ecosystem של K8s אופטימליים עבור use case מסויים, ולא “סתם אוסף של CPU”.יש מצב שאולי Kubernetes יתפוס יום אחד (יש להם עד 1 באפריל 2020).
דותן -
כי מזמן לא עסקנו ב - K8s, אז draft.sh הוא פרויקט מעל K8s שמנסה ליצור מעיין Seamless deployments (בסגנון Heroku)פרויקט שנדחף ע”י Microsoft ,שבעבר קנו חברה בשם DICE (דיברנו על זה, aka RIoT) - אותם אנשים.ועכשיו פרויקט על מנת להרוס אותו - chaoskube יוצר כאוס מעל K8sכי אם כבר הצלחת לקנפג אותו ממש טוב, למה להוציא עיניים?כתבה מעניינת על תיוג של Docker Images תחת הכותרת Tagging Docker images the right wayמאוד חשוב בהקשר של Registers ו - Dockers images ב- Scale גדולקצת על Deep Learning - אולי repository קצת פחות מוכר עם הרבה מודלים שאפשר להשתמש בהם בשם (המפתיע ברמה של מחשב צה”לי) Deep Learning Modelsואחד קצת יותר מוכר ועם שם קצת יותר מושקע בשם ModelZoo - המון מודלים עם דירוג ופורמטים (Caffe, Keras, PyTorch וכו’) - למי שרוצה לנסות בלי ללמוד הרבה תיאוריהגרסא חדשה של הקורס של fast.ai בשם Practical deep learning for codersמוכוון למפתחים, זו כבר הגרסא השלישיתסכמת צבעים שערוריתית (!) עבור vscode בשם synthwave-vscodeצבעים של שנות השמונים (הרבה שחור, מה חשבתם?), ועם מעיין Glow סביב האותיותדותן עובד עם vscode ונשאר עם זה . . . אם זה עובד גם עליכם, נסו את Ready Player Oneואם לא - הנה עוד סכמה בשם Horizon שהייתה ברשימה ונפלה מההקלטהשני כלים שכתובים ב - Rust (למי שמחפש נקודת התחלה) - פרויקט נחמד בשם Just - עבור פרויקטים שבהם אין באמת כלי להרצת משימות (Rake למשל), עם פרמטרים, תלויות וכו’כלי “effectiveness” נוסף בשם bliss - בוחר קבצי Git Ignore לפרויקט שלכםמאפשר ליצור קובץ git Ignore אחוד של Rust ו - Python למשל, מאוד שימושייש Repository חדש בשם react-native-community ובו יש חלק ששייך רק ל - CLIחוויית CLI יותר מהירה שקצת נעצרה מהשילוב, והכיוון הזה נראה מעודדועוד קצת פוקוס על Rust - יש Repo בשם elements-of-rust - חברה בשם Ferrous systems שעושה embedded ב - Rust ,ונותנים רשימה של Best Practices שעוזרים להישמר מטעויות למי שרק מתחילעוד Repo בשם insta - נכתב ע”י mitsuhiko שנחשב כוכב עולה בתחוםועוד אחד אחרון - Not-yet-awesome Rust - מעיין קריצה לכל ה- Awesome* Repos, שמראה את כל מה שעדיין קצת פחות Awesome ואולי לא כדאי להכנס אליו, שווה לקרוא.אייטם של Uncle Bob, והפעם - Types and Testsטוב שזה עולה שוב, עם החזרה של ה- type systems, מהנה לקרוא עם ראייה, תובנות וזוויות חדשות.יש דוגמאות עם lisp, לא להיבהלמתוך כנס בשם The 2019 Python Language Summit, מאמר של Amber Brown שנחשבת דמות מובילה בכנס, ומדברת על האופי של Python שבו הכל כלול אבל קצת דולף - Batteries Included, But They're Leakingסוף כל סוף מישהו מציף את הנושא - השפה קורצת לכל תחום שהוא ומביאה המון ספריות סטנדרטיות, רק שהן לפעמים לא עובדות עד הסוף ויש המון דברים שצריך לדעת כדי שזה יעבודויש עוד היילייטס בכנס, שווה לעבור על הרשימהעוד משהו בנושא - לא מזמן הזכרנו ש - גוידו ואן-רוסום (Guido van Rossum), ה- BDFL של Python, לקח חופשה תמידית (התפטר, בגדול) והותיר את עולם ה - Python “ללא הנהגה”.פרק של מעניין של The Changelog בנושא - איך בוחרים מערכת שלטון חדשה? סיפור מעניין (איך בוחרים האם בכלל אפשר להצביע, ואז איך וכו’), TL;DR - עכשיו יש 5 BDFL שונים לפי תחומים, ואם יש החלטות שנויות במחלוקת אז הם מצביעים ביניהםכלי בשם FormsJS - מבטיח data flow analysis in the browserועוד - Experimental dynamic data flow analysis tool for FE JS . . לא פחותתכל’ס - מוסיפים וזה מראה ב - Browser מאיפה ה Data הגיע לנקודה הספציפית.דותן ניסה וזה לא ממש עבד . . . אולי יש רשימת דרישות לטכנולוגיות ספציפיות (מישהו עוד כותב ב CoffeeScript?! חוץ מ CodeMonkey?) נראה מעניין בכל מקרה, שווה לבדוקמחוץ לכל מה שדיברנו היום - Trello Board בשם Good coding practices in unityלמי שמפתח משחקים זה repo ממש מגניב. אמנם הפורמט קצת מוזר (בדר”כ מגיע כ Git repo . . .) אבל די כייפי בסך הכל (מתאים לאווירה של משחקים).ולסיום - רובוטים! repo בשם Automagica, פרויקט קוד פתוח ל Robotic Process Automationנראה ש RPA זה עולם שצומח מהר, עם הרבה חברות וכלים (כאן יש דוגמא והסבר מעניין).אין באמת רובוטים (חומרה) בסיפור, אלא כלי אוטומזציה רגילים, אוטומציה של דפדפן. אין רובוטים. בכלל. נראה יותר בכיוון של QTP, Selenium וכאלה . . . - בגדול: הטרנד חוזר, הכינו את החולצות המשובצות.
והחלק האמנותי (קצר הפעם) -
צוקרברג מחייך! ועכשיו אתם יודעים למה . . . (הפרק הוקלט לפני ההכרזה, נראה שאפקט פרקי 1 באפריל עובד גם לאורך השנה)שווה לשקול מיתוג מחודש - Robotic Smile Automation! אם כי RSA כבר די תפוס חזק.
כנס רברסים 2019 כבר קרה בזמן שאתם שומעים / קוראים את זה, אז נקווה שהיה כנס מוצלח (TL;DR - היה).
הקובץ נמצא כאן, האזנה נעימה ותודה רבה לעופר פורר על התמלול