Hejdaの見る夢

一人前のエンジニアを目指して頑張ったこととかをつらつら書くブログ

Hacktoberfest 2019 に参加してみた 1/3

Hacktoberfest 2019 の概要(公式サイトより転載)

f:id:nari_kyu:20191025040805p:plain

Event details

原文

Hacktoberfest® is open to everyone in our global community. Whether you’re a developer, student learning to code, event host, or company of any size, you can help drive growth of open source and make positive contributions to an ever-growing community. All backgrounds and skill levels are encouraged to complete the challenge.

  • Hacktoberfest is open to everyone in our global community!
  • Pull requests can be made in any GitHub-hosted repositories/projects.
  • Sign up anytime between October 1 and October 31.

翻訳

Hacktoberfest は、グローバルコミュニティのすべての人が参加出来ます。 開発者、コードを学ぶ学生、イベントの主催者、またはあらゆる規模の企業であっても、オープンソースの成長を促進し、成長を続けるコミュニティに積極的に貢献することが出来ます。 すべての背景とスキルレベルの人がチャレンジを完了するように願っています(奨励されています)。

  • Hacktoberfest は、グローバルコミュニティのすべての人が参加出来ます!
  • プルリクエストは、GitHub がホストする repositories / projects で行うことが出来ます。
  • 10 月中( 10/1 ~ 10/31 )であれば、いつで開始可能です。

Twitter

  • アカウント

twitter.com

参加の方法(特に初心者)

  • 下記のブログが非常に分かりやすいです :)
    • Check! Hacktoberfest 2019 に参加してOSSにコントリビュートしよう! by dzeyelid
      • 特に初心者がどのようにすればいいかも(日本語で)説明して頂けているので、初参加のかたは必見です!!
      • 公式の推奨のやり方も翻訳されているので、常連も一度は目を通してみるといいでしょう ;)
      • Have fun! 🙌

medium.com

実際に参加するに当たってやったこと

  • FacebookTwitter で宣言
    • Hacktoberfest 2018 はパートナーと2人で「やるぞ!!」と約束してはいたものの、実際には手を動かすことは無かったので、イベント後にとても悔しい思いをしました :(
    • なので、自分を追い込むために先に宣言しました。
  • 社内の人に声掛け
    • 自分を追い込むため、より多くの人を巻き込むために会社の Slack で参加を募り、結果的に自分含め4人のエンジニアが集まってくれました :)
    • これでもう後戻り出来ない環境を作り、後は Slack でお互い情報交換しながら、個々のペースで PR を作っていきました。
    • 今年初めて参加する同僚は上記のブログを参考にスムーズに始められたし、実は過去 3 年続けている同僚もいたので、割とわいわいやりながら進められたと思います。
  • 当時のウキウキ具合が分かる自分のツイート

その後

今回、実際に参加するに当たって分かったことも多いので、それもまとめることによってまだ未経験のかたの参考になればと思います!(`・ω・´)ゞ

Hacktoberfest 2019 に参加してみた 2/3 へ続きます(WIP)

GCP: Ingress によるバックエンド サービスの構成 を修正してみた

要旨

実行方法

準備

  • gcloud コマンドによる認証を行います
gcloud auth login
  • GKE を起動するプロジェクトを設定します
    • ${YOUR_PROJECT} はご自分のプロジェクトを入れて下さい
gcloud config set project ${YOUR_PROJECT}
  • GKE の Zone を予め設定
    • asia-northeast1-a を指定してますが、他の Zone でも問題無いです
gcloud config set compute/zone asia-northeast1-a

Kubernetes Engine クラスタの作成

  • Cluster の名前を先に決めておきます
export cl_name='ingress-test'
echo ${cl_name}
  • GKE を構築します
    • テストのため、 Node は2台で起動する
gcloud beta container clusters create ${cl_name} --num-nodes=2
gcloud beta container clusters get-credentials ${cl_name}
  • Node の確認
kubectl get node -o wide

Deployment を作成する

  • マニュフェスト作成します
vim my-bsc-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-bsc-deployment
spec:
  selector:
    matchLabels:
      purpose: bsc-config-demo
  replicas: 2
  template:
    metadata:
      labels:
        purpose: bsc-config-demo
    spec:
      containers:
      - name: hello-app-container
        image: gcr.io/google-samples/hello-app:1.0
  • 実行します
kubectl apply -f my-bsc-deployment.yaml
  • 確認します
kubectl get deployment
### 例

$ kubectl get deployment
NAME                READY   UP-TO-DATE   AVAILABLE   AGE
my-bsc-deployment   2/2     2            2           55s

BackendConfig を作る

  • マニュフェスト作成します
vim my-bsc-backendconfig.yaml
apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: my-bsc-backendconfig
spec:
  timeoutSec: 40
  connectionDraining:
    drainingTimeoutSec: 60
  • 実行します
kubectl apply -f my-bsc-backendconfig.yaml
  • 確認します
kubectl get backendconfig
### 例

$ kubectl get backendconfig
NAME                   AGE
my-bsc-backendconfig   31s

Service の作成

  • マニュフェスト作成します
apiVersion: v1
kind: Service
metadata:
  name: my-bsc-service
  labels:
    purpose: bsc-config-demo
  annotations:
    beta.cloud.google.com/backend-config: '{"ports": {"80":"my-bsc-backendconfig"}}'
spec:
  type: NodePort
  selector:
    purpose: bsc-config-demo
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  • 実行します
kubectl apply -f my-bsc-service.yaml
  • 確認します
kubectl get service
### 例


$ kubectl get service
NAME             TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
kubernetes       ClusterIP   10.39.240.1   <none>        443/TCP        107m
my-bsc-service   NodePort    10.39.251.4   <none>        80:32093/TCP   8s

Ingress の作成

  • マニュフェスト作成します
vim my-bsc-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-bsc-ingress
spec:
  backend:
    serviceName: my-bsc-service
    servicePort: 80
  • 実行します
kubectl apply -f my-bsc-ingress.yaml
  • 確認します
kubectl get ingress
### 例

$ kubectl get ingress
NAME             HOSTS   ADDRESS   PORTS   AGE
my-bsc-ingress   *                 80      4s

ブラウザで確認します

と確認が出来れば、成功です

f:id:nari_kyu:20191005094630p:plain

  • 実際にブラウザで確認します

f:id:nari_kyu:20191005094651p:plain

考察したこと

リソースの 削除

  • 以下のコマンドを実施します
kubectl delete ingress my-bsc-ingress
kubectl delete service my-bsc-service
kubectl delete backendconfig my-bsc-backendconfig
kubectl delete deployment my-bsc-deployment

Kubernetes Engine クラスタの削除

  • 以下のコマンドを実施します
gcloud beta container clusters delete ${cl_name}

まとめ

  • たまたま検証していた時に見つけて、気になったので直せてよかったです
  • 本家も修正PRを送りたいけど、 GCP のドキュメントって OSS では無いので出来ませんでした
    • 他のクラウドOSS にしているところもあるのですごく残念だな〜と思いました

Associate Cloud Engineer に合格しました 🎉🎉🎉

Associate Cloud Engineer とは 🤔

試験の申込みから受験まで 🙂

勉強方法 🤔

試験を受けるにあたって注意点 🧐

  • 当日の試験は一切の持ち込みや筆記具はありません
    • メモ用紙とかもありません
  • 本人確認として、身分証明書 が 2 個必要です
    • 試験を予約した後に来るメールに書いてはあるのですが、普通に見落としていて焦りました(^^;
  • 試験を予約・受験する際に Google Cloud Webassessor にユーザ登録をしなくていれないのですが、受ける言語ごとにユーザ登録しないといけません
    • 日本語の試験を受けたい場合は日本語を登録したユーザ、英語の試験を受けたい場合は英語を登録したユーザが必要になります
    • 2019/08 現在の話です🔥

感想とか 😊

  • もともと実務で GCP を触っているのでそこまでちゃんとした試験勉強はしてませんでした
  • そのかわり、模擬試験を「なぜこの選択肢が合っていて、なぜこの選択肢が間違っているのか」を自信持って説明出来るようになるまで繰り返しました
    • ざっと、 10 回はやりました(無料なので気兼ねなく繰りかえせます
  • 実際の問題は模擬試験に比べ、「今ふう」でした
    • というより、模擬試験がすこしレトロのままかもしれません
  • Web テストとか、就活の SPI 試験ぶりだったので、緊張しましたw
  • Web テスト後、暫定ではあるけど結果がすぐに分かります

今後について 😊

  • 現在は暫定であり、ちゃんとした結果は後日メールで来るとのことでまずはそれを待ちます
    • 認定証が来たら、 Credential.net に登録してみようかと思います 😊
  • 次の試験は Professional Cloud Architect か Professional Cloud Developer を受けようと思っています
    • 勉強方法は Coursera と Qwiklabs を予定中
      • 同僚の多くが Coursera をやって試験に合格しているので、試験対策としては良いのかなと思っています 🤔

🐳 package-dockerfile に Go(golang) をいれました 👀

先の投稿に引き続き、package-dockerfile に Go(golang) の Dockerfile を追加しました

https://hub.docker.com/u/iganarix

  • Docker Hub

https://hub.docker.com/r/iganarix/lang-golang

これから継続的にアップデート出来ていけたらいいなと思います(`・ω・´)ゞ