サカナ未遂

プログラミング、筋トレ、子育て

k8sで複数環境を触るときに便利なツール

kubernetesで操作する環境が増えてくると、想定外の環境にデプロイするような事故が増えてくるので、少しでも事故を減らすためのツールを紹介します。

kubectx

コンテキストを簡単に切り替えてくれるツール

インストール

$ brew install kubectx

コンテキスト切り替え

# 特定の環境に切り替え
$ kubectx gke_my-project-development_asia-northeast1-a_sample-cluster

、、、、コンテキストが長い…

別名をつけることができる。

$ kubectx MYDEV=gke_my-project-development_asia-northeast1-a_sample-cluster

これで、別名で切り替えることができる。

# 開発環境に切り替え
$ kubectx MYDEV
# 本番に切り替え(本番の別名をつけておく)
$ kubectx PROD

kube-ps1

実行中のコンテキストをプロンプトに表示させることができる。 https://github.com/jonmosco/kube-ps1

インストール

$ brew install kube-ps1

.bashrcの設定

# .bashrc
PS1='\u:\W\$'   # プロンプト表示を、ユーザ名とカレントディレクトリのみにしている(ここは各自の好みで)
source "/<インストールパス>/kube-ps1/share/kube-ps1.sh"
PS1='$(kube_ps1)'$PS1
kubeoff      # デフォルトでオフにしておく
# 表示
$ kubeon

# 非表示
$ kubeoff

こんな感じで表示される

$ kubeon
# ステージングに切り替え
$ kubectx STAGE
(⎈ |STAGE:default)username:workspace$

# 本番に切り替え
$ kubectx PROD
(⎈ |PROD:default)jusername:workspace$

$ kubeoff
username:workspace$

これで自分が操作中のコンテキストを確認しながら作業できるので、少しは安全になります。

転職して約半年が経ちました

5月も終わりになってきて、転職して約半年が経ちます。

 

当初の目標としては、業務以外でももっとたくさんコードを書いてるつもりだっんですが、思った以上に知らないことが多すぎて、そのキャッチアップに追われ、なんとも自身を無くしています。

 

特にインフラ周りの知識がほとんどなく、Docker、k8sGCP、terraformなどのツールやサービスの情報収集に終われ、自身の英語力のなさから来る公式リファレンスを読む遅さと相まって、思った以上に捗らず仕事に追われています。

 

またプライベートでも、妻がフルタイムで働き始めたことによる家事の増加、娘が小学校に入学したことで、出発の時間がこれまでより遅くなり、その分出社が遅れ、退社時間がずれるなど色々ドタバタしていて、仕事以外でなかなかスキルアップの時間が取れない日々が続きました。

 

その対処として、食器洗浄器と、衣類乾燥機を買うことで家事にかかる時間の削減を行いました。

特に衣類乾燥機は、洗濯の後の、「干す」、「取り込む」の二つのプロセスをなくすことができるので(完全には無理ですが)相当の時間短縮になります。

食器洗浄器は、洗う量に対して洗ってる時間が長いので、手で洗った方がいいかと思ったりしますが、洗い終わった後の疲労感がなくなるので、とりあえず毎回使っています。

そんなこんなで、一日1時間半は自分の時間が作れそうなので、まあ焦らず地道にスキルアップしていこうと思います。

 

RubyKaigi2019に参加してきました。

久々にブログを書きます。

タイトルの通り、RubyKaigi2019に参加してきました。 4/18〜20で福岡で開催で、特に一緒にいく同僚もいないので一人ぼっちで行ってきました。

去年Rubyを始めたので、RubyKaigiがどういうものか全然知りませんでした。 あまり詳しくないのですが、相当レベルが高く、自分が行ってもどうなんだろうと思っていました。 去年の末くらいにチケットが発売された後も、行こうか迷っていたのですが、去年末の品川で開催された「Ruby Business Users Conference 2018 Winter」でRuby開発者のMatz(まつもとゆきひろ)さんとお話する機会があり、Ruby会議は楽しいし、初心者でも大丈夫と言っていたので、参加することに決めました。
実際Ruby歴1年ちょっとでは、セッションの内容は高度で、さらに国外のエンジニアの英語スピーチは理解が追いつきませんでしたが、Rubyコミッターの方々の、もっとRubyをよくしていこうという熱い思いは感じ取ることができました。 ぼっちで参加しましたが、東京で顔見知りの方々にアフターパーティで混ぜてもらったり、なんだかんだで楽しく過ごすことができました。 来年は長野県の松本ということで、また絶対に行きたいと思います。

転職後の勉強について

新しい会社に入社し、もうすぐ1ヶ月が経ちます。

まだ不慣れなこともあり、毎日2時間近く残業しているので、業務中以外のインプットもアウトプットも転職後にかなり滞っています。

 

今年は、RubyRailsももっと深く理解したいと思っているし、AWSGCP、DockerやK8sなどインフラ周りの勉強を進めようと思っていたのですが、なかなか時間が取れない状態となっています。

 

ただ自習の時間が取れなくても、業務でDockerやGoogleCloud周りを結構こねくり回したのでかなり理解が進みました。

自習では、ある程度わからないことがあると理解しないまま進んだり、別のことやったりと逃げることもできましたが、業務だと逃げる訳にも行かないので、必死にドキュメントを読み、手を動かし試行錯誤を繰り返して、なんとか業務を進めて行きました。

この後は、テストコードの整備とRuboCopの導入タスクを一人で行なっていくので、この辺りのスキルも業務中に身に着けることができると思っています。

仕事しているだけで、勉強している様なものなので、業務に慣れるまで、自習時間が取れなくても仕方がないと割り切る様にしています。

 

この先は会社がリモートワークを導入するとのことなので、通勤時間がなくなった分、自習に当てられるので、業務+自習で去年以上のスピードで成長できそうな感じがしています。

(去年までは業務で使う技術が古すぎて勉強にならなかった、、、)

 

身につけたDockerとかCloudBuildの知識も、ブログにアウトプットして行きたいなと思っているので、時間が取れたらまとめて公開します。

新しい会社に入社して1週間が経ちました。

2019年が始まりました。
去年末で前の会社を退職し、今年から新しい会社で働き始めました。


入社して1週間が経ち、少しは慣れてきたので、新しい会社について感想を書いていきます。
まず、今の会社は、自社製のクラウドサービスを提供している会社です。

(会社に許可取ってないので、会社名と詳しい業種は伏せます)

 会社は自社オフィスではなくてコワーキングスペースに入居していて、他の会社の人や一般の方なんかも出入りしています。

なので、基本的にフリーアドレスで、座りたいところに座っています。

マシンはMacBookPr13インチ、メモリ16GBの新品を支給してもらいました。

去年末にHHKBを買ったので尊師スタイルで業務を行なっています。

でも、もう少ししたらディスプレイを買ってくれるらしいので、そうなったら席は固定されるかもしれません。


社員は10人くらいでしょうか、時短の方や、インターン、週2、3の方もいて、よく把握していません。

創業して4年くらいの会社で良くも悪くもルールとかあまり決まってなくゆるい感じです。遅刻の連絡がslackで「遅れまーす」見たいな感じでくるので、これがWeb系スタートアップか!とカルチャーショックを受けています。

 

勤怠管理はジョブカン、労務系はSmartHR、会社の業務タスクはTrello、開発のタスクはGitHubにissueあげて、ZenHubで管理しています。

全くのペーパレスだし、どこでも作業ができます。

現在、定時9:30〜18:30の8時間労働となっていますが、フレックスを導入するか、リモートワークをどこまで許可するかなどの就業規則を作っているところとのことです。

 僕はあんまり通勤は苦ではないし、家だと家事とか気になって集中できないのでそんなにリモートワークにはこだわってないのですが、子供が熱出したり、保育園の面談なので一日休まないといけないことがあるので、そんな時はリモートワークができると嬉しいので、リモートワーク制度は作って欲しいところです。

 

使用している技術ですが、フロントがVue.jsでバックエンドをRailsで作っています。

クラウドGCPで、GoogleCloudBuildを使ってDockerイメージを作ってデプロイし、

K8sでDockerイメージを管理しています。 

その他ワークフローエンジンはdigdag、Node.jsやGolangでできたアプリもあります(まだ全体をつかめていない。)

前にRubyで作っていたアプリを理由あってNode.jsに置き換えたみたいです(Ruby好きとしては残念です)

担当はこの辺り全般をやることになりそうなので、しばらくは忙しい日々になりそうです。

あらかたできるようになったらフルスタックエンジニアとか名乗れちゃうかな〜なんて思ったりしています。

 

この1週間の作業としては、最初に3日ほどは環境構築とコードリーディングして、そのあと開発作業に入りました。

新しく作った機能をプルリクしたら、マージされその日のうちに本番環境にデプロイされました、、、

SIerにいた時はたった1行の修正でも、リリースの資料とテストケース、エビデンス作って、上長のハンコもらい、偉い人に説明に行って許可もらい、休日前の深夜のシステムが止まっている時間に出社して二人体制でリリースし、翌営業日のシステム稼働前に出社して待機し、稼働確認取れたら、また偉い人に報告してリリース完了資料を作成して終わり!って流れだったのに、このスピード感半端ないっす、、、

 

ってことでしばらくは会社で使う技術の深掘りをして、余裕が出てきたら新しい技術の勉強なんかも続けて行きたいと思っています。

2018年の振り返り

去年の今頃、技術的に浦島太郎状態だったのに危機感をもち、気合い入れなおそうと、一年いろいろやりました。

ちょっと早いけど、今年のふりかえりです。


・人生初のMacBookProを購入(まあこれは2017年末ですが)
Vagrantubuntuを操作したり、Node.jsでサーバーサイドについて学習
・SlackBotを作ったり、CircleCIを使ったり。
GitHubだけでなくGit単体について、「独習Git」で学習
Rubyを始めたので、Ruby技術者認定Silverを取得。
・EffectiveRubyでRubyらしい書き方を学んで、メタプログラミングRubyで知識を深める。
・TDDとか軽くふれる。
Ruby on Railsチュートリアルから始め、下半期の大半はRailsで遊んでた。
・プログラミングスクールでSolidusというRailsのgemを使ってECサイトを作ってみたりした。
・HTTPについて学びなおそうと「RealWorldHttp」でGo言語を使って、通信について復習(これはまだ途中)
・Reactの基礎学んでSPAやコンポーネントの概念を学習
 (せっかく勉強したRecomposeがすでに切り捨てられたのは衝撃だった。フロントエンドのスピード感半端ない、、)

・UdemyでVuejsの基礎学習

・あと徳丸本とかセキュリティ関連の本も一通り読んだ。

 

また、アラフォーなんでプログラムだけでなく、組織論や、キャリアパスなども意識し、通勤中はもっぱら読書
・エリックリースの「リーンスタートアップ
・エンジニアリングの組織論
・エンジニアのためのキャリアパス
カイゼンジャーニー

etc...
どれもいい本だった、次の会社で活かせるようにしたいです。


あと英語力も上げようと、ラダーシリーズよんだりESLPod聞いたりしました。

今月からはオンライン英会話を始めましたし来年は6歳の娘と一緒にやりたいです。

 

あとRubyRails系の勉強会には時間の許す限り参加しました。

少しづつ顔見知りもできてきて、これも継続して行きたいです。

 

いま、エンジニアに求められるスキルは多岐にわたり、ただプログラムかけるだけでは
そのうち食べていけなくなるかもしれないので、来年も広範囲の知識+特定のスキルの掘り下げを進めていくつもり。
やっぱり子供が幼いと、休日はゆっくりパソコンいじることはできないので、自習は夜だけと割り切ってやってます。

来年はとりあえず、Docker、GCP、FireBase、Kubernetesとか詳しくなっていたい。
プログラミング言語としてはGoとKotolinはある程度できるようになることが目標。

 

来年一月から入社する会社ではスクラム開発が経験できそうだし、その辺りももっと深掘りしていきたいです。

来年は38歳になるし、40歳以降の向けてキャリアパスも見据えて行動したいと思います。
やることたくさん。子供ともたくさん遊びたいし、旅行も行きたい。
健康第一ならなんとかなるかな。
筋トレも継続して週2回はやるようにします。

ということで2019年も頑張りたいと思います。

Ruby Business Users Conference 2018 WinterでMatzさんに会った

昨日、Ruby Business Users Conference 2018 Winterに参加してきました。

Rubyアソシエーション主催のカンファレンスで、Ruby開発者のまつもとゆきひろさん(通称Matz)が基調講演を行なってくれました。

 

まだ今年からRubyを始めたばかりなので、Matzさんが参加するイベントには初参加となりました。

もしかしたら、少しは会話することができるかも?、ひょっとしたらサインを貰えるかもと期待を膨らませていました。

 

平日金曜の昼から、また忘年会シーズンということもあり、それほど参加者は多くありませんでしたが、カンファレンスはとても楽しめました。

 

Matzさんの講演では、世間ではRubyが死んだと言われているとについてや、Rubyの今後についてなど、開発者目線でのお話を聞くことができました。

特に印象深かった言葉は、

『死なないこと』

『諦めたらし試合終了』

Rubyはコミュニティが広げる、誰かではなく私(たち)で広げる』

『どこでもRuby

『いつもポケットにRubyを』

など。Rubyはまだまだ進化するし、時代に合わせて変化させて行くんだなぁと感じました。

私も微力ながらRubyになにか貢献できることを探していきたいと思いました。

 

その他登壇者の発表のあと、懇親会がありましたが、皆さん遠慮してかMatzさんの周りにあまり人がいないので、思い切って話しかけにいきました。

アジアやヨーロッパのエンジニアについての話や、Rubyを開発して初めて公開した時の話を聞くことができてとても楽しかったです。

世界的スーパープログラマーが目の前にいるので、楽しく喋っていたけど、ちょっと足震えていました(笑)

本当に気さくで、質問には何でもニコニコ答えてくれて、人柄も最高で、会う前より憧れが強くなりました。

写真も撮ってもらい、買ったばかりのHHKBにサインも貰うことができました、イェイ!

今日からもっとRubyをたくさん書いて行こうと強く思いました。

Matzさん、本当にありがとうございました!!!

 

f:id:tera_chan3700:20181215091007j:plain

Matzさんとツーショット

f:id:tera_chan3700:20181215091108j:plain

HHKBにサインもらったー!