フルスタックエンジニアを目指して

いろいろやってみるブログ

2017年に学んだテクノロジー

インフラエンジニアになって早4年が経過しました。良くも悪くもSIerとして成長し、最近業務ではあまりマシンに触れることが許されなくなってしまいましたが、プライベートでは割と広範囲にいろんな技術に触れてきた1年だったかなと思います。年末ですし、今年触れた技術を振り返ってみようと思います。

2017年に学んだ技術

Docker

去年の年末から今年の初めにかけては Docker にハマりまくりました。ちょっとした検証を行いたかったり、コマンドの確認をしたかったりというときに、Docker をサクッと立ち上げるだけでいいのは非常に楽です。DNS(BIND)やProxy(Squid)用の Docker イメージを作り、いつでも動きが確認できるようにしました。

Vagrant

こちらも大変お世話になった技術です。会社PCは Windows7端末なので、Bash on Ubuntu on Windows は利用できません。しかし、なにかと Bashコマンドライン処理したほうが便利なこともありますので、Windows7上で Vagrant を動かしています。年始から Windows10 端末に乗り換えますので、一旦は利用なくなるような気もします。しかし、こちらもちょっとした検証には大変便利ですよね。

Powershell

存在は知りつつもあまり触れてこなかった Powershell ですが、今年はちょっとだけ利用しました。きっかけは、WEBアクセスに関する不具合調査のために、Internet Explorer の動きを自動化したかったことです。Selenium とか他の技術もあるのでしょうが、とりあえず特定のサイトにアクセスする試験を何度も行いたかっただけなので、Powershell でサクッと実装しました。Windows との相性が抜群に良いはずですから、もっと使いこなせばいろいろ便利なんだろうなー、とは思いつつ、私のスキルセットではまだ Bash で処理する方が早いので最近はあまり勉強していません。

Bash

Bash のスキルレベルは今年一年でかなり伸びたように思います。発想をそのままスクリプトに落とし込めるようになったので、様々な処理を実装することができるようになりました。Twitter でシェル芸人たちのツイートを見たり、解説サイトを読みまくったのが功を奏したかなと思います。

Python

O'Reilly Japan - 退屈なことはPythonにやらせよう に代表されるように、今年は Python Year といっても過言ではないほどに Python が流行っていましたね。そんな波に、私も乗りました。実践力を身につける Pythonの教科書詳細! Python 3 入門ノート の2冊で学習しましたが、まだ実践力が足りていなさすぎてまったくというほど使いこなせていません。年末年始で ToDo アプリでも作ってみようかなー、と思っています。

C#

チームメンバーが何人かいるのですが、何度言ってもルールを守らないので、プログラムを作ることで強制的にルールを守れるようにしようかなと思い始めたのが C# の勉強です。C# を採用したのは、Windows 端末で実行する GUI アプリケーションとして最も簡単で優れた開発言語だと思ったからです。(ただ、ちょまど氏に影響されただけかもしれません。)11月ごろから勉強を始めたのですが、今までスクリプト言語にしか触れてこなかった人間にはちょっと難しい言語だったようです。結構、クラスだのメソッドだのいう言葉の概念をつかむのに苦労しています。ただ、構造がわかってしまえば Visual Studio を使って簡単に GUI 設計ができそうなので、もうちょっと頑張りたいと思います。

UML

かなりお世話になりました。具体的な使い方としては、運用設計を行う上で、まずはディスカッションベースで話をしますが、そんなときに Plant UML や mermaid.js でサクッとシーケンス図やアクティビティ図を書いて、それを相手に見せながらディスカッションを行っています。もし、フロー変更があれば、その場で変更を行って「これで認識齟齬ないよね?」と確認したりもしています。現状では、最終成果物として UML で書いたものをそのまま出すことはできないので、UML で書いた図をメンバーに渡して、清書してもらっています。本当は、Markdown + UML で全部資料かけたらバージョン管理とか楽なんですけどね。文書作成に死ぬほど労力を割いている SI 業界に革命が起きてほしいと心の底から祈っています。

DevOps

技術ではないですが、DevOpsについてかなり学びました。DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する という本はかなり分かりやすかったのでおすすめです。また、何と言っても GoogleSRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム が日本語訳されたということで改めて読み直したりもしました。

BGP

業務で扱うようになったので改めて勉強しました。Cisco 機器でのコンフィグの書き方や AWS との連携含め、様々学びました。また、Google が経路漏らした障害の対応でムカついたので、インターネットについていろいろ学び直した1年でもありました。

SDN

最近の SDN ソリューションはどのようなものがあるのか、今一度確認しました。

WAN高速化

具体的には Steelhead 社の製品について、割としっかり学びました。シンプルな構築くらいならできそう。運用もここ2年くらい見てきたので、ナレッジ溜まりました。

ITIL

これも技術ではないかもですが、運用設計とかチームビルドとかする上で必要だと思い始めた勉強ですが、会社でも資格取得が必須となったのでそれなりに勉強しました。そろそろ試験受けないとな。

2017年に学びたかったけど学べなかった技術

Ansible

Infrastructures as Code を体現するために Ansible を勉強しようとしていましたが、なかなか現在の業務環境で改革を起こすのはムズカしそうだと考え、先送りにしている技術です。

Excel VBA

使えると便利なんじゃね?と思いつつ、今年も思っただけで終わりました。C# 書けるようになったら、簡単に習得できるような気もしてます。

Javascript

WEBアプリケーション作ってみたいのと、Google Chrome アドオンを作ってみたいので、習得したい技術。ボタンワンクリックで WEB サイトの情報をパースできたらいいなあとか妄想しています。

まとめ

他にもあったように思いますが、ぱっと思い出せないということは習得できていないのだと思うのでこのあたりにしておきます。2018年も、歩みは止めないようにしたいです。