最新技術動向
                2011年版




12   1   10
はじめに

              業界の最新技術動向について
              ThoughtworksのTechnology Radarを元に
              次の4分野からpick upした内容を紹介します
               Techniques
               Tools
               Platforms
               Languages


12   1   10
http://www.thoughtworks.com/articles/technology-radar-july-2011#Techniques
12   1   10
The rings are
              Adopt   業界に受け入れられており、適切な場面で採用
              できる技術

              Trial エンタープライズにおいてリスクのハンドリン
              グが可能であれば試してみるべき技術

              Assess 自社のシステムにどんな影響を与えるか調査
              する対象となる技術

              Hold    注意して取り合え使うべき技術


12   1   10
Techniques




12   1   10
Continuous delivery




12   1   10
Continuous delivery
              ・1週間〜数カ月ごとに製品の1部変更を提供

              ・自動化を最大限活用

               Infrastructure as code
               environment management
               deployment automation

              ・製品に対するフィードバックを繰り返す

12   1   10
12   1   10
DevOps
              Development + Operation
              ・開発と運用が協力するための方法とシステム
              ・伝統的な組織では開発と運用は(大体)対立している

              ・しかしビジネスの実現には両者の協力が不可欠




12   1   10
DevOpsの効果
              開発と運用が協力することで、頻繁に小さいリ
              リースを行い、リスクを減らすことが可能に




12   1   10
DevOpsに必要なこと




12   1   10
Simple performance trending




12   1   10
Simple performance trending
              ・性能試験が遅いほどリスクとコストは高い

              ・Simple performance trendingはシステムの
               Key partごとに恒常的に性能試験を行う

                 システム全体の性能試験の前に行う
                 変更があった際に性能の変化がわかる
                ・グラフに出しておくことが良い

12   1   10
Tools




12   1   10
Git




12   1   10
Git
              分散バージョン管理ツール
         ・OSSの世界ではもはやデファクトスタンダード

         ・Agileの世界でもだいたいスタンダードに

         以前は同様の分散バージョン管理ツール
         Mercurial(通称:水銀党)と人気を分けていた
         が、とあるタコというか猫というかの登場により
         Gitが優勢に立った模様

12   1   10
NoSQL
              Not Only SQL
              ・世の中SQLだけじゃないよという運動の総称

              ・NoSQLはタイプとして4つに分類される

              ・Key-value Store(memcached, Redis)
              ・Column(BigTable, HBase, Cassandra)
              ・Document(MongoDB, CouchDB, Couchbase)
              ・Graph (Neo4j)

         ・詳細は後日
12   1   10
Selenium2

              Webのブラウザ試験自動化ツール
         ・ScriptやGUIからシナリオを作成し、
          シナリオに沿った試験を実行し結果を確認する

         ・シナリオの最中にSSを撮ることも可能

         Ver1の頃に利用をしたことがあるが、ver2はまだ
         触ったことがないため後日発表予定


12   1   10
Platforms




12   1   10
OpenStack

              Eucalyptus等と同様のIaaS基盤構築OSS

         ・実際には次の2つから構成される

              ・nova(IaaS基盤構築)

              ・swift(分散ファイル基盤)

         ・多くの企業がContributeしており今後に期待

12   1   10
Cloud Foundry
              VMwareが提供するPaaSならびにそのOSS

         ・使用可能言語:Ruby, Java, Node.js, Scala

         ・Framework:Rails, Tomcat, Node, Lift, etc

         ・DB:PostgreSQL, MongoDB, etc

         ・今後のPaaS基盤になる可能性が高く期待大

              ・楽天が社内で環境構築中という話がある
12   1   10
Languages




12   1   10
今後のHTMLはHTML5に移行していくであろう

12   1   10
Haml
         ・HTML/XHTMLを生成するための言語

         ・インデントや簡略記法により簡潔な記述が可能




12   1   10
Haml Sample
                       Haml                                         HTML
         !!!                                     <!DOCTYPE html>
         %html                                   <html>
           %head                                   <head>
             %title Hello, Haml!                     <title>Hello, Haml!</title>
           %body                                   </head>
             #header                               <body>
               %h1 Hello, Haml!                      <div id='header'>
             #content                                   <h1>Hello, Haml!</h1>
               %p                                    </div>
                  I use Haml                         <div id='content'>
                  %span.version= Haml::VERSION          <p>
                                                          I use Haml
                                                          <span class='version'>3.1.0.alpha.147
                                                 (Bleeding Edge)</span>
                                                        </p>

                                 短い!                 </div>
                                                   </body>
                                                 </html>



12   1    10
CoffeeScript
         ・JavaScriptを生成するための言語

              ・コンパイルすることでJavaScriptコードが
               生成される

         ・PythonやRubyなどの構文を取り入れることで、
          JavaScriptよりも読みやすさや可読性が向上

         ・Rails 3.1から正式サポートされている



12   1   10
CoffeeScript Sample
                                    compile
              CoffeeScript                     JavaScript
         message = “Hello World!”     (function() {
         hello = ->                     var hello, message;
             console.log(message)
                                        message = "Hello World!";
         hello()
                                        hello = function() {
                                           return console.log(message);
                                        };

                        短い!             hello();

                                      }).call(this);


12   1   10
Scala



              こーびん先生の発表に期待wktk




12   1   10
まとめ

         @Mahitoの独断と偏見のもとに今後来るであろう
         とする4つの分野に関する新しい技術をピック
         アップして紹介しました。

         詳細はThoughtworks社のWebにあるので見てね!

         皆さんも興味があれば調べてみてね!



12   1   10

最新技術動向(2011年上期)

  • 1.
    最新技術動向 2011年版 12 1 10
  • 2.
    はじめに 業界の最新技術動向について ThoughtworksのTechnology Radarを元に 次の4分野からpick upした内容を紹介します Techniques Tools Platforms Languages 12 1 10
  • 3.
  • 4.
    The rings are Adopt 業界に受け入れられており、適切な場面で採用 できる技術 Trial エンタープライズにおいてリスクのハンドリン グが可能であれば試してみるべき技術 Assess 自社のシステムにどんな影響を与えるか調査 する対象となる技術 Hold 注意して取り合え使うべき技術 12 1 10
  • 5.
  • 6.
  • 7.
    Continuous delivery ・1週間〜数カ月ごとに製品の1部変更を提供 ・自動化を最大限活用 Infrastructure as code environment management deployment automation ・製品に対するフィードバックを繰り返す 12 1 10
  • 8.
    12 1 10
  • 9.
    DevOps Development + Operation ・開発と運用が協力するための方法とシステム ・伝統的な組織では開発と運用は(大体)対立している ・しかしビジネスの実現には両者の協力が不可欠 12 1 10
  • 10.
    DevOpsの効果 開発と運用が協力することで、頻繁に小さいリ リースを行い、リスクを減らすことが可能に 12 1 10
  • 11.
  • 12.
  • 13.
    Simple performance trending ・性能試験が遅いほどリスクとコストは高い ・Simple performance trendingはシステムの  Key partごとに恒常的に性能試験を行う システム全体の性能試験の前に行う 変更があった際に性能の変化がわかる ・グラフに出しておくことが良い 12 1 10
  • 14.
  • 15.
    Git 12 1 10
  • 16.
    Git 分散バージョン管理ツール ・OSSの世界ではもはやデファクトスタンダード ・Agileの世界でもだいたいスタンダードに 以前は同様の分散バージョン管理ツール Mercurial(通称:水銀党)と人気を分けていた が、とあるタコというか猫というかの登場により Gitが優勢に立った模様 12 1 10
  • 17.
    NoSQL Not Only SQL ・世の中SQLだけじゃないよという運動の総称 ・NoSQLはタイプとして4つに分類される ・Key-value Store(memcached, Redis) ・Column(BigTable, HBase, Cassandra) ・Document(MongoDB, CouchDB, Couchbase) ・Graph (Neo4j) ・詳細は後日 12 1 10
  • 18.
    Selenium2 Webのブラウザ試験自動化ツール ・ScriptやGUIからシナリオを作成し、  シナリオに沿った試験を実行し結果を確認する ・シナリオの最中にSSを撮ることも可能 Ver1の頃に利用をしたことがあるが、ver2はまだ 触ったことがないため後日発表予定 12 1 10
  • 19.
  • 20.
    OpenStack Eucalyptus等と同様のIaaS基盤構築OSS ・実際には次の2つから構成される ・nova(IaaS基盤構築) ・swift(分散ファイル基盤) ・多くの企業がContributeしており今後に期待 12 1 10
  • 21.
    Cloud Foundry VMwareが提供するPaaSならびにそのOSS ・使用可能言語:Ruby, Java, Node.js, Scala ・Framework:Rails, Tomcat, Node, Lift, etc ・DB:PostgreSQL, MongoDB, etc ・今後のPaaS基盤になる可能性が高く期待大 ・楽天が社内で環境構築中という話がある 12 1 10
  • 22.
  • 23.
  • 24.
    Haml ・HTML/XHTMLを生成するための言語 ・インデントや簡略記法により簡潔な記述が可能 12 1 10
  • 25.
    Haml Sample Haml HTML !!! <!DOCTYPE html> %html <html> %head <head> %title Hello, Haml! <title>Hello, Haml!</title> %body </head> #header <body> %h1 Hello, Haml! <div id='header'> #content <h1>Hello, Haml!</h1> %p </div> I use Haml <div id='content'> %span.version= Haml::VERSION <p> I use Haml <span class='version'>3.1.0.alpha.147 (Bleeding Edge)</span> </p> 短い! </div> </body> </html> 12 1 10
  • 26.
    CoffeeScript ・JavaScriptを生成するための言語 ・コンパイルすることでJavaScriptコードが  生成される ・PythonやRubyなどの構文を取り入れることで、  JavaScriptよりも読みやすさや可読性が向上 ・Rails 3.1から正式サポートされている 12 1 10
  • 27.
    CoffeeScript Sample compile CoffeeScript JavaScript message = “Hello World!” (function() { hello = -> var hello, message; console.log(message) message = "Hello World!"; hello() hello = function() { return console.log(message); }; 短い! hello(); }).call(this); 12 1 10
  • 28.
    Scala こーびん先生の発表に期待wktk 12 1 10
  • 29.
    まとめ @Mahitoの独断と偏見のもとに今後来るであろう とする4つの分野に関する新しい技術をピック アップして紹介しました。 詳細はThoughtworks社のWebにあるので見てね! 皆さんも興味があれば調べてみてね! 12 1 10