タグ

ブックマーク / blog.cybozu.io (26)

  • サイボウズの「モバイル」のこれから - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは!モバイルエンジニアの森嶋です。 この記事では、サイボウズにおける「モバイルチーム」の立ち位置と、 直近取り組んだ大きな変化である「チームの分割」についてお話しさせていただきます。 サイボウズにおけるモバイルチームのミッションと立ち位置 サイボウズでは、モバイル開発に特化したチーム(=モバイルチーム)という組織体制を取ってiOS/Androidの開発を担当していました。 このチームでは、 「サイボウズ製品のユーザに、よりチームワークが高まるモバイル体験を提供する」 をミッションに掲げ、 サイボウズのモバイルアプリ開発PGの役割を一手に引き受けながら、技術的な知見共有や研鑽活動を行っていました。 具体的な活動内容に関してはモバイルチームの働き方と取り組みの紹介の記事を参照ください。 ※こちらの記事内容は取り組み前のもので現在は少し変化しています [モバイルチーム]の課題 課題①

    サイボウズの「モバイル」のこれから - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2023/06/20
  • SwiftPMによるマルチモジュール構成でSwiftGenをビルド時に実行する - Cybozu Inside Out | サイボウズエンジニアのブログ

    はじめに こんにちは、モバイルチームのオジマです。 私が担当しているサイボウズ Office 新着通知のiOSアプリでは、これまでXcodeGenとCocoaPodsを用いてマルチモジュールなアーキテクチャを構成していました。しかし、開発環境の構築においてRubyのバージョンなど気を使う点がいくつかあり、特にM1チップを搭載したMacで問題になることが多くありました。そのため、SwiftPMを用いたマルチモジュール構成への移行を行いました。 この記事では、SwiftPMによるマルチモジュール構成へ移行する際に発生したSwiftGenの利用シーンでの課題とそれに対する解決方法を紹介します。 課題 従来のXcodeGenとCocoaPodsを用いたマルチモジュール構成では、XcodeGenのpreGenCommandでSwiftGenによるコード生成を実行していました。マルチモジュール構成の基

    SwiftPMによるマルチモジュール構成でSwiftGenをビルド時に実行する - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2022/08/16
  • 最速でフロントエンドを刷新するための開発フロー - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、フロリアでQAエンジニアをやっている中園です。 現在サイボウズでは kintoneフロントエンドリアーキテクチャプロジェクト(フロリア)と称して、Closure Tools から React へと置き換えるプロジェクトが進行中です。 フロリアの詳細については 次の記事をご覧ください。 今回は、フロリアのチームの一つで、利用者に気づかれない形で React への置き換えを行っている Mira チーム1の開発・テストフローの紹介をします。 "最速で" React に置き換えたい Mira チームはただ React に置き換えるのではなく「最速で React に置き換える」という目標があります。 フロリアの各チームはそれぞれのチームごとにオーナーシップを持っており、チームごとに意思決定を行っています。Mira チームでは「最速で置き換える」という目標に向かって、開発スピードを向上

    最速でフロントエンドを刷新するための開発フロー - Cybozu Inside Out | サイボウズエンジニアのブログ
  • インフラのリリース自動化戦略とその行き着く先 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、@ueokandeです。 番リリースってドキドキしますよね。 日はkintone.comのリリース自動化と、その戦略についてお話します。 kintone.comのCI/CDパイプライン kintone.comのインフラ構成はモノレポで管理しており、AWSの構成や、Kubernetes上にデプロイするサービスなどが1つのレポジトリに存在します。 現在のkintone.comは、開発環境、ステージング環境、番環境の3つがあります。 適用タイミングをずらすことによる環境間の乖離を防ぐため、各リリースはすべての環境に適用することとしました。 開発環境でしばらく寝かせたい変更は、機能フラグやカナリアによって切り替えます。 CI/CDパイプラインは以下のようになっています。 それぞれの環境に順に適用し、番環境適用後にテストが通れば無事リリース完了です。 kintone.comのCI

    インフラのリリース自動化戦略とその行き着く先 - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2021/01/27
  • チームで行うリモートワークに対する7つの工夫 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、フロントエンドエキスパートチームの@sakitoです。 今回はフロントエンドエキスパートチームがリモートワークで工夫している内容や、解決してきた課題を共有したいと思います。 最近リモートワークをはじめた会社やチームにとって参考になれば幸いです! ※ テレワークやリモートワークという言い回しがありますが、記事内ではすべてリモートワークで統一しています。 所属しているチームと会社の状況 サイボウズには、リモートワークをいつでも行うことができる文化があります。オフィスに出社するメンバーもいれば、フルリモートのメンバー、拠点の異なるメンバーもいます。 現在、チームメンバーは 7 人いて、その内訳は東京 4 人、大阪 1 人、愛媛 1 人、福岡 1 人となっており、チームメンバーの働く場所は複数にわかれています。 働く場所がわかれてるのもあり、日々の業務のやり取りは自然とオンライン上で

    チームで行うリモートワークに対する7つの工夫 - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2020/04/13
  • Folding@homeを通じてCOVID-19治療薬の発見に貢献します - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。Necoの@dulltzです。 サイボウズでは、オンプレミス機材の一部を活用してFolding@homeによるCOVID-19のタンパク質構造予測に貢献することにしました。 ご自身で動かしてみたいというかた向けに、我々が使っているKubernetesマニフェストも記載しているのでぜひご覧ください。 Folding@homeとは みなさんはFolding@homeを知っていますか? Folding@homeとは、タンパク質構造予測に必要な計算処理を、世界中の有志による分散コンピューティングで推進するプロジェクトです。 10年以上昔の話になりますが、PlayStation 3を活用したプロジェクトを覚えている方も多いかと思います。 最近Folding@homeのブログにて、COVID-19の治療薬開発に使われるタンパク質構造予測を行っているという旨の記事が公開されました。 FOLD

    Folding@homeを通じてCOVID-19治療薬の発見に貢献します - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2020/03/17
  • やっと UIWebView から WKWebView に乗り換えられる話 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは〜! モバイルチームの向井田です。 iOS の UIWebView が deprecated になって数年、弊社の iOS アプリもようやく WKWebView に移行できるようになりました。 そこで、今回は私たちが WKWebView に乗り換えられるようになった理由を語っていきます。 TL;DR iOS12 から WKWebView でクライアント証明書を使ったSSL通信が正常に動作するようになりました。 kintone モバイルのリニューアル kintone モバイルが大幅リニューアルし、UIを一新しました 🎉 https://kintone.cybozu.co.jp/update/main/2019-05.html リニューアルを期に、コードを Objective-C から Swift ベースに書き直しています。 kintone モバイルは JavaScript カスタ

    やっと UIWebView から WKWebView に乗り換えられる話 - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2019/09/27
  • 2019年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。皆様、夏はいかがお過ごしでしたか。 私は毎年実家に帰省し、そして毎年体調を崩すので、絶対風水的になんか合わないんだと思っています。コネクト支援チームのsakay_yです。 先日、2018年の新人研修資料を公開し、たくさんの反響をいただきました*1。ありがとうございました。 2019年もエンジニア新人研修を行いましたので、その紹介と講義資料を公開いたします。 2019年のエンジニア新人研修について 今年の研修は、組織運営チーム*2が取りまとめ、以下のような3構成となりました。 必修講義 誰に: 開発/運用部に配属される新入社員​ 何を: どのチームに行っても必要となる基礎的な知識/技術/ツールを学び、体験できた 選択講義 誰に: 学びたい人が​(=新入社員に限らず) 何を: 興味があることを学べた チーム体験(2週間 * 3チーム) 誰に: 開発/運用部に配属される新入社員

    2019年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 他のチームを体験する「モブプロ開発合宿」を開催しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは!開発部の外松(@toshi-toma)です。 サイボウズでは3年ぶりに開発合宿を開催しました! 今年の合宿は、複数のプロダクトチームや特定分野のエキスパートチームを含めた31名の方に参加してもらいました。 合宿会場は、箱根湯の「ホテルおかだ」です。 今回の合宿は、モブプログラミングを活用して他のチームを体験するモブプロ開発合宿だったのですが、こんな効果がありました。 他のチームのノウハウやスキル、仕事の進め方が一気に知れる 普段の業務では関わりが少ないメンバーと一緒に開発することで人となりを知れる 特定分野のエキスパートの力を借りて、なかなか進めれなかった改善が実現 個人的にとても良い合宿だったので、その様子を紹介します! 合宿のテーマ 合宿のテーマは「となりのチームを知る」です。 サイボウズでは、今年から新組織体制となり従来のマトリクス組織から各チームがフラットに並ぶ体制

    他のチームを体験する「モブプロ開発合宿」を開催しました - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2019/04/03
  • 組織変更したら部長がいなくなりました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、最近愛媛から広島に移住した組織運営チームの水戸です。 2019年からサイボウズの開発部から職能・地域毎に分かれた部署がなくなり、チーム主体の組織になりました。 組織変更をオープンに議論するというチャレンジングな試みの中で、新組織の理想はユーザー価値の最大化に定まり、個人やチームがより主体的に動ける組織構造に変わりました。 この記事では私がファシリテートを担当した組織変更をご紹介します。 開発部の状況 開発部の役割は製品を開発することです。 2018年までの開発部はマトリクス組織を採用しており、プロダクト開発チームには様々な職能・地域毎に分かれた部署のメンバーが所属していました。 この組織構造は事業の中心がオンプレミスだった10年以上前から、事業の中心がクラウドに移った2018年に至るまで変わっていません。 一方、プロダクト開発チームに求められるものは大きく変わりました。

    組織変更したら部長がいなくなりました - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2019/02/13
    いい話
  • kintone の性能改善について紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。 今回は、サイボウズ製品のひとつである kintone に対して行った性能改善の成果を紹介したいと思います。kintone は面倒なコーディング無しに業務アプリケーションのようなものを作ることができ、様々なデータを格納したり、複雑な条件で検索したりソートしたり、アクセス権もきめ細やかに設定したりできるというサービスです。この kintone はサービスの性質上、多種多様で複雑なクエリを発行します。またデータ量も膨大で MySQL だけで計数十テラバイトのデータが存在しており、クエリの処理時間が長時間かかってしまうこともあります。 サイボウズでは kintone の性能改善に力を入れており、今回はその成果を紹介しようと思います。 はじめに kintone はテナントごとに大きく使い方が異なり、性能改善が効くケースもあれ

    kintone の性能改善について紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2019/01/31
  • さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 一般的な Web アプリケーションがそうであるように、サイボウズのグループウェアにも画像をサムネイルで表示する機能があります。サイボウズでは日々数万件やそれ以上のサムネイルを生成しており、それらは全て ImageMagick によって生成されていました。 そこで得た知見はこちらの記事で公開されています。 blog.cybozu.io しかし現在、サイボウズから ImageMagick は消え去りました。その理由と、我々が取った代替手段について紹介します。 ImageMagick を外した理由 言うまでもなく ImageMagick は優秀なツールで、画像変換に関する何らかのサービスやツールを作る場合には採用の第一候補になることでしょう。あらゆる画像フォーマットに対応し、出力画像をきめ細かに制御できる膨大なオプシ

    さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2018/08/21
  • スレッド名にデバッグ情報を埋め込むと激しく捗る件 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 今回、Java のちょっとしたデバッグテクニックを紹介したいと思います。Java で運用中何かトラブルが発生した場合、スレッドダンプを取得することはしばしばあると思いますが、スレッドダンプだけだとちょっと情報が足りないことがあります。今回はスレッドダンプから得られる情報を増やして、素早く障害対応したりデバッグに役立てる方法を紹介します。 まずはじめに: スレッドダンプの取り方 基ですが、改めてスレッドダンプの取得の仕方を紹介しておきます。スレッドダンプを取得する対象のプロセス ID を仮に 12345 として、下記のように jstack コマンドを実行すればスレッドダンプが取得できます(※Linux上で操作する想定)。 $ jstack 12345 対象のプロセス ID は ps aux | grep jav

    スレッド名にデバッグ情報を埋め込むと激しく捗る件 - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2017/07/10
  • モバイルチームはじめました - Cybozu Inside Out | サイボウズエンジニアのブログ

    はじめまして、モバイルチームの刈川です。みなさんの会社や組織における「モバイル」ってどんな感じでしょうか。昨年からサイボウズにもモバイル専用のチームができたので今回はその紹介をしたいと思います。 モバイルチームとは モバイルチームの説明をする前にサイボウズが置かれていたモバイル事情についてお話します。 サイボウズでは上図のように、製品ごとに各PGがモバイル開発を行っている状況でした。 ここで問題になっていたのが、 モバイル開発スキルがチーム間で分散する テストやCI環境の整備などの作業が後手に回りがち そもそもモバイル開発自体の優先度が低い(※Webアプリの会社なので) このような問題がありました。 そこでモバイル開発に特化したチームを設けることでこれらの問題を解決しようとしました。 モバイルチームがやったこと 各製品のモバイル開発にジョイン 前述の通り、モバイル製品を触れるプログラマは各

    モバイルチームはじめました - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2017/02/11
  • サイボウズではミドルウェアエンジニアも活躍しています - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 先日、エンタープライズジン様の記事で、弊社の名前が挙がっていました。 井上 まあ、ミドルウェアに詳しい人間もいないと。ミドルウェアだけじゃないですけど、やっぱりアプリケーションベンダーも、我々もそうですし、サイボウズさんとかだって、ある程度ミドルウェアに詳しい人は一定数必要じゃないですか。そういう意味でいうとポジションはあるかなって。 神林 それはあるかなあ。研究所ですよね。サイボウズだったらサイボウズラボですよね、結局。 http://enterprisezine.jp/dbonline/detail/8770?p=6 この意見について、サイボウズではミドルウェアエンジニアも活躍しているという紹介をさせていただきます! まず初めに、サイボウズとサイボウズ・ラボの関係について紹介します。サイボウズは cyboz

    サイボウズではミドルウェアエンジニアも活躍しています - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2016/12/21
  • SRE チームを設立します - Cybozu Inside Out | サイボウズエンジニアのブログ

    運用部長を務めている山泰宇です。 運用部は社内の情報システムを担当する情報システム部と cybozu.com など自社クラウドサービスを運用するサービス運用部からなる部門です。 日、サービス運用部にて SRE チームを設立しました。この記事ではチーム設立にいたった経緯と今後の活動計画を紹介いたします。 Site Reliability Engineering (SRE) とは 今年の 3 月に O'Reilly から出版された "Site Reliability Engineering" で有名になりましたが、Google のプロダクトやサイトを安定運用するための活動やその活動に従事する人・チームを指します。特徴としては基的にソフトウェアエンジニアからなる集まりで、自律的な仕組みや自動化を日常的に行っていることです。 サイボウズでも 5 月から社内で SRE の輪講を開催し、理

    SRE チームを設立します - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2016/09/01
  • NAT をやめて、透過 SOCKS プロキシを導入した - Cybozu Inside Out | サイボウズエンジニアのブログ

    以下の記事内容について、奥一穂氏(@kazuho)より、「connectのエラーコードが信頼できなくなるといった欠点もあるのに透過 SOCKS プロキシが汎用的に良いように読めてしまう」というご指摘をいただきました。確かに、下記内容は当社が抱えていた複数の課題を短期間で解消できる「ワークアラウンド」として透過 SOCKS プロキシという技法もあることを紹介したものであり、NAT と比較して常に良いという主張をしたかったわけではありません。また、記事内では解説を省きましたが、従来より HTTP(S) 通信は NAT ではなく HTTP プロキシを利用しています。謹んで補足・訂正とさせていただきます。 が好きだけどアレルギーで近寄ることができない山泰宇です。 先日アーキテクチャ刷新プロジェクトNeco」を紹介しましたが、今回はその活動の一環として実施したネットワークアドレス変換(NAT

    NAT をやめて、透過 SOCKS プロキシを導入した - Cybozu Inside Out | サイボウズエンジニアのブログ
  • React.js meetup #3 を開催しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、kintone プログラマの前田です。 2月23日(火)サイボウズ東京オフィスで React.js meetup #3 が開催されました。今回はこのイベントの各セッションの内容を簡単にご紹介します。なお、当日の様子は togetter でもまとめられています。 React.js meetup とは その名の通り React についての meetup で、今回は3回目になります。当日は80人を超える参加者で大変盛り上がり、React の注目度が感じられる meetup でした。 Evolving Complex Systems Incrementally 最初は @cpojer さんによる発表から始まりました。JavaScript をモダンなコードに変換するための jscodeshift を紹介する話だったと思います。全編英語で内容をすべて把握できたわけじゃないのですが、書き方が

    React.js meetup #3 を開催しました - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 半年かかったバグ調査の顛末は - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 今回は原因究明に半年以上かかったバグ調査の紹介をいたします。 弊社はクラウドサービスcybozu.comを提供しています。 クラウドサービスでは障害対策のためのデータバックアップやレプリケーションが必須です。 現在ラボの星野がメイン、私はサブとして弊社サービスでの利用を目指した次期バックアップシステムWalB(GitHub)を開発しています。 WalBは、ファイルシステムとdiskの間に入ってIOを全て記録するブロックデバイスとIOのログを管理するツールからなるシステムです。 詳細はリンク先をごらんください。 発端 去年はラボ内の開発環境でテストを進め、社でテスト運用を開始するのが目標でした。 ところがラボでテストを開始して4カ月後の2015年4月、不正なlogpackが検出されました。 logpackとはWalBで用いられるデータフォーマットの一つです。

    半年かかったバグ調査の顛末は - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2016/01/08
  • もうサムネイルで泣かないための ImageMagick ノウハウ集 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちわ、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。好きなみかんは紅マドンナです。 今回は、サイボウズのサムネイル事情について記事を書きたいと思います。サイボウズに限らず通常の Web アプリケーションでもサムネイル作成はよくあると思いますが、ハマりどころが多く涙しているサムネイリストも多いかと思います。これからの時代を生きるサムネイリストが快適なサムネイルライフを送れるよう、知見を共有したいと思います。 弊社では画像変換ツールに ImageMagick を用いており、従って知見は ImageMagick 固有のものがほとんどです。 画像比較は人間の眼で行うべし サムネイル周りに何か修正を入れたら修正前後の画像を比較しましょう。機械によるバイト列の比較では画像の良し悪しがわかりません。頼れるのは人間の眼だけです。肉眼で確認しましょう。 比較できるツールを作ると良

    もうサムネイルで泣かないための ImageMagick ノウハウ集 - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2016/01/06