プログラミング

perf の Python インタプリタを利用して KVM Exit/Entry のレイテンシを分析する

この記事は、 NTT Communications Advent Calendar 2024 2 日目の記事です。 perf の Python インタプリタを使って KVM Exit/Entry のレイテンシを計測してみます。 はじめに KVM の仕組み CPU トレースを取得する perf をビルドする Python コードを書く 独…

NetBox のオンプレから Amazon ECS 移植を CDK で実現する

チームの管理情報を溜めていたオンプレ基盤で動く NetBox を Amazon Elastic Container Service へ AWS Cloud Development Kit を用いて移植しました。 今まで NetBox をオンプレで動かしていた際には以下のような運用の難しさがありました。 DB も Docker …

DeltaLake Universal Formatを使ったクロスプラットフォーム分析

本記事では6月に開催されたDATA+AI Summit 2024でGeneral Availabilityが発表されたDatabricksのDeltaLake Universal Formatの機能を使ってクロスプラットフォームでの分析を実現する方法について紹介します。 DeltaLake Universal FormatはDeltaLakeに保存…

リリースプロセス改善のために工夫して自動化を推し進めたらチームの底力が爆上がりした話

こんにちは、クラウド&ネットワークサービス部の福岡です。 SDPF(Smart Data Platform) クラウドの IaaS である、ベアメタルサーバー・ハイパーバイザーサービス開発のソフトウェアエンジニアとして働いています。 本記事では、リリースプロセスの改善を目…

Ruby のクラス拡張を利用して監視の実装をうまく軽量化した話(現場での実装方式検討の例つき)

この記事では、Ruby の非同期処理ライブラリである Sidekiq を使って定期実行処理を行う Sidekiq-Cron の監視方法について、チームでの方式検討の様子を交えながらご紹介します。 目次 目次 はじめに Sidekiq-Cron について Sidekiq-Cron の cron job の sta…

SDPFクラウド/サーバ ファイアウォールサービスのテストを高速化した話

この記事では、SDPFクラウド/サーバで提供しているファイアウォールサービスについて、数週間かかっていたコントローラのテストを一新し、開発効率/品質向上に繋がった事例を紹介します。 目次 目次 はじめに ファイアウォール サービスとは テストにおける…

Databricks Container ServiceでTensorRT-LLMを動かしてみた

本記事ではDatabricksのDatabricks Container Serviceを用いてNVIDIA社の推論ライブラリであるTensorRT-LLMを実行可能なNotebook環境を構築する方法を紹介します。 目次 目次 はじめに Databricks Container Service NVIDIA TensorRT-LLM 解決したいこと Ten…

SRv6/SR-MPLS相互接続を実現するための機能をFRRに実装してみた(インターンシップ体験記)

こんにちは、インターン生の横尾です。 2024年2月に2週間実施されたNTTコミュニケーションズの現場受け入れ型インターンシップに参加させていただきました。普段は、大学院でユーザサイトにおけるIPv6マルチホーミングなどの研究に取り組んでいます。 今回の…

フロントエンドを Vue.js から React にリプレイスしたお話 (前編)

はじめての方、はじめまして。久しぶりの方、お久しぶりです。 イノベーションセンターの何縫ねの。(@nenoMake)です。 普段の業務ではソフトウェアエンジニアとして Node-AI という WEB アプリケーションの開発をしています。 パブリックな活動としては、好…

decoratorを使ってログ出力コードの削減し可読性を上げた話

この記事では TypeScript ver4.x にて実験的な機能である decorator を使い、ログ出力コードを削減・コードの可読性を上げた経験を紹介します。 はじめに 背景 decorator とは decorator を使ったログ出力方法の検討 decorator を使ったログ出力の実装 実装…

サーバレスにおけるRustについて

この記事は、 NTT Communications Advent Calendar 2023 22日目の記事です。 はじめに こんにちは、イノベーションセンターの鈴ヶ嶺です。普段は、クラウド・ハイブリッドクラウド・エッジデバイスなどを利用したAI/MLシステムに関する業務に従事しています…

TypeScript未経験でもスムーズに業務に取り組める、最強の学習用コンテンツを作った話

この記事は、 NTT Communications Advent Calendar 2023 19日目の記事です。 この記事では、TypeScript未経験のインターン生にすぐにSkyWayの開発に取り組んでもらうために、TypeScriptの学習用コンテンツを作成した話を紹介します。 学習用コンテンツでどの…

Azure OpenAI Service と LangChain を用いて、会話をしながら自社サービスに API を実行してくれるチャットボットを作った

この記事は、 NTT Communications Advent Calendar 2023 16日目の記事です。 こんにちは! クラウド & ネットワークサービス部の外村です。 普段は VxF 基盤 という 社内サービス用クラウドの開発・運用をしつつ、ソフトウェアエンジニア育成研修である twada…

複数サービス間でのデータの整合性維持に向けたSagaの実装

マイクロサービスアーキテクチャにおいては、個々が独立に選定したデータベースを持つ複数のサービスにまたがって、データの整合性を維持する必要があります。 そのための方法として、Sagaパターンと呼ばれる設計方法がありますが、Sagaでは分離性が欠如して…

高専かるたを作ってみた

この記事は、 NTT Communications Advent Calendar 2023 及び 高専キャリア Advent Calendar 2023 の7日目の記事です。 皆さんこんにちは、SDPFクラウド/サーバー 仮想サーバーチームの宮岸(@daiking1756)です。 昨日の6日目の記事を書いた@Kumassy_と同じく…

おうち電力の Observability: parser combinator をガリガリ書いてスマートメーターとおしゃべりする

この記事は、 NTT Communications Advent Calendar 2023 6日目の記事です。 こんにちは。 SDPF クラウド・仮想サーバーチームの杉浦 (@Kumassy_) です。 普段は OpenStack の開発・運用をしており、最近は Observability まわりを取り組んでいます。 この記…

ブラウザ間で統一された挙動がWeb標準どおりとは限らない話(WebRTCの例)

この記事は、 NTT Communications Advent Calendar 2023 4日目の記事です。 この記事では、Web標準の仕様と実際のブラウザの挙動についての体験談を紹介します。 W3C(World Wide Web Consortium)はWeb StandardsというWebの標準仕様を制定しています。 この…

データプレーンに起きたバグにパッチを当ててみた(インターンシップ体験記)

はじめに こんにちは、SDPFクラウドでSDN開発を担当している梶浦(@ykajiaaaaa)です。 今回の記事は今夏のインターンシップで私のチームに来ていただいた伊藤さんによるものです。 このインターンシップでは我々が実際に昔出会った問題をベースにトラブルシュ…

TypeScript未経験の学生がSkyWayの開発に取り組んでみた(インターンシップ体験記)

この記事では、2023年度現場受け入れ型インターンシップの活動内容をご紹介します。現場受け入れ型インターンシップを通して得られた学びを参考情報として共有します。 目次 目次 はじめに 参加に至った経緯 受け入れ先について インターンシップで取り組ん…

ノーコードで独自のIoT処理ロジックを構築できる - Things Cloud の「Analytics Builder」とは

わかること IoTプラットフォームにおける独自のイベント処理ロジックの構築について Things Cloudのノーコードツール「Analytics Builder」でできること ※本記事は、Things Cloud バージョン10.14(8月以降リリース予定)の利用を想定しています。 はじめに …

インターンシップ体験記 〜SRv6 機能を Pola PCE に実装してみた〜

はじめに こんにちは、インターン生の 魏心宇 と申します。 2023 年 2 月 6 日から 2 週間にわたって、NTT Com の現場受け入れ型インターンシップに参加させていただきました。 普段は大学で SR (セグメントルーティング) を用いたトラフィックエンジニアリ…

みんなの夢を叶える「走るコタツ」を作ってみた

はじめに こんにちは!イノベーションセンター テレプレゼンスPJの渋谷です。 最近は日に日に暖かくなり,人々も花粉も舞い踊る気候になってきました。 ついこの間までの寒さが嘘のようです。 寒さといえば,そう,コタツ。 皆さんも「リモコンを取りたいの…

RFC 準拠のコントローラー&プロトコルライブラリ開発の進め方

イノベーションセンターの三島です。 本記事では、RFC や Internet-Draft に準拠したコントローラーやプロトコルライブラリの開発について、 NTT Com が公開中の Segment Routing (SR) 用のコントローラー、Pola PCE の開発経験を基にご紹介します。 商用機…

第63回ビッグハンドタウンシェル芸勉強会の問題と解説

はじめに シェル芸勉強会について 問題と解説 Q1(@butackle66さんから) 解答例1 解答例2 Q2(@butackle66さんから) 解答例1 解答例2 Q3 解答例1 解答例2 Q4 解答例1 解答例2 Q5 解答例 Q6 解答例 LT LT1 curlでTelegram botを操作 (やべえ @yabeenico) LT…

NTTコミュニケーションズでの私のリスキリング体験

1.はじめに このブログを読んで下さっている皆様、こんにちは。 プラットフォームサービス本部 クラウド&ネットワークサービス部 開発オペレーション部門の丹野(入社10年目)です。 この記事では、NTTコミュニケーションズに入社してから業務内容の変化に適…

JANOG51 にて発表&議論しました

JANOG51参加報告 イノベーションセンターの田島です。サービスプロバイダーネットワーク網の技術検証から検証用 AS の設計・構築・運用まで担当しています。 2023/01/25 ~ 27 の日程で富士吉田市にて開催されました JANOG51 に登壇し、参加された方々と議論…

NTT Comのエンジニアコミュニティイベント【Tech-Night/Tech-Midnight】

はじめに こんにちは。Smart Data Platform (SDPF)クラウド/サーバー SDNチームの田島(@UdonYuya)です。 普段はSDPFクラウド/サーバーのSDN(Software Defined Network)基盤の開発をしています。 この記事では、2022年12月9日に開催されたTech-Nightと、202…

1年目研修で出会った2人がTwilioハッカソンに参加して優勝した話とそこから得た学び

この記事はSDPFクラウド/サーバー 仮想サーバーチームの宮岸(@daiking1756)とCOTOHA Call Center開発チームの立木の共同執筆です。 二人共エンジニアではあるのですが、普段は全く違うチームで開発をしています。 この記事では、普通に働いていたら交わるこ…

プライベートパッケージリポジトリのススメ

この記事は、 NTT Communications Advent Calendar 2022 23 日目の記事です。 はじめに こんにちは、デジタル改革推進部の組橋です。普段は社内データの整備や分析をしています。 この記事では、社内ツールなどの自作ツールを管理する方法や関連するサービス…

Rustで実装する乱数生成のベクトル化

この記事は、 NTT Communications Advent Calendar 2022 22日目の記事です。 はじめに こんにちは、イノベーションセンターの鈴ヶ嶺(@suzu_3_14159265)です。普段は、クラウド・ハイブリッドクラウド・エッジデバイスなどを利用したAI/MLシステムに関する業…

IoTデバイス接続の難しさを解決するNTT Comのお手軽IoT

この記事は、 NTT Communications Advent Calendar 2022 9日目の記事です。 対象読者 / わかること 対象読者 IoT デバイス接続の難しさに頭を抱えている 「クラウドにデータを送信する」までの要所をざっくり理解したい とにかく IoT を道具として使ってみた…

uefi-rsを使わずにRustでMikanOSをやっていく話

この記事は、 NTT Communications Advent Calendar 2022 6日目の記事です。 はじめに こんにちは、SDPF クラウド・仮想サーバチームの松下です。 普段は OpenStack の開発・運用をしているエンジニアで、今年から新入社員としてJOINしました。 今回は、細々…

シェル・ワンライナー 160 本ノックを完走した

この記事は、 NTT Communications Advent Calendar 2022 4 日目の記事です。 こんにちは。 SDPF クラウド・仮想サーバーチームの杉浦です。 普段は OpenStack の開発・運用をしています。 みなさんはシェル芸と聞いてどのようなコマンドを想像しますか? 私…

【社内サークル】ロボット部の極秘活動レポート ~ROSで始めるラジコン製作~

イントロダクション こんにちは、NTTコミュニケーションズ デジタル改革推進部 データドリブンマネジメント部門の有賀唯貴です! 現在、社内の同じ部署の浅野秀平さんと「でじかいロボット部」を立ち上げて同好会として非公式に活動しています! 今回は活動…

「業務で ISUCON することになった話」について Tech Night で発表しました

はじめに こんにちは、クラウド&ネットワークサービス部の福岡(@tkygtr6)です。 普段は SDPF クラウドの IaaS である、ベアメタルサーバー・ハイパーバイザーサービス開発のソフトウェアエンジニアとして働いています。 先日 Tech Night で「業務で ISUCON …

GitHub Actions on AWS with CDK

はじめに こんにちは、イノベーションセンターの福田です。 今回、開発環境改善の取り組みとして GitHub Actions の self-hosted runners を AWS 上に構築しました。 この構築で得られた知見について共有します。 概要 GitHub Actions は GitHub で CI/CD を…

【続】ソフトウェア設計についてtwada技術顧問と話してみた 〜 A Philosophy of Software Design をベースに 〜

はじめに 本記事は前回の記事である「ソフトウェア設計についてtwada技術顧問と話してみた 〜 A Philosophy of Software Design をベースに 〜 - NTT Communications Engineers' Blog」の続編です。 前回の記事の内容がベースとなっていますので、「APoSD っ…

ソフトウェア設計についてtwada技術顧問と話してみた 〜 A Philosophy of Software Design をベースに 〜

はじめに スタンフォード大学の John Ousterhout 教授が執筆された “A Philosophy of Software Design”(以下 APoSD と略す) という書籍をご存じでしょうか? 書籍のタイトルを直訳すると、「ソフトウェア設計の哲学」となります。書籍の内容はまさに、ソフト…

インターンシップ体験記 〜BGP-LSの機能をFRRに実装してみた〜

はじめに こんにちは、インターンシップ生の金谷です。 2022年2月に2週間ほどNTTコミュニケーションズのインターンシップに参加させていただきました。 普段は大学院やWIDEプロジェクト、アルバイトなどで SRv6 BGP-EPEなどオーバレイネットワーク技術の研究…

初心者向け Git / GitHub 研修を開催しました

みなさんこんにちは、社内のエンジニアが働きやすくすることを目標にする Engineer Empowerment プロジェクトの @Mahito です。 先日 NTT グループのソフトウェアエンジニアを対象とした Git / GitHub の研修を NTT グループのエンジニア有志で行ったので、…

Observable を活用した IoT データの可視化探索ガイド

はじめに こんにちは、Things Cloud のカスタマーサクセスチーム 伊藤、佐々木、高橋、三橋です。私たちは、データプラットフォームサービス部で IoT プラットフォーム「Things Cloud」のサービス開発やお客様への技術支援を担当しています。 さて、皆さんは…

新入社員ソフトウェア研修「レガシーコード改善ハンズオン」を実施しました!

こんにちは! 今年もう2ヶ月ほど経ちましたがまだまだ寒い日が続いていますね。 イノベーションセンターの原田です。 本日は2021年11月頃に実施しました新入社員研修の取り組みについてご紹介します。 研修の概要について このハンズオンは新入社員が半年ぐ…

Rustで実装するmalloc

この記事は、NTT Communications Advent Calendar 2021 21日目の記事です。 はじめに こんにちは、イノベーションセンターの鈴ヶ嶺(@suzu_3_14159265)です。普段は、クラウド・ハイブリッドクラウド・エッジデバイスなどを利用したAI/MLシステムに関する業務…

TechWorkshop 「現場のエンジニアと一緒に解く!コーディング体験」を開催しました!

お久しぶりです。データプラットフォームサービス部の花川です。 最近は気温の変化が激しいですね。みなさまも体調を崩さないようご自愛ください。 さて、今日は、11月7日(日)に開催した第1回TechWorkshop「現場のエンジニアと一緒に解く!コーディング体験…

SwaggerからOpenAPI Specificationへ。コンバーターを試す

ついにOpenAPI Specificationがリリースされました。以前紹介した通り、文書構造が分かりやすくなったのが一番の特徴です。できることとしてはそれほど大きくは変わりません。 そこでこれまでSwagger.jsonで作ってきた内容をOpenAPI Specificationのフォーマ…

A Great Future Created by JSON Schema

JSON has been increasingly adopted as a Web API format. While JSON can be handled easily in light description languages, the trouble it has with assuring data content is viewed as problematic. For this reason, JSON Schema, which defines th…

Enterprise API を勉強してみませんか?

初めまして! APIゲートウェイのサービス企画をやっているnakajimaです。 今回が、開発者ブログ初投稿です。 本記事は、Enterprise APIs Advent Calendar 2015でも公開しております! Enterprise APIs Advent Calendar 2015 さまざまな企業が自社のAPI利用者向…

OneDrive APIとApigeeを使ってセキュアなファイル操作を!

Enterprise APIs Advent Calendar 2015への投稿記事です(第二弾) Enterprise APIs Advent Calendar 2015 エンタープライズなネタということで、DropboxやGoogleDriveなどのオンラインストレージサービスをよりセキュアに利用できる仕掛けを考えてみました。 …

cucumber.jsフレームワークを使ったREST APIの受け入れテスト自動化深堀

Enterprise APIs Advent Calendar 2015の一回目ということでどのネタにしようかいろいろ考えましたが、以前紹介したREST API用テストフレームワークまとめのapickli/apickli検証ネタを書きます。 Enterprise APIs Advent Calendar 2015 apickli/apickli Cucu…

API設計を行う際に注意したいこと(導入編)

昨今、APIの重要性は高まるばかりです。プロジェクトの大小にかかわらず、APIはどこかで使われているのではないでしょうか。そこで今回はAPIの設計手順について見ていきたいと思います。APIをはじめて設計される方はもちろん、これまではなんとなく設計して…

© NTT Communications Corporation 2014