5
5 Comments

Do you start by setting up a CD/CI pipeline?

So I build an MVP web app for a client using Django, and that all went great but deployment on Elastic BeanStalk got a little funky.

Should I have built a pipeline first?

I was about 3 months of work starting from a XD design and using git to collaborate with multiple developers. Finally, when the project was complete the clients decide not to launch yet (because of covid).

But, I finally decided to do it anyway just to have the web app online, and it is proving to be a larger challenge than I thought. It turns out there are lots of unanswered questions on the topic of stack overflow, and I'm not getting any help there.

For example here is my last question on the topic.
https://stackoverflow.com/questions/68773096/why-is-pipenv-failing-to-install-dependencies-in-production-environment-but-not

So I am starting to think that I should have started with the pipeline and then this wouldn't have happened.

How do you guys do it? Develop an MVP first and then deploy or deploy a pipeline and then build the web app?

on August 23, 2021
  1. 2
    • Trying something new I get it deployed online in some fashion very quickly.
    • Some sort of continuous integration and deployment setup though, more like somewhere in the middle of a project, often around about the time i start contemplating 'finishing'

    My advice - if elastic beanstalk isn't cooperating then try something else. Start with a vanilla EC2 Instance or DigitalOcean droplet

    1. 1

      Since it really isn't cooperating I think I will do that. (Vanilla EC2 time!)

  2. 1

    I generally get a working prototype up and running first but since I always use the same stack and infrastructure I can very quickly setup a CI pipeline in Github actions so I get that done very soon after.

    For me the 1 hour it takes me to setup continuous integration and continous deployment pays back very quickly once I start frequently iterating on the MVP and deploying frequently.

    In relation to your specific Stackoverflow question - I also tried installing your Pipfile locally and didn't see any errors. Its hard to know what the problem is without more information. I would guess some version mismatch (python or pipenv) in the ELB pipeline somewhere.

  3. 1

    You need to have a baseline for how you put code into production. Whether that is CI/CD or a known IaaS CLI deploy command doesn’t matter.

    If this is work for a client in an unknown environment then yes working that out first can be important. As there maybe constraints you’re unaware of which will affect your ability to do this.

    Otherwise CI/CD by itself I view as an organizational efficiency.

    Personally I always opt for an MVP first. Because I know if it’s containerized then I have multiple IaaS providers I can deploy to and simply need to learn there process.

    If in an organization with more than 5 code contributors do I start to reach for the efficiency gains of a CI/CD pipeline.

  4. 1

    I personally always start with the CI/CD. This way I can verify from the start that everything is running as expected. Take a look into Github actions. There are tons of examples related to AWS.