정보기술에서, 마이그레이션이란 한 운영환경으로부터, 대개의 경우 좀더 낫다고 여겨지는 다른 운영환경으로 옮겨가는 과정을 말한다. 예를 들어, 윈도우NT 서버를 윈도우2000 서버로 옮겨가는 것을 마이그레이션이라고 볼 수 있는데, 그 이유는 새로운 특색들이 이용된다는 것과, 이전의 설정치들을 변경할 필요가 없다는 것에 대한 확신, 그리고 현재의 애플리케이션들이 새로운 환경에서도 계속 운영됨을 보장하는 단계 등이 수반되기 때문이다. 마이그레이션은 또한 윈도우NT 환경으로부터 유닉스 기반의 운영체계로 옮기는 것 (또는 그의 반대방향의 경우도 마찬가지다)을 의미할 수도 있다. 마이그레이션은 새로운 하드웨어나, 새로운 소프트웨어, 또는 둘 모두가 바뀌는 환경으로의 이주를 포함할 수 있다. 마이그레이션의 규모에는, 단일 시스템이 옮겨가는 것과 같은 소규모 마이그레이션도 있지만, 많은 시스템들이 새로운 애플리케이션이나 새롭게 재설계된 네트웍으로 옮겨가게 되는 대규모 마이그레이션도 있을 수 있다.
마이그레이션은 한 종류의 데이터베이스에서 다른 종류의 데이터베이스로 데이터를 옮기는 경우도 될 수 있다. 이것은 대체로 이전의 데이터베이스로부터의 출력이 새로운 데이터베이스의 입력이 되도록 어떤 공통된 형식으로 데이터를 변환하는 작업이 필요하다. 새로운 데이터베이스는 다르게 구성될 수 있기 때문에, 마이그레이션이 진행중인 파일들을 처리할 수 있는 프로그램을 작성하는 것이 필요할 수도 있다.
마이그레이션은 또한 데이터를 한 저장장치에서 다른 저장장치로 옮기는 과정을 의미하는 데에도 사용된다.
portability (and porting) ; 이식성
이식성은 대대적인 개정 없이도, 하나 이상의 운영체계에서 사용될 수 있는지의 여부를 나타내는 컴퓨터 프로그램의 특성을 말한다. 포팅은 컴퓨터 프로그램을 다른 환경에서 실행될 수 있게 만들기 위해 요구되는 작업을 하는 것을 말한다. 일반적으로, X/Open 유닉스95 표준 C 언어 인터페이스와 같이 표준 프로그램 인터페이스를 고수하는 프로그램들은, 대체로 이식이 가능하다. 이상적으로 말하면, 이러한 프로그램들은 이식될 새로운 운영체계에서 오직 컴파일만 다시 하면 된다. 그러나, 표준 인터페이스를 사용하는 프로그래머들 또한, 때로 새로운 운영체계에 없는 운영체계의 확장판이나, 특별한 능력을 사용하는 수가 있다. 포팅할 때에는, 이러한 확장판을 사용한 부분들은 제거되거나, 또는 새로운 운영체계에서 제공하는 비슷한 기능으로 대체되어야만 한다. 포팅은 언어의 차이 외에도, 응용프로그램의 실행을 위해 데이터 변환이나, 새로운 시스템 절차의 채택을 필요로 하는 수가 있다.
이식성은 대개 한 응용프로그램을 다른 운영체계로 옮길 때 생기는 일부 작업을 의미했었다. 최근에, 자바 프로그래밍 언어와 실행 환경은, 자바 표준을 지원하는 운영체계라면 어디에서나, 추가적인 포팅작업 없이 프로그램이 실행될 수 있도록 만들었다. 미리 컴파일되어 바이트코드 형태로 들어있는 자바 애플릿은, 어떤 운영체계를 사용하는 서버 프로그램에서, 다른 운영체계를 사용하는 클라이언트 프로그램 (대개 웹브라우저이다) 으로 내용수정 없이 보내질 수 있다.