株式会社サイバーエージェントAI事業本部の2024年度 エンジニア新卒研修でシステム運用の基本と戦略に関する講義を行いました。
こんにちは。MA部の田島です。 弊社では開発ガイドラインというものを用いて、システムの品質を担保しています。今回私がテックリードを務めているということもあり、バッチアプリケーションを開発するためのガイドラインを作成しました。本記事では「開発ガイドライン」と「バッチ開発ガイドライン」を紹介します。 バッチアプリケーション開発に限定したTipsはまとまっているものが多くないため参考にしていただければと思います。 開発ガイドラインについての紹介 冒頭でも紹介した通り弊社では、開発ガイドラインというものを用いてシステムの品質を担保しています。バッチ開発ガイドラインを紹介する前に、まず開発ガイドラインを紹介します。 開発ガイドラインの種類 開発ガイドラインは現在、以下の種類が存在します。 共通 Android iOS Frontend Backend Infra API Batch DB(Datab
起きたこと 僕が運営している『オンライン絵しりとり』というサイトで起きた話となります。 これは訪れたユーザー同士で絵しりとりを楽しめるサービスです。 ある日、このサービスをホスティングしているConoHaVPSより、規約に違反しているため利用を制限した旨のメールが届きました。 お客様のVPSにおきまして、弊社会員規約に反するコンテンツが 検出されましたので、ご利用サービスの制限をさせていただき ましたこと、ご連絡申しあげます。 そして、メールが届いたほぼ同時刻にサーバーが停止され、サービスへアクセスできない状態になりました。 メールによると、JASRACより著作権侵害に対する防止措置の申し出があったとのことです。 指摘対象のコンテンツを確認したところ、ユーザーがサイト内のチャットでYOASOBIの楽曲である『アイドル』の歌詞の一部を投稿しておりました。 ご覧の通り、話の流れで流行りの曲をみ
名刺印刷などを手掛ける印刷会社のスーパープリント(横浜市)が事業継続困難になったと発表し、Xなどで話題になっている。原因は日本本社と韓国支社の対立で、現在日本本社は生産システムやサーバなど全システムから締め出されてしまっているという。 スーパープリントのWebサイトにアクセスすると「SuperPrintにご注文くださっているお客様へ」という文章が表示される状態になっている。掲載日は5月18日で「受注分の印刷完了と、印刷事業の継続が困難となりました」などと発表。謝罪と共に、入金済みの客への返金案内などを記載している。 なぜスーパープリントは事業継続困難になってしまったのか。きっかけは、2月に発生した印刷機材の大規模故障という。これにより、バックオーダー(在庫切れ商品の注文を受けること)が増え、日本本社と韓国工場側とでコミュニケーションが機能不全に。結果、両者が対立する事態になったとしている。
期限の制約なく無料で提供される「Free Tier」クラウドサービスまとめ、主要クラウド/PaaS編(2024年版) いくつかのクラウドサービスでは、新規ユーザーに対する1年程度の無料トライアルや一定額のクーポンなどの提供だけでなく、期限の制約なくずっと無料で提供される、いわゆる「Free Tier」や「Always Free」と呼ばれるサービスが提供されています。 こうしたサービスは評価や一時的なテスト環境、あるいはホビー用途などに適しています。 本記事では期限の制約なく無料で提供されている主なクラウドサービスを、2024年版としてまとめました。(有料サービスの追加機能として無料で提供されているものは除外しています)。 ただしこれらの無料のサービスは、提供側の都合により一時的に申し込みや利用が制限されたり、提供が終了することがあります。提供側の都合に留意しつつ、良心的な範囲でご利用いただ
ガジェット全般、サイエンス、宇宙、音楽、モータースポーツetc... 電気・ネットワーク技術者。実績媒体Engadget日本版, Autoblog日本版, Forbes JAPAN他 Twitterの共同創業者で、現在は決済サービスBlockを率いるジャック・ドーシー氏は、最近Blueskyの取締役会から降りた理由として「(Twitterが犯してきた)あらゆる過ちを繰り返しているから」だと語りました。 ドーシー氏はTwitterの歴史のごく初期に、営利企業としての都合や、広告主など外部の力で運営方針を左右されることのない、オープンソースのプロトコルとしてのTwitterを構想していました。 しかし、Twitterが成長していくにつれ、違法コンテンツなどのモデレーションやユーザーのアカウント凍結といった対応が必要となり、オープンで分散したネットワークという方向性に舵を切るのは難しくなります。
最近、分散データベースとかNewSQLとかサーバレスなデータベースとか色々聞きますよね。 でも、専門ではない人たちにとって、「何が違うの?」「自分たちに必要なDBはどれなの?」という点が分かりづらいと思います。 私も良く聞かれます。 AuroraはNewSQLですか? NewSQLってサーバレスなんですか? スケールできないDBとか聞きますけど、リードレプリカ増やせますよね? などなど。この辺に基本的なところから答えられるように、順を追って解説していきましょう。 「コンピュートとストレージは別であれ」 と神が言うと、コンピュートとストレージは分離された。 と言うのは冗談ですが、まずはここからスタートしましょう。 クラウド以前のデータベースを使っていた人にはお馴染みのように、それまでデータベースは大きな1つの箱でした。 過去に私は下図でデータベース(厳密にはRDBMS)のコンポーネントを解説
まいど AWS の犬が、少々 Azure に触れてみましたので、絵は描かずに基礎知識の整理と共有だけしていきたいと思います。 全然ド素人な状態なので、なにかしら間違ってたり不足していると思われますが、同じようにイチから調べる人の足がかりにでもなれば、くらいの質感で進めていきます。 はじめに 今のところ少々用事があっただけなので、これから Azure を掘り下げるぞとか、Azure の犬になるぞ、とかは考えていなく一発ネタで終わる可能性が高いです。雑なメモをブログに起こして、いったんの区切りとする個人的な清書のため、詳しくはちゃんとリンク先のドキュメントなどを読んでくださいませ。 さて、AWS に似たパブリッククラウドはいくつもあり、Azure もその1つです。公式ドキュメントに何箇所も AWS との比較が出てくるくらいには、Azure も AWS を意識しています。 例)AWS サービスと
株式会社KADOKAWA(本社:東京都千代田区、取締役 代表執行役社長 CEO:夏野剛)は、現在当社グループの複数のウェブサイトが利用できない事象が発生していることをお知らせいたします。この原因として、現時点では、当社グループが利用しているサーバーに対して、外部からの不正なアクセスが行われたことによる可能性が高いと分析しております。 お客様、お取引先様をはじめ、関係先の皆様に多大なるご心配とご迷惑をおかけし、深くお詫び申し上げます。 本件について、影響を最小限にとどめるべく、システムの保護と復旧に向けて、現在対応を進めております。現時点で判明している内容について、以下の通りご報告いたします。 1. 経緯 6月8日(土)未明より、当社グループの複数のサーバーにアクセスできない障害が発生しました。この事実を受け、データ保全のため関連するサーバーを至急シャットダウンしました。同日中に社内で分析調
河野太郎デジタル相は2024年5月31日、デジタル庁主催の記者会見で、自治体ネットワークの整備に関し今後の方針を明らかにした。会見の中で河野大臣は、自治体がネットワークのサイバーセキュリティー対策として運用してきた「三層の対策(三層分離)」をやめると述べた。 三層の対策とは自治体のネットワークを「マイナンバー利用事務系」「LGWAN接続系」「インターネット接続系」と業務に応じて大きく3つに分け、ネットワークごとに扱う情報や外部への接続環境を管理するもの。2015年の日本年金機構による情報漏洩事故以降、自治体は総務省が定めた同対策に従いセキュリティー対策を打ってきた。 だが、ネットワークごとに使う端末を切り替える手間がかかる、端末間でデータを移動させるためにUSBメモリーを使うことで逆にセキュリティーリスクが高まるといった課題があった。河野大臣は会見の中で「1人1台のパソコンで効率的に業務が
カリフォルニア州クパティーノ Appleは本日、生成モデルのパワーと個人的な背景を組み合わせて驚くほど有用で関連性のあるインテリジェンスを提供する、iPhone、iPad、MacのためのパーソナルインテリジェンスシステムであるApple Intelligenceを発表しました。Apple Intelligenceは、iOS 18、iPadOS 18、macOS Sequoiaと緊密に統合されています。Appleシリコンのパワーを活用して、言語や画像を理解して生成したり、複数のアプリにわたってアクションを実行したり、個人的な背景にもとづいて、日々のタスクをシンプルにしてよりすばやくこなせるようにします。Private Cloud Computeにより、AppleはAIにおけるプライバシーの新しい基準を打ち立てます。デバイス上の処理から、専用のAppleシリコン搭載のサーバ上で実行する、より大
こんにちは、イノベーションセンターの冨樫です。Network Analytics for Security プロジェクトに所属しています。 突然ですが皆さんはドメインパーキングというサービスを知っているでしょうか?詳細については後述しますが、以前イノベーションセンターの検証網でマルウェアに関する悪性通信が検知されたため通信先を調査したところ、ドメインパーキングだったことがあります。本記事ではこの調査を通して得られたドメインパーキングに関する知見とその調査過程を紹介します。また、今回紹介するドメインパーキングの悪用事例や外部インテリジェンスを活用した調査は基礎的な内容ですので、本記事は主に初学者の方の知見にしてもらうことを目的としています。 ドメインパーキングについて アラートの概要 Ursnif について 接続先についての調査 検知されたアラートの危険性について さいごに ドメインパーキン
SPAのアプリケーションで、外部のIdPを使ってOpenID Connect によるログイン機能を開発しようと考えています。IDトークンの保存先として、ブラウザのCookieかサーバーのDBに保存するかの2つの案があると思っています。調べた限り、サーバーサイドで持つべきという意見が多いように見えますが、以下のような背景がある中で開発しても、ブラウザのCookieでは持つべきなのではないのでしょうか? - IDトークン自体にも、個人の属性(氏名等)情報は無いことを確認している - サーバーサイドでIDトークンの署名検証をして、IDトークンの改ざんが無いか確認する - Http Only属性:JSによるCookieへのアクセスを防ぐため - Secure属性:流出防止のため - SameSite=strict:CSRF対策のため 結論から言えば、「どちらでもよい」となります。しかし、恐らく話は
日本の富裕層の金融資産は、2030年までに約200兆円増加する見通しだ。米モルガン・スタンレーが16日付のリポートで試算を示した。 リポートによると、日本の「超富裕層」と「上位富裕層」の純金融資産は現在の約690兆円から30年までに906兆円に達する見込み。 試算を前提にすると、日本の金融機関は約5兆9000億円相当の収益機会を得ることになるという。株式市場の上昇と日銀のマイナス金利政策の解除によって日本の資産に対する関心が高まりつつある中、日本の銀行や証券会社は将来の成長の重要な柱としてウェルス・マネジメントに注目している。 とりわけ日本の若年の富裕層は、市場の拡大を担う潜在投資家として注目を集める。リポートでは「このグループが資産を増やし、ポートフォリオのニーズがより洗練されるにつれ、ミューチュアル・ファンドへの資金流入が長期的に大きくなる可能性があるだろう」と指摘している。 原題:J
自分も含めて社内に詳しい人がいない領域のコードをいじることってあるよね。特に歴史の長いサービスだと当時触っていた人が誰もいないとか。仮にいたとしても1年くらい触ってないとほとんど忘れてしまって知らないのと同じような状態になっていたりする。 自分もそういうことが何度もあって、雑にスタンスややってることをまとめておこうと思う。 前提のスタンス 「これを倒したら俺がこの領域で一番詳しい最強になるんや」という気持ちを持ってる 詳しい人がいない状態で属人化とか気にしても仕方ない。まずは自分が詳しくなってから考えるでよい 自分用メモを作る キャッチアップしたことを書き残していく。ドキュメントじゃなくてSlackに垂れ流すでもいい 過去のドキュメント・やりとりを探す 全体像を把握できるドキュメントがないかを探すのを最初にやってる ここは近道はない。とにかく全部集めて全部読む気持ちで臨む Google D
はじめに Next.js を Cloudflare にホスティングしようとすると、必然的に Edge Runtime 環境になります。しかし、Edge Runtime 環境では、Node.js Runtime と異なり、Prisma がそのまま使えません。 最初に思い浮かぶ解決策は Prisma Accelerate です。Prisma Accelerate は公式のサービスで、接続プールイングやグローバルキャッシュ機能を備えており、Edge Runtime でも Prisma を使えるようにします。 しかし、無料プランだと月に 6 万クエリの制限があり、本番運用には不安が残ります。 そこで、今回は Prisma Accelerate を自前で Cloudflare Workers 上に構築し、本番運用に耐えうるサービスを無料で開発する方法を紹介します。この方法なら、無料プランでも 月に
最近いろんなところで採用事例が増えてきたRustですが、Webサービス開発でのAPIサーバーを書くのにRustは向いてないと言われたりします。Rustの第一のターゲットはシステムプログラミングでありGCがないためAPIサーバー開発でシビアなメモリ管理はしたくないというのは一理あるのですが、RustでAPIサーバーの開発を実際にやってみるとむしろ開発体験が結構いいなと感じます。パフォーマンスのために難しい所有権を無理にがんばるみたいなマイナスのイメージはほとんど当てはまらなかったです。 Rustの難しいライフタイム、所有権があまり出てこない Rustにおいて難しいとされるライフタイム、所有権といった概念があり私も書く前はかなり身構えていたのですが、これに苦しむことは思ったよりも少ないです。その要因はWebサーバーで扱う処理のほとんどがリクエスト・レスポンスモデルでデータの流れが一方向でシンプ
『GitHub CI/CD実践ガイド――持続可能なソフトウェア開発を支えるGitHub Actionsの設計と運用』という書籍を最近出版したので紹介します。本書ではGitHub Actionsの実装と、CI/CDの設計・運用を体系的に学べます。一粒で二度美味しい書籍です。筆者個人としては「実践Terraform」以来、4年半ぶりの商業出版になります。 gihyo.jp どんな本? GitHub利用者にとって、もっとも導入が容易なCI/CD向けのソリューションはGitHub Actionsです。GitHub Actionsの活用事例は多く、検索すればたくさん情報が出てきます。ただ断片的な情報には事欠かない反面、体系的に学習する方法は意外とありません。CI/CD自体がソフトウェア開発の主役になることもまずないため、なんとなく運用している人が大半でしょう。そこで執筆したのが『GitHub CI/
IT業界にいると「勉強したほうがいい」「エンジニアには必須だ」などと言われることも多い「Docker、Linux、AWS」などのサーバーに関するトピック。 これらは、一つ勉強しようとすると必ず他の技術もついてくる、互いに切っても切り離せない技術です。そのためか、学びはじめのハードルを高く感じてしまうことも。今回はサーバー関連の入門記事をまとめてご紹介します。易しい解説で「サーバーってこんな感じ」と掴むことからはじめてみてください。 こんな方におすすめ □ インフラ系に興味のある方 □ サーバー関連で何から始めていいかわからない方 □ Docker、Linux、AWSのどれかを始めたけれど、苦戦している方 Pickup 1:インフラ系きほんのき、「サーバー」をゆるく解説 この記事でわかること ・サーバーは何をするもの? ・ウェブサーバー、メールサーバー、データベースサーバー違いは? 2:サー
システムプラットフォームチーム SREのid:MysticDollです。 この記事は、はてなの SRE が毎月交代で書いている SRE 連載の5月号です。先月分は id:heleeen さんの Mackerel で行った障害対応演習を紹介します でした。 先月 Platform Engineering Meetup #8 にて 「はてなにおけるメール基盤とDMARC対応」というタイトルで登壇させて頂きました。 speakerdeck.com この記事では資料では紹介しきれなかった、メール送信基盤の監視で気をつけるべきSMTPのステータスの仕様とそれらを踏まえた監視方法について紹介します。 メールのステータス形式 SMTP Reply Code 1桁目 2桁目 3桁目 DSN 1つ目 2つ目 3つ目 Postfixのログからのエラーのメトリクス化 まとめ メールのステータス形式 SMTPにお
23卒でバックエンドエンジニアをしているたかしゅんです。(@1341Shun) 先日、株式会社サイバーエージェントAI事業本部の2024年度 エンジニア新卒研修でシステム運用に関する講義を行いました。 そこで話した内容とスライドを完全公開したので、内容について解説します。 90分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 実際の資料はこちらになります↓ 自己紹介 こんにちは、たかしゅんと言います。2023年度入社で今年で2年目になります。株式会社サイバーエージェントのAIオペレーション室で新規立ち上げをやっております。 入社して最初に広告プロダクトに配属し、PipeCDの導入などのDevOps業務を中心に行なっておりました。 記事もあるのでもしよろしければ、ご覧ください。 2月中旬からAIオペレーション室に移動し、新規立ち上げのインフラ環境の構築からCI
公開日 2024/05/29更新日 2024/06/06オブザーバビリティの最前線 OpenTelemetryで下げる認知負荷~活用事例4選~ 近年マイクロサービスアーキテクチャの普及やクラウドネイティブの普及が進み、システムの複雑性は増す一方です。システムの動作を正確に把握することはますます困難になっており、そのような状況の中で、オブザーバビリティはシステムを安定的に運用するために必要不可欠な要素になってきています。 そして、オブザーバビリティの重要性の認知が高まるにつれて、多くの企業でオブザーバビリティに関するツールの導入も進み始めています。 そのような潮流の中、オブザーバビリティ分野でさらなる大きな可能性を持つプロジェクトがOpenTelemetryになります。 本記事では、OpenTelemetryとは一体どんなものなのか、そして実際にOpenTelemetryの導入・活用に成功し
関連記事 上司や部下に読ませたい? とある地方自治体の「会議改善に関するガイドライン」が分かりやすいと話題に 新潟県柏崎市が公開した「会議改善に関するガイドライン」が、Xやはてなブックマークで話題だ。同市がDXに伴う既存業務の見直しに当たって、会議の質を向上するために策定したもので、SNSなどでは「自治体からこれが出てくるのは画期的」「同僚や役員に読ませたい」といった声も出ている。 「テスト文字列にうんこと入れるな」──ゲーム会社の新卒向け資料“2024年版”が公開 テスト環境で悪ふざけするリスク説く 「テスト文字列にうんこと入れるな」──そんなふうに訴える新入社員向けの研修資料の2024年版が公開中だ。軽い気持ちで入れたテスト文字列が社外に漏えいした際のリスクについて説明した資料で、新たに事例などを加筆している。 早速出たぞ、24年度研修資料 新卒向け「エンジニア基礎」、ウィルゲートが公
はじめに こんにちは、サイボウズ24卒の@yuasaです。 サイボウズでは開発・運用系チームに所属する予定の新卒社員が研修の一環として、2週間を1タームとして3チームの体験に行きます。新卒社員の私が生産性向上チームの体験に行った際に、チーム内でGitHub Actionsを利用する際の脅威と対策について調査を行い、ドキュメント化した上で社内への共有を行いました。本記事では、そのドキュメントの一部を公開します。 対象読者 本記事の主な対象読者としては、以下のような方を想定しています。 GitHub Actionsを組織で利用しているが、特にセキュリティ対策を実施していない方 GitHub Actionsを組織で利用しており、部分的にセキュリティ対策を実施しているが、対策が十分かどうか分からない方 本記事がGitHub Actionsのセキュリティ対策を検討する上で参考になれば幸いです。 本記
はじめに データサイエンティストのasanoです。 Gitコマンドを学んだあと「Gitブランチ戦略」や「綺麗なコミット」や「プルリクの出し方」など、チームでGitのコード管理を円滑に運用するためのノウハウは実務を通して学ぶことが多いと思います。 実際の業務ではそういった暗黙知になっている部分を認識合わせするために、本記事のようなガイドラインを利用しています。 ※ これを読んでスキルが一朝一夕で身に着くわけではなく少ない時間でも毎日Gitを触る中で身につけるものだと思いますが、学習の一助になれば幸いです。 円滑に運用するために 次の3つをチーム全員で取り組む必要があります。 ①Git運用モデルを取り入れる ②綺麗なコミットを心がける ③適切なプルリクを出す、受ける ①Git運用モデルを取り入れる まずはA successful git branch model (git-flow)を学びまし
ガジェット全般、サイエンス、宇宙、音楽、モータースポーツetc... 電気・ネットワーク技術者。実績媒体Engadget日本版, Autoblog日本版, Forbes JAPAN他 インターネットの根幹を支えている、世界に13台しかないDNSルートサーバーの1台が、4日間にわたり、他との同期を失う不具合を起こしていたことが分かりました。 同期を失っていたのは、Cogent Communicationsが管理するDNSルートサーバー。DNSとは、Domain Name Systemの略称で、人々がインターネットにアクセスするときに使うドメイン名とIPアドレスの紐付けを管理する役割を果たしています。 インターネットはこのDNSを階層的に構築しており、その最上階層にあるのが13台のルートサーバーです。 たとえば、誰かがブラウザーを開いてWikipediaを閲覧しようと思い、Wikipediaへ
こんにちは、ファインディ株式会社で機械学習エンジニアをしていますsasanoshouta(@Edyyyyon)です。この記事は、ファインディでインシデントが発生した際に行なっているポストモーテムの運用とその様子について、先日発生したインシデントを元に紹介をする記事となっています。 今回発生したインシデントについて まず、今回発生したインシデントについて軽く紹介をさせていただきます。一言で表現すると、サービスの機能の1つを一時的に停止させてしまいました。 ポストモーテムの様子 弊社ではインシデントが発生した際にポストモーテムを実施して再発防止に努めております。 ポストモーテムとは? そもそもポストモーテムとはなんだ?と言う方もおられるかもしれませんので、簡単にご紹介いたします。 ポストモーテムは、インシデントとそのインパクト、その緩和や解消のために行われたアクション、根本原因(群)、インシデ
こんにちは、クラウド&ネットワークサービス部の福岡です。 SDPF(Smart Data Platform) クラウドの IaaS である、ベアメタルサーバー・ハイパーバイザーサービス開発のソフトウェアエンジニアとして働いています。 本記事では、リリースプロセスの改善を目指して QA チームが実施している試験の一部を自動化したことで、チームの底力が爆上がりした事例について紹介します。 SDPF ベアメタルサーバーサービスのミッション 機能リリースまでの流れと課題 課題1: 価値提供までのリードタイムが長くなる 課題2: QA チームの稼働がひっ迫する QA 削減に向けた取り組み 〜自動テストによる代替〜 思いがけない困難 どうやってこの困難に立ち向かったのか 1. 締切のあるタスクと締切のないタスクをセットにして取り組む 2. チームでサービス説明書の読み合わせ会を実施 取り組みの成果 1
可観測性ガイダンスというタイトルで登壇してきました。 イベント名: オブザーバビリティ再入門 - 大切さと高め方を知ろう! イベントURL: https://mackerelio.connpass.com/event/316449/ # ブログでいくつかの可観測性に関する書籍のまとめを投稿しました。 5年後には標準になっている可観測性のこと - Learning Opentelemetry の読書感想文 https://syu-m-5151.hatenablog.com/entry/2024/04/16/180511 もう一度読むObservability Engineering https://syu-m-5151.hatenablog.com/entry/2024/05/06/090014 盲目的に始めないためのオブザーバビリティ実践ガイド - Cloud Observabilit
Datadogのグラフをみていると、いつアプリケーションがデプロイされたのか気になることがあります。 「レスポンスタイムが急に悪くなってるけどデプロイ影響?」「エラーレートが跳ねるタイミングがあるけどデプロイ影響?」など。 そこでDatadogのグラフにデプロイタイミングを表示する方法を紹介します。 1, Event Overlays機能を使う docs.datadoghq.com 以下の画面のように、表示したいDatadog Eventのクエリを入力します。 するとEvent発生日時がグラフ上に縦線で表示されます。 シンプルな方法ですが、デプロイするタイミングでDatadogにEventを送信する必要があります。 デプロイフローに追加が必要なのでできればDatadog内で完結したいです。 2, Show Overlays機能を使う docs.datadoghq.com ※これを使うにはA
php-fpm がリクエストを処理しているサイクルをざっくりとまとめました。 php-fpm ワーカープロセスの生成 リクエストループ 1) リクエスト接続待ち listen_socket の生成 FastCGI リクエスト 2) リクエスト開始処理 実行PHPファイルパスの決定 スーパーグローバルへの格納 3) PHPファイル実行 4) リクエスト終了処理 PHP コード実行リソースの解放 max_requests チェック FastCGI クライアントとの通信 接続開始 リクエスト読み取り レスポンス書き込み 接続終了 さいごに php-fpm ワーカープロセスの生成 php-fpm は FastCGI リクエストを処理する SAPI 実装の一つです。いわば、PHP コードを実行する FastCGI サーバです。prefork 型となっており、nginx 等からの FastCGI リク
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く