Have heard Service Now is a good Help Desk type tool for tracking incidents. Can it's tool suite be used effectively in an IT development environment for version control, baselines, releases/deployments, etc.
Need your expter advice in setting up a new repository structure for our product development.
We have a software product, with 15-compnents and each of the 15-components have at least 15-modules.
Earlier our admin guy had configured the Stash server for us.
The current setup is like this:
Our IT engineer had created 15-Projects in stash/bitbucket server for 15-Components
For each of the 15-modules in a given component, a individual repository was created
Thus we have around 225 + 25(for additional module), totally 250 repositories to manage.
Individual developers creates their feature branches on their respective repositories and merge them to their production branch in their respective repo, after release.
Feature branches gets created only on a particular module in a particular repository which is getting affected for that feature.
If a developer is working on a feature, which is affecting 10-modules, this developer creates a branch in each of the repository which is affectting this module. Thus he creates 10-branches for a given feature in 10-different repositories.
In this way, we have many small teams working on many individual repositories corresponding to their module. Packages are made from each of the individual repository and delivered to our infra team, who deploys the product on our hosted servers.
Since source is spread all over the place, there is no baselines/tags created for this product. Also managing these many repositories by a single CM admin is too much to handle.
As a CM admin, I’m thinking of suggesting this structure for this product.
Create a single Project (Project A) in Stash
Create a single repository (Repo A ) in this project
Create a folder for each Component, i.e 15-Folders, under the repository root
(i.e Project A - /RepoA/Component1/Module1 Module2 ……Module15
/RepoA/Component2/Module1 Module2 ……Module15
/RepoA/Component3/Module1 Module2 ……Module15
/RepoA/Folder15/Module1 Module2 ……Module15)
In this way we’ll have single repository to handle and CM admin will create branches and developers will just make changes and commit their code.
Appreciate your response on these lines:
1. Is my suggestion to host a single repository for all the components correct?
is this achievable, what is your opinion on this repository structure?
2. We are developing a multi-tier, web application using PHP, Python, and Java Script. This application gets deployed on multiple servers. By using this single repository structure, do you see any issue or obstacle at a later stage on the line of development? What precautions should we take, if any?
3. Since the application is multi-tier, developers actually develop the application in the development environment (where multiple servers are setup to create a production sort of environment) using the shared work area in the environment, at times there are chances of one developer overwriting the others' changes.
What is your opinion on this kind of development?
4. Using this repository structure, how do we resolve the conflicts? Whenever a developer tries to push/pull the changes, he/she might face multiple conflicts not only from their changes. Should we call all developers to assemble at one desk and resolve the conflicts or is there any other better way?
5. We have many set of features getting developed on different branches. At times, many components are not modified in the some branches, still we just package them and release. What is your advice on this?
As CM admin, I see lots of advantages in managing branches and merges in a single repository structure. What do you suggest for our kind of development.
I have read many articles on web about the advantages/disadvantages of having single/multiple repositories. My Dev team is not conveienced with my approach. Thus I need answers to all my(actually their's) question in one place.
Would appreciate your detailed response for each of the above issues that we are facing. Your assistance in this regard will be very much appreciated.
I'd like to understand how companies using SVN, TFS, Git, GitHub perform backing out production deployments from two perspectives, your re-deployment method but more importantly, how are you indicating in your respective repo that if code was rolled back, what are you doing internally with your SCM tool to force a message to developers that code was backed out.
What is the workflow of a code release using SVN? Do the developers cut a tag every time they need to push some code to production? Right now we use CVS and the developers request code change through a request form which scans for files and the versions. They select the files and request a code change. The release enginner starts with the file names and their versions, checks out and releases to test and prod. How can I achieve something like this in SVN. since SVN uses global revision numbering system I would like to know if developers request the entire repository after creating a tag or do file based?
An immediate opportunity exists for a talented engineer to join a fast paced agile development team to own product releases in a cloud computing environment. The candidate will be responsible for executing release activities, implementing infrastructure improvements and continuous delivery that have direct impact on team results.
This role will leverage scripting to build/enhance required automation and tools. Improve continuous delivery pipeline. Enhance deployment automation scripts, configuration and ensure smooth running of development environments. Serve as subject matter expert on CI, release engineering and build management.
We are looking for someone who has a strong desire to work in a fast-paced dynamic environment. Is focused on continuous delivery & improvement. Loves efficiency and introduces smart automation where possible.
· Bachelor’s degree or technical equivalent
· 5+ years of release and configuration management (Ant/Maven/Gradle, Subversion/Git/CVS)
· Solid Linux experience
· AWS Experience
· Significant scripting experience in Python/Ruby/Shell Scripts.
· Experience with Continuous Integration tools (Jenkins)
· Java Application Server configuration, deployment, administration, tuning (Tomcat, Apache)
· Solid understanding of HTTP, SSL,TCP/IP
· Hands-On Experience with Puppet
· Understanding of systems monitoring, alerting (Nagios, Ganglia etc.)
· F5 load balancer experience
· Experience with internet facing applications at scale
Our VOB is of size size 52GB, 10years old, mounted on Solaris OS and using by 400 Users. From the past One Year, we observed that VOB elements are keep on corrupting with "^D" or "text_file_delta" error. We are unable to do diff with predecessor version, not able to make Builds because of corrupted files. Even we are unable to count Source Lines of Code also. I forgot to mention that, we are using ClearCase ver.6.0.
Last 8 months back, we raised a PMR, IBM resolved some file elements using "checkvob" and by remotely accessing they used some IBM scripts to solve the issue. Finally, by the end of March. We and IBM Technical Support Engineers resolved all corrupted file elements issue. Recently, we observed that 2 (two) of the files got corrupted again and VOB is not in Sync with two of our replicas. Problem started again.
Please let me know, why VOB file elements corrupts often? Is it because of, if any user uses some third party tools for his Coding/Development in VOB? We CMs follow strict polocies, some of the file elements are not even loading into VOB (Snapshot views), saying "size got exceeded". This became a big mess for us. Now, Developers are making Builds by hijacking the files. We know that, this is not a Good Practise. Please someone of you can help us in this regard. PFA, VOB Errors. Thanks in advance!
Please let me know, what exactly is a "Virtual VOB" in ClearCase. How to make it? implement the polocies? Do we require any seperate SW like VMVare to create a Virtual VOB? I am working in a Telecom Based Company and we are about to get a new Project, there our Project Manager requirement is to create a "Virtual VOB" using ClearCase. We will go in details in next month. Before that, I want to know what it is, why it is used for, how to create it. Thanks for all your answers for my Query.