- コラボレーター
- SELECK編集長
- 山本 花香
【2016年版】スタートアップ編・新人エンジニアが知っておくべきサービス4選
数あるSELECKの事例の中でも、新しくスタートアップに入社した新人エンジニアが知っておくべきサービスをまとめてみました。今回はスタートアップ編と題して、スタートアップで開発に携わる全てのエンジニアが知っておくべきサービス、AWS・GitHub・CircleCI・Slackを紹介します。
4月になり、初々しい新入社員を迎え入れた会社も多いのではないでしょうか。いつの間にか新年度が始まってしまい、私も社会人6年目になってしまいました…。
今後は全4回のシリーズで、アプリエンジニア編、インフラエンジニア編、Webエンジニア編も配信する予定です(Webエンジニア編のネタが決まっていない…)。今回紹介するサービスは「既に知っているよ」とか「使っている」という人も多いはずですが、そんな人は次回以降にご期待下さい!
クラウドサーバー:Amazon Web Services(AWS)
Amazon Web Services、通称AWS。Amazonが提供するクラウドコンピューティングサービスです。
AWSの登場により、誰もが気軽にサーバーを構築でき、スケールに耐えうるシステム構成が実現できるようになりました。小〜中規模のWebサービスであれば、もはやスタンダードといっても良い選択肢でしょう(もちろん大規模サービスの事例もありますが)。
基本的なWebサーバーであるEC2(Elastic Compute Cloud)だけでなく、メールサーバーのSES(Simple Email Service)、データベースのRDS(Relational Database Service)など、必要なものはほぼ何でも揃っています。このサービス一覧を覚えるだけでも1週間くらいかかりそうです。
▼「AWS」のサービス一覧(詳細はこちら)
ちなみにSELECKもAWSで動いていて、Elastic Beanstalk、EC2、S3、RDS、Lambda、Elasticsearch Serviceなどを使っています。今の予定だと今月中にElastiCacheとCloudFrontも入れる予定です。
以下、株式会社サイバーエージェントのAWS活用事例です。
AWSで重要になってくるのは設計のスキルですよね。構成もですし、分散の仕組みづくりも重要です。データベースでもAmazonのサービスをそのまま使うか、他のものを使うか。選択肢が数多くあります。
AWSを使うことで、アプリエンジニアでもインフラエンジニアと協力しつつ、システム全体のことを意識するきっかけになるのが大きいと思っています。
レポジトリ管理:GitHub
チームで仕事をする上で欠かせないのがソースコードの共有と、コードレビューです。Gitベースのレポジトリ管理サービスGitHubは、OSSの管理場所としての地位を築いた後、一般企業にも活用の幅は広がっています。
▼Gitベースのレポジトリ管理サービス「GitHub」
GitHubでコードを管理することでコードレビューが簡単になり、Pull Requestによりサービスの品質を上げることも可能です。GitHubは個人で登録・活用ができるので、もし慣れない人は自分の勉強用のコードなどを挙げてみると良いでしょう!
これまたサイバーエージェントさんのGitHub活用事例です。
自分の作ったツールをGitHubで社内に公開すると、他の事業部のメンバーから「ここバグっていたので直しておきましたよ」ってPull Requestが飛んできたりするんです。
自分が欲しいと思って作ったものは他の人も欲しいはずですし、自分では気付けなかったバグを教えてもらうことも多いです。
継続的インテグレーション:CircleCI
継続的インテグレーションという言葉の意味は分かり辛いですが、ビルドやテストを自動化して繰り返し行い、プロダクトの品質を向上させていくということです。
CircleCIは先述のGitHubと簡単に連携でき、コミットやマージのイベントに合わせてビルド・テスト・デプロイといった操作を実行できるという点で人気を集めています。
▼継続的インテグレーションを実現する「CircleCI」
最初はなかなか手を出し辛い領域ですが、そこから得られる工数削減・品質改善のメリットは計り知れないものがあります。もし今のプロジェクトにCIが導入されていなければ、導入を提案してみてはどうでしょうか!
以下、株式会社ookamiがプロダクトの開発にCIを導入した事例です。
スタートアップを成長させるためには、プロダクトを市場に出して反応を見ながら、ユーザーが求めるものを継続的に開拓していかなければなりません。
となれば、変化に強く安定的なプロダクトを作らないといけない。そして、そのためにはCIとテスト自動化を取り入れるべきだと思いました。
コミュニケーションツール:Slack
最後の最後に開発系ではなく、コミュニケーションツールのSlackを紹介します。Slackは基本的にはチャットツールですが、そこにはエンジニアが遊べる要素がたくさん含まれています。そのひとつがSlack インテグレーションと呼ばれる連携機能です。
例えば前述したGitHub、CircleCIで発生したイベントをSlack上に流すことができます。Pull Requestにコメントがあったとか、CIが失敗したという情報をSlackに集約することで情報の見逃しが無くなったり、それを契機にコミュニケーションが生まれます。
インテグレーションの活用が広がる「Slack」
逆に、botを活用することでSlackから各種サービスを動かすことも可能です。Slack上で特定の文字を入力するとデプロイが開始されたり、サーバー監視の情報を取得するという使い方がされています。
Slackの使い方には各社の特色が出ていて、活用事例もSELECKの中で随一の数を誇ります。SELECKでたくさんの活用事例を学んでみてはどうでしょうか?
Slackの解説記事・事例などの検索結果はこちら
あと3回、領域ごとのオススメサービスを紹介します
本連載はあと3回を予定しており、アプリ・インフラ・Webエンジニアと領域ごとにオススメサービスを紹介していきます。反響次第でもう少し増えるかもしれません!新人エンジニアの方の役に立てば幸いです。