外資系の社内SEに転職して、Outsystemsと出会った(環境構築編)

#想定読者

・Outsystemsなにそれ美味しいの？って興味をもってくださった方
・会社でOutsystemsを導入したけどよくわからないなって方


#自己紹介

世界最大級の総合人材サービス会社であるランスタッドでエンジニアを努めております。
社内の経営戦略に基づくWeb開発や制作、戦略立案などを中心に、企業収益を上げるアプローチを担当しております。
前職は少し畑が違く、フロムスクラッチというベンチャー企業でマーケティングオートメーションツールの開発を行っておりました。


#はじめに

私の投稿ではOutsystemsの環境構築や、実装の際にハマったポイントなどを共有していく予定です。

その第1弾はOutsystems導入の際の**「環境構築」**周りを共有したいと思います。


#第0章 Youは何しに外資系の社内SEに？

私自身、転職活動の際に「社内SE」というポジションは全く見ていませんでしたが、

社内開発チームの立ち上げから参加、そしてOutsystemsというツールに可能性を感じ入社をいたしました。

また当初イメージしていた「社内SE」とまったく違う環境だったのも大きかったです。

####■社内SEの当初の働き方のイメージ
・スーツでお固い感じ
・厳格な労働時間
・古いやりかた、古い技術にこだわりがち

####■今の働き方
・ドレスコードがないため私服でもよい
・コアタイムがないフレックスを超えた、フルフレックスなので働き方が自由
・新しいやり方、新しい言語にチャレンジできる

→現に開発手法がアジャイルだったり、メインではないものもGoやRubyを触ってみたり、プロジェクト管理にJIRAを使ったり、サービス連携でZapierを使ってみたり、入社していろいろやらせていただいている気がします。


#第1章 Outsystemsって何？

Webアプリケーションやモバイルのネイティブアプリケーションを視覚的に開発できる、コードレス開発基盤です。

####コードレス開発とは？

従来のようにコードをガリガリ書く開発手法ではなく、ほぼコードを書かずにWebアプリケーションを構築する開発手法になります。
そのため、従来の開発より早いスピード、高い生産性でWebアプリケーションを構築することが可能です。

####ではどうやってコードを書かずにWebアプリケーションを構築するのか？

開発者は必要な機能コンポーネントを画面上のライブラリから選択し、それらをビジュアルワークフローにドラッグアンドドロップして開発を行います。

実際開発してみて思ったのは、タイピングをする時間よりドラッグアンドドロップをしている時間が長いので、
パズルをしている感覚でWebアプリケーションを構築するイメージが一番近いかなと思いました。


下記、Outsystemsの[公式サイト](https://www.outsystems.com)の開発イメージになります。

![testtt.gif](https://qiita-image-store.s3.amazonaws.com/0/130275/00b70303-d18c-2ff8-fae0-5c122c33d3f3.gif)




単純にただ早く開発ができるだけのツールではなく、その他にも優れたポイントがございます。
こちらに書くと長くなってしまうため、
詳しくは[日本の総代理店(Bluememe)様](http://www.bluememe.jp/outsystems/product/product-devops-dev.html)のサイトをご確認ください。


既にOutsystemsでの簡単なアプリケーション作成に関してはこちらでまとめてありましたのでこちらをご参考ください。

[Outsystemsで簡単なアプリケーションを作ってみる](https://qiita.com/KTakata/items/d498be289a5c80174d47)


#第2章 Outsystemsとの出会い

そもそもなんでOutsystemsで開発することになったのか。

RandstadはITの会社ではなく人材企業になります。
そのため、社内で開発もしますがベンダーさんに頼っている事が多くありました。

そこで社内で開発に特化したチームを作ることになり、Outsystemsに白羽の矢が立ちました。


#第3章 Outsystemsの環境構築

こちらが本記事の本題です。

さて、私の入社と同時にOutsystemsを導入するようになりましたが、
そもそも始めるにしても環境自体が存在しないので、私がメインで環境構築をやることになりました。

##①OutsystemsをDownloadします

[Outsystemsの公式サイト](https://www.outsystems.com/home/downloads)にアクセスして最新版or安定版をダウンロードします。
2018/11/30時点ですと、Outsystems11が最新になっているので11をおとしましょう
~~私の頃は11はまだリリースされていなかったのでOutsystems10となっておりますが。~~

ダウンロードすると構築手順書がもれなくついてきます。
基本的にはこちらのチェックに沿って設定していきます。

~~全部英語なのは気合で・・・~~

![image.png](https://qiita-image-store.s3.amazonaws.com/0/130275/72291323-8a6f-bca6-e5f5-9842a0c88729.png)


##②手順に沿って設定

基本的には、
####1.Windows ServerのIISとAdd Roles and Features設定
→それ以外も諸々の設定がありましたが、Windows Serverの初期設定として設定されていたため設定を変更しない箇所もちらほらありました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/130275/f59ef9c6-521d-0b40-48e6-30960f55bbbe.png)



####2.DB側にOutsystemsで利用するDBの作成
やりかたはいろいろあるかと思いますが、私はSQL Server Management Studio (SSMS)にてDBを作成いたしました。

→Configuration Tool にて作成したDBの設定が必要になります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130275/ca19a7c7-1ed8-c330-71d6-5b46f6f2464e.png)

####3.Configuration Tool にて諸々の必須項目を埋めて、「Apply and Exit」を押下

すると、Outsystemsの管理画面であるServiceCenterの構築が完了し
(http://<yourserver>/ServiceCenter)というページにアクセス可能になります。


のはず・・・でしたがここで<font color="Red">エラー</font>が発生。

```
PageInvoker: error processing response (https://127.0.0.1/ServiceCenter/_ping.aspx) : Deployment failed: Deployment failed. Could not invoke ping. Exception: The underlying connection was closed: An unexpected error occurred on a send.
  at System.Net.HttpWebRequest.GetResponse()
  at OutSystems.HubEdition.DeployService.PageInvokes.PageInvoker.DoRequest(String espaceName, String ptaOrTenantName)
```

手順通り設定したはず・・・と思い、
まずはOutsystemsのQAサイトにて同じような悩みをもっている人がいないかリサーチ

しかしこのエラー・・・[世界各国で起こっているようだった](https://www.outsystems.com/forums/discussion/17662/deployment-failed-could-not-invoke-ping/)

しかしながら回答は特になく、もう一度試行錯誤してやってみた結果・・・

###<font color="royalblue">無事成功・・・:D！</font>


![image.png](https://qiita-image-store.s3.amazonaws.com/0/130275/5edb4bf3-b256-78fa-f91c-59e3c591358c.png)


原因としては、

>Add Roles and Features設定

の設定が漏れていた・・。
単純ですが、チェックリストを1つでも見逃すとこうなるんだなと反省・・


####4.ServiceCenterにて契約の際にOutsystems側からいただいたアクティベーションコードを設定


最初はライセンスファイルのアップロードしていないため、**「購入したライセンスアップロードしてね(^o^)v」**とエラーがでます。
![WS000003.JPG](https://qiita-image-store.s3.amazonaws.com/0/130275/0de3a82e-e9b3-98f1-2492-3abf715b8021.jpeg)

Outsystemsのマイページにて、自分のアクティベーションコードを入力
するとOutsystemsの各環境の設定画面がでます

■設定画面
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130275/5f149dda-7ce0-2a4b-2cfa-fc249fde766e.png)


Register Enviromentを押下すると、シリアルナンバーとServiceCenterのバージョンを入力するポップアップがでるのでここで情報を入力。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/130275/34412f19-9612-bc89-a781-18d61224d5f3.png)


すると、自分宛てに下記でアップロードするファイルが送られてくるため、そのファイルをServiceCenterにてアップロードしてください。




これにてメインの構築は完了になります!~~（細かい設定はいっぱいありますが・・・）~~


また、
Outsystemsには、Dev、STG、UAT、PRD、LifeTimeと合計5つの環境がありますので、この構築を×5こなす必要がありますので気合入れてがんばりましょう!!

##補足
上記で記載し忘れてしまいましたが、Networkの設定も重要なので抑えておきましょう。
https://success.outsystems.com/Support/Enterprise_Customers/Installation/OutSystems_Platform_network_requirements



#終わりに

けっこう急ぎ足で書いてしまいましたが、こんな感じで構築を完了しました。

個人的な感想としては、
・ドキュメントが英語ばっかりで読解が苦労した。
・Windows Serverを触ったことがなかったので勉強になった。
・あまりググっても有力な情報が落ちていない。


###<font color="royalblue">クリスマスまであと22日！</font>

次回はOutsystemsのコーディングについて書きます！