סקירה: רד-האט 7 (בטא) – חלק שני

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

מבחינת תמיכה בברזלים, רד-האט 7 תומכת ביותר מעבדים וליבות, עד 5120 ליבות במערכת אחת (מישהו ברד-האט שכח שהם חתומים ב-NDA מול AMD וזו הסידרה הבאה של מעבדים ש-AMD הולכת להוציא בקרוב, כל מעבד עם 32 ליבות). מבחינת זכרון יש תמיכה שנוסתה עד 3 טרה בייט ותאורתית המערכת תומכת עד 64 טרה בייט של זכרון. כשמדובר על מערכות מבוססות Power, דרישת המערכת לכל VM מבחינת זכרון עולה מחצי ג'יגה ל-2 ג'יגה בייט של זכרון.

מערכת הקבצים: כפי שציינתי בחלק הראשון, שונתה ל-XFS (גירסאות EXT4 ו-BTRFS גם קיימות בזמן ההתקנה, אם כי אינני ממליץ על התקנת BTRFS למערכת פרוקדשן גם כשרד-האט 7 תצא מ-בטא. היא פשוט מערכת חדשה מדי, תנו לה זמן עד שהיא תהיה יציבה, סופית ונקייה מבאגים קריטיים). מערכת הקבצים EXT4 שופרה ועתה ניתן לאכסן קובץ בגודל מקסימלי של 50 טרהבייט. בגירסת XFS שמגיעה עם RHEL 7 ומבחינת File system, הגודל ש-XFS תומך בהשוואה ל-RHEL-6 גדל פי 5 וכעת ניתן להקים File System בגודל של עד חצי פטה-בייט (500 טרה בייט). ב-BTRFS ב-RHEL-7 ניתן רשמית להרים File system עד לגודל 50 טרהבייט וגודל מקסימלי של LUN עתה הוא 50 טרה-בייט. הכל גדל, רק תביאו דיסקים 🙂

תוכנות שהוחלפו: כמו תמיד, ברד-האט זורקים החוצה תוכנות ישנות ומכניסים תוכנות חדשות כשיוצאת גירסה חדשה להפצה, מה שמתורגם כמובן להרבה עבודה של מיגרציה (ומיגרנות לפעמים…!) כשרוצים להטמיע את RHEL-7 לכשתצא. עובדים עם sendmail? תתחילו להתרגל ל-postfix. אין יותר acpid, יש systemd. מנהלים מערכות עם sblim? תכירו את Pegasus של Open Group. גם חבילות Kerberos (במיוחד krb5-appl) עברו שדרוג ובמקומם את תפקיד Kerberos תתן חבילת openssh. מי שמשתמש ב-LVM1 (מישהו עדיין משתמש??) מחליפה חבילת LVM2 כשהפעם סוף סוף יש תמיכת Thin Provisioning כך שאפשר להרים הרבה מכונות מבלי לצרוך מיידית את כל הדיסק/Storage. גם חבילת gcj (איכסה!) הוחלפה סוף סוף ב-OpenJDK נורמלי (גירסה 7).

פונקציונאליות שנזרקה לפח: ברד-האט לא מתביישים לזרוק דברים יותר ישנים לפח כולל חומרה. כך לדוגמא אם אתם משתמשים במערכות Power6, רד האט מודיעה שתמשיכו להשתמש ב-RHEL-6, אין יותר תמיכה למעבדים הללו. עובדים עם matahari? (אתם כן? למה???), רד האט ממליצה שלא לעבוד איתה יותר.  מצפינים עם encryptfs? תפתחו את ההצפנה ותצפינו עם dm-crypt.אלו שהשתמשו ב-TurboGears2 – צר לי, החבילה נזרקה מ-RHEL-7. מקמפלים אפליקציות שיש להן זקן ארוך ו-MOTIF? (כן CDE אני מסתכל עליך!) – סוף סוף Motif האמיתי הוא קוד פתוח וגירסה 2.3 כלולה בהפצה. אין יותר צורך ב-lesstif. התרגלתם ל-webalizer? חפשו חבילת אנליזה חדשה כי הוא לא כלול יותר ואם אתם חושבים להשתמש ב-RHEL-7 לדסקטופ ורוצים להמשיך להנות מאפקטים של Compiz, אז ב-gnme-shell יש אפקטים וגם הם נמצאים מובנים בתוך KDE שאותו אני תמיד תמד ממליץ. 

לעצלנים שבינינו שהשתמשו ב-system-config-services, מעתה יש את systemadm. צ'אטים עם pidgin? תתרגל ל-empathy. לחובבי perl שמשתמשים (משום מה) ב-perl-suidperl – הוא מת (כן, גם בגירסת perl המעודכנת בחוץ). תוספי pam כמו pam_passwdqc ו-pac_cracklib הוחלפו בתוסף בשם pam_pwquality. ספריית HAL (כולל ה-daemon) נזרקו לפח ומעתה חוזרים (כן, חוזרים) ל-.. UDEV. 

מבחינת הגדרת רשתות, משחקי ההגדרות ב-etc/sysconfig/network-scripts/ifcfg-eth/ נגמרו (אם כי הם עדיין נתמכים, כמדומני שבגירסת RHEL-8 הם יהפכו להיסטוריה) ובמקומם יש את NetworkManager (כן, החבילה שרבים מאיתנו הקפידו להעיף בסוף התקנה ולהפעיל את שרות network, זוכרים?) והדברים צריכים להיות מבוצעים עם פקודת nmcli (קחו דוגמאות של שימוש ב-nmcli). על מנת קצת להקל, רד-האט מוסיפים את nm-connection-editor כדי לערוך חיבורים (מנסיון: הגדרת שרת עם 24 פורטים לרשת עם nmcli זה לא כיף!). 

חבילות נוספות שעפו: taskjuggler = היסטוריה. thunderbird? זוכרים אותו? אם אתם מתגעגעים, תורידו אותו מהאתר היעודי כי מה שיש עכשיו זה רק evolution. חבילת vconfig להגדרות VLAN מתה ובמקומה יש iproute (בלי רווח). לאלו שאוהבים לכתוב ב-perl אפליקציות web, אין יותר mod_perl, יש mod_fcgid (ומכיוון ש-RHEL-7 מגיע עם אפאצ'י 2.4. לאלו שאוהבים להריץ prelink כדי לקבל ביצועים יותר טובים – החבילה והפונקציונאליות נכללת ב-RHEL-7 אבל היא ב-disable בברירת מחדל (רמז של רד האט שבעתיד – גם זה יעוף). חבילת module-init-tools גם עפה לטובת kmod ולסיום – חבילת kernel-firmware שמגיעה עם כל גירסת kernel מההפצה, שמה שונה ל-linux-firmware, כך שמומלץ לעדכן את הסקריפטים שלכם אם אתם הולכים להטמיע RHEL-7.

דרייברים שהולכים לעוף: רד-האט מצהירה על דרייברים מסויימים (שהם לציוד ממש ישן למען האמת… Cirtus Logic, Mach64) שהם deprecated כך שאם יש לכם ציודים כאלו והמערכות הללו ישודרגו על אותו ברזל, כדאי שתמצאו להם פתרונות. בד"כ מדובר על דרייברים לציוד גרפי ישן (כן, כולל מטרוקסים ישנים מאוד) וגם ציוד מבוסס צ'יפים ישנים של VIA. ניתן יהיה להמשיך להשתמש בציוד רק שבמקום דרייברים רגילים, תצטרכו להשתמש בדרייבר KMS ואפשר לקרוא איך להשתמש ב-KMS כאן. אני ממליץ לגבי מערכות כאלו להעביר אותם P2V להיות מערכת וירטואלית. גם דרייבים לכרטיסי RAID ישנים עומדים לפוג, כולל כרטיסי Adaptec (זוכרים אותם?) עם הדרייבר aic79xx, כרטיסי 3ware עם דרייבר 3w-9xxx וכמובן arcmsr (שעשה לי אישית המון צרות, ברוך שפטרנו!).

דרייברים שלא קיימים יותר: בלינק שנתתי ל-Release Notes ישנה רשימה שלמה של דרייברים שעפו מ-RHEL-7, כולל cciss (לחובבי שרתי HP), דרייבים כמו aic ו-i2o, דרייבר שהרבה חברות השתמשו בו (megaraid_mbox), ה-mptlan, mptfc וכל הדרייבים של 3ware (דרייבר: 3W-XXXX). גם כרטיסי רשתות עפים, וכל מה שלא ג'יגהביט או משהו יותר ישן מ-3-4 שנים – פשוט עף החוצה. אני ממליץ להסתכל ברשימה (עמודים 11-14 בלינק למעלה). העפת הדרייברים הללו מחסלת את האפשרות להשתמש ב-RHEL-7 על שרתים ישנים ועל כך אתייחס בסוף הפוסט.

התקנה:בקצרה, אם השתמשים באחת מגירסאות ה-Fedora האחרונות, אז אין הבדל. בהשוואה ל-RHEL-6 ההבדל הוא בין שמיים לארץ. ההתקנה כבר יודעת לזהות את ציודי ה-Storage שלך אוטומטית (טוב נו, יש עדיין מקרים שצריך להזין פרטים..). לחובבי הקינקיות בינינו (אני מדבר על S/390) יש תמיכה בטרמינלים טקסטואליים מונוכרומטיים בזמן התקנה. ניתן עתה להקטין פרטישנים קיימים (בחלק מהמקרים, אם לא, תמיד אפשר לפני ההתקנה להשתמש ב-gparted), אפשר להגדיר thin provisioning ב-LVM, אפשר לפרמט ישירות ציודים ללא פרטישנים, וסוף סוף גם ניתן להשתמש ב-tmpfs במהלך ההגדרות להתקנה. ניתן במהלך ההתקנה מבחינת כרטיסי רשתות להגדיר teaming, bonding, NTP ושאר ירקות. 

תהליך Boot: ב-RHEL-7 ה-Boot Manager שמגיע הוא GRUB-2, מה שהיה בעבר אפליקציה קטנה ונחמדה שהפכה עכשיו למפלצת שתומכת כמעט בכל דבר במה שקשור לדיסק/פרטישנים/מערכות קבצים שונות. כמו כן ישנה תמיכה מלאה ב-UEFI, OpenFirmware וכמובן BIOS רגיל. ישנה תמיכה מלאה גם ב-MBR וגם ב-GPT ומבחינת מערכות קבצים, יש תמיכה ל-NTFS, ולחובבי המק – גם +HFS.

תמיכה ב-Storage: ב-RHEL-7 שוב החליפו את מערכת ה-Storage מ-tgtd ל-LIO. הסיבה? תמיכה הרבה יותר רחבה בציודים כמו FCoE, iSCSI, iSER וכמובן SRP (אהלן לחברים ממלאנוקס הישראלית, תוזילו כבר מחירים!). ניתן לנהל את כל העניינים דרך פקודת targetcli.

רד האט כוללת את תוכנת dm-cache שמאפשרת לך לעשות משהו שחובבי ZFS עם מערכות רציניות מכירים ממזמן: אם יש לך מערך דיסקים מכניים ואתה רוצה יותר מהירות, אתה מוסיף דיסק SSD שישמש ל-Cache וכך תקבל ביצועים יותר גבוהים. התוכנה שרד-האט ממליצה עליה היא נחמדה, אבל אני ממליץ במקומה את EnhanceIO שנותנת ביצועים יותר גבוהים בהשוואה ל-dm-cache.

kernel: ערימות של שיפורים הוספו ל-kernel, הנה כמה מהם:

  • ניתן לדחוס זכרון SWAP כך שכמות הקריאה/כתיבה היא נמוכה בהרבה מהמצב הרגיל.
  • תמיכה בוירטואליזציה של APIC, כך שמכונה וירטואלית תהיה כמה שיותר "טבעית" בהשוואה למכונה פיזית (את הפוקנציונאליות הזו ניתן לקבל רק במעבדי XEON ו-Opteron חדשים). 
  • עד היום מבחינת דיווח על בעיות חומרה בשרת היו מספר כלים שלא תמיד נתנו לוגים מפורטים ומסבירים מספיק מה התקלה שהמערכת חווה (זוכרים kernel panic למרות שלא רואים לפני כן כלום בקובץ log? העיקר שכל הנורות LED מהבהבות על המקלדת, מעולה!) ב-RHEL-7 ההפצה כוללת את HERM (ר"ת Hardware Event Reporting Mechanism) שכוללת daemon בשם raddaemon שיודע לנהל את כל מה שקשור ל-RAS (ר"ת Reliability, Availability, Serviceability) ורושם את הכל ללוג. HERM כולל כלים לדיווח, בדיקה וכו'. 

וירטואליזציה: ישנם שיפורים רבים ל-KVM מאוד בהשוואה לוירטואליזציה שקיימת ב-RHEL-6, ושוב, אציין רק כמה מהם שנראים חשובים:

  • שיפור רציני תעבורת נתונים ב-VM: ב-KVM יש פונקציונאליות חדשה (עדיין בשלב Preview) שנקראת virtio-blk-data-plane שפותחת שרשור (thread) משלה שמיועד אך ורק לתעבורת נתונים, כך שהמכונה עצמה עובדת ב-thread אחד והעברת הנתונים ב-thread אחר. 
  • עד כה QEMU (שהוא חלק גדול מ-KVM) תמך ב-32 כניסות PCI. בגירסה החדשה (שוב, Preview) יש יותר מ-32
  • מעתה ב-KVM ישנה פונקציונאליות חדשה שנקרא QEMU Sandboxing, כך שישנם פילטרים שמפרידים ומבצעים פילטרים לקריאות מה-Guest ל-Host ומאפשרים הגנה יותר חזקה.
  • מעתה ניתן במערכות אורחות להוסיף מעבד ל-VM רץ כך שאין צורך לכבות אותו (שימו לב שעל מנת לבצע זאת, סוג המכונה הוירטואלית ב-QEMU אמור להיות pc-i440fx-rhel7.0.0)
  • מספר "תורים" לכרטיסי רשתות ולמעבדים: עד היום, כל תעבורת הרשת של ה-VM נעשתה תחת אותו Queue. מעתה, כל כרטיס ו-Queue שלו.
  • דחיסה בזמן מיגרציה חיה – מעתה ניתן לבחור אפשרות לדחוס את דפי הזכרון של המכונה האורחת שמועברת בצורה חיה, ובכך לחסוך זמן למיגרציית המכונה.
  • תמיכה ב-VM מבוסס Hyper-V: וירטואליזציית KVM יודעת לתמוך גם במכונות VM שהיו רצות תחת HyperV, כך שניתן להעביר מכונות וירטואליות ממערכות Hyper-V אל KVM.
  • תמיכה ל-USB-3 – מעתה יש גם תמיכה לציודים מבוססים USB-3 כ-Guest
  • תמיכה ל-Windows 8 ו-Windows Server 2012 – המערכות הנ"ל נתמכות באופן מלא על RHEL-7 כאורחות.
  • הקטנת משאבים ל-VM: ניתן להגביל מכונות VM מבחינת משאבים אם המכונה האורחת לדוגמא "משתוללת" (מתאים במיוחד ל-Hosting)
  • מיגרציה "חיה" בין שרתים: מעתה ניתן לבצע Live Migration בין מערכות RHEL 6.5 ל-RHEL-7 (כך שאם רץ אצלכם KVM על RHEL 6.5 ואתם מקימים שרתי RHEL-7, תוכלו להעביר את המכונות האורחות בצורה חיה).
  • תמיכה בכרטיסי גרפיקה מקצועיים: ניתן למפות מעתה כרטיסים גרפיים מקצועיים (Quadro, GRID, Tesla K) של nVidia ישירות למערכת VM, כך שהכרטיס הפיזי יהיה הכרטיס הגרפי השני (הראשון הוא הוירטואלי).
  • תמיכה ב-AER: אם הלוח שלך תומך ב-PCI AER (רוב לוחות האם עם PCI Express, לא כולם) ומיפית כרטיס PCI אל VM ויש תקלה בכרטיס PCI, רק ה-VM מופסק, ולא כל המערכת הפיזית.
  • תמיכה ב-Q35 Chipset: (עדיין ב-Preview) – מעתה ניתן להקים VM מבוסס Q35 מה שיתן למערכת האוכלת פונקציונאליות כמו AHCI. מצוין אם אתם רוצים להקים VM שיריץ Windows עדכני.
  • תמיכה ב-Large Pages עם VT-d: אם המכונה שלכם כוללת מעבד עדכני עם תמיכת VT-d, ניתן להגדיר ב-KVM שהוירטואליזציה תשתמש ב-2 מגה זכרון שישמשו כ-Buffer לתרגום פעולות I/O בין המערכת האורחת למערכת האמיתית (host) ובכך לשפר ביצועי דיסק/רשת בוירטואליזציה.
  • תמיכה ב-QCOW V3 (נקרא גם QCOW3): אחת התלונות הכי גדולות על KVM (ועל פתרונות וירטואליזציה אחרים, אגב) היא איטיות בכל מה שקשור לדיסק בהשוואה למערכת "טבעית". QCOW2 V3 בא לתת פתרון עם ביצועים מאוד קרובים למהירות "טבעית". ניתן לקרוא על QCOW2 V3 בהרחבה כאן.
  • מיגרציה חיה בשרשור – מעתה Live Migration יהיה במקום Process יחיד – כ-Thread (פר מיגרציה)
  • תמיכה בחיבור חי של ציוד: מעתה ציודים כמו USB או סריאליים ניתן לחבר באופן "חי" ישירות ל-VM (הגיע הזמן, אצל המתחרים זה קיים ממזמן).
  • תמיכה בטכנולוגיות החדשות של מעבדי אינטל (כמו 256 ביט integer vectors), פקודת MOVBE ועוד.
  • תמיכה בוירטואליזציה אחרת: ניתן להשתמש במערכות VM שהוקמו על HyperV ישירות ללא צורך בהמרה.
  • תמיכה משופרת ב-libguestfs: מעתה ניתן להשתמש בדיסקים וירטאליים (שרצו על מכונת VM) במכונה אחרת (או במכונת ה-host) עם הגנה של sVirt (כך שאפליקציות זדוניות מהמערכת האורחת לא ירוצו על מערכת אחרת שבוצע אליה mount לדיסק). ניתן מעתה להשתמש בדיסק האורח כ-block device דרך NBD. בנוסף ניתן לחבר בצורה "חמה" דיסקים כאלו.

וירטאליזציה מתחרה: RHEL-7 מאפשר להריץ עליו מכונות וירטואליות, אך יהיו רבים שירצו להריץ את המערכת כ-VM, ורד האט השקיעו בגירסה הזו את המקסימום:

  • יש תמיכה מלאה ב-XEN (כך שאין צורך להתקין/לשנות את המערכת על מנת שתרוץ כמערכת אורחת תחת XEN)
  • משתמשים ב-Hyper-V? תשמחו לדעת ש-RHEL-7 יכולה להיות משומשת כמכונה מסוג "דור שני" על ה-Hyper-V (ללא התקנת דרייברים נוספים) תחת Windows Server 2012 R2.

וירטואליזציית אפליקציות: RHEL-7 כוללת את LXC שמוכר יותר כ-Linux Containers. הקונטיינרים הללו הם מה שיש בסולאריס ומוכר כ-Zones, מה שהיה בעבר ב-OpenVZ: מערכת שיכולה להקים מכונות וירטואליות אך ללא כל הטרראם של מערכת וירטואליזציה מלאה. אין כאן דרייברים, חיבור ציודים חיצוניים כמו USB, PCI וכו'. המטרה היא לאפשר לך מערכות אחרות קטנות כדי להריץ עליהן אפליקציות לשם Build, לשם ניסויים וכו'. אחת האפליקציות הכי פופלריות לשימוש יחד עם LXD הוא ה-Docker שנותן לך את כל הכלים להקים ולתחזק קונטיינרים כאלו (ויש גם ממשק WEB אם אתם רוצים). אפשר, אגב, עם LXC להתקין מערכות לינוקס מתחרות על אותו לינוקס שאתם מריצים (אך לא מערכות שאינן לינוקס).

Clusters: ב-RHEL-7 האשכולות (Clusters) מוגדרים ומנוהלים ע"י Pacemaker. ביי ביי luci, ricci, ccs ושלום ל-pcs. כלי לא כל כך קל, כך שאם אתם רוצים, גם לזה יש ממשק WEB.

פיתוח: כמיטב המסורת של Red Hat, גם הפעם הכלים בהפצה מעודכנים לגירסה האחרונה היציבה. GCC בגירסה 4.8, עם שיפורים ותוספות, תמיכה למעבדים חדשים, תמיכה ב- ++C בסטנדרט 11++C ותמיכה חלקית ב-C11, תמיכה משופרת ב-OpenMP. גם GLIBC קיבל עדכונים והוא בגירסה 2.17, עם שיפורים ואופטימיזציות רציניות למעבדי אינטל ו-AMD (גירסת 64 ביטכמובן), תמיכה משופרת ב-SSE ו-SSSE3, SSE4.2, AVX. גם התמיכה ב-PowerPC וב-Power7 שופרה וכמו כן יש תמיכה משופרת בהרבה ל-S/390, Z10, zEnterprise 196.

גירסאות מעודכנות לשפות תכנות: Ruby 2.0, פייתון מגיע ב-2 גרסאות, כאשר גירסה 2 שמגיעה (2.7.5) תואמת קדימה לפייתון 3, מודול I/O מהיר יותר, ומודול sysconfig (נו, זה רד האט, החברה שכל הכלים וההתקנה שלה כתובים בפייתון). גירסת JAVA היא 7 ויש תמיכה מלאה למספר גרסאות JAVA במקביל שיותקנו על המערכת (השתמשו בפקודת alternatives כדי לשנות/להציג איזו גירסת JAVA אתם רוצים להשתמש אם התקנתם יותר מגירסה אחת). 

רשת: כפי שציינתי לעיל, RHEL-7 משתמש בברירת המחדל לכל אורך הדרך ב-NetworkManager ואיתו ניתן להגדיר רשת כחיבור יחיד או יותר, Teaming, Bonding, VPN, חיבור DSL, WIFI ועוד, כלומר הכל תחת כלי אחד. מבחינת חומת אש, RHEL-7 משתמשת ב-firewalld, שזו חומת אש דינמית עם תמיכה ל-Zones. מבחינת DNS, המערכת מגיעה עם DNS Client שתומך ב-DNSSEC על מנת לבצע אותנטיקציה ולוודא שנתונים עברו בהצלחה ללא הפרעה.

כלי נוסף ש-RHEL-7 מגיעה איתו הוא ה-OpenLMI, שהוא כלי לניהול שרתים כאשר התוצאה אינה ידועה (בניגוד ל-Puppet שהכל ידוע מראש). על ההבדלים בין Puppet/Chef ל-OpenLMI ניתן לקרוא בהרחבה כאן.

אותנטיקציה: ב-RHEL-7 רד האט די "נכנעים" לשוק וקל יותר לצרף מכונות ושרתי לינוקס ל-Active Directory (בין אם מדובר על ה-Active Directory של מיקרוסופט, או אם אתה משתמש במימוש SAMBA). ישנו Trust חדש ב-RHEL-7 וקל מאוד (בעזרת פקודת realm) לחבר מכונת RHEL-7 לשרת Active Directory. שימו לב: חשוב שיהיו POSIX Attributes ב-AD על מנת לאפשר למשתמשי לינוקס להתחבר למכונות RHEL אם האותנטיקציה מבוצעת על AD.

אבטחה: ב-HREL-7 נעשו מספר שינויים רציניים לאבטח יותר חזק את המערכת, להלן חלק מהשינויים:

  • מעתה ניתן להגדיר ChrootDirectory יחד עם משתמשים מסויימים שאתם רוצים שיכנסו, והם יהיו תחת ה"השגחה" של SELinux (בדף ה-MAN זה מופיע תחת: selinuxuser_use_ssh_chroot). 
  • אבטחה משופרת יותר ל-SSH: מעתה ניתן להגדיר מספר "אתגרים" לחיבור. עד כה לדוגמא היה אפשר לבקש מהמשתמש מפתח או סיסמא, מעתה ניתן להגדיר שמשתמש יוכל להיכנס רק ע"י מענה ל-2 האתגרים או יותר (מפתח, סיסמא, כרטיס חכם)
  • חבילת ה-NSS שודרגה ומעתה אלגוריתמים ישנים כבר לא מתקבלים.

דסקטופ: אין הרבה מה לחדש: GNOME 3, עם מראה Gnome Classic (מראה רשימת חלונות למטה, ותפריטי Applications ו-Places למעלה). +GTK שודרג ל-3 והוא מותקן אוטמטית במקביל עם גירסה 2, כך שאפליקציות ישנות אמורות לרוץ ללא בעיה. בונוס: אפליקציית GNOME Boxes ליצירת מכונות וירטואליות על המכונה שלך וניהול (קליל) של מכונות וירטואיליות על KVM מקומי או רחוק.

מבחינת KDE – גירסה 4.10 מגיעה עם RHEL 7 עם Plasma Workspaces. אפליקציה נחמדה שמגיעה איתה: KScreens לניהול דינמי של חיבור מסכים למחשב.

שרתי אפליקציות: להלן שרתי האפליקציות שמגיעים עם RHEL-7 והערותיי:

  • Apache 2.4 – שרת ה-HTTP הכי ידוע בעולם מגיע בגירסה 2.4. בגירסה זו שונו מספר דברים וכתוצאה מכך נשברו (מבחינת תואמות בינארית) מספר מודולים. תוכלו לקרוא עליהם כאן. מבחינת CGI, יש לאפאצ'י 2.4 מודול Native כ-FastCGI שנמצא תחת mod_proxy
  • MariaDB 5.5 – מעתה במקום לאמר MySQL Server, אימרו MariaDB Server. אותה הגברת בשינוי אדרת. עוד פרטים לגבי השינוי והיתרונות – כאן.
  • PostgreSQL 9.2 – עוד אפיקציית בסיס נתונים ידועה.

לסיכום: RHEL-7 זו הגירסה שבעצם משלימה פער גדול מסוף שנת 2010 (הזמן שרד האט 6.0 יצאה לשוק), הרבה דברים משתנים ומשתפרים ורד-האט מנצלת את ההזדמנות גם להיפטר מדברים ישנים. 

האם כדאי להטמיע את RHEL 7 לכשתצא? כן אבל לאט. קודם כל, חשוב להבין שרד-האט זורקת המון דברים ודרייברים החוצה, כך שיכול להיות שלמשך זמן מסויים תצטרכו לתמוך ב-2 הפצות בארגון שלכם (גירסה 6 ו-7), זו תהיה הזדמנות טובה עבורכם להעריך מחדש מה האפליקציות שרצות, על מה הן רצות, האם כדאי לעשות לאותן מערכות P2V?, האם כדאי להתחיל לבדוק אלטרנטיבות לאפליקציות ישנות? כל ארגון והחלטותיו.

כדאי לתת את הדעת על עוד נקודה שלא רבים מתייחסים אליה: ישנם הרבה חלקים בהפצות לינוקס שמשתנים יותר מהר ממה שגירסאות Major משוחררות. כך לדוגמא PHP שמגיע עם RHEL 6 הוא 5.1, משהו ש-ZEND יצעקו עליך לא להריץ בשום מערכת ועדיף שתריץ את גירסה 5.4 או אפילו 5.5, אבל רשמית היא לא קיימת להפצת RHEL (היא קיימת ב-repository של צד ג', כמו remi), כנ"ל לגבי ספריות ואפליקציות נוספות (הדפדפן כרום לדוגמא לא קיים יותר ל-RHEL או CentOS אלא דרך טריקים ושפצורים) ורד-האט עדיין לא נתנה שום פתרון לכך. Fedora לא מומלץ שיכנס בשום ארגון ולשום מחשב שמייצר דברים של פרודקשן אלא למטרת טסטים. האם רד-האט תלך בעקבות Open SuSE והפצות אחרות ל-Rolling release? אני בספק. לקוחות רד-האט מצפים לדברים יציבים, גם אם הם לא הכי מעודכנים.

סקירה: רד-האט 7 (בטא) – חלק ראשון

Red-Hat-300x300לפני מספר חודשים ערכה חברת מטריקס יחד עם רד-האט ישראל כנס "רד האט ופיצה", (כתבתי על כך בעבר) ולצערי מה שנתנו שם מידע לגבי רד-האט 7 היה בחלקו שגוי והחלק הארי לגבי רד-האט 7 היה פשוט חסר, אולי בגלל שהזמן שהוקדש להצגת רד-האט 7 היה בערך .. 15 דקות, אם אינני טועה, לכן החלטתי לכתוב סקירה מלאה  על רד-האט 7 (שנמצאת כרגע בשלבי בטא. בניגוד לעבר, רד-האט הפעם החליטה לשתף את הציבור וכל אחד יכול להוריד את הגירסה מכאן, רק שלא תעיזו להריץ את זה על שרת פרודקשן, כי דברים עדיין ישתנו והתאימות תישבר).

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

אז למי שלא מכיר את רד האט מבחינת היסטוריה, הנה הסבר קצר: רד-האט היא חברה עם "ביצים של שור". כשהם מחליטים ללכת על משהו, הם עושים זאת (גם כשהם עושים שטויות. דוגמא? נסו לחפש ספר כלשהו על KVM באמזון או כל חנות ספרים אחרת, באנגלית. לא תמצאו והתיעוד של רד-האט לוקה בחסר). מי שעבד עם הפצות רד האט בעבר ראה איך בגירסה אחת החברה תומכת ב-X ובגירסה אחרת לאחר תקופה – החברה זורקת את אותה טכנולוגיה/תמיכה בטכנולוגיה ולפעמים חוזרת בה (לדוגמא: תמיכה ב-XEN), אבל אם יש משהו אחד שרד-האט שולטת בו ללא עוררין – הוא שוק ה-Corporate, במיוחד השוק האמריקאי עם קשרים מצויינים ליצרני חומרה, יצרני תוכנות CAD ואנימציה ולאחרונה גם קשרים טובים עם יצרני מעבדי ARM. רוב יצרני החומרה שולחים ציודים לרד-האט (או עובדים עם רד-האט) לקבל סרטיפיקציה שמערכת ההפעלה רצה בצורה חלקה עם גירסאות ה-RHEL למיניהן, כך לדוגמא שרתים של HP, IBM, DELL תמיד תומכים לחלוטין בהפצות רד-האט המסחריות (לא Fedora) ואותן חברות גם מנפיקות דרייברים ואפליקציות שירוצו תחת RHEL. לאחרונה גם נוספה חברה נוספת שאולי שמעתם עליה .. מיקרוסופט. הם גם עובדים עם רד-האט והם מממנים תמיכה של Hyper-V הן ל-KVM והן RHEL כ-Guest שנתמך רשמית עם דרייברים רשמיים "ישר מהקופסא".

רד-האט עובדים בצורה מאוד פתוחה עם הציבור וקהילת הקוד הפתוח. אחת לחצי שנה (בערך) משוחררת גירסת Fedora ובה נמצאים החידושים האחרונים מבחינת תמיכה בציוד, אפליקציות חדשות, גירסאות חדשות של תוכנות שונות, תמיכה בסטנדרטים ועוד. רד-האט גם לא מתביישת להעיף תמיכה מסטנדרטים ישנים והמושג Depricated מוכר היטב לכל איש לינוקס. לאחר בערך כמחצית השנה רד-האט משחררת גירסת Fedora חדשה ולאחר כשנה מיציאת 2 גרסאות אחורה, רד-האט מפסיקה לשחרר עדכונים לאותה גירסה ובאגים שנפתחים עליה נסגרים במהירות כ-WONTFIX. גירסאות ה-RHEL הן בד"כ שילוב של גירסה וגירסה לפני או גירסה לפני אחרונה + תיקונים (כך לדוגמא, רד-האט 7 מבוססת על Fedora 19 + עדכונים ותיקונים וקרנל 3.10), לאחר שרד-האט יוצרים פיצול (fork) – ואותה גירסה תהיה ה-RHEL הרשמי, אז מתחילים להגיע שפצורים ותיקונים שמגיעים באופן רציף במהלך ה-Updates וה-Live cycle מ-בטא עד מוצר רשמי.

רד-האט 7 שונה מאוד מגירסאות RHEL קודמות בכל מיני מובנים:

  • מערכת ההפעלה יודעת לתקשר בצורה הרבה יותר טובה עם הסביבות, בין אם זה סביבות מתחרות (מיקרוסופט) ובין אם זה ציודים וחיבורים שונים. מה שהיה בעבר נחשב כאב ראש להגדרה, בגירסה הקרובה העניין יהיה פשוט (כמו להתחבר ל-Active Directory וכו')
  • בגירסה זו רד-האט החליטה "לחסל" תמיכה בציוד ישן, כך שדרייברים לציודים ישנים (בני 4 שנים ומעלה לערך) פשוט לא נמצאים יותר בהפצה, ורשימת הדרייברים שהועפו – לא קצרה. דוגמא פשוטה: אתם חובבי שרתי HP וכתבת כמה סקריפטים שמשתמשים בדרייבר cciss לדיסקים ובקר? אם תעבור ל-RHEL-7 תצטרך לשכתב הכל מחדש, כי אין יותר cciss.
  • רד האט עוברת למערכות קבצים של "החבר'ה הגדולים", כך לדוגמא מערכת הקבצים (File System) בברירת המחדל תהיה XFS של סיליקון גרפיקס והפעם ישנה גם תמיכה ב-BTRFS (טמטום של אורקל: במקום לשחרר את ZFS עם רשיון פתוח וגירסת ZFS מעודכנת, הם משלמים לצוות מהנדסים לכתוב את BTRFS) כך שמבחינת Storage לא חשוב מה תזרוק על RHEL, ה-File System יתמוך בקלות.
  • רד-האט נוטשת את מערכות ה-32 ביט. תוכל כמובן עדיין לרכוש גירסה 32 ביט, אבל רד האט מודיעה רשמית: אם יש לך אפליקציות 32 ביט, תבצע להן Port ל-64 ביט או שתחפש אפליקציה 64 ביט אחרת שעושה אותה עבודה. גרסאות הבאות כבר לא יהיו קיימות יותר עם 32 ביט (אם כי כמובן תהיה תמיכה ב-32 ביט במערכות 64 ביט)
  • מערכות שלמות שליוו את גירסאות רד-האט למיניהן שנים רבות, אומרות "ביי ביי" ברד-האט 7. ביי לכל עניין ה-service/chkconfig וכו', ושלום ל-systemd וכדאי שתכירו טוב את journalctl אם אתם רוצים לדעת מדוע שרות כלשהו לא ממש רוצה לעלות ולפעול.
  • מבחינת וירטואליזציה, KVM קיבל שדרוג רציני מבחינת תמיכה בפונקציות חדשות עם תמיכה ליותר זכרון (עד 4 טרהבייט, לכו תמצאו מכונה כזו…), ותופינים נוספים.
  • לחברות בעלות מערכות POWER של IBM – אם תרצו לעבור ל-RHEL-7, תצטרכו לדסקס עם סמנכ"ל הכספים, מעכשיו התמיכה ל-Power7 ומעלה בלבד. (אגב, נקודה אישית: מישהו אולי מוכר מערכת Power5 שהיא Workstation? אם כן, אני מעוניין לרכוש, צרו קשר).
  • שאר השינויים והשינויים המוזכרים יופיעו בהרחבה בחלק השני של הפוסט.

רד-האט 7 במידה מסויימת בא לדרוך עם פטיש 10 קילו על רגל של חברה מסויימת. של אורקל וליתר דיוק על החלק של SUN שאורקל רכשה. בעבר היו לסולאריס יתרונות רבים על פני RHEL (הן מבחינת ברזל והן מבחינת מערכת הפעלה) אבל הפער מצטמצם במהירות. סתם דוגמא: חובבי סולאריס היו מאוד גאים ב-DTrace שמשמש לדיבאגינג אפליקציות בצורה דינמית מבלי לקלל כל 3 שניות את הבאגים. עכשיו יש DTrace ללינוקס (כולל קרנל מודול) ויש כמובן את Systemtap. מערכת קבצים כמו ZFS נחשבת לאחת המתקדמות ביותר שיש, אבל אורקל מפתחת את המתחרה (טמטום, זוכרים?) BTRFS שאמנם עדיין לא מגיע לרמה של ZFS (שאגב, קיים גם ללינוקס), אבל הוא בהחלט בדרך להיות שווה לה. מבחינת כמות אפליקציות ותאימות, דווקא SUN עושים Porting לאפליקציות לינוקס אל סולאריס עוד מסולאריס 10 (ומי שמשתמש בסולאריס 10 ומעלה, יכול להעיד שהמערכת כבר מאוד דומה להפצות לינוקס).

רד-האט, מבחינה "פוליטית", עובדת הפוך מחברות אחרות בכל הנוגע להפצות חופשיות (אההמ… קנוניקל ודביאן… אין שם ממש אהבה, לא שממש יכולה להיות שם משהו כשאדון סטולמן ומעריציו בדביאן). קהילת ה-CentOS קיבלו מיידית גישה עוד לפני שיצאה הבטא הראשונה של RHEL-7 ורד-האט עובדים במשותף עם קהילת ה-CentOS על מאגר (repository) שנותן תוספות שמסיבות שונות לא יכולות להיכנס ל-RHEL, אני מדבר על מאגר EPEL כמובן, ו-CentOS-7 בדרך לצאת ואפשר לעקוב אחרי ההתפתחות בדף מיוחד באתר של CentOS וכפי שנכתב שם, מהרגע שיצא בעתיד גירסת בטא חדשה וגירסה רשמית של RHEL-7, גירסת CentOS תצא תוך ימים ספורים אחריה, לרווחתם של אנשי סיסטם רבים.

ולבסוף, אני מעוניין להתייחס לנקודה שרבים שואלים מבחינת הפצות: אובונטו או רד-האט/CentOS? מבחינת דסקטופ, אין ספק שקנוניקל השתלטה על השוק הזה (רד האט פשוט לוקחים גירסאות Desktop כמו KDE ו-GNOME את הגירסה היציבה ופשוט זורקים אותה בפנים עם מספר תיקונים ותו לא), אבל בתחום שרתים רד-האט עדיין שולטת ללא עוררין. רוצים הוכחה? הנה הקטלוג חברות יצרניות שרד-האט נותנת תמיכה רשמית, והנה הקטלוג של קנוניקל, יצרנית אובונטו. רואים את ההבדל הענק? (רד האט גם רווחית, אובונטו עדיין לא), כך שאם אתם ניגשים ללמוד כדי להיות אנשי סיסטם, במיוחד על שרתים, עדיף שיהיה לכם VM עם CentOS האחרון עם נסיון טוב עליו (רד האט הרשמי יהיה קצר יקר בשביל זה, 800 דולר לשנה)

DriveDroid – האפליקציה שעוזרת המון לאנשי סיסטם/IT

מי מאיתנו לא עבר את הדבר הבא בחיים: אתה צריך להתקין מערכת הפעלה על מחשב או שרת, או להפעיל תקליטור כלשהו על מנת לבצע Rescue למערכת שלא מצליחה לעלות. אתה מגיע למכונה, מגדיר ב-BIOS לעלות מ-CDROM/DVD או מאיזה דיסק און קי (או כרטיס SD) ו… "אליהו הנביא" של הצרות (כן, מרפי) מגיע לביקור, ואז הבעיות מתעוררות, הנה חלק מהן:

  • התקליטור לא צרוב טוב / לא נקרא טוב
  • כרטיס ה-SD החליט לא לעשות Boot
  • הדיסק און קי או כרטיס ה-SD שהיית בטוח שנמצאים אצלך בתיק – לא שם
  • ה-Boot הראשוני עבר בהצלחה, אבל אז המערכת מחליטה שההתקן שלך לא כולל את מערכת ההפעלה (קרה לי כמה פעמים עם CentOS) ולא ניתן להמשיך עם ההתקנה
  • ה-BIOS מחליט לא להכיר לך בדיסק און קי
  • השרת רואה את הדיסק און קי, אתה מקבל Prompt של Boot אבל הוא לא מוכן להמשיך (FreeNAS 9 על שרת DELL, גם שם הייתי)

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

מתסכל? קרה לכם? סביר להניח שכן.

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

בחור אחד בכינוי FrozenCow החליט לפתח משהו חדש ומאוד מעניין: הרי מכשיר האנדרואיד שלך תמיד איתך, אז מדוע שמכשיר זה לא יהפוך למכשיר שמאפשר Boot למחשבים/שרתים? 

זה בדיוק מה שאפליקציית DriveDroid עושה. היא מאפשרת למכשירי אנדרואיד (כן, גם ישנים עם אנדרואיד גירסה 2) שכבר עשו להם ROOT לחבר אליהם כבל USB פשוט מהמכשיר למחשב, להריץ את האפליקציה, להפעיל את המחשב, לבחור Boot menu (דרך ה-BIOS בד"כ מופיעה הודעה ללחוץ על מקש F מסויים כדי לקבל Boot Menu), לבחור את המכשיר שלך (הוא יראה תחת השם Linux) וזהו, מבחינת המחשב שלך זה יראה כאילו הכנסת דיסק און קי.

אבל האפליקציה הזו עושה הרבה יותר:

  • היא מאפשרת לך ליצור IMAGE ריק במכשיר, ואז ממערכת ההפעלה לצרוב לשם Image של ISO שאתה מעוניין
  • בבחירה של ה-Image אתה יכול להחליט אם אתה רוצה שזה יהיה Read/Write או Read Only (כן, שלא לדפוק את ה-IMAGE)
  • אתה יכול "לשפוך" כל גירסת ISO של Windows או Linux
  • אם אתה משתמש במספר גרסאות לינוקס אז אפשר ליצור מספר קבצי Image

ויש לזה עוד שיפור, אם כי הוא קצת מצריך החלפת Kernel לאנדרואיד שלך (יש כבר גרסאות Kernel מוכן למכשירי סמסונג פופולריים, או למי שמשתמש ב-CM 11 הלילי) שהופך את מכשיר הטלפון שלך למכשיר … DVD. במקרה הזה כל מה שאתה צריך זה פשוט לזרוק את ה-ISO איך שהוא למכשיר הטלפון שלך, להפעיל CDROM Emulation ומבחינת המחשב/שרת, הוא יהיה בטוח שהתקנת כונן DVD/CDROM. לחלק נכבד מהמכשירים יש צורך בלקמפל קרנל של המכשיר שלך ולהוסיף את הטלאים (אתה לא איש לינוקס רציני אם לא קימפלת קרנל 😉 ).

היום כבר יש כרטיסי מיקרו SD של 64 ג'יגהבייט (אפשר לרכוש אחד כזה כאן) ואם מכשירך לא תומך ב-64GB אפשר תמיד לרכוש כרטיס יותר בזול של 32GB (רשימת חנויות), אז במקום להסתובב עם דיסקים וכל מיני דיסק און קי קטנים, אפשר פשוט להכין פעם אחת IMAGES של המערכות הפעלה שאתה משתמש, ואז לחבר כבל, להפעיל את האפליקציה ולהשתמש. אחרי הכל, סביר להניח שאת הדיסק און קי או כרטיס SD אתה אולי תשכח, אבל את הטלפון/טאבלט שלך אתה לא תשכח כל כך מהר.

אישית, אותי זה כבר הציל פעמיים (האפליקציה מגיעה עם קישורים מובנים ל-ISO של GParted ולגירסאות לינוקס שונות).

חושבים לעבור לבזק ולנצל את מבצע 100M? חכו

בימים האחרונים בזק יצאה במבצע (שעדיין מופיע באתר האינטרנט של החברה, שכרגיל שמה פס על משרד התקשורת) – שדרג את החיבור שלך ל-100 מגה ב-ח-י-נ-ם למשך שנה! כמובן שרק האותיות הקטנות מדברות על כך שה-100 מגה זה רק תשתית וזה לא כולל את מחיר ספק האינטרנט, עוד כמה עשרות שקלים. האותיות הקטנות כמובן שלא אומרות לך שגם בבדיקה שתבצע אתה לא תגיע ל-100 מגה בשום מצב. תקבל במקרה הכי טוב אולי 60 וגם זה – עד לשרת של בזק או 50-60 במקרה של Speedtest. במציאות הרגילה, לא תקבל כמעט כל שינוי בין חבילה של 20 לחבילה של 100 מגה, מה גם שאזורים רבים בארץ אפילו לא יכולים לקבל קו של 50 מגה אבל נו… אתה לא במרכז? אז אתה לא נחשב.

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

בכל הקשור לתחרות מול הכבלים, יותר ויותר אנשים מגלים שאם יש לך תמיכה של תשתית בזק באזורך, עדיף להתחבר לבזק (למרות שמבחינת מערכת DOCSIS של הכבלים, המערכות הללו מעולות גם למהירויות של 400 מגה – אבל כשיש לך טכנאים שעושים עבודה מחורבנת או   הנהלה קמצנית/מפגרת – גם המערכות הכי טובות יפשלו) – בד"כ התשתית שלהם טובה ואפשר לקבל תמיכה לא רעה (אבל לא ממש מעולה, אם יש לך Packet Drop מטורף, אתה תצליח לגרום לחתול להבין את המושג לפני שתצליח לגרום לתומכי בזק להבין את המושג, מנסיון!), אבל הבעיה הכי גדולה של בזק – זה המחיר, אותו מחיר שתצטרכו לשלם בעוד שנה (אם תצטרפו עכשיו) או המחיר שלקוחות בזק צריכים לשלם עכשיו.

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

bezeq

כפי שאתם רואים, אני צריך לשלם לבזק סכום של 168 שקל לחודש. אני צריך לדוגמא לשלם על "קו קל" סכום של 21.44 שקלים למרות שאין לי מכשיר טלפון קווי בבית. יש לי פקס, ומה לעשות שאחת לחודש חודשיים אני צריך לשלוח פקס למטומטמים באחת מהרשויות (ביטוח לאומי, מע"מ וכו' – הרי טמטום לא חסר שם, במיוחד ששולחים לך חיובים כאילו אתה נוחי דנקנר), ויש לי שימוש קטן נוסף בקו – שאני בודק אם מכשיר כלשהו שקיבלתי לבדיקה אכן מוציא/מקבל שיחות (אני מחייג לפקס או שהמדפסת מחייגת למכשיר), אז בזק כמובן שודדים אותי ב-21.44 שקלים על כך. אני גם צריך לשלם על נתב בזק 21.28 שקלים למשך שנתיים (מעניין ששום חברת סלולר ישראלית שמשרד התקשורת אסר עליה הסכמים כובלים עם מכשירים סלולריים – לא התלונן למשרד התקשורת על הנוהג הזה של בזק). 

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

מבחינת בזק, המחיר הזה הוא מחיר "הגון". 

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

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

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

כמה מילים על הצפנת סיסמאות ב-DB

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

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

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

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

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

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

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

כשרוצים להוסיף משתמשים לאפליקציה שלך, צריכים לבצע מספר שלבים:

השלב הראשון לאחר קבלת פרטי המשתמש, הוא "להמליח" את הסיסמא ומומלץ גם את כתובת האימייל. ב"המלחה" הכוונה להוסיף מספר תווים רנדומלי לפני, או אחרי, או באמצע הקלט שקיבלת, כך שאם הסיסמא שהזנתי היא hello123 אז לאחר ההמלחה היא תהיה hello123#O2j!d%425  (כאשר אחרי ה-3 יהיו ג'יבריש של אותיות רנדומליות שהמערכת תחשב מחדש בכל פעם שמישהו נרשם. אפשר לשפר ולהוסיף ג'יבריש בגדלים שונים [אנחנו פה לאמלל את חיי הפורץ או לא?], ואפשר לשים את הג'יבריש לפני הסיסמא האמיתית [כל עוד היא בגודל קבוע, כדי שתוכלו אחר כך לוודא שהסיסמא תקינה] או באמצע, הכל תלוי בכישורי התכנות של המפתח.

עכשיו, לפני שאנחנו מכניסים את הסיסמא עם הג'יבריש, אנחנו נצפין את הסיסמא עם הג'יבריש יחד. יש כל מיני סוגי הצפנות, אני ממליץ ללכת על AES-256 (חובבי PHP – יש כאן דוגמא). בשיטת הצפנה זו, ישנו מפתח שלכם, ואיתו אתם מצפינים. ההצפנה מומלץ שתיעשה דרך האפליקציה שלכם והמפתח שלא ישב בקוד עצמו אלא במקום םאחר מחוץ לתיקיות הקוד עם הרשאות מצומצמות מאוד. מדוע AES-256? כי זו הצפנה חזקה מאוד מצד אחד, ומצד שני היא לא מכבידה על שרת האפליקציות (כל שרת עם מעבד Xeon מסידרה 5XXX או מעבד i5 ומעלה או כל מעבד של AMD מה-3 שנים האחרונות כולל קידוד ופתיחת AES על הסיליקון עצמו)

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

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

שיטה נוספת היא שיטת ה-Hashing – בשיטה זו אלגוריתם (כמו SHA256) מקבל טקסט כלשהו (כמו סיסמא) והוא פולט מחרוזת שנראית כמו ג'יבריש. הסיסמא עצמה לא נשמרת בשום מקום ולא נכתבת לדיסק הקשיח של השרת. מה שכן נכתב ל-DB הוא הפלט, או כפי שהוא נקרא – ה-Hash. כך כשהמשתמש מנסה להתחבר ומקיש סיסמא, הסיסמא שהוא מקיש גם עוברת את אותו תהליך ואם ה-Hash שנוצר מהסיסמא שהמשתמש זה עתה הקיש שווה ל-Hash שנמצא ב-DB, אז הסיסמא היא נכונה והמשתמש יוכל להיכנס. חשוב לציין – גם כאן ישנם אתרים רבים שמאפשרים לכל מיני פורצים להוריד טבלאות Hash מוכנות, כך שהפורץ יוכל עם GPU חזק וטבלאות – לנסות לפרוץ את ה-DB אחרי שהוא העתיק אותו ולכן חובה להוסיף לאחר הסיסמא ג'יבריש רנדומלי באורך קבוע (נניח 10-20 סימנים שמיוצרים ע"י פונקציית RAND) ולקזז את האורך הזה בקלט הסיסמא שנקלטת מהמשתמש, ואז להריץ פונקציית Hash לפי האלגוריתם שבחרתם. תוכלו לקבל פרטים נוספים ודוגמאות קוד בשפות שונות כאן. שיטה זו היא מעולה לאתרים מסויימים אך ישנם חברות שרוצות דווקא לשמור את הסיסמא עצמה, כך ששיטה זו לא תתאים להן ולכן חשוב לבדוק מה הלקוח רוצה.

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

חשוב לזכור משהו אחד: רוב הפורצים למערכות אינם מתכנתים עם נסיון עשיר. הם Script kiddies שמשתמשים בסקריפטים מוכנים שהורידו או שהם "שיפצו" פה ושם איזה סקריפט שהורידו. הם ידעו איך להיכנס לשרת ה-DB שלכם ואולי אפילו להיכנס לשרתי אפליקציה שלכם, אבל בחיטוט ולימוד הקוד הם לא מי יודע מה, מה עוד שהם רוצים להתנתק כמה שיותר מהר כדי לא להיתפס. פה בדיוק החלק שאתם יכולים לאמלל אותם בכך שאתם יכולים להצפין קוד פרודקשן, או להצפין / לג'ברש את הקוד שקורא למפתח עצמו ושלל טריקים נוספים שבא לכם, כך שגם אם פורץ יעתיק את ה-DB, הוא לא יוכל לעשות איתו כלום (חוץ מאשר אולי לראות דברים שהוא לא היה אמור לראות מבחינת תוכן).

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

תכירו את Chrome Apps

אחד הדברים שהיום מתסכלים מנהלים רבים, זה כמות הקוד, כח אדם, קימפולים, גרסאות, עיצובים וכו' – צריך בשביל לשחרר אפליקציה אחת על מנת "לכסות" כמה שיותר את המכשירים והמחשבים שיש בשוק. אתרי מדיה רבים לדוגמא בונים את האתר שלהם ומוודאים שהוא רץ בכל דפדפן מודרני (בניגוד למדינה במזרח התיכון שהאתר תשלומים שלה עובד רק על אקספלורר ישן ואקספלורר חדש צריך "תואמות", וחס ושלום כרום/פיירפוקס/ספארי), וכמובן יש את המובייל. פעם אפל התגאו שבשביל משתמשי אייפון, מספיק פעם אחת לעצב "בניגוד לאנדרואיד", רק שהיום יש אייפונים עם מסך 3.5 אינטש, מסך 4 אינטש, ובקרוב כנראה אפל תוציא אייפון 5 אינטש, ואם נוסיף את האייפד אז צריך לתכנן לרזולוציה רגילה ורזולוציית רטינה. באנדרואיד גם החיים כלל לא קלים, מגוון המכשירים עצום אבל מי שרוצה לבנות לאנדרואיד, עדיף שישתמש בדברים כמו Android Studio (שמגיע בחלקו מ-IntelliJ) שפותרים את הבעיה ברובה.

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

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

הבעיה העיקרית של HTML5 בזמן שחרור האייפון הראשון, היו המגבלות של HTML5. להזכירכם, ג'אווהסקריפט לא ממש טס כמו שד באותה תקופה וכמו שמוזילה משפרים אותו עוד וועוד בדפדפן הפיירפוקס. בנוסף, תמיכת המדיה שלו היתה גרועה, בכל הקשור ל-CSS היו עדיין מריבות בין גוגל לאפל למוזילה למיקרוסופט (ע.ע. "יאללה בלאגן") ומה שהכי חשוב – לא היה ל-HTML5 שום דרך ליצור קשר עם האביזרים במכשיר (מצלמה, מיקרופון, רשת מעבר ל-HTTP/S), מה שהגביל את אפשרויות פיתוח האפליקציות.

בגוגל רצו תמיד שמפתחים יכתבו דברים עבור הכרום שירחיבו את הפונקציונאליות של הדפדפן (כמו ה-Add-ons בפיירפוקס ובדפדפנים אחרים), ואכן עם התפתחות כרום, יותר ויותר מפתחים כתבו כל מיני Extensions שנתנו לך המון פונקציות חדשות, בין אם זה בדיקת אימיילים, שמירת סיסמאות, חוסמי פרסומות, ציוצי טוויטר/פוסטים בפייסבוק, ועוד שורה ארוכה מאוד של תוספים. הבעיה – כל הדברים האלו מוגבלים לדפדפן, ושוב, אין להם קשר לציוד שיש לך במחשב. גוגל ניסו להרחיב את העסק בכך שהם הוסיפו "Apps", מעין אפליקציות, אבל רוב המפתחים עשו לעצמם עבודה קלה: ה"אפליקציה" עם האייקון היפה? היא לא יותר מאשר קיצור דרך ל-URL באינטרנט, כך שאם אין לך תקשורת אינטרנט, אין לא "אפליקציה" ולא נעליים.

גוגל רצו ועדיין רוצים ופועלים להרחבת השליטה שלהם בשוק הדפדפנים, בכך שהם ביחד עם יצרני חומרה יצרו את ה-Chromebook (ועתה ה-Chromebox שעליו תהיה לי סקירה בימים הקרובים) – זהו מחשב נייד עם מעבד X86 או ARM עם כמות זכרון די קטנה (2-4 ג'יגה) ו-SSD קטן של 16 ג'יגה שמריץ ליבת לינוקס ואת הדפדפן ואולי עוד כמה דברים קטנים (אפליקציית ניהול קבצים וכו'). ל-Chromebook יש יתרון עצום בכך שהוא בעצם אפס תחזוקה ומקסימום דפדפן. הדפדפן לא מגיב טוב? מחק את הפרופיל, תתחבר מחדש עם שם משתמש וסיסמא, ואחרי דקות ספורות הכל יעבוד פיקס. 

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

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

התוצאה? Chrome Apps: אפליקציות שמותקנות לך במחשב ויכולות (בקרוב) לרוץ גם ללא דפדפן כרום. האפליקציות יוכלו לרוץ לגמרי Offline עם גישה לציודים, הם יוכלו להיות כתובות ב-HTML5 וגם ניתן יהיה לשלב קוד Native שקומפל עם NaCL, וכל זה ירוץ באופן טבעי ומהיר על ווינדוז, מק, לינוקס ומה שיותר חשוב – ה-run time שיהיה באפליקציה ירוץ גם על אנדרואיד ו-IOS (כן, בגוגל אין שום חיבה ל-Windows Phone). 

זוכרים את הדוגמא שנתתי בהתחלת הפוסט על אותה אפליקציה של חברת המדיה? עם Chrome Apps הם יוכלו לכתוב קוד אחד עם מגוון Layouts, וכל מה שהם יצטרכו לעשות זה לשחרר את האפליקציה בחנות של ה-Chrome ובחנויות אחרות (Play Store, iTunes). המפתח פשוט יצטרך לעקוב אחרי הוראות הפיתוח, חתימת חבילה ושחרורה. כך באותו יום כולם מקבלים את הגירסה האחרונה ואם יש באגים, ניתן לתקן באותו קוד. בשביל חברות זה חסכון בכסף וחיים יותר קלים.

אישית, אני משתמש רבות ב-Google Apps, ובשבועות האחרונים אני גם משתמש ב-Chrome Apps במחשבים שלי בבית. אני משתמש באפליקציה כמו 2X כדי להתחבר ל-Windows, ואפליקציית VNC (כן, היא גם קיימת כ-Chrome app) לסביבות SUN גרפיות (סיפור ארוך..), וכמובן אפליקציית SSH, ועוד אפליקציה שעדיין לא יצאה שדרכה אני שולט על דונגל USB-SERIAL, ומכיוון שאת כל המסמכים שלי אני כותב עם Google Docs ודיאגמות עם אפליקציית כרום עם Gliffy – אני די מכוסה. 

הטכנולוגיה עצמה היא די חדשה ולמען האמת לא בדיוק סטנדרטית. גוגל הרחיבו את ה-HTML5 כדי לתמוך בציוד חומרה, ב-Native Client, ועוד, מה שכמובן עיצבן כל מיני אנשים ובראשם את מוזילה. הויכוח הוא למען האמת קשור לפרגמטיות – האם לחכות שאולי מוזילה תאמץ (הם לא) או שה-W3C יאמץ? בשביל גוגל לא קיימת התלבטות כזו, הם משחררים כקוד פתוח, מודיעים ומי שרוצה, שיצטרף. גוגל כבר עשתה את אותו תרגיל בעבר עם ה-Google Gears שהם ראו ש-W3C לוקח את כל הזמן שבעולם להחליט על תקנים. מוזילה עובדים בכיוון אחר והוא אופטימיזציה מאוד חזקה ל-JS כדי שיתן ביצועים כמו אפליקציות שכתובות ב-C או ++C, והם קרובים (יחסית) לתוצאות טובות, אבל הפתרון הזה עדיין לא נותן אפליקציות Offline או תמיכה בציוד שנמצא במכשיר, ומוזילה לא נותנים בינתיים שום תשובה ל-Chrome apps לצערי.

בסופו של יום, אם גוגל יצליחו לשכנע מפתחים לכתוב עוד אפליקציות כרום (ולמען האמת, יש לטכנולוגיה הזו כולה 5 חודשים וכמות האפליקציות הללו גודלת בצורה מעולה!) אז יש סיכוי טוב לכרומבוקים לתפוס יותר מקום בשוק. יש לגוגל הרבה עבודה לעשות (כמו בכל הגוגל Docs לאפשר Embed מאפליקציות אחרות! ולסדר את ה-Chrome Store), אבל אני מניח שכבר בגוגל I/O הקרוב יהיה פוש מאוד רציני מצד גוגל לשכנע יותר מפתחים לכתוב אפליקציות כאלו, ועד כה אני מאוד מתרשם מהאפליקציות, הגודל שלהן, ושהן זמינות לי בכל מקום שאני עושה אליו login. 

כמה מילים על ההנהלה החדשה של מיקרוסופט

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

אחת הבעיות הרציניות ביותר עם מיקרוסופט בניהולו של ביל גייטס היתה שמיקרוסופט תמיד איחרה את הרכבת. בשעה שכל העולם ואחותו התחברו לאינטרנט, מיקרוסופט עדיין התעקשה על MSN והתעלמה מהרשת. בשעה ש-VMWare הראתה לעולם שניתן להריץ יותר ממערכת הפעלה אחת על המחשב שלך (זה היה ב-1999), במיקרוסופט לקח להם 4 שנים להתעורר, לרכוש את Connectix ועוד כמה שנים עד שהם הוציאו מוצר שמיש לשרתים (ESX הראשון שוחרר ב-2001). כשאמזון החלה להציע שרותי ענן בתחילת שנות ה-2000 (את ה-EC2 הם התחילו להציע לציבור ב-2004), למיקרוסופט לקח 6 שנים עד ש-AZURE החל להציע פתרונות וירטואליזציה. אני יכול לתת דוגמאות רבות נוספות לשוק העסקי שמיקרוסופט תמיד פיגרה ולבסוף העתיקה במרץ מהמתחרים.

אבל הפספוסים הגדולים ביותר של מיקרוסופט היו דווקא בתחום שמאוד יקר לליבו של ביל גייטס – תחום המחשוב הנייד והמובייל. שנים על גבי שנים מיקרוסופט מכרה את ה-Windows CE (שנהפך אחר כך לפוקט PC ואחר כך ל-Windows Mobile ואח"כ ל-Windows Phone) והמכשירים עצמם היו גרועים, לא חשוב מי היצרן, זו היתה מערכת ההפעלה שהיתה גרועה (היו לי 2 מכשירים כאלו, כך שאני מדבר מנסיון). סטיילוס חובה, ביצועים די גרועים עד שזה הגיע למצב שמערכת Windows Mobile 5 היתה תמיד מגיעה עם "סקין" שהיה טוען את האפליקציות ישירות ללא ה-Launcher המקורי שהיה איטי מאוד וגרוע. ב-Windows Mobile 6 המצב היה כל כך גרוע שחברות פשוט יצרו כמה שפחות מכשירים והביעו התעניינות מרובה במתחרה ממול – אנדרואיד. בתחום הטאבלטים היית צריך כמובן לעבוד עם סטיילוס והיה צורך שהמשתמש היקר יבקר בחדר כושר, כי המחשב הנייד היה כבד, והשימוש היה מסובך (מה לעשות, מיקרוסופט בקושי עשתה שינויים, וחס ושלום לבצע שינויים מאסיביים ל-Windows) כך ששוק הטאבלטים בקושי זז – עד שהגיעו אפל והוציאו את האייפד והאייפון ושמטו את השטיח מתחת לרגליה של מיקרוסופט לזמן רב.

סטיב באלמר, מי שהיה עד אתמול המנכ"ל, לא ממש הועיל למיקרוסופט עצמה מבחינת המצאות חדשות ופיתוחים. בתקופתו החברה הפכה לבירוקרטיה ענקית שהמאיסה את עצמה על עובדים רבים (שעברו מהר לגוגל ולפייסבוק). באלמר, שבעצמו לא השתמש רוב הזמן בכלל במחשב (בביקורים שלו הוא היה מגיע עם המחברות הצהובות, לדוגמא) הצליח להפוך את מיקרוסופט לחברה שכמעט ולא רלוונטית למשתמשי הקצה (ורלוונטית מאוד לשוק העסקי, ויוכיחו זאת המספרים בכל דו"ח רבעוני). בשעה שאפל מכרה אייפונים כמו לחמניות חמות וסמסונג פתחו מפעלים נוספים רק כדי לספק את הביקוש למכשירי הגלקסי, מיקרוסופט המשיכו למכור את הכשלון WIndows Mobile שבכל רבעון הפסיד יותר ויותר נתח שוק. לקח למיקרוסופט זמן רב להבין שהמערכת שלהם למובייל כושלת עד שהם הוציאו את Windows Phone 7 (שלא תאם ל-Windows Mobile 6) ולאחריו Windows Phone 8 (שלא תאם ל-Windows Phone 7 או גירסאות מוקדמות יותר) עד שהם יצאו עם Windows Phone 8 שאפילו מיקרוסופט עצמה מצפים שעד 2019 הם ישלטו ב… 15% מהשוק, לא משהו שמנהלי גוגל או אפל לא ישנו בגללו. 

בתחום השרתים מיקרוסופט עשתה ועושה חיל, אבל לרוב רק בשוק ה-Corporate. לא מאמינים? נסו לחשוב על אתר גדול וידוע שמשתמש בשרתי Windows חוץ מאתרי מיקרוסופט. בין אם מדובר ביאהו, פייסבוק, גוגל, אמזון או כמעט כל אתר מה-500 המובילים, תראו שהם רצים עם Linux בשרתים. מדוע? כי מיקרוסופט פשוט לא רצתה להוזיל מחירים וגם כשהם היו מוכרים משהו בזול, הוא בד"כ היה קצוץ כנפיים, מה שהשאיר את שוק השרתים ללינוקס. 

בסופו של דבר גם לדירקטוריון מיקרוסופט נפל האסימון ולמרות הצלחות במוצרים שונים (אופיס, XBOX, מערכות הפעלה ל-Corporate, אפליקציות שרתים כמו Exchange, SQL, Lync וכו'), הדירקטוריון החל לראות את התמונה של מה שהולך בחוץ: חלק לא קטן מכם קוראים יקרים, כלל לא קוראים את הבלוג הזה ואתרים אחרים עם מחשב מבוסס Windows אלא עם טלפון מבוסס IOS או אנדרואיד או טאבלט שמבוסס על אחת ממערכות ההפעלה הנ"ל, וכשצרכנים מבלים שעות רבות עם מכשיר מסוים, הם עובדים פחות עם PC מבוסס Windows, כך לדוגמא משתמשי אייפון רבים קנו ב-3-4 שנים האחרונות לראשונה בחייהם מחשב מק. 

אז יוצא מצב מוזר בו מיקרוסופט מרוויחה יפה כל רבעון וגם מקבלת תמלוגים נאים מיצרני טלפונים/טאבלטים מבוססי אנדרואיד, אבל בכל הקשור לשוק הפרטי, מיקרוסופט נהפכה לבדיחה בשוק עם מכירות נמוכות של מכשירי Windows Phone ועם מספרים יותר מגוכחים בכל הקשור למנוע החיפוש BING. קחו לדוגמא את הדו"ח האחרון של ComScore שמודדת תעבורה של גוגל ושל בינג (כאן) – גוגל עם 66.7% מהשוק ובינג, גם עם נחבר לו את המספרים של יאהו מגיע כמעט ל-30% וזה אחרי שמיקרוסופט משקיעה כספים רבים בשיווק בינג ודחיפתו לכל סידרה אפשרית (תראו את הסדרות ב-CW המיועדות לצעירים ותבינו לבד), פלא שמאריסה מאייר (מנכל"ית יאהו) רוצה לזרוק את השת"פ לגבי BING וללכת סולו, העיקר לא להיות עם המכה הזו?

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

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

אני בספק… אסביר מדוע.

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

כשסטיב ג'ובס חזר לאפל, הוא נכנס כמנכ"ל שיעודו הוא להציל את החברה מקריסה ולשם כך הוא יצטרך לעשות גם דברים שלא ימצאו חן בעיני מעריצי אפל, כמו להתקין כברירת מחדל את אינטרנט אקספלורר, לסיים את המריבה עם מיקרוסופט ואפילו לקחת מהם כסף (למרות שהכסף היה מגיע לאפל ממיקרוסופט על פטנטים), ובזמן שאפל החלו להוציא מקים חדשים, סטיב ג'ובס רצה לכבוש את שוק הטלפונים הסלולריים ולהקים את שוק הטאבלטים. לשם כך הוא הקים צוות שבדק את הנושא ואותו צוות המציא את האב טיפוס לאייפד (ה-iPad היה בעצם המכשיר הראשון מבוסס מגע עם אצבעות, ורק לאחר שנבנה Proof of Concept, באפל לקחו את האב טיפוס ובנו דגם מוקטן, הוא האייפון). אפל לא היתה זו שהמציאה את מסך המגע בשימוש אצבעות, זה הומצא ע"י Tyco International (חטיבה של ELO), אבל אפל ידעה לקחת טכנולוגיות של אחרות ולהשמיש אותם בצורה מעולה, וכשהאייפון הראשון יצא, אפל כבשה את השוק בזכות התעקשותו של סטיב ג'ובס, וביתר שאת כשאפל הוציאו את האייפד, תחום שמיקרוסופט נכשלה בו שוב ושוב ושוב. 

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

מיקרוסופט צריכה גם להשתחרר מהתדמית הגרועה שיש לה ולהתחיל לחשוב ביזנס במקום אג'נדה אמונית. קחו לדוגמא את אופיס, מוצר מצליח שכמעט כולם משתמשים בו כיום, אבל חוץ מל-PC ומק (בגירסה ללא תמיכה עברית, גם בשנת 2014!), הוא בקושי קיים לפלטפורמות אחרות. מיקרוסופט בונים גירסת Web לאופיס (מה שיקרא Office Online), אבל גם גירסה זאת קצוצת כנפיים בטירוף מבלי שתהיה לכך סיבה טכנית! השוק מלא בטאבלטים מבוססי אנדרואיד ו-IOS, אלו לקוחות שיסכימו לשלם סכום כלשהו על גירסה Native עבור המכשירים שלהם, ומיקרוסופט בקושי מתקדמים לשם, כך לדוגמא ממשק ה-Touch לאופיס יהיה זמין רק בעוד חודשים ספורים, ומה שמיקרוסופט נותנת כיום Native אינו עולה ברמה כלשהי ממוצרים מתחרים. מדוע מיקרוסופט לא עבדו על העניין עוד מ-2012 שכולם ראו כמה טאבלטים הם להיט? שאלה טובה. קחו דוגמא אחרת, דווקא לשוק העסקי: ישנם המון שרתי לינוקס בשוק, וחברות משתמשות בלינוקס לא רק בגלל שהוא זול אלא כי הוא גם מאוד אמין. מדוע שמיקרוסופט לא תעשה Porting לאפליקציות שרת שלהם ללינוקס? אני די בטוח שיהיו חברות רבות שישמחו לרכוש Exchange או Microsoft SQL ללינוקס, כלומר יש פה הזדמנות להרוויח, אבל מיקרוסופט בכל הקשור ללינוקס מתחמקת כמה שאפשר, וזו אינה החלטה חכמה מבחינה עסקית.

מיקרוסופט צריכה להשתנות ומהר. סביר להניח שסאטיה ישנה כמה דברים בכל הקשור לעובדי פיתוח בחברה (קראו את הבלוג Mini Microsoft שנכתב ע"י עובד [שלא מפרסם את פרטיו] כדי להבין את תסכול העובדים ממיקרוסופט), וביל גייטס כנראה ימשיך לאמר לראשי צוותים על כל מיני רעיונות ש"זה הרעיון הכי טיפשי ששמעתי מימיי", ואולי הוא באמת יתן עזרה למיקרוסופט, אבל עד שמיקרוסופט לא תשתנה בצורה רצינית, היא תיהפך להיות כמו אורקל ו-IBM, חברות שאתה לא מצפה שיוציאו משהו מאוד שונה ומושך לקהל בחוץ.

על התפתחות אישית בהיי-טק וקורסים בחינם

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

כל מי שחיפש לעצמו ספרות בנושא לימוד שפות תכנות יכול לאמר לכם שמציאת ספר טוב היא כמו מציאת מחט בערימת שחט. סתם דוגמא: לפני מספר שנים כשחיפשתי ספר ללמוד שפת פייתון, מצאתי ספר שחבר המליץ עליו. התחלתי לקרוא אותו ואחרי כמה רגעים הרמתי גבה: העמודים הראשונים מדברים על Python Eggs ועל עוד כמה מושגים שבתחילה היו נשמעים לי מוזרים. חיפוש קצר בגוגל הביא לי דף שהסביר לי את המושגים כולם בדף אחד בקיצור ואז עוד יותר תהיתי – מדוע לכל הרוחות כותב הספר מתחיל בהתחלה לדבר על eggs עוד לפני שהתחלנו ללמוד איך להדפיס (print) על המסך? בוא נעובר משתנים, פונקציות, if/else/elif, קצת מכות בוליאניות ובהמשך בחלק היותר מתקדם נדבר על ביצים, ביצי משק וכו'. 

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

כיום אנחנו חיים בעידן ה-Constant online ולאמזון יש את ה-Kindle כך שחובבי ספרות יכולים תוך שניות לרכוש ספרים ולקבל אותם לסמארפון/טאבלט/קינדל ולא חשוב מאיזו ארץ אתה מזמין (בניגוד למתחרים כמו B&N או אפילו Google שברגע שרואים שאתה מחוץ לארה"ב – שכח מהזמנה, ולך תעבוד עליהם עם Buy2USA ועוד חברות שנותנות לך כתובת בארה"ב), אך עדיין – קשה למצוא ספרות טובה שיכולה להתאים לרוב האנשים וגם כשמוצאים, צריך למצוא זמן ללמוד, לתרגל את החומר, להמציא תרגילים וכו'.

עוד דרך ללמוד היא דרך הוידאו, חברות כמו Lynda, Plural Sight ואחרות מוכרות תקליטורים ושידורי און ליין של הדרכות בשפות תכנות שונות, אפליקציות שונות וכו', אך הבעיה העיקרית איתם זה שאינך יכול לרכוש קורס אחד ולגמור עניין, כי הם מפצלים זאת ל-Essentials, Advanced ועוד שמות, ומה לעשות ששפת תכנות לא לומדים ב-3 ימים (אחרת חודשיים אחרי זה כשלא תתרגל, סביר להניח שתשכח חלק מהחומר), אלא לאורך זמן. אותן חברות בדיוק בונות על זה ומציעות לך מנויים חודשיים, כך שאתה תשלם כמה חודשים בשביל ללמוד לעומק את השפה שתרצה.

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

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

לאתר קוראים: Codeacademy

מבחינת הקורסים שהוא מציע, כפי שציינתי, אין כמות כרגע, אבל יש בהחלט תחומים מעניינים והם: Python, Ruby, HTML&CSS, jQuery,Javascript, PHP

שיטת הלימוד היא מעניינת. אינך צריך להתקין מאומה, הכל בדפדפן, והקורס עצמו מתקדם איתך צעד צעד תוך כדי שהוא מעניק לך נקודות ו-Badges. מצד שמאל אתה מקבל הסבר, באמצע יש לך עורך טקסט לכתוב את התוכנית, ומצד ימין ישנו חלון תצוגת פלט של מה שאתה מתכנת. במהלך הקורס אתה מקבל תרגילים ואתה מתכנת דרך הדפדפן את הפתרון לתרגיל ולוחץ על Save & Submit שמיד מראה לך מה שהרצת. לא הצלחת להבין את התרגיל או איך לבצע? מצד שמאל למטה יש Hint שנותן לך רמז איך לפתור את מה שניתן לך. מכיוון שמדובר במחשב, הוא עקשן ועד שלא תפתור, לא תתקדם.

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

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

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

בהצלחה