Takamichi Omori
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    ###### tags: `study` `cloudnative` `Cloud Native Days Tokyo 2019` # Cloud Native Days Tokyo 2019 Day1 ## KeyNotes ### Key Note [CNCF Cloud Native Definition v1.0 ](https://github.com/cncf/toc/blob/master/DEFINITION.md) [Cloud Native Trail Map](https://github.com/cncf/landscape#trail-map) + 来場者の46%が本番環境で運用 #### commitments [Stackanalytics](https://www.stackalytics.com/) + OpenStack + 2016年に1社だった中国企業でが今では4社に + CNCF + 個人のコントリビューターが30%くらい #### Statics クラウドネイティブ技術を導入指定r環境 n = 1500 + AWS : 577 + GCP : 335 + Azure : 163 + On-Premises (Openstack) : 250 + On-Premises (VMware) : 150? ### CNCF projects [Project Services and Maturity Levels ](https://www.cncf.io/projects/) + graduated : 6 + 一定のレベルに達したプロジェクト + incubating: 17 + + sandbox : 17 #### CNCF landscape ![](https://landscape.cncf.io/images/landscape.png) 日本企業は両手で数えられるほど #### Certified Kubernetes Partners + 日本企業はなし #### Kubernetes Certified Service Providers [Kubernetes Certified Service Providers](https://www.cncf.io/certification/kcsp/) + 現在101社 + 日本企業は3社 #### KubeCon + San Diego + Nov 18-21 + 12000人 ### OpenStack #### Openstack has deep roots in japan + connections + community #### Spreading + 9 years + 30+ country #### what we have learned? collaboration without boundaries + across open source community Technology is a powerful force for changing ways Open collaboration around technology is a powerful force to understand and change out lives and our world. (ex.Geneva) #### Top3 Most active opensource project in the world + 6 Bilion Dollers #### innovation built with the 4 ooens + Open Design + Open Development + Open Community + Open Source #### first generation ##### problems + NFV + Edge computing ##### Open SOurce COmmunities Deliverd + open stack + Kubernetes + Ceph + TensorFlow ### Perfoming Infrastructure Migrations (Airbnb) + Migrations : Airbnb Case Studdy + 70% on Kubernetes + 400+ Criticals #### Migrations examples + non cloud to cloud + new CI #### tech debt + low developer velocity * Migrations are the sole lever to systematically reduce tech debt * * #### Migration types + component update + System move + Infrastructure: rewrite underlying infra ##### Strategies + know which type + understanding what is for, pros and cons. #### Sequenced Migrations + lower lisk + need time and plan + #### Cascading Migrations + infrequent migrations can cause a rewrite or cascading migrations #### Simultaneous Migrations unfinished migrations make tech debt worse #### airbnb example `kube-con generate` => `kubectl apply` use IaC, refactoring code is equal with `migration` #### 10 Takeaways ### The 10 new rules of open source infrastructure Ubuntu most popular Linux from laptop to cloud #### 1. Consume unmodified upstream #### 2. Infrastructure-is-a-Product + not hand-crafted + can be run + can be scale out #### 3. Automate for day 1826 1826 = 365 * 5 + 1 days #### 4. Run at capacity on-premise. Use public cloud for overflow #### 5. Upgrade, don't backport #### 6. #### 7. Plan for transition #### 8. Security shloud not be special #### 9. embrace shiny objects #### 10. Be edgy, go Micro! ### Demand Less Choices Bare Metal => virtual machines => containers => functions Serverless #### Containers and Functions + PaaS + Cloud Foundry + CaaS + Kubernetes + Functions as a Service + OpenWhisk #### KNative ## Argoによる機械学習実行基盤の構築・運用から見えてきたもの [Argoによる機械学習実行基盤の構築・運用から見えてきたもの](https://www.slideshare.net/ShinsakuKono/argo-156876353) ### Argo + Argo Workflows + Argo CD + Argo Events ### Arog Workflows + コンテナネイティブのワークフローエンジン + Cons + コンテナの良さ + コンテナで完結している + ワークフローの各ステップをコンテナとして実装することができる ### 比較 + Airflow + コンテナが謎の死を遂げる ### 機械学習実行基盤 #### ETLとして使う https://ja.wikipedia.org/wiki/Extract/Transform/Load #### 検索ロジック重みチューニング Argoを用いて検索クエリ・検索条件に対して最適な検索ランキングを実現するための重みをチューニング #### CI/CD Pipeline + アプリケーションリポジトリ + コンフィグリポジトリ PRがマージされたらArgoCDがそれを反映し、k8sクラスタにデプロイ ##### Argo Workflows + Input: Git(Artifact) + Output: Slack notificaiton #### Tips ##### 1 Step 1 Transaction + pros + ReRunしやすい + cons + containerのリブートに時間がかかる ##### 案件毎にnamespaceを変える 関係ないpodが出てくるのは心臓に悪い ## CircleCI 2.0を支える2つのコンテナクラスターとSRE [スライド](https://speakerdeck.com/kimh/circleci-2-dot-0wozhi-eruinhuratosrefalseyi-ge) ### CircleCI Japan https://twitter.com/circlecijapan ### CircleCI 2.0 完全コンテナベースのCI/CD ### 1.0 ? Linux軽量コンテナを使ってた 2016年Beta開始 1日120万ビルドのCI/CDプラットフォーム ### 技術編: 2つのクラスタ + Kubernetes + マイクロサービス用のコンテナ + 60くらい + フロントエンド + 課金 + ユーザー管理 + WebHook管理 + Nomad + ビルド用のコンテナ + Docker imageのpull + コードのcheckout + ビルドコマンドの実行 + Artifactsの保存 二つを分けることでセキュリティの担保 + ユーザのコードをビルドする == ユーザのコードを実行できる ### K8s + すべてのマイクロサービスが動いている(60くらい) + 自前でEC2上で管理 + terraform + サービス間通信にはgRPCとRabbitMQを使用 #### RabbitMQ + 非同期通信を推奨している + podが死んだり復活したりするのは日常茶飯事 + 同期を期待すると困る + 分散システムでは非同期が推奨 + RabbitMQ on k8s + RabbitMQのスケーラビリティの向上 + StatefulSets + 現在テスト中 #### マイクロサービス間の同期通信 + gRPC + もともとはビルドログのストリーミング + 現在、サービスあいだ通信のデフォルト + スケールさせるのは一工夫必要 #### K8s on EC2 + Master node のマネージメント + etcd + OSの管理 + 認証・セキュリティ + Public API endpointの安全性 + ユーザの管理 + アップグレード問題 #### 今後の課題 + EKSへの以降検討中 + masterのアップグレードは手動でやらないといけない ### Nomad [Nomad by HashiCorp](https://www.nomadproject.io/) [さんこう?](https://www.slideshare.net/zembutsu/introduction-to-nomad-architecture) Servers <==> Clients + バッチジョブ #### CircleCIビルド == Nomad ジョブ CircleCIのビルドはNomadのジョブの単位で実行される #### ヒューマンスケーラー CircleCI1.0のときは人間がスケールコマンドを叩いていた + 人間の手 + 職人の勘 スケールしてからUPするまで30分かかるからアラートで自動でスケールアウトすると困る #### スケーリング@2.0 + Datadog + Autoscaler + AWS ASG DatadogのアラートからASGが起動 #### なぜNomadなのか + Nomadはバッチ処理がk8sより得意だった + 今ではk8sも良くなっているらしい + シンプルなアーキテクチャー + Hashipcorp Toolsとの親和性 + Mesosも検討したが複雑で断念 #### 運用してわかったこと  + シングルバイナリは正義 + 簡単に開発環境で使える + スケールしやすい + オンプレでも管理が簡単 + 安定している + Nomad自体のバグが少ない ### SRE + 分散したエンジニアリングチーム + アメリカ、ヨーロッパ、アジア + サンフランシスコのエンジニア単価がめちゃ高い + 今後は分散したエンジニアリングチームが主流になっていく? + ボーイング方式 + Working together + 時差の有効活用 + 継続的なペアリング + 無理のないアラート対応 + 障害時対応 #### 障害対応 + Slack + #investigation + 障害かなって思ったら + # #### 障害対応チーム構成 + Incident Commander + Communication Commander + Incident Responce Team + Note Taker + ボランティアでできそうな人がやる #### Incident Commander #### Communication Commander + ユーザーへ現状を伝える + ユーザーから障害をを聞く + StatusPageをアップデートする + Customer Success Enginnersが担当 #### Incident Response Team + 問題に詳しいエンジニア #### SRE Clinic + 週ごとにローテーションでToilを潰す + アカウントの削除、DNSレコードの追加 etc + Toil以外に集中できるようにする + Clinic + 駆け込み寺的なニュアンス #### pros, cons + Pros. + 他のエンジニアがタスクに集中できるようになった + 何がToilかの分類ができるようになった + Cons. + なにがClinicの仕事かの分類が曖昧 + タスクからClinicへ映るときのタイミングが難しい + 自分のタスクを人に渡さないといけないので + Toil自体が減るわけではない <!-- あんまおもしろくなかった ## {{ title }} FUJITSU Cloud Serviceの管理責任者 ### FUJITSU Cloud Service for OSS OpenStack準拠のクラウドサービス #### OpenStack準拠のサービス郡 + 仮想マシン・ベアメタル + 仮想ネットワーク + ブロックストレージ #### OpenStack準拠のAPI + openstack client + ansible ### ユーザーストーリーズ on OpenStack #### FujiTSU Tech Talk: リアルコミュニケーション + TechTalk Connect + Tech Talk FOCUS + Tech Talk 祭 ## 今さら聞けないOpenStack 〜クラウド基盤って何が嬉しいのかを再確認 NTTデータ 統合開発クラウドのOoenStack基盤 ### 求められる要件 + 2000 project / year + 150+ partners + 50+ country + 110,000 + 開発支援サービス + 標準プロセスのベストプラクティスに準拠したサービス + 開発自動化サービス + スタックと基盤自動構築・AP自動化の仕組みを実現 */ --> ## Kubernetesとアプリをつないだ可視化を実現しよう クラウドネイティブアプリの最新運用管理術 New Relic ソリューションコンサルタント ### What's cloud native? アプリケーションを物理的な成約から解き放つ ### アプリケーションを物理的な制約から解き放つ + 物理サーバー + 仮想マシン + コンテナ + Kubernetes ### アプリケーションの作りが変わる モノリス < == > マイクロサービス ### Observability Trail map でも4番目に定義されている #### not cloud native + 見るべきは一つ + リソースが割り当てられていれば動く + リソースセントリック ### 何を見るのか + アプリと基盤だけ + リソースとコンポーネント郡の関係を見る ### アプリを中心に動的な環境を多面的に見る + kubernetes cluster + 分散トレーシング + Pods, Deployments + アプリケーション + コンテナ + Nodes + ユーザーエクスペリエンス + k8sを動かすクラウド ### ObservabilityってOSSで実現できる? + Prometheus + fluentd + etc #### OSSは得意分野を明確に持っている + fluentd + アプリケーション + promeheus + Nodes, pods, cluster, #### 自分で好きなようにカスタマイズすることが前提 ### 作るのではなく買うという選択肢 `入門 監視`にもかかれている + クラウドネイティブの運用がこなれていない段階でベンダーのノウハウが詰まった統合的なビューを試してみたいとき + 導入・設定・運用するスキルと工数の人的コストがツールの購入コストを上回る時 ### NewRelic クラウドネイティブの可観測性がすごい すべてを計測し見渡すための場所 + 導入機 + 初期設定 + 実践編 + ビューの味方を理解する + 応用編 ## k3sで作る! 軽量k8sエッジコンピューティング環境 + Rancher Labsが開発したディストリビューション ### 特徴 + Certified Kubernetes Distribution + CNCFの定義する適合テストに合格したk8sディストリビューションのこと + 基本的なk8sの各種APIなどが実装され利用できる + 軽量 + 512 MB of ram per server + 75 MB of ram per node + 200 MB of disk space + ARMアーキテクチャサポート + x86_64, ARMv7, ARM64 ### どうやって軽量化したのか #### コードの削減 5つ機能を削った 1. レガシーまたは非デフォルトの機能 2. アルファ版の機能 3. クラウドプロバイダ向けのコード 4. Storageドライバ関連のコード 5. Docker(optional) #### プロセスの削減 Kubernetesを構成する主要コンポーネントを単一プロセスにまとめた ![](https://i.imgur.com/Di1842t.png) ### showk3s + showKsの小プロジェクト + showKsと連携したk3sを用いたアプリケーション + k3sのエッジコンピューティングコンセプトをデモとして実装する ### エッジコンピューティングで考えなければならないこと + 上流のネットワークは不安定 + エッジ端末は壊れる + エッジは一般的に数が多い ### Goldwing Smart Energy [Goldwing](http://www.goldwindglobal.com/solution/effect.html) + スマート風力発電のために3万台を超える風車を運用 + 各種データを数千箇所にあるエッジk8sクラスタに集約してアップロード ### show3s + エッジコンピューティングについてきちんとした実装を素人がするのは大変 + デモやPoC程度にはRPiとk3sの力で実現できる + お小遣い程度で公開できる + 興味あれば動かしてみて

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully