2019/7/5 AliEaters@札幌#3にて登壇した内容です。
なるほどわかった!Alibaba CloudとDevOps不破 崇行
View Slide
撮影について• 一部を除いてOKです。• 撮影NGな箇所は、都度お知らせします。• 他の人が入り込む際にはご配慮をお願いします。
自己紹介• 名前• 不破 崇行(ふわ たかゆき)• コミュニティ• JAZUG(Azure User Group)札幌支部• Azureもくもく会 札幌• JAWS UGやRancher Meetupなどで登壇しています• 仕事• 昼は普通の正社員、夜は個人事業主• Alibaba Cloud /• 最近の趣味• 航空無線 / シメパフェ
趣味• 週に1度はシメパフェ• シメパフェのために、毎週働く• 航空無線• 管制官とのやりとりはすごくオペレーションやトラブル対応の勉強になる
最近の東雲研究所https://prtimes.jp/main/html/rd/p/000000023.000027073.html
東雲研究所とAlibaba Cloud• 2018年に「中国大陸でビジネスを始めるためにサーバを建てたいんです」と案件相談があり、それ以来Alibaba Cloudでの構成提案をスタート• 「東雲のヘルプデスク」での取り扱いをスタート• とある貿易系企業の現地法人へのサポートをしています• 最初の頃はお金でハマったことや謝ったこともあります• どちらかというと、課金勢です
今日のおはなし• Alibaba CloudをDevOps的に構築・運用するためのお話
最近の開発事情「DevOpsとは」
「分業」による問題• インフラエンジニア側の主張• 「サーバの構築は出来るけど、アプリのことは知らない。」• 「ApacheやNginxのインストールまではするけど、アプリ向けの細かい設定は知らないよ」• 「.htaccessとか、locationディレクティブの設定とかは開発側でやってよ」• アプリ開発者の主張• 「とりあえずサーバ」
DevOpsをザックリ説明すると• 「分業」による問題• 開発者(アプリエンジニア)と運用者(インフラエンジニア)が緊密に連携して進める開発スタイル• 開発から運用までを同じ1つのチームで進める
Dev(開発)とOps(運用)が一心同体
DevOpsの大きなポイントüアプリ開発者がサーバも構築出来るようになることü逆も同じü間接コストを減らすことで、開発効率を引き上げることü属人性を減らすことü出来るだけ自動化する
DevOpsのための自動化• ビルドやデプロイの自動化• CIの導入• リリースの自動化• 本番環境への適用のパイプライン化
DevOpsを実現するためのアセット• ソースコード管理• GitHub / GitLab / Bitbucket• インフラ• Alibaba Cloud / AWS / Azure etc• CI• Jenkins• テスト• JUnit / PHPUnit etc
Alibaba CloudでのDevOps
Alibaba CloudでDevOpsを取り入れる• ECS/SLBの立ち上げ• Container Service for Kubernetesによるk8sクラスタへのコンテナデプロイ
Alibaba CloudとDevOps
Alibaba Cloudだけで可能なDevOps技インフラ構築の自動化• Terraformによる構築がサポートされている• Terraform v0.8.7以降でサポート• 「インフラのコード化」によるアプローチ技• 下記のコードでECS立ち上げが出来るresource "alicloud_instance" "web" {instance_name = "terraform-ecs"availability_zone = "${var.zone}"image_id = "centos_7_3_64_40G_base_20170322.vhd"instance_type = "ecs.n4.small"io_optimized = "optimized"system_disk_category = "cloud_efficiency"security_groups = ["${alicloud_security_group.sg.id}"]vswitch_id = "${alicloud_vswitch.vsw.id}"}
コンテナのデプロイ• Container Service for Kuberneteshttps://jp.alibabacloud.com/solutions/devops/CI-CD?spm=a21mg.10724711.926751.3.1f9c2722cf65X7
gitリポジトリやコードパイプライン• IaaS系のconfファイルやソース管理がDevOpsでは重要な要素• パイプライン?• コードをテスト・ビルドしたりECSサーバにデプロイする仕組み• 残念ながら、Alibaba Cloudにはフルマネジドなgitリポジトリやパイプラインのサービスが無いので、代替を探す必要がある。
今のところのオススメはAzure DevOps• Azure DevOps• gitリポジトリやコードパイプラインが全部用意されている。• 1チーム5人まで無料で使える• Azure以外のクラウド環境やオンプレもサポート• Alibaba Cloudでもパイプライン機能も動く
https://azure.microsoft.com/ja-jp/services/devops/pipelines/
Pipelineによる自動デプロイ
Azure DevOpsの特徴• Alibaba Cloudでもほぼ全ての機能が使える• gitリポジトリ・カンバン・Backlogなども揃っている• 5名まで無料で使える
オススメポイント• IaaS的なアプローチはTerraformを使おう• .tfファイル(定義ファイル)を色々作っておく• パイプライン機能はまだ無いので、とりあえず他のサービスを使う• Azure DevOpsが今のところオススメ(今後変わるかも?)
まとめ• Alibaba Cloud + DevOps• アプリ開発者とインフラ管理者が手を取りあって1チームになる• DevOps的なアプローチを使うと、Alibaba Cloudで効果的/効率よくインフラを構築出来る• 使えるツールはどんどん使っていこう!