Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

What are the ways to deploy Web applications in 2020

2025-01-18 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/03 Report--

This article introduces the knowledge about "what are the ways to deploy Web applications in 2020". In the actual case operation process, many people will encounter such difficulties. Next, let Xiaobian lead you to learn how to deal with these situations! I hope you can read carefully and learn something!

For beginners, let's see what options you have:

Regular hosting (Digital Ocean, AWS, GCP) + Jenkins

GitHub Action/Bitbucket Pipeline + Heroku

Travis-CI / Circle-CI

Fully automated cloud platform

1. Regular Cloud Hosting + Jenkins

Jenkins is one of the biggest riders on the CI/CD platform. It is an automated CI/CD software that works on top of the master agent architecture. So what is a master/agent? Well, a proxy is just a fancy way of saying software that is installed on one machine to coordinate [and bind] different builds. Jenkins uses a host to connect and coordinate all available agents. What machines can you use to accomplish these tasks? In most cases, a virtual machine (VM) containing docker is preferred because it is easier to do so, however, docker is not mandatory. Some of the other tools available are physical servers and even temporary containers running on Kubernetes.

Advantages:

It is highly customizable.

It's very flexible because it has plugins over 1.5K. So for any test case you want to try, someone may have done it for you:D.

Even if you are the first to run a particular test case, you can build your own plug-ins and/or shared libraries => a friendly community.

It supports faster build and cache modules. Because it doesn't force us to use docker mirroring, unlike its competitors, anything in the service can be cached for later use, so it's faster than many competitors.

It is not limited to Linux-based systems. We can also use Windows.

Disadvantages:

It is an unmanaged service.

You need to periodically make sure that the server is running, SSL is locked, has security patches, or has internet access.

You need to manually resolve all operational issues. For example, if an error occurs, it is up to you to track it down and fix it.

2. Bitbucket pipeline/ Github operation Heroku

Bitbucket's pipeline is another platform similar to Jenkins, but easier to use. Bitbucket pipes work in a similar way to Github; using the Git version control system. You can choose depending on the platform you are using.

Piping is one feature you don't want to miss. With pipelines, most SDLC(software development lifecycle) can be fully automated. Therefore, an easier alternative to Jenkins (albeit with limited functionality) is bit-bucket piping.

Bitbucket uses Docker images to run builds. The image can also be changed at each step, making it easier to separate each step of SDLC.

Advantages:

Of course, this is easier than doing it manually, or even using Jenkins(if simplicity is your concern).

Disadvantages:

It is slower than Jenkins because it uses Docker images.

It cannot share products across pipelines.

Docker image of pipeline work. Therefore, each update results in a new image, so unless cached, no data is saved from the previous pipeline. However, even if cached, the data is lost after 7 days. This means that any files not retrieved from a remote location will be lost, which doesn't work well for large tests (with lots of input or baseline fields).

3. Travis-CI/ Circle-CI

Travis-CI is a well-known CI service organization in the community. um, many reasons. One of the main reasons is that it's free for open source projects, which means you only have to pay for private projects. Its continuous integration environment also provides multiple runtimes, or nodes. JS, PHP, Python versions, data stores, etc. Therefore, when hosted on this platform, library testing against multiple runtimes/data stores can be done easily without the burden of installing them locally.

Advantages:

Travis is an easy-to-set platform. Add some basic build instructions to the project, submit the code…voila! Your website is live.

A large number of services and databases such as MySQL, PostgreSQL, Elasticsearch, Redis, Riak, RabbitMQ, Memcached are already installed and waiting to be configured.

Travis supports many deployment platforms such as Heroku, Cloud Foundry, OpenShift, Cloud Control, Nedejitsu, etc.

Travis CI is now a mature platform, and most, if not all, of the common complaints have been improved. This includes documents and logs that support colors…

Disadvantages:

Although it is free for open source projects, paid plans come at a heavy price-$69/month is a stepping stone.

Repos can't be modified directly on Travis [you can, if you pay…], so going to the repository every time [even] a small adjustment needs to be made is quite cumbersome.

Creating the travis.yml file that creates the matrix is rather difficult.

For free plans, build queues can sometimes be very long due to limited infrastructure.

4. Automated Cloud Platform

Finally, for a complete and simple automation solution, we can choose one of many automation cloud platforms. [Of these, I personally prefer the bartender, but this is entirely subjective.] Basically, most of the coding behind the scenes is done for you, so you can deploy code directly from the git repository.

All the worries about setting up a Cloud Virtual Machine, web server, and similar tedious tasks don't have to worry about you.

In most cases, you will get free SSL and CDN with the latest security and many other perks. Because they are cheaper and easier to use than other services, these platforms cover most uses. So unless you have a dedicated team ready to go all out for manual testing, or want to spend money on other automated systems like Jenkins(which still has a lot of manual work to do), the smartest choice is to use an automated cloud platform like Hostman.

Advantages:

It's easy to set up.

It is fully automated, so there is not much manual manipulation on the menu.

All operational issues will be handled by providers such as Hostman.

After setting it once, you don't need to manage it regularly. You can focus entirely on writing great code.

It supports automatic Git deployment out of the box, so you don't need to configure it.

No vendor lock-in.

Disadvantages:

Compared to other platforms such as Jenkins, its capabilities may be limited.

So far, existing languages and frameworks have had some limitations. Hostman, for example, supports 22 frameworks. But vendors like Jenkins support more than 100 plugins and can build more if needed.

"What are the ways to deploy Web applications in 2020" is introduced here. Thank you for reading. If you want to know more about industry-related knowledge, you can pay attention to the website. Xiaobian will output more high-quality practical articles for everyone!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report