At work, the need arose to deploy our brand-new Angular and asp.net core application on the corporate servers. As a senior developer, I will also need to understand this area since there are no devops engineers and they are not expected. There are only 4 members on the little team. Typically, the issue arose during the planning phase.
The internal subnet and the Internet are currently served by two separate, galvanically isolated networks used by the company. Only devices connected to the local network have access to the whole infrastructure (1c, etc.). Developers, on the other hand, are located in the Internet industry.
I was considering adopting Docker as the server infrastructure for publishing and testing the project. (The programme itself will run on the Linux server platform) (nginx for angular, postgresql - db, api for .net core).
A small snippet of information.
- windows; Visual studio 2017 for API development; Visual studio code for Angular GitLab on the internal Internet server;
- The API is written using ASP.NET Core 2; Client on Angular 4; db - postgresql
- Developers are on a separate network from where the application is deployed;
- Servers with the application will be on the local network without access to the Internet;
- The underlying platform will be ProxMox on the local network;
The structure that turned out in my opinion.
Here are just a few problems (actually questions):
- Updating NPM packages (using Yarn as a package manager) and NuGet. Adding new packages. It seems like you can make offline mirrors for nuget and Yarn, but how do you keep them up to date? And is it possible to update/add packages using Git? m.b. has anyone experienced this?
- Does it make sense at all from the Hypervisor and virtual machines? Or is it better to deploy everything on one physical machine in this situation? Is there any advantage of supporting virtual machines (in the future it was planned to combine several servers into a cluster and add redundant replication)?
- Is it possible that I am going in the wrong direction and all my ideas and thoughts are fundamentally wrong? Will I be in excruciating pain when I work with all this? :)
- Where can you read about organizing such a structure from scratch?
Maybe someone will teach you how to organise the CI/CD process as a whole. Since this is my first experience in this field, I want to accomplish everything correctly (to the best of my ability) since I will be working with the entire organisation as a developer and a devops.