2010-06-07 4 views
1

저는 현재 중앙 집중식 개발 서버에서 다른 개발자와 웹 개발을하고 있습니다. 과거에는 두 가지 프로젝트가 있었고 갈등이 거의 없었으므로이 작업은 성공적이었습니다. 그러나 이제는 세 번째 (가능한) 개발자를 추가하고 있습니다. 이것은 분명히 다른 개발자가 내 작업에 영향을 미치는 변경 사항을 만들거나 그 반대의 경우도 마찬가지입니다. 이 문제를 해결하기 위해 로컬 컴퓨터에서 개발자에게 배포 할 가상 컴퓨터를 만드는 것이 가장 좋습니다. 내가 가진 문제는 데이터베이스에 관한 문제입니다.안전한 지역 개발 환경은 어떻게 만듭니 까?

우리 모두가 랩톱에서 개발 한 것을 감안할 때 단순히 라이브 데이터의 로컬 복사본을 유지하는 것은 매우 어리 석다.

나는 데이터를 살균하는 것으로 생각했지만 실제로 사람들이 실제로 입력 한 것을 대표하는 데이터로 실제 데이터를 대체하는 방법을 알아낼 수 없다. 모든 사람의 주소는 123 Testing Lane, Test Town, WA, 99999 또는 뭔가가됩니다. 이게 정말로 염려 할 부분입니까? 이런 종류의 도움을 줄 수있는 도구가 있습니까? MySQL을 사용하고 있습니다. 이상적으로, DB를 소독하면 정기적으로 실행할 수있는 스크립트에서 수행해야합니다. 이 작업을 수행 할 경우 DB 자체의 크기를 줄이는 방법이 필요합니다. (나는 x 이후에 생성 된 모든 레코드를 선택하고 해당 레코드를 두드려서 해당 테이블의 레코드를 모두 꺼낼 수 있으므로 큰 문제는 아닙니다.)

두 번째로 생각한 솔루션은 하드 드라이브는 VM이지만, 속도면에서나 랩탑 분실/도난시 얼마나 실용적인지 확신 할 수 없습니다. 이 작업을 수행 할 경우 VM의 하드 드라이브 파일 자체를 암호화해야합니까, 아니면 VM에서 암호화해야합니까? (나는 휴대용이기 때문에 후자로 가정하고 선택의 그들의 운영 체제에 어떤 종류의 암호화 기능을 가지고 devs 필요하지 않습니다.)

세 번째는 각 개발자에 대한 데이터베이스의 복사본을 만드는 것입니다 우리는 개발 서버에서 마이그레이션 스크립트 나 스키마를 사용하여 표준 db와 스키마를 동기화 할 책임이 있습니다. 이 솔루션은 가장 단순한 것 같지만 더 많은 개발자가 추가되면 실제로 확장되지 않습니다.

이 문제는 어떻게 처리합니까?

답변

2

가짜 데이터를 사용하십시오. 꼭 필요한 경우 데이터 생성기에 투자하십시오. 그러나 개발 환경에서 실제 데이터를 사용하지 마십시오. 특히 액세스가 손상 될 수있는 경우 특히 그러합니다. 나는 MS SQL 용 도구에 익숙하지만 "MySQL data generator"에 대한 검색은 EMS SqlManagerDatanamic으로 나타났습니다.

+0

하지만, "개발 환경에서 실제 데이터를 사용하지 않는"에 대한 하나! 이것이 얼마나 중요한지 미리 예측할 수는 없겠지만 가짜 데이터를 생성 할 수있는 방법을 모색 할 시간을 투자해야합니다! –

+0

저는 과거에 이런 말을 자주 들었습니다. 아마도 나는 바보 같지만 실제 데이터를 사용하는 데는 문제가 나타나지 않습니다. 그것 때문에 도난 당할 가능성이 있습니까? 소프트웨어 회사에서 일하면 실제 데이터를 문제로 볼 수 있습니다. 고객 중 한 곳에서 데이터베이스를 가져오고 싶지는 않을 것입니다. 어떤 이유로 든 개발자를 라이브 서버와 분리하려는 경우에도 문제가 발생할 수 있습니다. 다른게 있니? 내가 여기서 무엇을 놓치고 있니? – baudtack

+0

@docgnome - 귀사는 개인 정보 취급 방침을 갖고 있습니까? 그렇다면 고객 데이터가 어떻게 사용되고 보호되는지에 대해 무엇을 말합니까? 데이터가 회사 내부에 있다면 HR 정책에서 그러한 데이터에 대해 무엇을 말합니 까? 실제 데이터를 사용하는 경우 프로덕션 인스턴스의 데이터와 최소한 동일한 보호 수준을 가져야합니다. 솔직히, 나는 dev 창에 너무 관입 적이라는 것을 안다. 데이터를 잃을 위험 (그리고 어쨌든 데이터가 민감한 경우 잠재적으로 사용자의 업무 - 예, 전화 번호는 민감합니다)은 개발을위한 가짜 데이터를 생성하는 데 드는 작은 비용의 가치가 없습니다. – tvanfosson

0

tvanfosson이 언급했듯이 live 대신 fake 데이터를 사용하십시오. 이렇게하면 실시간 데이터를 안전하게 유지할뿐만 아니라 국제 이름 등 다양한 시나리오를 테스트 할 수 있습니다.

DB를 배포하는 방법은 스키마 및 작성 스크립트가 실제로 소스 제어에 있어야하므로 각 개발자는 적합하다고 판단되는 데이터베이스의 로컬 복사본을 만들 수 있습니다.

0

설비 (시드 데이터) 시스템을 설정할 수 있습니다. 데이터를 한 번 제공하면 필요에 따라 여러 번 DB에 저장됩니다. 이는 모든 사용자가 조명기를 사용/업데이트 할 수 있도록 소스 제어에 포함될 수 있습니다.

저는 자동 생성기가 대개 나쁜 생각이라고 생각합니다. 실제로있을 수있는 정보를 생성하는 것은 어렵습니다. 비품은 당신이이 정보를 만들고 그것이 당신이 찾고있는 정보라는 것을 알게 해줄 것입니다. 또한 조명기를 사용하여 유효성 검사기 범위를 확장 할 수 있습니다.

처음 설치하는 데 약간의 시간이 걸릴 수 있지만 테스팅을 위해 훨씬 높은 품질의 데이터를 얻을 수 있다고 생각합니다.

감사합니다,

저스틴

나는 특히 도구에 익숙하지 않다
+0

은 당신이 말하는 테스트의 종류에 달려 있습니다. 단위 테스트를 위해서는 DB를 추상화하고 모의 데이터를 IMO로 사용해야합니다. 통합/UI 테스트의 경우, 툴이나 정규식을 사용하여 생성 된 데이터를 주로 사용할 수 있습니다 (도구에 관계없이). DB에 유효하지 않은 데이터, 즉 사용자가 입력 할 수없는 데이터가 없어야한다고 주장합니다. 유효하지만 생성하기 쉬운 일부 엣지 케이스가있는 경우에는 항상 손으로 생성 할 수 있습니다. 좋은 테스트 데이터 세트를 얻은 후에는 버전 제어에서 백업 및 유지 관리해야합니다. – tvanfosson

관련 문제