I was talking to a customer recently and they asked about deployments. They wanted to do things the real way. Here’s a snippet…
I’m helping out a company called Blue Marble and they are getting ready to deploy a new POS system. The app has been built using a Node.js back-end and Google Cloud Datastore for storage. The current dev build is hosted on AWS and connects to Google for the data bits.
Join 38,000 others and follow Sean Hull on twitter @hullsean.
For prod launch, they are interested in migrating to the “real” way of deployment on Google for everything.
They are pressed on time and looking for someone who can jump in quickly. Are you available? Do you have Google Cloud expertise?
Here’s what I said.
Yep, I’ve have used Bigquery & GCE.
What are they looking for specifically? Full deployment automation? Multiple deploys per day?
I’ve found that sometimes the biggest hurdle to fully automated deploys can be cultural issues.
In other words yes you can automate your deployment so it is push button, get all the artifacts & moving parts automated. Then deploy without much intervention. But to go from that to the team having *faith* in the system, that is a challenge.
Once the process has been streamlined, a lot often still needs to happen around unit & smoke tests.
If the team isn’t already in the habit of building tests for each bit of code, this may take some time. Also building tests can be an art in itself. What are the edge cases? What values are out of bounds?
Consider for example odd vulnerabilities that show up when hackers type SQL code into fields that devs were expecting. Sanity checking anyone?
What makes this all even more complicated is integration testing. Today many application use various third party APIs, service-based authentication, and even web-based databases like Firebase. So these things can complicate testing.
Although your project, startup or business may be pressed for time, that may not change the realities of development. Your team has to become culturally ready to be completely agile. Many teams choose a middle ground of automating much of the deployment process, but still having a person in the loop just in case.
Same with testing. Sure automating can make you more agile & more efficient. But you’ll never automate out creative thinking, problem solving & ownership of the product.
Related: Why did Flatiron School fail?