2018年振り返り
2018年のアウトプットとインプットを簡単に振り返っておく.
Work
仕事で取り組んだことは全て以下のMercari Tech Conference 2018で発表させてもらった.前年から引き続きMercariのMicroservices化に向けた基盤の構築をしている.
MTC2018 - Microservices Platform at Mercari
大きかったのは“API GatewayによるMicroservices化”で紹介したAPI gatewayのリリースそして@terryの“Mercari API: from Monolithic to Microservices”や@morikuniさんの“Listing Service: From Monolith to Microservices”で紹介されている「出品」というMercariの中でもとても重要な機能をMicroservicesとして切り出し始めたこと.
Microservices化とその基盤の整備は来年以降もさらにコミットしていく.
Output
今年は対外発表がとても多かった.上記以外だと以下のような発表をした.
- Microservices on GKE at Mercari
- Continuous Delivery for Microservices with Spinnaker at Mercari
- Microservices Platform on Kubernetes at Mercari
- 今学ぶべき技術
英語で登壇はできなかったが“Interview: Taichi Nakashima from Mercari”で初めて英語でインタビューを受けたり,“Mercari with Taichi Nakashima and Tonghui (Terry) Li”でGCP Podcastに日本企業として初めて出演するという経験もした(写真).
ブログは6記事書いた.特に読まれたのは“Service meshとは何か”だった.来年は月1記事くらいは書きたい.
またAPI Gatewayを開発するなかで書いた小さなGo PackageをOSSにすることもした(mercari/go-dnscache).長期的にはAPI GatewayそのものをOSSにしていきたい.
Conference
会社で以下の海外Conferenceに参加させてもらった.
- KubeCon EU
- GCP NEXT
- GopherCon
現在自分の中で中心的になっている技術に関するトップConferenceに参加できたのは非常に良かった(Mercariにおける圧倒的にな福利厚生の一つだと思う).
特にGCP NEXTではSpotifyのMicroservices PlatformチームのひととミーティングをしたりKubernetes Co-Founder (神) Tim HockinにMercari Kubernetesの相談乗ってもらったりして非常に良い経験だった.国内でもAWS Summit TokyoでAdrian Cockcroft先生にNetflixやAWSでのMicroservicesについてがっつり質問させてもらうという機会がありとても学びがあった.
海外Conferenceは毎回非常に刺激を受ける.世界と自分らとの差をはっきりと感じて行くたびにやることリストが倍になる.来年も時間を見つけてConferenceはどんどん参加したい.今年のように大規模なものばかりだけではなくもう少し小規模でテーマが絞られたConferenceに行こうと思ってる.
Book
今年読んだ技術書は以下.
- A Philosophy of Software Design
- Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
- Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services
- Managing Kubernetes: Operating Kubernetes Clusters in the Real World
- Kubernetes Cookbook: Building Cloud Native Applications
- Kubernetes Security
- Chaos Engineering
- The Site Reliability Workbook: Practical Ways to Implement SRE
- Seeking SRE: Conversations About Running Production Systems at Scale
- Migrating to Microservice Databases
- Introducing Istio Service Mesh for Microservices
- Continuous Delivery With Spinnaker
- HTTP/3 explained
Twitterにも書いたが今年のベストは“A Philosophy of Software Design”.自分がコードを書くときのモジュール化の方法(Microservicesのインターフェースの作り方)やコードレビューに関してとても大きな影響を与えた.本書に登場する「Deep Module」は今年の流行語大賞.MTC 2018の資料でも参照したが“Accelerate”も今自分がやっているMicorservices化に直結する内容であり非常に参考になった.KubernetesでいうとAdminは“Managing Kubernetes”を抑えておくべきだと思う.
技術書ではないがBasecampのJason FriedとDHHコンビの新作“It Doesn’t Have to Be Crazy at Work”が非常に良くて仕事への向き合い方にかなり影響を与えたと思う.
Article
今年読んで特に良かった記事は以下.
Microservices
- Microservice Architecture at Medium
- Goodbye Microservices: From 100s of problem children to 1 superstar
- The Death of Microservice Madness in 2018
- You’re Not Actually Building Microservices
- Microservices Are Something You Grow Into, Not Begin With
- Overload control for scaling WeChat microservices
SRE/DevOps
- The human scalability of “DevOps”
- SRE vs. DevOps: competing standards or close friends?
- How we do on-call at Monzo
- 5 Lessons Learned From Writing Over 300,000 Lines of Infrastructure Code
Kubernetes
- Convergence to Kubernetes: Standardisation to Scale
- Level Triggering and Reconciliation in Kubernetes
- Scaling Kubernetes to 2,500 Nodes
- The future of Kubernetes is Virtual Machines
Go
- Failure is your Domain
- Tuning Methodology Using a Simple HTTP Webserver In Go
- How I write Go HTTP services after seven years
- Go += Package Versioning
etc
- Introduction to modern network load balancing and proxying
- A Brief History of High Availability
- Deploy != Release
- Discovering Issues with HTTP/2 via Chaos Testing
- Containers Will Not Fix Your Broken Culture (and Other Hard Truths)
- Understanding user support systems in open source
- Serverless Best Practices
- Scaling Engineering Teams via Writing Things Down and Sharing - aka RFCs
- Some notes on running new software in production
- Engineers Shouldn’t Write ETL: A Guide to Building a High Functioning Data Science Department
- Indirection Is Not Abstraction
- Complexity is creepy: It’s never just “one more thing."
- Stop Learning Frameworks
- Chaos Engineering: the history, principles, and practice
- SRE School: No Haunted Forests
- How To Use Technical Debt In Your Favor
2019
引き続き「Microservices」「Distributed system」「Kubernetes」は重要なテーマだが,2019年以降の自分の中の技術的な展望として短期的には「Container security」と「Service mesh」が長期的には「Chaos Engineering」「Serverless」「Edge computing」が大きなキーワードになっていくと思う.
Conclusion?
来年もよろしくお願いします