投稿が遅くなってしまい申し訳ありません。
この記事は 富士通の非公式Advent Calendar 2018 の2日目の記事です。
富士通クラウドテクノロジーズ株式会社(略称:FJCT)で、クラウドサービスの企画・設計・開発・運営を担当するエンジニアの五月女です。
タイトルについては記事内で言及しますが、よく富士通の人に「富士通っぽくない会社だよね」と言われる所から付けてみました。
自分がこの記事を書こうと思ったきっかけは「この会社で使われている技術について把握出来なくなってきてるんじゃないか?」と感じたからです。
折角の機会なので、どんな技術が使われているのか纏めて行きたいと思います。(そして社内外からの突っ込みを貰って補完していきたいです。)
※公開記事や採用サイト等に記載されている内容を中心に、自分の主観も交えて纏めていますので、事実と異なる部分があったら申し訳ありません。
非公式と謳っているアドベントカレンダーなのですが、この機会に「富士通らしくない富士通グループ」会社について知って貰えたらと思います。
目次
そもそも何をしている会社なのか?
主に3分野でサービス提供している会社です。
簡単に言ってしまえば、IaaS/PaaS/SaaSといったクラウドサービスとその上でのデータサイエンスやIoTをサービス提供しています。
- IaaS/PaaS クラウドサービスの「ニフクラ」
- データサイエンス・IoTサービスの「IoTデザインセンター by ニフクラ」
- ソリューションサービスの「ニフクラ ベーシックホスティング」や「ニフクラ ビジネスメール」等
補足)富士通っぽくない会社?
富士通クラウドテクノロジーズ株式会社という社名を聞き慣れない方も多いかと思いますが、古くは1986年に株式会社エヌ・アイ・エフとして設立された会社です。
当時は、パソコン通信事業を主軸としていた会社で、その後ISP、Webサービス事業と主力事業を変化させながら、2010年に当時ニフティ社の@ニフティを支えるインフラ基盤をサービス化してクラウドサービスを開始しました。
そして、2017年に、当時のニフティ株式会社から富士通クラウドテクノロジーズ株式会社へ社名を変更し、ニフティという旧社名やブランドとコンシューマー向けビジネスを他社様へ売却し純粋なクラウド事業会社として生まれ変わった 設立32年、創立2年 という会社になります。
そんな経緯もあって、富士通の方々には、未だに我々の事を「ニフティさん」と呼ばれてしまう事もあり、この生い立ちが「富士通っぽくない会社だよね」って言われる要因の一つかな?と思っています。
どんな技術を利用しているのか?
前置きが長くなりましたが本題です。
自分がクラウドサービス事業中心に担当しているのでその近辺の技術を中心に紹介します。
OS等
ニフクラとはのページで VMwareを基盤とした
と言及されていますが現在はVMwareのSoftware Defined Data Center(SDDC)に習ったモノを大規模化する実装をしていると思います。
VMware Inc.とは、よくエンジニア同士で実装や構成についてディスカッションをさせてもらっています。
- Docker/LXC等のコンテナ技術
いわゆるコンテナ技術には以前から手を出しており、2012年にLXCをベースにしたC4SAというサービスをリリースしたり(残念ながら2017年末にサービス終了してしまいましたが。。)、ニフクラスクリプトという、スクリプト実行基盤を提供しています。 また、ニフクラのバックエンドシステムではかなりコンテナが活用されており、自分の感覚だと大部分がコンテナで実装されている様に見えます。
Windows系はサービスのバックエンドとしてはほぼ利用されていませんが、Active DirectoryやSQLServer等でお客様の利用は多いのでQAの為に学習しています。
殆どのサービスがLinux系のディストリビューションで成り立っていて、感覚的にはCentOSが多めです。コンテナ化されたシステム増えるにつれて、Alpine LinuxやCoreOSの利用も増えましたが、最近はUbuntuに落ち着いてきている感覚です。
ネットワーク
ネットワークは、データセンターの中身から作っていて様々な技術を使っていますが、感覚的には更に仮想化されたオーバーレイネットワーク技術が活用されていくんじゃないかな?と思っています。
NFVの範囲だと、VMware NSXに限らず VyOSといったOSSも採用しています。
ストレージ
ストレージは、様々な装置や技術が使われていますが、IP-SANが中心で、これからはiSCSIの活躍する機会が増えるんじゃないな?と思っています。
また、感覚的には、仮想化されたストレージ実装がイマイチ信頼性が足りず伸びてないなという感覚です。
Cephは ニフクラオブジェクトストレージ のバックエンドで利用されていて、 ディストリビューション製品の事例 になっています。
言語
- Java
- Python
- ShellScript
- Node.js
- JavaScript
- GoLang
- PowerShell
- PHP
- Ruby
- C
- C++
- Perl
サービスの裏側ではいろーーんな言語が使われていますが、概ね上に書き並べた順番のシェアじゃないでしょうか。
サービスのロジックはJavaで書かれている部分が多めですが、Node.jsやGoLangで書かれた場所も増えています。
インフラの運営ツールとしてはPythonやGoLangで書かれた物が多く、一部互換性の問題でShellScriptやPowerShellで書かれた物も存在する感覚です。
PHPよりも下に記載した言語はほぼ無くなってきている感覚です。
- Objective-C
- Unity(C#)
他には、 ニフクラモバイルバックエンド では、各アプリへの組み込み用に iOS/Android/JavaScript/Monaca/Unity向けのSDK を提供しており、その関係でObjective-CやUnity(C#)を操るエンジニアがいます。
ミドルウエア等
ニフクラRDBというDB as a Serviceで上記のRDBMSがエンジンとして選択出来るほか、ニフクラの各サービスバックエンドでも利用されています。
- MongoDB
ニフクラモバイルバックエンドでは、非構造データへの対応が必要だった事もありMongoDBも採用されています。
- Apache
- Nginx
WebサーバーはApacheが多かったですが、最近はNginxも増えてきている印象です。
- Ansible
- Chef
- Jenkins
- GitLab CI
運用のコード化へ積極的に取り組んできた背景から、コードの自動実行に必要な環境が大分整理されてきました。
最近だとインフラ系はほぼAnsibleで実装されており、アプリケーション展開で一部Chefが残っている印象です。
実行環境は、ほぼJenkinsとGitLab CIが利用されています。
- Zabbix
- Fluentd
- Elasticsearch
- Kibana
- Influx DB
- Grafana
- RackTables
- php IPAM
監視・データ集約・構成管理系ツールは大部分がOSSなツールをベースとした自作になります。
意外と言われる事が多い点として、VMware vRealize Suiteに類するVMware製品はサービス運用に殆ど入っていません。これには様々な理由があるのですが、大きな理由としてはニフクラの運用スケールだとボトルネックになってしまう。という点が大きいです。
活用したいツールは沢山あるので、この辺はまだまだチャレンジしていきたい分野ですね。
また、旧ニフティ時代の活動が Zabbix社の導入事例 になっていますが、会社として開発した内容をOSSへ還元する活動は、自社のためにも積極的に実施していきたいと思っています。
- GitLab
- Redmine
- Slack
コード管理やチケット管理はSlackを中心としたChatOpsが社内標準になっています。
この辺の詳しい内容や状況については 富士通クラウドテクノロジーズ Advent Calendar 2018 の自分の回で記載しようかなと思います。
さいごに
公開されている資料や採用サイトからかき集めてみましたが、逆に、まだまだ公開されていない部分が沢山あるなーと実感しました。
インフラサービスの裏側は面白い所が沢山あるので、もっと広く公開していくと面白そうだなと思った次第。
また、この場をお借りして、非公式ながら、 FUJITSU Advent Calendar 2018 を続けて頂いている tnaoto さんありがとうございます。
この記事のタイトルは「富士通らしくない富士通グループ」としましたが、様々な場面で素晴らしい富士通グループの方にお会いするので、是非そうした方々と一緒に仕事していけたらなと思っています。