CN103677845A - Website application deployment method - Google Patents

Website application deployment method Download PDF

Info

Publication number
CN103677845A
CN103677845A CN201310723665.0A CN201310723665A CN103677845A CN 103677845 A CN103677845 A CN 103677845A CN 201310723665 A CN201310723665 A CN 201310723665A CN 103677845 A CN103677845 A CN 103677845A
Authority
CN
China
Prior art keywords
virtual machine
application deployment
website
website application
production environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310723665.0A
Other languages
Chinese (zh)
Other versions
CN103677845B (en
Inventor
刘俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Glodon Polytron Technologies Inc
Original Assignee
GLODON SOFTWARE Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GLODON SOFTWARE Co Ltd filed Critical GLODON SOFTWARE Co Ltd
Priority to CN201310723665.0A priority Critical patent/CN103677845B/en
Publication of CN103677845A publication Critical patent/CN103677845A/en
Application granted granted Critical
Publication of CN103677845B publication Critical patent/CN103677845B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

The invention provides a website application deployment method. The website application deployment method includes the steps that codes needed for website application deployment are operated in a preset pre-online environment so as to simulate website application deployment, wherein the pre-online environment comprises a virtual machine with the same configuration with an object production environment for website application deployment; the codes are checked and corrected till operation of the codes is correct; the codes are synchronized into an object virtual machine generated according to the object production environment; flows of website applications are switched into the object virtual machine. According to the website application deployment method, for a user, only target devices of visiting flows of the user are modified, so that the website applications do not need to be stopped, and visit of the user is not affected; because the website application deployment method makes website application deployment public for the user, influence of website application deployment on user experience is avoided.

Description

A kind of website application deployment method
Technical field
The present invention relates to programming field, in particular, relate to a kind of website application deployment method.
Background technology
Manually copy source code in production environment to dispose the mode of website application, need in a plurality of equipment, carry out identical operation, this mode not only wastes time and energy, also easily because staff's maloperation makes the mistake.
For this reason, in prior art, by deployment tool, realize clustering and dispose to improve deployment efficiency.Concrete, can be by webistrano this application deployment platform of increasing income, with the ruby automatic deployment instrument capistrano that increases income, realize automatic deployment, that is, as shown in Figure 1, by webistrano, realize page invocation capistrano and do specific instructions; Wherein, projects is partly the list of website application, and hosts is partly the list of application server, and recipes is partly partly user list for needing execution script fragment list, users before and after disposing.Like this, be directed to some websites application deployment, only need good this website application of configured in advance to be specifically deployed in those above host, which script is deployment need to carry out, and just can realize one-touch application deployment.
But inventor is through research discovery, automatic deployment mode of the prior art at least has following defect:
In realizing the process of automatic deployment, need to suspend the application of corresponding website, due in realizing the process of automatic deployment, can make user cannot access corresponding service, thereby affect user, experience.
Summary of the invention
In view of this, the invention provides a kind of website application deployment method, to realize, improve the object that user experiences.
For achieving the above object, the invention provides following technical scheme:
A website application deployment method, comprises step:
Default pre-on thread environment move the required code of described website application deployment to simulate website application deployment; Described pre-upper thread environment comprises with the target production environment of described website application deployment and configures identical virtual machine;
Verification is also revised described code to described code and is moved correct;
The target virtual machine that described code synchronisation is extremely generated according to described target production environment;
The flow switch that described website is applied is to described target virtual machine.
Preferably, in embodiments of the present invention, described website application deployment is based on openstack IAAS platform management system;
The website application deployment instrument adopting is webistrano.
Preferably, in embodiments of the present invention, by openstackagent assembly, realize the robotization that bottom api that described webistrano calls described openstack IAAS platform management system carries out virtual machine and dispose.
Preferably, in embodiments of the present invention, the described target virtual machine that described code synchronisation is extremely generated according to described target production environment, comprises step:
Judge whether to preset the virtual machine image of described target production environment;
If so, according to described virtual machine image, generate target virtual machine;
If not, according to the described creating environments virtual machine image of reaching the standard grade in advance, according to described virtual machine image, generate target virtual machine.
Preferably, in embodiments of the present invention, the described target virtual machine that described code synchronisation is extremely generated according to described target production environment, comprises step:
Start described target virtual machine;
Use rsync instrument that the code synchronisation of simulating website application deployment is arrived to described target virtual machine.
Preferably, in embodiments of the present invention, the described flow switch that described website is applied, to described target virtual machine, comprising:
By the nginx module in described openstackagent assembly, carry out flow switch.
Preferably, in embodiments of the present invention, described in judge whether to preset described target production environment, comprising:
The virtual machine of default described pre-upper thread environment comprises the sign identical with the virtual machine of existing described target production environment;
By identifying the virtual machine of described pre-upper thread environment, whether comprise that sign judges whether to preset described target production environment.
Known via above-mentioned technical scheme, in embodiments of the present invention, by default pre-on thread environment move the required code of described website application deployment to simulate website application deployment, thereby because pre-upper thread environment has comprised that configuring identical virtual machine with the target production environment of described website application deployment can carry out verification to code in advance; Like this, after the target virtual machine by code synchronisation is extremely generated according to target production environment, so that the flow switch of website application is realized to the actual deployment of website application to the mode of target virtual machine.Deployment way in the embodiment of the present invention has just been revised the target device of user's flowing of access for user, so do not need to suspend website application, user's access is also unaffected, owing to passing through the embodiment of the present invention, making the deployment of website application is transparent for user, so the impact that the user who has avoided the deployment due to website application to cause experiences.
Accompanying drawing explanation
In order to be illustrated more clearly in the embodiment of the present invention or technical scheme of the prior art, to the accompanying drawing of required use in embodiment or description of the Prior Art be briefly described below, apparently, accompanying drawing in the following describes is only embodiments of the invention, for those of ordinary skills, do not paying under the prerequisite of creative work, other accompanying drawing can also be provided according to the accompanying drawing providing.
Fig. 1 realizes the operation interface schematic diagram of automatic deployment with automatic deployment instrument capistrano in prior art;
Fig. 2 is the step schematic diagram of the method for website application deployment described in the embodiment of the present invention;
Fig. 3 is the framework schematic diagram of the platform of website application deployment described in the embodiment of the present invention;
Fig. 4 is the another schematic diagram of framework of the platform of website application deployment described in the embodiment of the present invention;
Fig. 5 be described in the embodiment of the present invention by code synchronisation the step schematic diagram to the target virtual machine generating according to target production environment;
Fig. 6 is the schematic flow sheet of the method for website application deployment described in the embodiment of the present invention.
Embodiment
Below in conjunction with the accompanying drawing in the embodiment of the present invention, the technical scheme in the embodiment of the present invention is clearly and completely described, obviously, described embodiment is only the present invention's part embodiment, rather than whole embodiment.Embodiment based in the present invention, those of ordinary skills, not making the every other embodiment obtaining under creative work prerequisite, belong to the scope of protection of the invention.
The invention provides a kind of website application deployment method, as shown in Figure 2, comprise step:
S11, default pre-on the required code of thread environment operation website application deployment to simulate website application deployment; Pre-upper thread environment comprises with the target production environment of website application deployment and configures identical virtual machine;
In embodiments of the present invention, go up in advance thread environment and refer to the environment comprising with the identical virtual machine of target production environment of practical application.Whether pre-upper thread environment is for realizing the verification to the required code of website application deployment, that is, simulate website application deployment come Validation Code correct by the required code of thread environment operation website application deployment on pre-.
In actual applications, in the embodiment of the present invention, can combine to realize by application that openstack and two of webistrano are increased income the deployment of website application,, website application deployment can be based on openstackIAAS platform management system, going up like this, in advance the concrete website application deployment instrument webistrano that just can adopt of thread environment realizes.
Openstack and two of webistrano are increased income after application combines, and the website application deployment platform of formation as shown in Figure 3, is mainly divided into Agent layer, cache layer, application layer and accumulation layer; By openstackagent assembly, can realize the robotization that bottom api that webistrano calls openstack IAAS platform management system carries out virtual machine disposes.
As shown in Figure 4, in embodiments of the present invention, this robotization deployment instrument of webistrano is the web website that the robotization of the ruby on rails based on cabistrano is disposed, and can carry out the robotization of website application dispose by webistrano; Openstackagent assembly is for for linking up the middleware of webistrano and bottom openstack, can realize the robotization that api that webistrano calls bottom openstack carries out virtual machine dispose by openstackagent assembly; Openstack IAAS platform management system is for based on openstack(G version) the IAAS platform built, by openstack IAAS platform management system, can realize virtual to bottom hardware, and manage these virtual resources; Openstack webinterface assembly belongs to a part for openstack IAAS platform, by this openstack webinterface, can realize the mutual communication with underlying platform.
S12, verification are also revised code to code and are moved correct;
Preset pre-on after thread environment, default pre-on the required code of thread environment operation website application deployment to simulate website application deployment, just can learn that whether code is correct, if wrong, can be after revising code again on pre-thread environment operation code carry out further verification, until code is entirely true.
By to the verification of code and correction, thus the correctness in the time of can guaranteeing that code is used for formal website application deployment.
S13, the target virtual machine that code synchronisation is extremely generated according to target production environment;
After having confirmed the correctness of code, the target virtual machine that just code can be applied to generate according to target production environment has suffered, concrete, can adopt the mode that thread environment operation code on pre-is synchronized to target virtual machine.
In actual applications, by code synchronisation, the step to the target virtual machine generating according to target production environment specifically can as shown in Figure 5, comprise:
S21, judge whether the virtual machine image of goal-selling production environment;
Judge whether that the virtual machine image of goal-selling production environment is which mirror image to generate target virtual machine by order to determine.
In actual applications, judge whether to preset described target production environment, specifically can comprise:
The virtual machine of default pre-upper thread environment comprises the sign identical with the virtual machine of existing target production environment; By identifying the virtual machine of pre-upper thread environment, whether comprise that sign judges whether goal-selling production environment.That is to say, on default pre-in thread environment, the virtual machine that the sign that goes up in advance the virtual machine of thread environment is set to existing target production environment is identical, like this, by identifying the virtual machine of pre-upper thread environment, whether comprises that whether sign just can learn goal-selling production environment.
S22 is if generate target virtual machine according to virtual machine image;
After having determined the virtual machine image of having preset target production environment, just can generate target virtual machine according to this definite virtual machine image.
S23, if not, according to the creating environments virtual machine image of reaching the standard grade in advance, generates target virtual machine according to virtual machine image.
If determine the virtual machine image of Non-precondition target production environment, so, now just can be according to the creating environments virtual machine image of reaching the standard grade in advance, according to virtual machine image, generate target virtual machine,, using the virtual machine image of creating environments virtual machine image as target production environment of reaching the standard grade in advance, and virtual machine image generates target virtual machine according to this.
In actual applications, during target virtual machine according to target production environment by openstack IAAS deployment platform and configuration integrate corresponding configuration, configuration item specifically can comprise internal memory, cpu number and virtual machine quantity etc.
S24, startup target virtual machine;
Concrete, after generating target virtual machine, the starting up shell script in performance objective virtual machine automatically, described shell script is preset also in advance in the virtual machine in thread environment.
S25, use rsync instrument by the code synchronisation of simulating website application deployment to target virtual machine.
In actual applications, shell script is mainly used rsync instrument to go up in advance the code synchronisation moved in thread environment in target virtual machine, thereby the code moving in code in target virtual machine and pre-upper thread environment is consistent.
S14, by the flow switch of described website application to described target virtual machine.
In the embodiment of the present invention, can realize the robotization that bottom api that webistrano calls openstack IAAS platform management system carries out virtual machine by openstackagent assembly and dispose; Like this, by the nginx module in openstackagent assembly, carry out Reconfigurations, like this, carry out after flow switch, user's flowing of access just can be converted to target virtual machine.
The real-time idiographic flow of the present invention can be as shown in Figure 6, first, website application deployment platform is provided with the concept of pre-upper thread environment,, before each time target production environment being disposed, first code is carried out to dry run in this analog version of thread environment on pre-, to guarantee to be deployed to the correctness of the code of target production environment.On in advance, thread environment can be used the Webistrano of master to dispose.
By dry run code in thread environment on pre-, determine that code does not have after mistake, enter the operation of disposing target production environment.Website application deployment platform judges whether to provide the sign of pre-upper thread environment virtual machine, if had, the generation mirror image api of the portion's website platform invoke openstack of application administration bottom does a snapshot by the virtual machine of going up in advance thread environment, and the mirror image using this snapshot as target production environment; If there is no to go up in advance the sign of thread environment virtual machine, use the mirror image preseting as the mirror image that generates target production environment.Then use the mirror image of target generation production environment according to the target virtual machine of the configuration integrate corresponding configuration in the deployment platform of website, configuration item specifically can comprise internal memory, cpu number and virtual machine quantity etc.After generating target virtual machine, by automatically performing starting up shell script in target virtual machine (this script preset also on pre-in the virtual machine of thread environment).This section of shell script mainly use rsync instrument by the code synchronisation of the environment operation of reaching the standard grade in advance in target virtual machine, thereby the code that the code in target virtual machine and the environment of reaching the standard grade are in advance moved is consistent.Last Agent layer nginx meeting Reconfigurations, to newly-generated target virtual machine, so far, has completed the deployment flow process of whole website application by flow switch.
In sum, in embodiments of the present invention, by default pre-on thread environment move the required code of described website application deployment to simulate website application deployment, thereby because pre-upper thread environment has comprised that configuring identical virtual machine with the target production environment of described website application deployment can carry out verification to code in advance; Like this, after the target virtual machine by code synchronisation is extremely generated according to target production environment, so that the flow switch of website application is realized to the actual deployment of website application to the mode of target virtual machine.Deployment way in the embodiment of the present invention has just been revised the target device of user's flowing of access for user, so do not need to suspend website application, user's access is also unaffected, owing to passing through the embodiment of the present invention, making the deployment of website application is transparent for user, so the impact that the user who has avoided the deployment due to website application to cause experiences.
In addition, pass through the embodiment of the present invention, in issue formal environments (, target production environment) time, can configure the number of the target production environment virtual machine that needs generation, thereby realize clustering deployment, in the situation that customer volume increases, in the time of can disposing by change, the number of target production environment virtual machine is met consumers' demand dynamically, realizes elasticity and calculates.
In addition, by the embodiment of the present invention, in the application deployment process of whole website, only need staff to click a knob down, just can complete all website application deployment tasks, thereby realized the robotization of website application deployment.
In addition, by disposing each time in the embodiment of the present invention, it is all the target virtual machine that uses mirror image dynamically to generate, guaranteed that each new deployment when apply website can both create target production environment, the software relying on without some production environments of manual installation fast.
In this instructions, each embodiment adopts the mode of going forward one by one to describe, and each embodiment stresses is the difference with other embodiment, between each embodiment identical similar part mutually referring to.For the device providing for embodiment, because its method providing with embodiment is corresponding, so description is fairly simple, relevant part partly illustrates referring to method.
Above-mentioned explanation to provided embodiment, makes professional and technical personnel in the field can realize or use the present invention.To the multiple modification of these embodiment, will be apparent for those skilled in the art, General Principle as defined herein can, in the situation that not departing from the spirit or scope of the present invention, realize in other embodiments.Therefore, the present invention will can not be restricted to these embodiment shown in this article, but will meet the widest scope consistent with principle provided in this article and features of novelty.

Claims (7)

1. a website application deployment method, is characterized in that, comprises step:
Default pre-on thread environment move the required code of described website application deployment to simulate website application deployment; Described pre-upper thread environment comprises with the target production environment of described website application deployment and configures identical virtual machine;
Verification is also revised described code to described code and is moved correct;
The target virtual machine that described code synchronisation is extremely generated according to described target production environment;
The flow switch that described website is applied is to described target virtual machine.
2. according to the application deployment method of website described in claim 1, it is characterized in that, described website application deployment is based on openstack IAAS platform management system;
The website application deployment instrument adopting is webistrano.
3. website application deployment method according to claim 2, is characterized in that,
By openstackagent assembly, realizing the robotization that bottom api that described webistrano calls described openstack IAAS platform management system carries out virtual machine disposes.
4. according to the application deployment method of website described in claim 3, it is characterized in that, the described target virtual machine that described code synchronisation is extremely generated according to described target production environment, comprises step:
Judge whether to preset the virtual machine image of described target production environment;
If so, according to described virtual machine image, generate target virtual machine;
If not, according to the described creating environments virtual machine image of reaching the standard grade in advance, according to described virtual machine image, generate target virtual machine.
5. according to the application deployment method of website described in claim 4, it is characterized in that, the described target virtual machine that described code synchronisation is extremely generated according to described target production environment, comprises step:
Start described target virtual machine;
Use rsync instrument that the code synchronisation of simulating website application deployment is arrived to described target virtual machine.
6. according to the application deployment method of website described in claim 5, it is characterized in that, the described flow switch that described website is applied, to described target virtual machine, comprising:
By the nginx module in described openstackagent assembly, carry out flow switch.
7. website application deployment method according to claim 4, is characterized in that, described in judge whether to preset described target production environment, comprising:
The virtual machine of default described pre-upper thread environment comprises the sign identical with the virtual machine of existing described target production environment;
By identifying the virtual machine of described pre-upper thread environment, whether comprise that sign judges whether to preset described target production environment.
CN201310723665.0A 2013-12-24 2013-12-24 Website application deployment method Active CN103677845B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310723665.0A CN103677845B (en) 2013-12-24 2013-12-24 Website application deployment method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310723665.0A CN103677845B (en) 2013-12-24 2013-12-24 Website application deployment method

Publications (2)

Publication Number Publication Date
CN103677845A true CN103677845A (en) 2014-03-26
CN103677845B CN103677845B (en) 2017-02-15

Family

ID=50315512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310723665.0A Active CN103677845B (en) 2013-12-24 2013-12-24 Website application deployment method

Country Status (1)

Country Link
CN (1) CN103677845B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844201A (en) * 2016-12-30 2017-06-13 北京五八信息技术有限公司 Test environment dispositions method and system
CN109597626A (en) * 2017-09-30 2019-04-09 北京国双科技有限公司 A kind of deployment of components method and apparatus
CN109783756A (en) * 2018-12-28 2019-05-21 网宿科技股份有限公司 A kind of creation method of website, server and computer readable storage medium
US10684839B2 (en) 2016-06-15 2020-06-16 Red Hat Israel, Ltd. Plugin for software deployment
CN114579205A (en) * 2022-03-09 2022-06-03 平安普惠企业管理有限公司 Resource request processing method and device, electronic equipment and readable storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192937A (en) * 2006-11-24 2008-06-04 华为技术有限公司 A hot deployable method and its system
US20110265081A1 (en) * 2010-04-26 2011-10-27 Vmware, Inc. Droplet execution engine for dynamic server application deployment
CN102291464A (en) * 2011-08-29 2011-12-21 上海普元信息技术股份有限公司 System and method for dynamically generating Web Service by business flow in BPM (Business Process Management)
CN102457512A (en) * 2010-11-08 2012-05-16 中标软件有限公司 Thin client server virtualization method and virtual thin client server
CN102508693A (en) * 2011-09-29 2012-06-20 华中科技大学 Web server capacity expansion system based on virtual machine
WO2012125815A2 (en) * 2011-03-16 2012-09-20 Google Inc. High-level language for specifying configurations of cloud-based deployments

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192937A (en) * 2006-11-24 2008-06-04 华为技术有限公司 A hot deployable method and its system
US20110265081A1 (en) * 2010-04-26 2011-10-27 Vmware, Inc. Droplet execution engine for dynamic server application deployment
CN102457512A (en) * 2010-11-08 2012-05-16 中标软件有限公司 Thin client server virtualization method and virtual thin client server
WO2012125815A2 (en) * 2011-03-16 2012-09-20 Google Inc. High-level language for specifying configurations of cloud-based deployments
CN102291464A (en) * 2011-08-29 2011-12-21 上海普元信息技术股份有限公司 System and method for dynamically generating Web Service by business flow in BPM (Business Process Management)
CN102508693A (en) * 2011-09-29 2012-06-20 华中科技大学 Web server capacity expansion system based on virtual machine

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
梁加文,范冰冰: "云环境中应用系统部署策略研究", 《计算机与现代化》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10684839B2 (en) 2016-06-15 2020-06-16 Red Hat Israel, Ltd. Plugin for software deployment
CN106844201A (en) * 2016-12-30 2017-06-13 北京五八信息技术有限公司 Test environment dispositions method and system
CN109597626A (en) * 2017-09-30 2019-04-09 北京国双科技有限公司 A kind of deployment of components method and apparatus
CN109597626B (en) * 2017-09-30 2022-02-11 北京国双科技有限公司 Component deployment method and device
CN109783756A (en) * 2018-12-28 2019-05-21 网宿科技股份有限公司 A kind of creation method of website, server and computer readable storage medium
CN109783756B (en) * 2018-12-28 2021-05-28 网宿科技股份有限公司 Website creation method, server and computer readable storage medium
CN114579205A (en) * 2022-03-09 2022-06-03 平安普惠企业管理有限公司 Resource request processing method and device, electronic equipment and readable storage medium

Also Published As

Publication number Publication date
CN103677845B (en) 2017-02-15

Similar Documents

Publication Publication Date Title
CN111769957B (en) Block chain cross-chain query method, device, equipment and storage medium
CN108964982B (en) Method, apparatus and storage medium for enabling deployment of multiple nodes of a blockchain
US9588752B2 (en) Performing unattended software installation
US20150169313A1 (en) Integrated system and firmware update method
CN104216793B (en) Application Backup, the method and apparatus recovered
CN103677845A (en) Website application deployment method
CN103685568A (en) Platform service application deployment method and system of PAAS (Platform As A Service) platform under cloud computing environment
CN107632937B (en) Method and device for testing virtual machine cluster and readable storage medium
CN104077131B (en) A kind of deployment of components system and method
CN104508627A (en) Hybrid cloud environment
JP6673359B2 (en) System construction support system, method and program
CN103593250A (en) Realizing method for modifying BIOS Setup option out of band
US10067860B2 (en) Defining test bed requirements
CN103678007B (en) A kind of batch dispositions method of software and system
CN103927256A (en) Method for controlling multiple Android devices
CN106775928A (en) A kind of virtual machine Autonomic Migration Framework system and method between isomery cloud platform
CN105306225A (en) Openstack-based physical machine remote shutdown method
CN107707687A (en) A kind of method and apparatus of virtual machine IP address configuration
CN105426208A (en) OpenStack offline automatic installation method of cloud computing system
CN106201466B (en) A kind of Template Manager method based on heat
CN104765603A (en) Application program building method and device
CN105678118B (en) A kind of software version generation method and device containing digital certificate
CN105468507A (en) Branch fulfillment detection method and apparatus
CN106789236B (en) A method of the FOTA remote online upgrading of fusion WiFiP2P
CN105117329A (en) Application automatic online system and method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 100193 Building 13, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee after: Glodon Polytron Technologies Inc

Address before: 100193 Guanglianda Building, No. 18 Building, Zhongguancun Software Park, 8 Wangxi Road, Haidian District, Beijing

Patentee before: Glodon Software Company Limited