4/25/2017

Scaled Agile for The Enterprise

最近聽關於專案管理的podcast 很有感覺
原來專家們已經遇過要從50位RD成長100位RD的瓶頸。

當我們從scrum抽取 Agile 概念用於backlog 工作項目以及排序優先順序, 已經某種程度上已經契合 Agile的精神。

但是Business operation management layer 相當於原本PMP當中提到的PMO (Project management Office的角色,管理階層往往希望「每一項功能」在產出方面希望得到日期保證,實際上這是waterfall的精神。

這兩種方法在原理上是衝突的。

解決方法是:

1. 經常溝通或教育PMO認知到為何Agile比較快deliver一些feature到客戶手上、修改對於壓日期的「預期心理」。PMO鎖定策略面就好,缺點是可能因為策略不明導致下一round的Agile process卡輪。

2. CEO直接頒布本公司採用Agile 方法,會比較硬性而且大家需要學習Agile的名詞與方法。
12相比第一是靠潛移默化我覺得比較好。


3. 如果研發的throughput 要再scale上去的話、可能需要建立中間整合層的人,有幾種方法學像是leSS, nexus。 不過我還沒有學習過相關的framework以及管理技能, 研究之後再分享。

2/25/2016

架設公司私有的Yum repository for CentOS 7


開始之前先瞭解一下世界上的軟件庫, 以及注意事項:

$yum -y install yum-utils httpd createrepo rsync reposync wget

根據公司的需要, 我們要同步CentOS 7 以及EPEL的Repo, Architect是採用x86_64 因此不需要i386的部分.
硬碟規劃約保留300GB

httpd是為了架設網站, 開放port 80 給公司的辦公室網域 以及RD開發區, SAT測試區, BETA區以及上線區域
reposync - used to synchronize remote yum repositories to a local directory, using yum to retrieve the packages
createrepo - Create repomd (xml-rpm-metadata) repository

0. 在/var/www/html/ 創建好規劃的目錄結構

在開始之前可以找一個離自己最快的yum repo, 因為我的mirror是架設在東京的AWS, 可能找日本的mirror會快很多.
找速度較快而且支援rsync的mirror site, 以我的例子是找到 mirror.fairway.ne.jp
$vi /etc/yum/pluginconf.d/fastestmirror.conf
修改成為這行: exclude=.gov, facebook, mirror.slowmirror.com

1. 對於centos,使用命令:

建立結構
$mkdir -p /var/www/html/yum/centos/7/os/x86_64
$mkdir -p /var/www/html/yum/centos/7/updates/x86_64
$mkdir -p /var/www/html/yum/centos/7/extras/x86_64

開始同步CentOS
$rsync -avrt rsync://mirror.fairway.ne.jp/centos/7/os/x86_64/ /var/www/html/yum/centos/7/os/x86_64/ &

結束之後安裝yum-arch進行RPM分析,並在目錄下產生headers資料夾
$wget ftp://rpmfind.net/linux/epel/6/ppc64/yum-arch-2.2.2-9.el6.noarch.rpm
$rpm -ivh yum-arch-2.2.2-9.el6.noarch.rpm
$yum-arch /var/www/html/yum/centos/7/os/x86_64
$yum-arch /var/www/html/yum/centos/7/updates/x86_64
$yum-arch /var/www/html/yum/centos/7/extras/x86_64

對64-bit packages目錄產生repodata資料夾
$createrepo /var/www/html/yum/centos/7/os/x86_64
$createrepo /var/www/html/yum/centos/7/updates/x86_64
$createrepo /var/www/html/yum/centos/7/extras/x86_64

2. 對於RHEL部分:

我使用reposync 這個工具, 先執行指令確認自己所屬的repo
$yum repolist

reposync 在執行的時候如果要用背景 & , 記得要用 nohup, 避免人離開去休息的時候, 一旦關閉terminal 就停止了
$reposync --repoid=epel --arch=x86_64 --gpgcheck -l --download_path=/var/www/html/
$reposync --repoid=base --arch=x86_64 --gpgcheck -l --download_path=/var/www/html/
$reposync --repoid=extras --arch=x86_64 --gpgcheck -l --download_path=/var/www/html/
$reposync --repoid=updates --arch=x86_64 --gpgcheck -l --download_path=/var/www/html/

The above command will download the packages in the mentioned download path. You then need to run following command to create the repository:
$cd /var/www/html/
$createrepo -v /var/www/html/

3.針對webstatic 的部分 Webtatic EL7 for CentOS/RHEL 7:


之後輸入
$yum repolist
會看到多了webtatic 這個repoid (我們就放寬不檢查GPG key了, 以免沒抓到)
$reposync --repoid=webtatic --arch=x86_64 --download_path=/var/www/html/

再做一次createrepo
$createrepo -v /var/www/html/

4. 開放firewall 給 80 port
$firewall-cmd --zone=public --add-port=80/tcp --permanent
$firewall-cmd --reload
$systemctl enable httpd

參考文獻:

-  How to create a local mirror of the latest update for Red Hat Enterprise Linux 5, 6, 7 without using Satellite server? https://access.redhat.com/solutions/23016

11/05/2015

The End of HP Public cloud


Public cloud is an important part of our customers’ hybrid cloud strategy, and what they tell us is that they want the ability to seamlessly bring together multiple public cloud environments, from AWS to Azure to Google to Alibaba, under a single hybrid cloud model. So, we will be evolving our strategy in public cloud to ensure that we can deliver this to our customers. We will sunset the HP Helion Public Cloud offering on January 31, 2016 and will move to an open, multiple partner-based model for providing these important capabilities to our customers through our private and managed cloud offerings.

To support this new model, we will continue to aggressively grow our partner ecosystem and integrate different public cloud environments. We are helping customers build cloud-portable applications based on OpenStack code through the HP Helion Development Platform and our work in the Cloud Foundry community. In Europe, we are leading the Cloud28+ initiative that is bringing together commercial and public sector IT vendors and EU regulators to develop common cloud service offerings across 28 different countries.

For customers who want access to existing large scale public cloud providers, we have already added greater support for Amazon Web Services as part of our hybrid delivery with HP Helion Eucalyptus and support Office/365 and Azure.

11/04/2015

Apple在iOS 9強化安全的ATS措施 (App Transport Security)

升級之後可能發生的錯誤現象:

Transport security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

解決辦法有很多種:
若你的App會從很多來源下載HTTP頁面, 直接Allow Arbitrary Loads

如果你的App只會從你的服務網域下載資料, 請使用Exception Domains
以個別的方式加入例外, 記得your.domain是一個Dictionary, NSTemporaryExceptionAllowsInsecureHTTPLoads (NSExceptionAllowsInsecureHTTPLoads是錯誤的)和
NSIncludeSubDomains是Boolean如下圖:

我是使用Xcode 7.1
請留意一下, Exception Domains是可以在Xcode內下拉選擇,
但是IncludesSubdomains前面要有NS開頭, 不信的話用其他編輯器打開Info.plist.

參考資料:
http://www.neglectedpotential.com/2015/06/working-with-apples-application-transport-security/
http://googleadsdeveloper.blogspot.tw/2015/08/handling-app-transport-security-in-ios-9.html