医療情報男の日記

病院で医療情報システムの保守運用の仕事をしています。

Windowsの実務経験しかない医療系SEが、Linuxサーバを立ててPython製WEBサービスを公開してみた

 

この4月、5月は、例外的に本社勤務の日が何日かありました。新型コロナウイルスの影響で、常駐先への出勤日数が制限されてしまい、その間、やることがなくなってしまったため、上司と相談し、「常駐先への出勤がない日は、本社勤務とする」ということになったのです。

 

本社では、ファイルメーカーで納品する予定のプログラムの仕様書を書くなど、仕事をもらえることもありましたが、基本的には自習でした。今回、その自習の期間を利用して、以前から興味を持っていたPythonを学習することにしました。

 

6月以降はふたたび常駐先への週5日の業務となり、本社での自習はなくなったわけですが、引き続きPythonの学習は続けていました。そしてようやくDjangoというPythonフレームワークを利用したWEBサービスが公開でき、上司にも自習の成果として報告することができました。

 

「Medicareless Info」

www.medicareless.info

主に、病院や医療に関するインシデントやハッカー被害、不正問題などの海外ニュースを紹介するサイトです。(まだまだ細かい機能が実装できていませんが、メイン機能は動いているので、いちおう完成ということで・・・)

 

 

どうせ知識ゼロからPythonを触るのなら、いっそのこと載せるサーバやフレームワークなども未経験のものを試してみようと思い、最終的に、この図のような構成となりました。

 

f:id:tkt0314:20200926082120j:plain

 

主な環境は、このとおり。

Centos8 :   Conoha VPSレンタルサーバ
Python3.6.8 : Centos8にインストール
Django3.0.8 : PythonのWEBフレームワーク
  SQLite :    Django搭載のデータベース言語
  HTML :     WEB用テキスト言語
  CSS :     スタイルシート
  BootStrap4 :  デザイン用フレームワーク
Lets Encrypt : SSL証明書サービス
uWSGI・Gunicorn : WEBサーバゲートウェイ
Nginx :    WEBサーバ
クライアント : マルチプラットフォーム対応
管理者PC :   各種開発環境
Bitbucket :   開発環境を本番環境へデプロイ

 

参考にした書籍は、こちら。

f:id:tkt0314:20200926082623j:plain

 

会社の自習課題として始めたこのWEBサービスデプロイにこぎつけるまでが本当に大変でした・・・。

 

これまでWindows ServerやVB、.Net関連の技術しか触っておらず、しかも既存パッケージの保守運用だから、ほとんどプログラミングを実務ですることがありませんでした。(もちろんPythonは全く業務で触りません)Djangoフレームワークのエラーではまるのはもちろん、デプロイする前のNginxのエラーやGunicornのエラーなども相当に厄介で、それによって土日祝日がどれだけ潰れたか分かりません。

 

それでも、Linux系OSを経験できたこと、Pythonという未知のプログラミング言語を学び、ひとつの作品として公開するまでこぎつけたこと、NginxやGunicornなどのバックエンド、HTMLやCSS、BootstrapなどのフロントエンドなどのWEB技術の全体が俯瞰できたことは、自分にとって大きな収穫でした。

 

ただ、今の業務にすぐ活かせるかというと全くそんなことはなく、せいぜいコマンドプロンプトへの苦手意識が薄れたぐらいですが・・・。

 

ひとまず今回のWEBサービス公開ノウハウを糧に、また別のレンタルサーバを借りて、また新たなWEBサービスを作ってみたいと思います。今度はubunntluにしようか、Windows Serverにしようか、思案中です。