Demystify Application Deployment Process in Corporate

Tek Loon
4 min readJul 4, 2019

--

Photo by Mike Kononov on Unsplash

Why software development & deployment is slow in corporate?

This weird thinking always comes into our mind. Why develop & deploying an application in corporate taking longer time than startup company?

  • Aren’t they have more money?
  • Aren’t they have more talent?
  • Aren’t they have sophisticated infrastucture?

So where does the slowness occur?

There were several reasons for this slowness:

Limited Architecture Solution Options

In corporate, most likely they will take a lot more factor into consideration especially security when coming to architecture. They will have their standard best practice which they will always have to stick with and comply with no matter you need it or not.

For e.g, your application architecture must use 3 tier architecture, but instead you actually only require 2 servers to get your project done and setup.

Why should I eat one more bowl of rice when I already full?

Just give you a simple example. If there is an OS patching have to be done, obviously patching 2 servers is faster than patching 3 servers right?

Less is more.

You might be thinking it’s just an extra server. What could be the big deal, right?

Dudes, It’s a HUGE deal. The time & effort you save is MASSIVE. There are reasons why Serverless is popular nowadays.

Approximated Time for Completion: 1 week

Infrastructure Setup

Now we have the architecture & solution designed in place. Next, we would have to engage the infrastructure team to set up the servers and software installation. You may require:

  • Server (Windows or Redhat)
  • Nginx (Reverse Proxy/Load balancing purpose)
  • Database (MySQL & etc.)
  • NPM & NodeJS (If it is a NodeJS project)

Server setup and installation of all these tools normally carried out by Infra Team (normally another team of people). You would be having dependency on them before you could start your work.

If your team is good in managing projects, probably there would be no big problem as your team can doing local development while waiting for the infrastructure setup. But that would be the best case scenario.

But the best case scenario happens rarely!!

Approximated Time for Completion: 2 weeks

Firewall Configuration

Now you have your server ready. Remember corporate take security very seriously and there is a high chance your server cannot communicate with each other. Your App Server cannot ping DB server unless the firewall configuration is done.

Thus, you would be required to contact your IT Security team to configure the firewall rules for you.

This process could take you quite some time as IT Security does not serve you alone. They might collect the request and only execute it once a week or twice a week. If you missed the change window, you will have to wait for another change window.

Plus, this hasn’t take into consideration the mistake you made. What if you request the firewall configuration wrongly, you thought it might work but yet it required more than what you expect. Then, you would have to wait for another change window to do the adjustment.

Approximated Time for Completion: 3 weeks

Software Deployment

In software deployment, it’s mandatory that testing has to be done before we ship it to production. Thus, we will have several environments setup. Here is the example of the environments we set up:

  • DEV
  • SIT (System Integration Test)
  • UAT (User Acceptance Test)
  • PROD

Here’s the flow for deployment.

You can only deploy to next environment when your current environment passed the test and signed off by respective stakeholders as defined by the company process.

Imagine, if you do not cover all the test in SIT environment and yet you proceed to advance to UAT environment without knowing that. Bugs were found and the whole process has to start all over again from DEV.

Starting this all over again seem fair as your application are having a bug. However, the process of getting sign off from stakeholders is challenging.

FYI, all these stakeholders busy with meeting & meetings. In addition, you will have to take into consideration the sign off order scenario. Some stakeholders are not willing to sign off for you until another stakeholder sign 1st.

Overall, it’s like the game of Catch me If you can because everyone is busying with their own shit.

Besides, deployment is done by another team of people (Migration Team or Deployment Team) in most of the corporate. Again, this team does not specifically serve your team alone and you will have a dependency on how fast they can deploy it for you.

Approximated Time for Completion for the Whole Cycle from DEV to PROD: 4 weeks

Conclusion

Now we all have clear ideas about what are the factors that cause the slowness. What next? Time to clean that shit out!

In the next article, we will discuss how we solve the problems? If it is a problem beyond our capabilities, we will discuss how we can minimize the impact of the project.

Thanks for reading. Sit back, chill and happy solving problem.

Originally published at https://tekloon.netlify.com on July 4, 2019.

--

--

Tek Loon
Tek Loon

Written by Tek Loon

Coder and Writer. If you enjoy my stories— support me by https://www.buymeacoffee.com/tekloon so I can keep writing articles for the community.

No responses yet