Travis CIを使ってみよう

まず、githubでリポジトリをつくります。
適当に「travis-s3」としておきましょう。

リポジトリにファイルを作成

<!DOCTYPE html>
<html lang="ja">
<head>
	 <meta charset="UTF-8">
	 <title>エンジニアの名言</title>
	 <meta name="viewport" content="initial-scale=1.0,width=device-width">
</head>
<body>
  <p>おしゃべりはいいから、お前のコードを見せろ</p>
</body>
</html>

vagrantに入ります
deployというディレクトリにいます。ここで作業すると仮定しましょう。

前準備ができました。それでは、いよいよTravisに触っていきましょう^^

Github Marketplaceを押下します。

ページ中段のApps with free trialsでTravis CIをクリックします。
続いて、ページ中断のpricing and setupで、デフォルトで$69となっているので、Open sourceをselectし、install it for freeを選択します。

こんな感じの画面。見やすいですね。

リポジトリの選択画面になるので、先ほど作った「travis-s3」を選択します。

インストールすると、Travis CIのページにリダイレクトされます。

認証画面が出てくるので、「Authorize travis-pro」を押下します。

Git hubのレポジトリと連携したTravis CIのページが表示されます

ちょっと長くなったので、続きは次回。

Travis CIの使い方

まず、Travisの公式サイトを見てみましょう。
https://travis-ci.com/
Features to help you get the job done
– quick setup
– live build views
– pull request support ☆
– pre-installed database services
– auto deployments on passing builds ☆
– clean VMs for every build
– Mac, Linux, and iOS support

やりたいのに星(☆)をつけました。ずばりauto deployments

フローが書いてありますね。

イメージとしてはBranch build flowがイメージしやすいか。
Branch build flow
-push code to Github
-github trigger
-build passes
-Travis CI deploys to server
-Travis CI tells team all is well
pushしてテストにパスすると自動でデプロイされる。
なるほど、なかなか良い。
概要は大体イメージできたので、早速やってみましょう。

セキュリティパッチとは何か?

セキュリティパッチとは、プログラムの脆弱性やセキュリティホールなどが発見された際に、それらの問題を修正するためのプログラムのこと。
ソフトウェアやOSなどの製品では、リリースされてから幾つか問題が発見されることがある。

ミドルウェアとソフトウェアの違いはなに?

ミドルウェアって何???

ミドルウェアは、アプリケーションとOSの中間的処理を行うソフトウェアのこと
ということは、ミドルウェアもソフトウェアの一部って理解でよさそうだ。
つまり、ミドルウェアはソフトウェアの一部だから、ミドルウェアとソフトウェアの違いという質問自体が愚問といって良いだろう。

では、OSは例えば、CentOS7.0として、アプリケーションをLaravel5.7とした場合、PHP、MySQL、Composerなどはミドルウェアと呼んでよいのだろうか?

Web
Apache, IIS, Nginx
サーバーを提供しているこれらはミドルウェアになる。

Application
Tomcat, JBoss, WebLogic Server, WebSphere Application Server, Cosminexus Application Server
Tomcatもミドルウェアに含まれる。わかる気がしますね。

Database
MySQL, Oracle, PostgreSQL, SQLServer, DB2
はい、Mysqlもミドルウェアになります。

その他
arcserve, backup exec, netbackup, netvault, jp1, senju, systemworker, tivoli, websam, hinemos, zabbix, clusterpro, hacmp, haモニタ、heartbeat, lifekeeper, mscs, primecluster, serviceguard, vcs
zabbixもミドルウェアですか。アプリケーションのイメージありますけど。。

色々調べると、DBMSやモニター類が代表的なようですね。phpなど、言語はあまりミドルウェアとは呼んでないようです。

169.254.169.254 port 80: Connection refused

Failed to connect to 169.254.169.254 port 80: Connection refused
ん? なんだこれは?

git hub issueを見てみましょう。
https://github.com/future-architect/vuls/issues/402
そもそもvulsってなに?
-> 脆弱性検知ツール Golangだあああああああああああああああああ
osはcentosの模様

で、issueを見ると、
>Yes, if you don’t use AWS, you can ignore this error.
awsでなければ無視していいよ、とのこと。
え、awsなら、何のエラー???

そもそも、169.254.169.254は、ping meatdata serverのことらしい。
metadata serverとは? :メタデータ環境で個別ユーザーまたはユーザーグループを表すメタデータオブジェクト?

メタデータサーバは、各データ(ファイル)の保管場所、保存方法等のメタデータ管理に利用される。

え、メタデータって何?HTMLのmetaのこと??
データの付帯情報

つまり、メタデータサーバーは付帯情報を保管しているサーバーって理解であってる?

aaaaaaaaaaaaa、なるほど

169.254.169.254にアクセスして、IPやホスト名、VPC情報などインスタンスのメタ情報が保存されている!?

169.254.169.254 port 80: Connection refused だから、インスタンスのメタ情報サーバーへのアクセスが禁止されているってことね。了解!

LinuxのCPU使用率100%と下げ方

CPU使用率とは、プログラムがどの程度CPUを使っているかとうこと。
CPU使用率が100%でないということは、CPUに遊びがあるという状態。

CPU使用率とは: 一定の時間に対して、どれだけCPUが稼働したか。
1000ミリ秒中550ミリ秒、稼働すれば、CPU使用率は55%になる。当たり前か。

CPU使用率が高いと、アプリケーションのパフォーマンスが落ちるイメージがあるが、つまり、CPU使用率は高い方がいいのか?

CPU周波数とは
1秒間で送信できる0か1のデジタル信号の数
3.2GHzのCPUの場合、Coreで1秒間に32億回0か1の信号を送って処理ができる。つまり、クロック周波数 = 最大通信回数
3.2GHzのCoreに対して、22億4千万回の信号を送って処理すると、Core使用率は70%になる。

で、AWSのCPU周波数は?
M3.Midium Maximum Capacity:3840 MB

DBインスタンスクラスの仕様
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html
ECU: Intel XeonまたはAMD Opteronの1.0G~1.2GHz相当(クロック周波数)=最大10~12億通信回数
M3.midiumが3ECU = 3.0G~3.6GHz相当のクロック周波数 = 30~36億通信回数
M3.large(6.5ECU)に上げる?

エンジニアが断捨離するとこうなる(その2)

そろそろ断捨離する物がなくなってきたので、行動面での断捨離を考えたい。
エンジニアは合理的であるべき。とすると、無駄な行動もバッサリ捨てたい。
で、何を捨てたいか?

コンビニ
– コンビニで立ち読みするのが癖で、直したい。 ザファブル、アフロ田中、BLUE GIANT、フルーツ宅急便が気になって仕方がない。
→ 漫画って無意識に思考に影響与えるから、できるだけ読みたくないなー
→ この悩みを解決するソフトウェアを作りたい
案1) コンビニに入ると、GPSで地震警報並みの警報がスマホから流れる
案2) コンビニに入ると、GPSで自動的にクレジットカードで課金されるようにする
案3) rizapのように、毎日コンビニに入った回数を誰かに報告する

あ、GoogleのGoogle Place APIというのがあるらしい。これ、ガチで使ってみたい。
https://developers.google.com/places/

断捨離をプログラミングで解決する、そういう流れにしたいですねー