インフィニティソリューションズ株式会社ブログ

企業向けJavaアプリの開発者に対するクラウドの影響とは

TheServerSide.COMがこんな記事を投稿している。「How cloud computing is impacting enterprise Java developers(企業向けJava開発者に対し、クラウドコンピューティングはどのような影響があるのか)

Javaアプリを開発しているものにとって、クラウドはどのような影響があるのか、ないのか。Javaアプリケーションサーバさえ決まれば、クラウドだろうがそうでなかろうが、はたして関係ないのだろうか。

‘”The two biggest ways that the cloud will impact application development are the tools developers use and the approach that gets taken to application architecture,” says Ryan Shriver, managing consultant with Dominion Digital. “Tools for source code control, continuous integration and automated testing have been around forever, long prior to the emergence of the cloud. But now, those tools are becoming easier to use than ever. Instead of downloading subversion, finding a server on which to install it, figuring out how to add users and all that kind of stuff, I can now go online, sign up for free, invite my friends, upload my code and away I go.”‘

「Dominion Digitalのマネージング・コンサルタントのRyan Shriver氏によると、『クラウドがアプリケーション開発に与える影響は大きくわけて2つある。開発者が使うツールと、アプリケーションアーキテクチャへのアプローチ方法だ。』『ソースコート管理、継続的インテグレーション、自動化テストのツールはクラウドが出現するずいぶん以前からあるが、今日、こられのツールはこれまで異常に使いやすくなっている。サブバージョンをダウンロードし、インストールできるサーバを探し、ユーザ追加の方法など細々したことを調べるのではなく、オンラインにアクセスし、無料サインアップを行い、仲間を招待し、コードをアップロードするだけだ。』」

その結果どうなるかというと、

‘Perhaps they don’t actually change the way developers write code, but they do help to streamline the on-boarding process, and teams become more efficient as there is no longer the need for that dedicated person to do code integration or run the test suite before deployment. In the end, the developer is more empowered, more in tune with the process, and as a result is more productive.’

「恐らく、開発者のコードの書き方には何ら変化がおこらないが、本番にアップするまでのプロセスが簡略化され、実装前のコードのインテグレーションや、一連のテスト実施のための専任者が必要なくなるため、開発チームはより高い効率を実現できる。結局、開発者はより権限を持ち、プロセスによく合致し、結果、より生産的になる。」

‘And of course, while the existence of a cloud based runtime may not change the way you code a Servlet or write a JPA entity, the fact that your runtime environment can scale elastically may actually change the way you approach solving some of your more complex programming problems. “You’re going to think differently about how you solve certain problems if you have access to those elastic resources that can scale up or scale down.” Says Ryan. That might mean using Hadoop to process results, or taking a Big Data approach to data management, or even just worrying less about how big of a data graph you’re throwing into the HttpSession, but regardless of whether a cloud-based technology is a fit or not for a given business problem, the fact is, the enterprise developer needs to know the capabilities that cloud-based solutions provide along with the knowledge of how to use and apply them when the time is right.’

「もちろん、クラウドベースのランタイムの存在により、Servletの書き方やJPAエンティティの書き方が変わることはないが、ランタイム環境がエラスティックなスケーラビリティを持つという事実により、より複雑なプログラミング問題を解決する方法がかわってくるかもしれない。『スケールアップ、スケールダウンするエラスティックなリソースにアクセスできれば、問題によっては、違う解決策を考えるようになる』とRyan氏。すなわち、結果を処理するためにHadoopを使ったり、データ管理にビッグデータ手法をとる、Httpセッションに投げるデータの大きさを気にしなくなるといったことさえある。しかし、特定の問題に対して、クラウドベースの技術がフィットするかどうかに関わらず、企業の開発者は、クラウドベースのソリューションがもつ機能と、時がくれば、それを活用できる知識を持ち合わせていることが必要だ。」

‘The fact remains that for many developers, the introduction of a PaaS provider or a move to leverage an IaaS play won’t necessarily change the way they perform their day-to-day coding duties, but that doesn’t mean they are insulated from the effects of the various technologies that are emerging in the cloud computing space. From the tools they use, to how they approach the design and development of complex enterprise solutions, the cloud is indeed changing the way applications are developed.’

「多くの開発者にとって、PaaSプロバイダが出てこようが、IaaSの活用に動こうが、日々のコーディングの仕事は必ずしも変化しない。しかし、だからといって、クラウドコンピューティング分野で出てきている様々な技術の影響を受けないということではない。使っているツールから、複雑なエンタープライズソリューションを設計・開発する手法まで、クラウドによりアプリケーション開発の方法に変化をもたらしている。」

— クラウドかどうかに関わらず、アプリがともかく動けばいい、というレベルで止まらない可能性が高い。クラウドであるがゆえに、2重化、スタンバイ、複数の仮想サーバにまたがった実行など、クラウドの機能、能力を活用できるようなプログラミングが求められるようになっていくのではないか。