Windowsの実務経験しかない医療系SEが、Linuxサーバを立ててPython製WEBサービスを公開してみた
この4月、5月は、例外的に本社勤務の日が何日かありました。新型コロナウイルスの影響で、常駐先への出勤日数が制限されてしまい、その間、やることがなくなってしまったため、上司と相談し、「常駐先への出勤がない日は、本社勤務とする」ということになったのです。
本社では、ファイルメーカーで納品する予定のプログラムの仕様書を書くなど、仕事をもらえることもありましたが、基本的には自習でした。今回、その自習の期間を利用して、以前から興味を持っていたPythonを学習することにしました。
6月以降はふたたび常駐先への週5日の業務となり、本社での自習はなくなったわけですが、引き続きPythonの学習は続けていました。そしてようやくDjangoというPythonフレームワークを利用したWEBサービスが公開でき、上司にも自習の成果として報告することができました。
「Medicareless Info」
主に、病院や医療に関するインシデントやハッカー被害、不正問題などの海外ニュースを紹介するサイトです。(まだまだ細かい機能が実装できていませんが、メイン機能は動いているので、いちおう完成ということで・・・)
どうせ知識ゼロからPythonを触るのなら、いっそのこと載せるサーバやフレームワークなども未経験のものを試してみようと思い、最終的に、この図のような構成となりました。
主な環境は、このとおり。
① | 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 : 開発環境を本番環境へデプロイ |
参考にした書籍は、こちら。
会社の自習課題として始めたこのWEBサービス、デプロイにこぎつけるまでが本当に大変でした・・・。
これまでWindows ServerやVB、.Net関連の技術しか触っておらず、しかも既存パッケージの保守運用だから、ほとんどプログラミングを実務ですることがありませんでした。(もちろんPythonは全く業務で触りません)Djangoフレームワークのエラーではまるのはもちろん、デプロイする前のNginxのエラーやGunicornのエラーなども相当に厄介で、それによって土日祝日がどれだけ潰れたか分かりません。
それでも、Linux系OSを経験できたこと、Pythonという未知のプログラミング言語を学び、ひとつの作品として公開するまでこぎつけたこと、NginxやGunicornなどのバックエンド、HTMLやCSS、BootstrapなどのフロントエンドなどのWEB技術の全体が俯瞰できたことは、自分にとって大きな収穫でした。
ただ、今の業務にすぐ活かせるかというと全くそんなことはなく、せいぜいコマンドプロンプトへの苦手意識が薄れたぐらいですが・・・。
ひとまず今回のWEBサービス公開ノウハウを糧に、また別のレンタルサーバを借りて、また新たなWEBサービスを作ってみたいと思います。今度はubunntluにしようか、Windows Serverにしようか、思案中です。