App Inventor對Android市場是個靈藥還是毒藥?

這兩天讓行動手機開發者最驚訝的事情,莫過於Google釋出了App Inventor這個可以讓人人都可以開發Android應用程式的工具,這個產品固然有無限的可能性,但在產品背後卻也帶來了一些潛在的問題。
評論
評論

這兩天讓行動手機開發者最驚訝的事情,莫過於 Google 釋出了 App Inventor 這個可以讓人人都可以開發 Android 應用程式的工具,這個產品固然有無限的可能性,但在產品背後卻也帶來了一些潛在的問題。

App Inventor

App Inventor 是 Google 今天所推出的最新應用軟體,強調讓即便不懂程式開發的使用者也能夠設計屬於自己的 Android 軟體,本站作者 Eugene 便在昨天晚上 率先介紹了關於 App Inventor 的神奇魔法 ,讓開發 Android 應用程式變成透過拖拉放就可以完成的簡單步驟。

然而,包含 TechCrunch 在內的數間國外媒體也紛紛提出了警訊,認為這有可能會摧毀 Android 的行動軟體市場,這究竟是怎麼回事呢?

可能的爆發性

在談到可能的弊端之前,我們先來談談 App Inventor 所帶來的無限可能吧!大多數的人,包含我在內看到 App Invetor 內心想必都是感到相當興奮的,畢竟在以往即便是對於有學過程式開發的朋友也需要花一些時間才能上手 Android 的開發環境平台,而更不要說那些不會程式設計的朋友,即便他們內心有些很好的點子想要作成 Android 軟體,往往都會面臨了技術上的困難而選擇放棄。

除此之外,App Inventor 簡單上手的特性也很適合用在中學或者是大學中的一些基礎程式設計課程,讓學生能夠快速的上手、了解一些基本應用程式的原理卻又不需要接觸到困難艱深的部份。事實上,App Inventor 便是架構在 Scartch 這個由 MIT Media Lab 所研發的教學用、視覺化的程式語言架構。

Android 從一直以來,與蘋果所提供的 iOS 開發環境比起來便是相當的具有彈性,不需要購買每年$99 的開發方案(但需要付一次性的$25 註冊費用)、也不需要經過審核便可以放上 Android Market,在加上當每個人都可以輕易的開發出自己的軟體時,許多驚人的小創意就會在 Android Market 上百花齊放,且使用者也可以自行開發軟件供自己所需使用。

可能的衝擊

然而,讓人人都有機會用相當低成本開發軟體的缺點也相當的明顯,也就是會因此產生許多質量參疵不齊的軟體,也就是會有大量的垃圾軟體將會因此快速的被開發出來。所謂的垃圾軟體有可能是軟體名稱與其內容根本不符,裡面只有廣告、而沒有其所宣稱的功能,或者是軟體本身就是個廣告用的軟體,沒有任何實質的功能性可言。碰巧,最近在 PTT 的 CodeJob(軟體外包版)上就有這樣一則訊息:

 作者  runtime (操你媽的 hadoop)                                 看板  CodeJob  標題  [討論] 最近有個不知該如何報價的案子  時間  Sat Jul 10 01:55:16 2010 ───────────────────────────────────────  先前接過大大小小的案子 價錢都是對方報價 我覺得 OK 就接了  這幾天接到一個案子 簡單到我不知道該如何報價 怎麼報都覺得太高 (500~1000) 怕會坑人 報太少又覺得很瞎 (報 200 對方匯 200 給我= =??) 而且怕打壞行情 所以上來問問各位  對方的需求是: 設計一個 Android 程式 放到 Market(我有 Android Market Account) 程式的 LOGO 放他網站的 LOGO 程式一執行就連到他的網站 看起來只是想在 Android Market 上掛廣告!?  雖然後續還有 可能會改成有 Content 的程式 (另外計價) 但就目前為止 就是這樣 請問要怎樣收費才不會太黑 又不會打壞行情 貶低自己的專業  -- ※ 發信站: 批踢踢實業坊 (ptt.cc) ◆ From: 163.22.18.119 (文章代碼: #1CDsA7fa

隨著 App Inventor 的普及,未來大概不會有這種令人尷尬的案子出現了,畢竟任何人都可以輕易的做出這樣的軟體,並且放上 Android Market,擔憂的是,若是未來都是充滿這樣的垃圾軟體那該怎麼辦?

Google 對於 Android Market(應用程式的軟體市場)表現的相當被動早是眾人皆知的事情了,除了軟體上架不會審核、也很少將軟體移除之外,至今包含台灣在內的許多國家使用者都無法再 Android Market 購買付費的軟體,因而甚至有 使用者連署抗議 ,要求 Google 讓他們付錢!

而當開發門檻的降低之後,大量低品質的軟體進攻 Android Market,若是 Google 繼續抱持著開放的心態讓 Android Market 由市場機制自然運作、並不人為審查其中的軟體。那很有可能的是,當 Android 手機的使用者連上 Market 後映入眼簾的便會是這些低品質的垃圾軟體,造成使用者對於 Android Market 逐漸失去信賴,而真正用投入的專業開發者也必然會因此受到拖累。

結論

不得否認的是,Google 再度透過了 App Inventor 替市場投入了一枚震撼彈。除了手機的作業系統 Android 開放自由使用之外,就連手機上的軟體開發也降低到人人都可以參與的程度。

相對於 Google,蘋果至今仍然是採用相當封閉的方式,完全封閉的硬體系統、開發方式,所有的軟體也必須透過審核才能上架。究竟這兩種路線誰勝誰敗?就讓我們繼續關注後續發展。


開發者享受 CI/CD 價值!運用 Amazon EKS 整合 GitLab 創建自動化部署

企業如何在 Amazon EKS(Elastic Kubernetes Services)上使用 GitLab 創建自動化部署,減輕人力負擔,提升專案服務運作效率?
評論
評論

所謂現代化智慧 IT,所有工程師最希望的境界,莫過於只要輕鬆點幾下設定,系統就會自動跑起來,管理者再也不用隨時待命在機台旁邊,從此工作悠哉又快樂!儘管這樣情境還沒到來,但隨著敏捷式開發的流行,除了 DevOps 人員,有越來越多開發者將 CI/CD 概念融入到工作流程當中,例如從 build code、執行 unit test、到部署應用程式。

打造第一個在 AWS 上的應用程式

上述種種反覆步驟自動化執行,也就能提昇服務品質、主動通知開發人員以減輕人力負擔,讓專案服務能持續運作。

其中,GitLab 是執行 CI/CD 常用的工具之一,也是開發者使用程式碼儲存庫的地方。為了讓 GitLab Runner 在雲端快速實踐 CI/CD,《AWS 開發者系列》透過影片分享,如何在 Amazon EKS(Elastic Kubernetes Services)上使用 GitLab 創建自動化部署。

以下節錄工作坊影音內容,幫助開發者快速理解如何運用 Amazon EKS 的高可用性且安全的叢集,將修補、部署節點、更新等關鍵任務,全部做到自動化設定。同時影片也會示範 Amazon EKS 搭配 GitLab 如何展開自動部署,幫助工程團隊實踐 CI/CD 價值。

Amazon EKS 對容器管理輕鬆簡單、維運省時省力

容器化服務越來越興盛,當容器(Container)越來越多,在複雜的微服務(Microservice)系統環境之下,運維團隊的管理成本可能相對會增加不少,為了有效調度容器部署, 導入Kubernetes 無疑是近年企業熱門的話題之一。

建構 Kubernetes Cluster 流主要可區分兩大塊,一是安排容器調度的Control Plane、另一則是容器運行時需要用到的 Worker Node。

Control Plane 裡面涵蓋有儲存狀態的 ETCD、CoController manager 、Scheduler 的調度管理、甚至是操作時進行互動的 APIServer,若是自己創建 的 Kubernetes Cluster ,需要自己安裝這些元件,後續仍需要對 Control Plane 進行相關管理、維護、升級工作。為了減少上述 Components 的繁複維護,在透過 AWS EKS 代管的 Kubernete Control Plane 部可以獲得以下三大好處。

透過 AWS 增加雲端技能 在組織發揮影響力

Amazon EKS 一鍵式部署,展現三大優勢

第一,Amazon EKS代管的 Control Plane實踐了跨AZ的高可用部署,使用者不需要擔心單一節點故障的風險。

第二,Amazon EKS 支持至少四個 Kubernetes版本,持續跟進每季 CNCF 的發佈,同時 EKS 也完全符合上游 CNCF 規範。

第三,部署 Amazon EKS 之後,可直接使用 AWS 平台上現成的服務工具,在安全性管理、網路設定方面,可以做到無縫整合。

最後 AWS 台灣解決方案架構師也提到,若想在容器環境進行 CI/CD 及應用程式的管理,可以進一步透過 IaC 整合部署 Amazon EKS 叢集,透過使用 Console、把 EKS 變成 Cloudformation 的模板、使用 AWS 所開發出來的 eksctl.io、或指令是採用 AWS CDK 可以讓開發者用自身熟悉的語言,在 AWS 平台整合 CI/CD 工具進行維運及部署 EKS。

了解 Amazon EKS 整合 GitLab ,獲得三面向價值

對開發者而言,想把 Amazon EKS 整合到 CI/CD 工具之一的 GitLab 平台上,可以看到那些實際的優勢?

在 DevOps 開發者示範工作坊當中,GitLab 資深解決方案架構師指出,GitLab 使用到 Kubernetes 技術,主要有三種搭配方法,包含 GitLab Server、GitLab Runner、以及創建 Deployment Environment。

本次示範教學會主要聚焦在 GitLab Runner 如何採取 Auto-scaled 方式進行 Build、Test、Package Apps;以及在 Deployment Environment 運用 Kubernetes 技術,做到 Auto Deploy、Review App。

正因為 Amazon EKS 能夠在 DevOps 過程提供所需要的彈性計算資源,幫助開發者在 GitLab 平台上面獲得以下三個層次的優勢:

  • 在 GitLab 內建的部署工作流程當中,自動生成整套 CI/CD 最佳實踐腳本。
  • Review App 過程,從 Merge Request 中可直接訪問應用程式 /App 的 UI 介面,並且根據 Git branch 名稱、專案名稱,自動生成 Review App 的 URL,以及在 Merge 前的最後防線進行 Approval 檢查。
  • 加速 CI/CD 流水線,GitLab Runner 運行時候還可藉由 Amazon EKS Cluster 進行 Auto-scaled 的支援。

Amazon EKS 整合 GitLab ,需要兩大流程

影片最後,GitLab 資深解決方案架構師示範如何把 Amazon EKS 整合至 GitLab 執行 Auto Deploy,主要可分為兩大區塊流程,第一部分聚焦在 Amazon EKS cluster 的設置,第二部分則執行 Auto Deploy 設置。

第一塊可拆分為四個階段,首先教學怎麼創建 EC2 節點的 EKS cluster,第二階段示範把 EKS Cluster 連接到開發者的 GitLab Instance、Group 或 Project,下一步則使用 Cluster Management Project Template 創建一個 Cluster Management Project,以及最後一階段透過 Cluster Management Project 自帶的 Helm Chart,安裝在 Cluster 所需要的內建 App。

第二塊執行 Auto Deploy 設置,針對需要部署的 App 創建一個 GitLab Project,接著再把 gitlab-ci.yml 添加到 Project,並從 Web IDE 選擇及導入 Auto Deploy 的 CI 模版,讓 GitLab 自動生成最佳實踐的整套流水線。

幫助開發者更了解 Amazon EKS 整合 GitLab 的 QA 系列

Q:使用 Amazon EKS 之後,如何更有效率或優化資源去配置 Worker Node 的機器數量,以及如何有效空管開發維運的成本?

A:Kubernetes 除了本身有 HPA(Horizontal Pod Autoscaling)可根據使用程度自動調整資源流量,另外也能延伸使用 AWS Auto Scaling 方案,針對可擴展資源去設定自動擴展管理。另外在成本管控,雖然 Amazon EKS 會收取額外管理費用,但可透過 AWS 平台的 Calculato r計算每個 EKS 的價格,你會發現自動化部署及管理的費用,相對工程師人力的成本更加便宜。

Q:越來越多客戶考慮把現有 Application 變成容器部署,大多是爲了加快部署的效率,那麼變成容器模式之後,對 CI/CD 的工作流程有什麽影響嗎?

A:運用容器技術最直接的效果,可以讓應用程式的環境更一致化,例如 testing 環節、stage production,讓容器避開一些差異問題。至於 CD 部分要 delivery 一些 usage 不太一樣的時候,容器會幫忙做配置,所以 CI/CD 對容器的效益是相輔相成的。

Q: 客戶在開發流程漸漸會把 Infrastructure 變成代碼或文檔,是不是可以把程式碼跟現有的應用程式的 CI/CD 流水線整合在一起,達到一套完整的 CI/CD 部署流程?

A:觀察目前市場作法,主要分成兩個階段去做整體部署。如果規模比較小的團隊,會把 Infrastructure 代碼跟 App 代碼分開,在管理上會比較靈活;如果企業規模比較大,會有另外一個 Infrastructure 團隊來控制部署事情,這種情况之下,APP 的項目會生成一個 APP package,主要做到 delivery 這個階段爲止。而 Infrastructure 的項目會指定把需要版本的文檔,部署到他們的 Kubernetes Cluster。

填寫表單 找到適合的快速上雲服務與工具!