Open Source

ダウンタイムなしでHadoopクラスタを移行した時の話

こんにちは、Data Platform室の小野です。Data Platform室では、昨年のLINE DEVELOPER DAYでも発表があったように、大規模なHadoopクラスタを運用しています。


この記事では、そのときどのようにHadoopクラスタを移行したのか、そしてどのような問題が起こったのかについて、ご紹介します。

Let’s play Reactive Streams with Armeria vol.2

こんにちは。LINE PlusでオープンソースソフトウェアのArmeriaとCentral Dogmaを開発しているUM IKHUNです。前回の記事では、Reactive Streamsの概念を解説しました。今回の記事では、Reactive Streamsをオープンソース非同期のHTTP/2、RPC、RESTクライアント/サーバーライブラリーであるArmeriaで使用する方法について紹介したいと思います。

Let’s play Reactive Streams with Armeria vol.1

LINE PlusでオープンソースソフトウェアのArmeriaとCentral Dogmaを開発しているUM IKHUNです。私はReactive Streamsの概念と、Reactive Streamsをオープンソースの非同期HTTP/2、RPC、RESTクライアント/サーバーライブラリーであるArmeriaで使用する方法について紹介したいと思います。今回の記事では、まずReactive Streamsの概念について解説します。

GitHub Contributions グラフを緑豊かにしてみましょう(feat. Armeria Sprint)

こんにちは。この記事を読んでいる方の中に、GitHub contribution graphが日照り状態の方はいませんか。この記事では、その日照りの解消につながるArmeria Sprintイベントとその感想を紹介します。

今回のイベントは、LINEで働く開発者から参加者を募集しました。メンターとメンティーの割合を考慮し、先着順10名とお知らせしました。募集を開始するとすぐに定員に達し、さらに10名がキャンセル待ちになるなど想定以上の反響があり非常に驚きました。参加申し込みから分かるように、みんな熱意に溢れる方でした。イベントは2日間にわたって開かれました。初日は歓迎セッションが2時間、2日目はスプリントが4時間行われました。

オープンソース「Armeria」のコントリビュータのためのイベントを開催しました

Armeriaは、LINEで開発してオープンソースとして公開したプロジェクトです。LINEの社内プロジェクトだったArmeriaが現在のような形になったのは、社外の多くのコントリビュータが積極的に参加してくださったためです。私たちは、そのコントリビュータの方々に感謝の気持ちをお伝えしたく、今回のイベントを企画しました。

Go製OSS CI/CDプラットフォーム drone 1.0.0-rc.1 の新機能・変更点

この記事はLINE Advent Calendar2018の8日目の記事です。 はじめまして。LINEのIT戦略室という部署で社内システムの開発・運用を担当しております、suzuki-shunsuke です。 自分がオンプレミスで運用している OSSバージョンの drone ci ですが、遂に 1.0.0 の rc が出ました。 なので 1.0.0 になって何が変わるのかということをドキュメントを読んだり実際にインストールしたりして調べてみました。

LINEのフロントエンド開発チームにおけるOSSへの貢献活動への取り組み「Let’s Contribute OSS!」

こんにちは!Frontend Standardizationチームの川崎です。私の所属するStandardizationチームは、LINEのフロントエンド開発組織においてプロダクトに依らず横断的に必要となるツールの開発や、開発者の情報発信やコミュニケーションをより円滑にするための企画を行なっている部署です。今回は、私たちの業務の紹介も兼ねて、先日開催された社内ワークショップについてお話します。

VoIPのオープンソースライブラリPJSIPにおけるバッファオーバーフロー

こんにちは。セキュリティ室(アプリケーションセキュリティチーム)で主にLINEサービスのセキュリティ診断を担当しているYoungsung Kim(Facebookアカウント/Twitterアカウント)です。

これはLINE Advent Calendar 2017の24日目の記事です。

今日はVoIPのオープンソースライブラリであるPJSIPの脆弱性(CVE-2017-16872およびAST-2017-009)について書かせていただきます。PJSIPは、標準プロトコル(SIP、SDP、RTP、STUN、TURN、ICE)を実装したオープンソースのマルチメディア通信ライブラリです。たとえばIP PBXやVoIPゲートウェイなどで広く使用されているAsteriskフレームワークは、PJSIPを使用してSIPスタックを実装しています。

はじめに

今回発見した脆弱性は、64ビット環境においてクライアントから受け取ったデータを処理する際にsigned intからunsigned longへの暗黙的な型変換(型キャスト)が行われており、そこで整数型の符号拡張を考慮していないことが原因でバッファオーバーフローが発生するというものでした。この脆弱性についての詳細は、「(Security) Function in PJSIP 2.7 miscalculates the length of an unsigned long variable in 64bit machines」を参照してください。

社内プロジェクト「Armeria」をオープンソース化するために行った6つのステップ

Armeriaは、Java 8およびNetty上に非同期RPC/APIクライアントサーバを実装したものです。LINEは昨年11月、ArmeriaをApache License 2.0のもと、オープンソースとして公開しました。Armeriaは、HTTP/2をセッションレイヤプロトコルとして使用する高性能の非同期Thriftクライアントサーバを構築するために立ち上げたプロジェクトですが、基本的にプロトコル非依存型で拡張性に優れています(例えば、HTTP/2によって静的ファイルを処理すると同時に、Java EE Webアプリケーションを起動することができます)。

今回の記事では、技術的な面にフォーカスするよりは、社内プロジェクトをオープンソース化する過程についてご紹介したいと思います。Armeriaの技術的な情報が知りたい方は、2月にLINE福岡オフィスにて開催された第14回LINE Developer Meetupで発表した資料をご参考ください。