How do I deliver ALAMI's Prod

Back to two months ago when ALAMI still under registration process by Financial Service Authorities in Indonesia (OJK), all of team has been fight to fit our platform application with OJK regulations. After the final stage, we're still doesn't have a devops for creating an infrastructure of our application to be in production (live). So the CTO ask me to learn quickly about devops and creating minimal system to be used for our application in production. And then the journey has began.
Actually we have our old server but the Management doesn't happy with the provider, so we are searching new provider. How lucky we are, since our office are located at coworking space, there're many startups and one of them have a cloud service named ZettaGrid. After some meetings, the Management team interested to use their services. I got the free-trial Virtual Data Center (VDC) to exploring all of features that they have. But time is running low before we're going live, so I need to accelerate my exploration.
I has designing all of the entire infrastructure that would be used for our application, the CTO was approved, but until one day before the day, I still doesn't have an access to our new VDC. In the next day, the CTO arrange a meeting with ZettaGrid team and we order the services that fit with our infrastructure. After that I must running quickly to setup all of everything that match with the infrastructure, installing Centos, configuring development package, configuring database, also file management and firewall, and many more.
Within 3 hours the entire infrastructure has been ready, alhamdulillah. But when the application deployed, we still have a problem in our website application (before we're migrating to the new provider, we are using httpd later we are moving to use nginx). Caused by file permission of the frameworks language, also problem with SELinux. Make me frustrated for a while, but soon could be fixed by quick and dirty solution. Later we still have many issue, like the connection problem into our database from office, SSL redirection, PHP-FPM with nginx and so on. In a week I learn a lot a linux command line, actually this is very interesting for me. One by one issue has been resolved and then I move to increase the performance of our system by adding Load-Balancer scheme, creating bash script for easy deployment (we still doesn't use CI/CD btw).
Now, our system better than two months ago, we have made it automatic in archiving, updating package, also updating container (we're using docker). We also separate request from public, office and integration use with 3rd party for better performance. Moving fast, we are on the stage that we need to integrate our system with the other 3rd party beside add more features to support business needs. And I got assigned to maintain all of the entire environment (development, staging, production) also git with git-workflow for better release to follow semantic versioning, also integrating with 3rd party (mostly with Bank).
At the end, I take a risk when we're on going to integrate (Host to Host) with bank by separate the module into a small services with Vert.x. Because learn from the past when we're integrating with Payment Gateway, we have some limitation when communicate with RestApi, so I decided to build the integration services with Vert.x. There're another story in this part which I would publish on another post.


Popular Posts