WildFly 10.1.0.Final リリースしました
WildFly 10.1.0.Finalがリリースされました。WildFlyのサイトからダウンロードできます。
リリースノートはこちら。今回のハイライトはデフォルトでのHTTP/2のサポートです。
HTTP/2をサポートするには、TLSの拡張であるALPNをサポートする必要があるのですが、JavaのTLS実装にALPNのサポートが追加されるのはまだリリースされていないJava 9です。
Jettyにはalpn-boot.jarというbootclasspathを利用してTLS実装を差し替えるというhackライブラリがあるのですが、利用するJavaのバージョンに依存があり、バージョン毎に対応するalpn-boot.jarを利用しないと動作しないという欠点があります。そこで、WidFlyのWebサーバであるUndertowでは、ALPNをサポートする別のhackを実装して、今回のリリースとなりました。
Got 13 seconds?? All you need to learn HTTP/2 on #WildFly 10.1 #theeasylife #javaee #jboss https://t.co/Mx5hF2EPfA pic.twitter.com/K4X3Bkmugz
— Jason Greene (@jtgreene) August 20, 2016
ChromeでF12を押して、Networkタブを開き、表示項目を右クリックしてProtocolを追加するとHTTP/2であるかどうかを上のツイートのように確認できます。
OpenShift Origin 1.3.0 v1.3.0-alpha.3をoc cluster up
前回のFedora 24でoc cluster upを利用してOpenShift Originをセットアップするのalpha3バージョンです。コマンドのメモだけ。
sudo dnf install git docker -y sudo sh -c "echo INSECURE_REGISTRY='--insecure-registry 172.30.0.0/16' >> /etc/sysconfig/docker" sudo systemctl start docker sudo systemctl enable docker curl -LO https://github.com/openshift/origin/releases/download/v1.3.0-alpha.3/openshift-origin-client-tools-v1.3.0-alpha.3-7998ae4-linux-64bit.tar.gz sudo tar xf openshift-origin-client-tools-v1.3.0-alpha.3-7998ae4-linux-64bit.tar.gz --strip=1 -C /usr/bin openshift-origin-client-tools-v1.3.0-alpha.3-7998ae4-linux-64bit/oc sudo curl -L https://raw.githubusercontent.com/openshift/origin/master/contrib/completions/bash/oc -o /etc/bash_completion.d/oc . /etc/bash_completion.d/oc sudo oc cluster up mkdir ~/.kube/ sudo cat /var/lib/origin/openshift.local.config/master/admin.kubeconfig > ~/.kube/config
Fedora 24インストール
Fedora 24がリリースされたのでいつも通りWorkstationを半自動クリーンインストール。会社のThinkPad T440s、おうちのDell XPS 13 9350とThinkPad X1 Carbon 2012。
Fedora 23でいつも通りliveusb-creator
を使ったらUSBメモリの内容が初期化されてしまった。Fedora 23でliveusb-creator
が破壊的な変更をするようになってしまったようだ。How to create and use Live USBに従ってliveusb-creator
ではなくCUIのlivecd-tools
を使って書き込めばいままで通りのUSBメモリが維持できる。
セットアップの流れは以下のような感じ。
- sudo visudo
- USBメモリから$HOMEの
.git
を取得してgit reset --hard
- $HOME以下の設定ファイルや自前スクリプト群が復元する
- sudo dnf update -y
- gsettings修正スクリプト実行
- gitからいくつかcloneするスクリプト実行
- いくつかパッケージをインストールするスクリプト実行
- USBメモリからアーカイブ類のバックアップを復元するスクリプト実行
- Emacsでpackage-install
- ack
- twittering-mode
- helm
- go-mode
- Emacsのsemiとwanderlustインストール
- こいつらはmake install
- chromeとbluejeansのrpmのインストール
- Firefox syncのセットアップ
- Firefox about:config
- browser.showQuitWarning = true
- middlemouse.contentLoadURL = false
- browser.urlbar.trimURLs = false
- 会社のCA証明書、Wireless、VPNセットアップ
追加でインストールしているパッケージは現状こんな感じ。過去インストールしていたもののうちいくつかは会社のサーバやDockerイメージに追い出した。
git autofs nfs-utils sshfs ack man-pages hexchat java-1.8.0-openjdk\* emacs emacs-apel flim w3m emacs-w3m aspell-en libreoffice-writer libreoffice-calc libreoffice-impress sysstat tcpdump strace wireshark-gnome zlib-devel docker spice-xpi libvirt vagrant vagrant-libvirt virt-manager virt-install gimp rpm-build rpmdevtools golang
セットアップはだいたい30分で終わる。
Fedora 24でoc cluster upを利用してOpenShift Originをセットアップする
超簡単バージョン。数行のコマンドでOpenShift Originのセットアップがおしまいだ。バージョンはOrigin v1.3.0-alpha.2。
この例ではVagrantで手元のFedora 24のVMを利用しているけど、どのクラウド上でも、OSもCentOSでもAmazon LinuxでもDockerの新しいの入ってればたぶん動きます。
- Vagrantfile
Vagrant.configure(2) do |config| config.vm.box = "fedora/24-cloud-base" config.vm.provider "libvirt" do |libvirt| libvirt.driver = "kvm" libvirt.memory = 2048 libvirt.cpus = 4 end end
- セットアップ
vagrant up vagrant ssh sudo dnf install docker -y sudo sh -c "echo INSECURE_REGISTRY='--insecure-registry 172.30.0.0/16' >> /etc/sysconfig/docker" sudo systemctl start docker sudo systemctl enable docker curl -LO https://github.com/openshift/origin/releases/download/v1.3.0-alpha.2/openshift-origin-client-tools-v1.3.0-alpha.2-983578e-linux-64bit.tar.gz sudo tar xf openshift-origin-client-tools-v1.3.0-alpha.2-983578e-linux-64bit.tar.gz --strip=1 -C /usr/bin openshift-origin-client-tools-v1.3.0-alpha.2-983578e-linux-64bit/oc sudo curl -L https://raw.githubusercontent.com/openshift/origin/master/contrib/completions/bash/oc -o /etc/bash_completion.d/oc . /etc/bash_completion.d/oc sudo oc cluster up
- oc cluster upのログ
$ sudo oc cluster up -- Checking Docker client ... OK -- Checking for existing OpenShift container ... OK -- Checking for openshift/origin:latest image ... OK -- Checking Docker daemon configuration ... OK -- Checking for available ports ... OK -- Checking type of volume mount ... Using nsenter mounter for OpenShift volumes -- Checking Docker version ... OK -- Creating volume share ... OK -- Finding server IP ... Using 192.168.121.163 as the server IP -- Starting OpenShift container ... Creating initial OpenShift configuration Starting OpenShift using container 'origin' Waiting for API server to start listening OpenShift server started -- Installing registry ... OK -- Installing router ... OK -- Importing image streams ... OK -- Importing templates ... OK -- Login to server ... OK -- Creating initial project "myproject" ... OK -- Server Information ... OpenShift server started. The server is accessible via web console at: https://192.168.121.163:8443 You are logged in as: User: developer Password: developer To login as administrator: oc login -u system:admin
ついでにログイン面倒なのでデフォルトでsystem:admin
でログイン状態にしておく。
mkdir ~/.kube/ sudo cat /var/lib/origin/openshift.local.config/master/admin.kubeconfig > ~/.kube/config
origin containerはhost networkの:53をLISTENして名前解決できるようにしているのですが、VMを利用せずに素でセットアップしたFedora 24 Workstationなどで上で同じことをした場合、Docker containerからのDNS queryをfirewallがはじいてしまうのでpodが動作しません。以下のコマンドで許可する必要があります。また、:53が既にふさがってる場合なども動作しません。dnsmasqやlibvirtdでdnsmasqが動作している場合などは止めておく必要があります。
sudo firewall-cmd --add-service=dns sudo firewall-cmd --runtime-to-permanent
Fedora 24でOpenShift Originをセットアップする
Fedora 24にOpenShift Originが追加されたのでセットアップしてみる。以下の2ファイルを作ってvagrant up
すればおしまい。インストールされるバージョンは1.2.0のようだ。
- Vagrantfile
Vagrant.configure(2) do |config| config.vm.box = "fedora/24-cloud-base" config.vm.provision "shell", path: "vagrant-provision.sh" config.vm.network :private_network, ip: "192.168.232.101" config.vm.provider "libvirt" do |libvirt| libvirt.driver = "kvm" libvirt.memory = 2048 libvirt.cpus = 4 end end
- vagrant-provision.sh
#!/bin/bash IP_ADDR=192.168.232.101 sudo dnf install -y ansible pyOpenSSL python2-dnf git dbus-python libsemanage-python NetworkManager sudo systemctl start NetworkManager sudo systemctl enable NetworkManager git clone https://github.com/openshift/openshift-ansible/ cat /dev/zero | ssh-keygen -q -N "" &> /dev/null # silent ssh-keygen touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh $IP_ADDR -o StrictHostKeyChecking=no id # add it to known_hosts ANSIBLE_HOSTS=$(cat <<EOM [OSEv3:children] masters nodes [OSEv3:vars] ansible_ssh_user=vagrant ansible_become=true deployment_type=origin openshift_master_identity_providers=[{'name': 'allow_all', 'login': 'true', 'challenge': 'true', 'kind': 'AllowAllPasswordIdentityProvider'}] osm_default_subdomain=apps.$IP_ADDR.xip.io [masters] $IP_ADDR openshift_node_labels="{'region': 'infra'}" openshift_schedulable=true [nodes] $IP_ADDR openshift_node_labels="{'region': 'infra'}" openshift_schedulable=true EOM ) echo "$ANSIBLE_HOSTS" | sudo sh -c "cat > /etc/ansible/hosts" ansible-playbook ./openshift-ansible/playbooks/byo/config.yml
Red Hat Summit 2016 / DevNation 2016 でのリリース
今週サンフランシスコで開催されているRed Hat Summit 2016 / DevNation 2016に関連していろいろリリースされています。随時更新します。
- WildFly Swarm 1.0.0.Final
- JBoss EAP 7.0.0.GA
- JBoss Core Services Collections
- Red Hat SSO 7.0
- JBoss Developer Studio 10.0.0.GA
- JBoss Tools 4.4.0.Final
- Vert.x 3.3.0
- OpenShift Enterprise 3.2.1.1
- Red Hat Container Development Kit 2.1.0
- OpenJDK 8 for Windows
- .NET Core 1.0 support on RHEL and OpenShift
- OpenShift Container Platform (formerly known as OpenShift Enterprise)
- Red Hat CloudForms 4.1
- Ansible Container
JJUGナイトセミナー Javaクラウドプラットフォーム大特集でOpenShiftの話をしてきました
JJUGナイトセミナー Javaクラウドプラットフォーム大特集でOpenShiftのお話をしてきました。
#jjug 満員御礼です! pic.twitter.com/2LE5GolA3M
— Shin Tanimoto (@cero_t) March 22, 2016
スライドはここです。ハイライトをこちらにも書いておきます。
- OpenShift Online (v2)は3アプリケーション無料でがんばってます
- Dockerはサーバサイドソフトウェアの流通形態を変える超重要コンポーネント
- Dockerをフルに活用するために、OpenShift v3はDockerを前提としてフルスクラッチで開発。他のDocker"も"使えます的なPaaSとはその点が顕著に異なり、Dockerがファーストクラスコンポーネントになっている
- OpenShift = Docker/Kubernetes + みんなで簡単に使えるようにする機能群
- 逆に言うと、Docker/Kubernetesだけではみんなで簡単に使えません
- OpenShiftがUI、ユーザ管理、マルチテナント、ネットワーク、イメージビルド基盤を提供
- OpenShiftにソースコード、Dockerイメージ、Dockerfileなどを放り込むとビルドしてデプロイして利用可能にしてくれる
- PaaSが最も活用できるのは開発作業。しかし各開発者に自由に従量課金のパブリッククラウドPaaSを使わせるというのは多くの場合コスト管理上難しく、開発者側も従量課金コストが発生する場合は気軽に使えないプレッシャーを受ける。しかし、気軽に使ってもらえないとPaaSの恩恵はフルに受けられない。そのような背景があってPaaSはオンプレミスで活きる場合が多い
- アプリケーション開発者はアプリケーション開発に専念して価値を創出すべき。開発者のマシンでVMあげたり、VMリソースは払い出すけどセットアップはやってね、とかDBのインストールとセットアップとかやらせる、というような状況は本来避けたいもの
PaaSは無くても生きていけないわけではないので見過ごされがちですが、あるとすごく便利です。社内にPaaSがあることによってアプリケーション開発者が社内で勝手に便利アプリケーションを作ってホストするようになったという副次的効果があったというお話も聞いていますし、使い込めば開発生産性のブースターとしても機能する強力なプラットフォームですので、ぜひお好きなPaaSを試してみてください。