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

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

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

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

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

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

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

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

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

מה זה docker ולמה זה מגניב לאללה

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

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

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

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

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

היתרונות שדוקר מביא הן:

כלי הגדרה פשוט לייצרת image של המערכת. קובץ ההגדרה של דוקר מאוד פשוט להגדרה. הגדרה של מערכת יכולה לכלול הורדה של כלי תצורה כגון capisrano או ansible, והגדרות ספציפיות לאפליקציה (באמצעות משתנה סביבה, למשל). לאחר שנוצר ה- image ניתן להעלות אותו אל מאגר (repoistory) ומשם להוריד אותו אל מערכות הייצור. אם בעבר, היינו צריכים לגשת לכל מכונה ולבצע את ההגדרות, הרי עכשיו מעלים את האפליקציה "הארוזה". כל מה שנשאר, זה להוריד את הקבצים העדכניים אל המכונות ולהפעיל אותם.

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

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

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

במכונות לינוקס, כאשר מעלים, לדוגמא, מספר מופעים של אפליקציית java, למשל tomcat, שכל אחד מהם לוקח 1gb של זכרון, הרי הצריכה הכללית לא תהיה 10Gb אלא עשויה להיות הרבה פחות, מה שמבטיח יעילות שימוש בחשמל וגם חסכון ניכר בעלויות השימוש בזכרון. אך במקרה של docker, מאחר שהמכונות לא שומרות מידע, מקבלים הלכה למעשה מספר מופעים של אותה אפליקציה, העושים שימוש באותו זכרון, אך מספקים שירות בנפרד.

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

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

ניתן לראות ב- docker מעין נגזרת של git אך במקום לאחסן קוד, מאחסנים אפליקציות, תהליכים. כאשר מבצעים שינוי ב- image, מה שעולה אל ה- repository הוא רק ההבדלים. כך שמובטחת יעילות גבוהה, ובנוסף, ניתן לחזור בקלות אל גירסה קודמת (rollback).

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

אך הבעיה העיקרית היא ניהול הרשתות. אנחנו מעוניניים לדעת בדיוק אילו docker הוזנקו ולהפנות אליהם תעבורה. המרוץ לבניית מערכת התשתית שתיתן פתרון מלא לניהול הנושא נמצא בעיצומו, אך נכון לרגע זה ועד כמה שיודע לי, אין עדיין אף מערכת הנותנת פתרון מלא, למרות שיש כנראה כמה פתרונות טובים מאוד. אני משער שזה עניין של זמן, ולא הרבה. (גוגל ואחרים לוקחים חלק במירוץ). חברות כמו google מדווחות על הזנקה של מאות אלפי dockers כל יום.

לא מדובר על מהלך צדדי של התקדמות טכנולוגית, אלא משהו הנוגע לבסיס התפיסה של האופן שבו מספקים שירות. המשמעות היא כה נרחבת, שנראה שזו אחת הסיבות שמיקרוסופט החליטה לפתוח את מערכות זמן הריצה של טכנולוגיית dotnet כך שהן יוכלו לרוץ תחת לינוקס בעזרת mono. אם בעבר, כדי להריץ אפליקציות dotnet היית צריך שרת חלונות, עם כל הסיבוכיות בניהול מערכות אלו, באמצעות docker ניתן יהיה להזניק בקלות ולנהל צביריים של dotnet הרצים תחת לינוקס. יש גם איזו טענה שטכנולוגיה דומה ל-docker תרוץ תחת חלונות. אך  נראה שבשל חוסר הגמישות של המערכת בנוסף למגבלות ניהול הזכרון (אין shared memory, רק shared library) זו טכנולוגיה שאם תתפתח, תהיה מוגבלת בביצועים וביכולות. יחד עם זה, נראה שמגבלות של מערכות חלונות לבצע עבודה בעומסים גבוהים היא כבר נתון שספק אם ישתנה אי פעם.

 

כלבי המוות של המלחמה

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

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

כשיורים עליך, הגוף כבר יודע מה לעשות, כיצד להתחבא ולירות בחזרה.

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

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

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

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

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

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